Ik had in het vorige artikel al gepost over dat er feitelijke fouten zitten in het artikel, diezelfde fouten zitten nu weer in dit artikel. Lees hier de reactie van Motorola nadat dit nieuws werd.
http://www.engadget.com/2...r-controversy-says-efuse/
Ten eerst een eFuse is niet een losse chip, het is een functie van een chip. Het wordt gebruikt door ontwerpers om bepaalde functionaliteit van een chip the blokkeren/configureren. Mensen die wel eens hebben gewerkt met een microcontroller kennen het wel van de datasheets.
http://en.wikipedia.org/wiki/EFUSE
En van een willekeurige Microchip PIC16 datasheet.
What are the Configuration Fuses?
The Configuration Fuses (Configuration Bits) are the settings that configure the PIC for the external environment it is expecting to find... typical settings include Oscillator Type, MCLR pin usage, Code Protection, Brown-Out and Watchdog Timer usage, Low Voltage Programming etc. Different families of PICs have different settings, so the list of settings for a 12F675, will not be the same as the list for a 16F877. When you LOAD a program into your programmer, these settings appropriately configure it without you having to make any additional changes. This saves you a lot of time messing with minor settings before you hit the 'Program' Button. Remember though, you are still able to over-ride these setting manually prior to programming your chip. Most programmers will only configure the settings to your compiled defaults when you LOAD the program, so if you change them manually, you will need to RELOAD your program for them to revert to the default (compiled) settings.
in dit geval is de "code protection" de lees en schrijf functionaliteit naar de interne EEPROM.
Veelal wordt het gebruikt om toegang tot de interne EEPROM van een chip te beperken zodat reverse engineering moeilijke/onmogelijk wordt. Wat je doet is nadat je, je chip hebt geprogrammeerd is een paar zekeringen opblazen zodat die elektrische paden fysiek niet meer werken. De enige manier om dan een chip te lezen/bewerken is door de package weg te smelten en fysiek contacten maken op de die. Hiervoor heb je wel zeer specialistische apparatuur nodig dus dat zal ook niet Jan en alleman lukken.
Nogal oud artikel over deze activiteiten:
http://www.cl.cam.ac.uk/~sps32/mcu_lock.html
eFuses kunnen ook worden gebruikt om bepaalde functionaliteit te configureren. Zoals de oscilator configuration. Als je een bepaalde oscilator configuratie hebt dan zal die nooit meer veranderen omdat het een fysiek iets is. Dan kun je dit in de chip vastzetten dmv eFuses zodat je zeker weet dat je chip altijd online komt en dat je altijd de goede configuratie hebt.
Wat Motorola waarschijnlijk heeft gedaan is de bootloader op de interne EEPROM van de main processor gezet waarna ze een paar eFuses opblazen waarmee ze de lees en schrijf functionaliteit blokkeren. De bootloader gaat dan checken of je een geldige image aan het loaden bent, als dat niet is dan gaat hij over naar recovery mode. Omdat je vanaf buiten niet meer bij het interne geheugen van de chip kan komen kan je de bootloader dus ook niet hacken.
Een hack is niet 100% uitgesloten, omdat je nog steeds de bootloader kan laten geloven dat er een geldige image is door de encryptie te kraken, maar dat gaat zeer moeilijk worden en voor die kleine aantallen welke Motorola verkoopt zal er ook niet een grote aanhang voor zijn.
Een ander probleem voor Motorola is dat als er ooit een fout wordt ontdekt in de bootloader en ze een update uit moeten voeren, dat dat niet meer kan en ze alle toestellen die een probleem hebben fysiek moeten vervangen.
[Reactie gewijzigd door SizzLorr op 18 juli 2010 14:31]