Protože existuje mnoho čínských společností, které mohou snadno zpětně analyzovat návrh desek plošných spojů a extrahovat soubor .hex z mikrokontrolérů (dokonce z zabezpečený flash), integrovaní vývojáři musí svým produktům přidat ještě větší ochranu. V mém případě „používám STM32F103 a chci přidat na svůj PCB krypto IC ATSHA204A , abych ochránil svoji IP. Tímto způsobem doufám i když mohou dostat .hex z MCU a naklonovat desku, hexadecimální soubor odmítne pracovat, pokud nedokáže rozpoznat krypto čip na PCB.
Tento krypto IC má jedinečné sériové číslo, které byl napsán při výrobě a lze jej vždy přečíst. Má také některé funkce, jako je zabezpečená oblast pro uchování některých tajných dat, schopnost generovat náhodná čísla a odesílat je hostiteli přes I2C nebo jednovodičové připojení, schopnost vypočítat hash SHA-256 daného řetězce atd.
Nyní se snažím pochopit, jak bych s tím měl pracovat, protože jsem trochu noob na předmět autentizace. Z toho, co jsem pochopil po přečtení datového listu, bude pracovní postup takový:
Personalizace kryptografického IC:
-
Zabezpečená oblast v krypto čip bude hostitelem vyplněn (v mém případě STM32F103) nějakým náhodným tajným klíčem pro každý produkt, pouze jednou.
-
Tajný klíč bude také přítomen ve flashi hostitelů paměť.
Ověření desky (moje chápání, které je pravděpodobně špatné):
-
Hostitel požaduje náhodné číslo z krypto-IC. Poté hostitel vygeneruje nějaký zřetězený řetězec s tajným klíčem a náhodným číslem (nonce?) A vypočítá jeho hash SHA-256.
-
Nyní by hostitel měl odeslat náhodný klíč zpět do krypto-IC a očekávejte od něj, že vygeneruje stejný řetězec s tajným klíčem uvnitř krypto-IC a vypočítá jeho hash SHA-256.
-
Crypto-IC odešle vypočítaný hash zpět hostiteli a hostitel porovná hashe.
-
Pokud se hashe shodují, ověřte. Pokud tak neučiní, hostitel odmítne pracovat.
Pracovní postup je pravděpodobně špatný, ale hlavní myšlenkou by mělo být něco podobného. Může to někdo vysvětlit?
Odpověď
Pracovní postup je pravděpodobně špatný, ale hlavní myšlenka by měla být něco podobného.
Ne, to je v podstatě k ničemu. To by bylo v pořádku, kdybyste například použili svůj krypto IC k ověření autenticity přídavné zařízení (řekněme, že tiskárna ověřující kazetu vyrobila stejná společnost).
Nepomáhá vám , protože " odmítá pracovat " nebude létat, pokud má někdo strojový kód vašeho firmwaru: nalezení šeku v rozloženém strojovém kódu obvykle není to těžké. Potom je to stejně jako nahradit " skok na „zastavit a nic nedělat“ " za " přejít na „start užitečné funkce „"; obvykle to znamená změnu bajtu.
Zajímavou část firmwaru je třeba zašifrovat do permanentního úložiště (obvykle vestavěný blesk MCU). Pouze bootloader, který používá krypto čip dešifrování hlavního firmwaru by zůstalo nezašifrované. Při bootování bootloader dešifruje firmware do paměti RAM.
Malý problém: Musíte být docela chytří, hardwarově, aby člověk nemohl stačí připojit logický analyzátor mezi váš MCU a krypto IC a čichat dešifrované bajty.
Existují řešení, která zamlžují věci divokým skákáním v paměti při dešifrování věcí atd. Problém je v tom, že nic není o tom je tajemství, je jen trochu více práce pochopit, jak se skákání provádí ze strojového kódu. (A pokud se vám na tuto sběrnici podaří vložit jediný strojový kód, který způsobí, že MCU přes nějaký pin vysílá celou svou RAM, pak je to také konec hry, nezáleží na vás, jestli víte, kde část kódu skončí v RAM, najdete ji později na výpisu, je jen důležité, aby byla v určitém okamžiku spuštěna.)
Jinými slovy, pokud si opravdu myslíte, že váš firmware je to komerčně zajímavé (lidé to divoce přeceňují! U věcí, které nejsou hlavně firmwarem, například u jakéhokoli spotřebního zařízení a jakéhokoli průmyslového ovládání, je obvykle těžké získat všechny součásti a sestavit stejné / podobné zařízení levnější než originál a úplné přepsání firmwaru je ve srovnání s tím často snadné), pak máte jedinou šanci integrovat uchování tajemství, šifrované úložiště a zabezpečené provedení (aby nebylo možné ukládat RAM).
Dělají to mikrokontroléry. Obvykle jsou o něco dražší.Jak však můžete uhodnout, pokud jste například v obranném prostředí, kde potřebujete ověřit, že s firmwarem nelze manipulovat, je to vaše správná cesta.
Nintendo vyrábí zařízení, u nichž je finanční pobídka, aby jim nikdo nedovolil číst jejich firmware nebo je dokonce upravovat:
Neschopnost uživatelů spouštět na svých konzolích software, který nebyl licencován společností Nintendo, je pro jejich obchodní model zásadní. Proto je nesmírné obejít kontrolu podpisů hry je prvořadé, a proto Nintendo Switch jde all-out s více vrstvami ochrany. Jak uhodnete, „to není záruka – byli prostě fandové (dokonce ani lidé s kriminálním / obchodním zájmem!), Kteří našli způsob , jak toho obejít.
Ale všimnete si jedné věci: Jen proto, že je těžké udělat dokonalou, neznamená to, že to nestojí za to, aby bylo vaše zařízení klonováno těžší. Podle mých skromných zkušeností cloners obvykle kapitulují jakmile budete potřebovat porozumět tomu, jak zařízení kopíruje – jinak by byli v pozici mít inženýry, kteří by vaši práci mohli víceméně vykonávat, a tito inženýři obvykle pracují ve vašem sektoru, ne v nějaká laboratoř na padělání. Dobrý odstrašující prostředek proto uvádí firmware zašifrovaný do paměti flash. Není to dokonalé, ale v okamžiku, kdy budou muset vystoupit z logického analyzátoru a strávit týdny zpětným inženýrstvím vašeho de-dešifrovací protokol do RAM, jen aby získali něco, co by mohli zkopírovat, by mohlo stačit na to, aby považovali finanční riziko za příliš vysoké a šli po nějakém ještě něco.
Komentáře
- " lidé to divoce přeceňují ", ale lidé stejně divoce nadhodnocují náklady na reverzní inženýrství.
- Díky za skvělou odpověď, nemůžu hlasovat za to, že nemám dost dobré pověsti. Ano, ' je v zásadě nemožné zajistit 100% zabezpečení, ale přidání velmi jednoduchého bezpečnostního opatření s kryptickým čipem v hodnotě 0,3 $ by mohlo zvýšit náklady na reverzní inženýrství z přibližně tříciferných $ na možná pětimístné, zatímco se zvyšuje požadovaný čas z několika dní na několik měsíců, pokud je zabezpečení navrženo dostatečně chytře. A mohlo by to odrazit hackery (v závislosti na finančním potenciálu produktu), myslím, že půjdu dále šifrováním " zajímavé části " hlavního firmwaru.
- Změním váš odhad až na " a zvýším čas z hodiny na " možná několik dní " a cena je v obou případech v zásadě irelevantní. Cena by byla " v podstatě zdarma " každému, kdo ' dostal lhavé elektronické nástroje stejně, i když ne, 200 EUR plus notebook vám poskytne rozumný start.
- Pak bych se měl vzdát a vůbec nepoužívat ochranu? 🙂
- @NotReallyaMaster, že ' je na vás; Na tuto otázku jsem ' věnoval celý poslední odstavec své odpovědi.