Az ATSHA204A használatával történő hitelesítés megértése

Mivel sok kínai vállalat képes könnyen megtervezni a NYÁK-tervezést és kibontani a .hex fájlt a mikrovezérlőkből (akár a biztonságos flash), a beágyazott fejlesztőknek még némi védelmet kell nyújtaniuk termékeiknek. Esetemben egy STM32F103-at használok, és hozzá akarom adni a kriptográfiai IC-t ATSHA204A a NYÁK-ra, hogy megvédjem az IP-t. Ezzel azt remélem. akkor is, ha ki tudják szerezni a .hex fájlt az MCU-ból, és klónozzák a táblát, a hex fájl nem működik, ha nem ismeri fel a kriptográfot a NYÁK-on.

Ennek a kriptó IC-nek egyedi sorszáma van, amely gyártás közben íródott, és mindig olvasható. Van még néhány funkciója, például egy titkos adatok megőrzésére szolgáló biztonságos terület, véletlenszerű számok előállításának és az I2C-n vagy egyvezetékes kapcsolaton keresztüli továbbításnak a képessége, néhány adott karakterlánc SHA-256-os kivonatának kiszámítása és így tovább. / p>

Most megpróbálom megérteni, hogyan kell vele dolgozni, mivel én egyfajta noob vagyok a hitelesítési témában. Abból, amit az adatlap elolvasása során megértettem, a munkafolyamat a következő lesz:

A titkosítási IC személyre szabása:

  1. A titkosítás biztonságos területe A chipet az állomás (esetemben STM32F103) csak egyszer tölti be valamilyen véletlenszerű titkos kulccsal minden termékhez.

  2. A titkos kulcs a gazdagép villanásában is jelen lesz memória.

A tábla hitelesítése (Megértésem, ami valószínűleg téves):

  1. A gazdagép véletlenszerű számot kér a kripto-IC-ből. Ezután a gazdagép generál néhány összefűzött karakterláncot a titkos kulccsal és a véletlen számmal (nonce?), És kiszámolja annak SHA-256 kivonatát.

  2. Most a gazdagépnek el kell küldenie a véletlenszerű kulcs vissza a crypto-IC-be, és elvárja tőle, hogy ugyanazt a karakterláncot hozza létre a titkos kulccsal a crypto-IC belsejében, és kiszámolja az SHA-256 kivonatot.

  3. A Crypto-IC visszaküldi a kiszámított kivonatot a gazdagépnek, és a gazdagép összehasonlítja a kivonatokat.

  4. Ha a kivonatok egyeznek, érvényesítse. Ha nem teszik meg, akkor a fogadó nem hajlandó dolgozni.

A munkafolyamat valószínűleg hibás, de a fő gondolat valami közeli kell, hogy legyen. Meg tudja magyarázni ezt bárki?

Válasz

A munkafolyamat valószínűleg téves, de a fő gondolatnak valami közeli hozzá.

Nem, ez alapvetően haszontalan. Ez jó lenne, ha például a kriptográfiai IC-t használná a egy kiegészítő eszköz (mondjuk, a nyomtatót ellenőrizve, hogy a patront ugyanaz a cég készítette).

Ez nem segít neked , mert " nem hajlandó dolgozni " nem fog repülni, ha valakinek megvan a firmware gépkódja: a csekket a szétszerelt gépi kódban általában nem hogy kemény. Ez annyit jelent, mint ha egy " ugrást lecserél “megállj és ne csinálj semmit” " egy " ugrás a “start” -ra hasznos funkciók “"; általában ez egy bájt megváltoztatásával jár.

Titkosítania kell a firmware érdekes részét az állandó tárolóban (általában az MCU beépített vakuja). Csak egy olyan bootloader, amely a kriptográfot használja a fő firmware visszafejtése titkosítás nélkül marad. Indításkor a bootloader dekódolja a firmware-t RAM-ba.

Kis probléma: Önnek elég okosnak, hardveresen kell lennie, hogy az ember ne tudjon csak csatlakoztasson egy logikai elemzőt az MCU és a kriptográfiai IC közé, és szippantsa be a visszafejtett bájtokat.

Vannak olyan megoldások, amelyek elhomályosítják a dolgokat azzal, hogy vadul ugrálnak a memóriában, miközben visszafejtik a dolgokat stb. A probléma az, hogy nincs semmi ennek titka, csak egy kicsit több munka megérteni, hogy a gépi kódból hogyan ugrálunk. (És ha sikerül egyetlen gépkódot beillesztenie arra a buszra, amely az MCU-t valamilyen csapon keresztül kiáramlítja a teljes RAM-ból, akkor a játéknak is vége; nem igazán számít Önnek, hogy tudja-e hol az a kóddarab a RAM-ba kerül, később megtalálja a dumpban, csak az a fontos, hogy valamikor végrehajtódjon.)

Más szóval, ha valóban úgy gondolja, hogy a firmware-je az üzletileg érdekes (az emberek ezt vadul túlértékelik! Olyan dolgok esetében, amelyek nem főleg firmware-ek, például minden fogyasztói eszköz és ipari vezérlés esetében, általában nehéz beszerezni az összes alkatrészt és felépíteni ugyanaz a / hasonló eszköz olcsóbb, mint az eredeti, és ehhez képest a firmware teljes újraírása gyakran egyszerű), akkor az egyetlen esélye a titkos őrzés, a titkosított tárolás és a biztonságos végrehajtás integrálása (hogy a RAM-ok lehordása lehetetlen legyen).

Vannak mikrokontrollerek, amelyek ezt csinálják. Általában valamivel drágábbak.De, mint sejteni lehet, ha például olyan védelmi környezetben tartózkodik, ahol igazolnia kell a firmware-t, akkor azt nem lehet megváltoztatni, nos, ez a maga útja.

A Nintendo olyan eszközöket gyárt, ahol erős az a pénzügyi ösztönzés, hogy senki ne olvassa el firmware-jét, vagy akár módosítsa azt:
A felhasználók képtelenek üzleti modelljükhöz olyan szoftvereket futtatni, amelyekre a Nintendo nem adott licencet konzoljukon. Ezért a játék aláírásainak ellenőrzésének megkerülése képtelen a legfontosabb, és ezért a Nintendo Switch többrétegű védelemmel mindenre kiterjed. Sejteni lehet, hogy ez nem garantálja – egyszerűen voltak olyan hobbisták (nem is bűnözői / kereskedelmi érdekű emberek!), Akik megtalálták ezt a módot .

De egy dolgot nem fog észrevenni: Csak azért, mert nehéz tökéletesíteni, nem azt jelenti, hogy nem éri meg, hogy megnehezítse a készülék klónozását. Szerény tapasztalataim szerint a klónozók általában kapitulálnak amint meg kell ismernie egy eszköz működését annak másolásához – különben abban a helyzetben vannak, hogy mérnökei vannak, akik többé-kevésbé elvégezhetik a munkáját, és ezek a mérnökök általában az Ön szektorában dolgoznak, nem néhány hamis labor. Jó elrettentő tényező, ezért a flash-re titkosított firmware-t tesz elérhetővé. Nem tökéletes, de abban a pillanatban, amikor ki kell szállniuk a logikai elemzőből, és heteket kell fordítaniuk a a RAM-ba történő visszafejtési protokoll, csak azért, hogy megszerezzen valamit, amit esetleg le tudnak másolni, elegendő lehet ahhoz, hogy túl magasnak tartsák a pénzügyi kockázatot, és vállalják valami más.

Megjegyzések

  • " az emberek vadul túlértékelik, hogy ", de az emberek ugyanolyan vadul túlbecsülik a fordított tervezés költségeit.
  • Köszönöm a remek választ, nem tudják visszautasítani, hogy nincs elég hírnevük. Igen, ' alapvetően lehetetlen 100% -osan biztonságossá tenni, de egy nagyon egyszerű biztonsági intézkedés hozzáadása 0,3 dolláros kriptográfdal növelheti a reverz mérnöki költségeket néhány háromjegyű dollárról talán 5 számjegyű, miközben megnöveli a szükséges időt néhány napról néhány hónapra, ha a biztonságot elég okosan tervezik. És taszíthatja a hackereket (a termék pénzügyi lehetőségeitől függően). Azt hiszem, továbblépek az " érdekes rész titkosításával " a fő firmware-ből.
  • I ' ll becslésemre " növeli az órát egy óráról talán néhány nap ", és a költségek alapvetően nem relevánsak mindkét esetben. A költség " lényegében ingyenes " lenne annak, aki ' s hazudta az elektronikus eszközöket amúgy is, és ha nem is, 200 euró plusz egy laptop ésszerű kezdéssel jár.
  • Akkor adjam fel és ne használjak semmilyen védelmet? 🙂
  • @NotReallyaMaster, hogy ' rajtad múlik; ' erre a kérdésre válaszom teljes utolsó bekezdését szenteltem.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük