ATSHA204A-todennuksen ymmärtäminen

Koska on monia kiinalaisia yrityksiä, jotka voivat helposti suunnitella PCB-suunnittelun ja purkaa .hex-tiedoston mikrokontrollereista (jopa suojattu salama), sulautettujen kehittäjien on lisättävä tuotteisiinsa vielä enemmän suojaa. Minun tapauksessani käytän STM32F103: ta ja haluan lisätä salauspiirin ATSHA204A piirilevylle suojaamaan IP-osoitettani. Tekemällä näin toivon vaikka he voivat saada .hex: n ulos MCU: sta ja kloonata levyn, heksatiedosto kieltäytyy toimimasta, jos se ei tunnista salauspiiriä piirilevyllä.

Tällä salauspiirillä on yksilöllinen sarjanumero, joka kirjoitettiin valmistuksen aikana, ja se voidaan aina lukea. Siinä on myös joitain ominaisuuksia, kuten suojattu alue salaisen datan säilyttämiseksi, kyky tuottaa satunnaislukuja ja lähettää se isännälle I2C: n tai yksijohtimisen kautta, kyky laskea joidenkin annettujen merkkijonojen SHA-256-hash ja niin edelleen. / p>

Yritän nyt ymmärtää, miten minun pitäisi työskennellä sen kanssa, koska olen eräänlainen noob todennusaiheessa. Sen perusteella, mitä olen ymmärtänyt lukemalla tietolomakkeen, työnkulku on seuraava:

Salaus-IC: n mukauttaminen:

  1. Salausala on suojattu isäntä (minun tapauksessani STM32F103) täyttää sirun vain satunnaisella salaisella avaimella kullekin tuotteelle, vain kerran.

  2. Salainen avain on läsnä myös isäntäsalamassa muisti.

Pöydän todennus (ymmärrykseni, joka on todennäköisesti väärä):

  1. Isäntä pyytää satunnaislukua salaus-IC: stä. Sitten isäntä generoi jonkin verran ketjutettua merkkijonoa salaisella avaimella ja satunnaisluvulla (nonce?) Ja laskee siitä SHA-256-hashin.

  2. Nyt isännän tulisi lähettää satunnainen avain takaisin salaus-IC: hen ja odottaa sen tuottavan saman merkkijonon salaisen avaimen salaus-IC: n sisällä ja laskevan sen SHA-256-hashin.

  3. Crypto-IC lähettää lasketun hajautuksen takaisin isännälle ja isäntä vertaa hajautuksia.

  4. Jos hajautusasetukset vastaavat, vahvista. Jos he eivät, isäntä kieltäytyy työskentelemästä.

Työnkulku on todennäköisesti väärä, mutta pääidean tulisi olla jotain sen lähellä. Voiko kukaan selittää tämän?

Vastaus

Työnkulku on todennäköisesti väärä, mutta pääidean tulisi olla jotain sen lähellä.

Ei, tämä on pohjimmiltaan hyödytöntä. Tämä olisi hieno, jos käyttäisit salauspiiriä esimerkiksi vahvistaaksesi lisälaite (esimerkiksi tulostin, joka varmistaa, että sama yritys on tehnyt kasetin).

Se ei auta sinua , koska " kieltäytyy toimimasta > kova. Sitten se on yhtä paljon kuin korvata " hypätä ”pysäytä ja tee mitään” " " siirry alkuun hyödyllisiä toimintoja ”"; tyypillisesti siihen liittyy tavun vaihtaminen.

Sinun on salattava laiteohjelmiston mielenkiintoinen osa pysyvässä tallennustilassa (tyypillisesti MCU: n sisäinen salama). Vain käynnistyslatausohjelma, joka käyttää salaussirua päälaiteohjelmiston salauksen purkaminen pysyisi salaamattomana. Käynnistyksen yhteydessä käynnistyslatain purkaa laiteohjelmiston RAM-muistiksi.

Siellä on pieni ongelma: Sinun on oltava melko fiksu, laitteistokohtainen, jotta ei voi liitä vain logiikananalysaattori MCU: n ja salauksen IC: n väliin ja haista puretut tavut.

On kiertotietoja, jotka hämmentävät asioita hyppäämällä villisti muistissa samalla purkamalla tavaroiden purkamista jne. Ongelma on, ettei siinä ole mitään salaisuus siitä, se on vain hieman enemmän työtä ymmärtää kuinka hyppääminen tapahtuu konekoodista. (Ja jos onnistut lisäämään yhden konekoodin siihen väylään, joka saa MCU: n virtaamaan koko RAM-muistin jonkin pinin kautta, niin se on myös pelin ohi; Sinulla ei ole väliä, tiedätkö missä tuo koodikappale päätyy RAM-muistiin, löydät sen myöhemmin dumpista, on vain tärkeää, että se suoritetaan jossain vaiheessa.)

Toisin sanoen, jos luulet todella, että laiteohjelmisto on tuo kaupallisesti mielenkiintoinen (ihmiset yliarvioivat sen villisti! Niissä asioissa, jotka eivät ole pääosin laiteohjelmistoja, kuten mistä tahansa kuluttajalaitteesta ja teollisesta ohjauksesta, on yleensä vaikea hankkia kaikkia osia ja rakentaa sama / samankaltainen laite kuin alkuperäinen, ja laiteohjelmiston täydellinen uudelleenkirjoittaminen on usein helppoa verrattuna siihen), niin ainoa mahdollisuus on integroida salaisuus, salattu tallennus ja turvallinen suoritus (jotta RAM-muistin kaataminen on mahdotonta).

Mikrokontrollerit tekevät niin. Ne ovat yleensä hieman kalliimpia.Mutta kuten arvata voi, jos olet esimerkiksi puolustusympäristössä, jossa sinun on sertifioitava laiteohjelmisto, sitä ei voida peukaloida. No, se on oikea tapa edetä.

Nintendo valmistaa laitteita, joissa taloudellinen kannustin olla antamatta kenenkään lukea laiteohjelmistoa tai edes muokata sitä on vahva:
Käyttäjien kyvyttömyys käyttää ohjelmistoja, joita Nintendo ei ole lisensoinut konsoleissa, on kriittinen heidän liiketoimintamallinsa kannalta. Siksi pelin allekirjoitusten tarkistamisen kiertäminen on ensiarvoisen tärkeää, ja siksi Nintendo Switch menee täydelliseksi, ja siinä on useita suojaustasoja. Kuten voit arvata, se ei ole takuu – oli vain harrastajia (ei edes ihmisiä, joilla on rikollista tai kaupallista etua!), Jotka löysivät tien .

Mutta huomaat yhden asian: Pelkästään siksi, että on vaikea tehdä täydellistä, se ei tarkoita, että se ei ole sen arvoista, mikä vaikeuttaa laitteen kloonaamista. Nöyrän kokemukseni mukaan kloonaajat yleensä kapituloituvat heti kun tarvitset ymmärrystä laitteen toiminnasta sen kopioimiseksi – muuten heillä olisi mahdollisuus saada insinöörejä, jotka voisivat tehdä työsi, enemmän tai vähemmän, ja nämä insinöörit työskentelevät tyypillisesti omalla alallasi, ei jotkut väärennetyt laboratoriot. Hyvä estävä tekijä on laittaa laiteohjelmisto salatuksi salamavaloon. Se ei ole täydellinen, mutta sillä hetkellä, kun heidän on päästävä ulos logiikka-analysaattorista ja vietettävä viikkoja käänteiseen suunnitteluun RAM-muistin salauksen purkuprotokolla, vain saadakseen jotain, jonka he saattavat pystyä kopioimaan, voi riittää, että he pitävät taloudellista riskiä liian suurena ja menevät asia muu.

Kommentit

  • " ihmiset yliarvioivat villisti sitä, että ", mutta ihmiset yliarvioivat yhtä villisti käänteisen suunnittelun kustannukset.
  • Kiitos erinomaisesta vastauksesta, ei voi äänestää riittämättömän maineen puuttumisesta. Joo ' on periaatteessa mahdotonta tehdä siitä 100% turvallista, mutta hyvin yksinkertaisen turvatoimen lisääminen 0,3 dollarin salauspiirillä voi lisätä käänteisen suunnittelun kustannuksia joistakin 3-numeroisista dollareista ehkä 5-numeroinen, samalla kun vaadittu aika kasvaa muutamasta päivästä muutamaan kuukauteen, jos suojaus on suunniteltu tarpeeksi fiksuksi. Ja se voi torjua hakkereita (tuotteen taloudellisesta potentiaalista riippuen). Luulen, että jatkan salaamalla " mielenkiintoisen osan " päälaiteohjelmistosta.
  • I ' ll pienennän arviosi arvoon " pidentämällä aikaa tunnista ehkä muutama päivä ", ja kustannuksilla ei ole periaatteessa merkitystä kummassakin tapauksessa. Kustannukset olisivat " olennaisesti ilmaisia " kaikille, jotka ' saivat elektroniset työkalut valehtelemaan noin joka tapauksessa, ja vaikka ei, 200 € plus kannettava tietokone antaa sinulle kohtuullisen alun.
  • Pitäisikö minun sitten luopua ja käyttää mitään suojaa? 🙂
  • @NotReallyaMaster että ' on sinun tehtäväsi; Olen ' omistanut vastaukseni viimeisen kappaleen tähän kysymykseen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *