Implementeer veilige authenticatie zonder een expert in cryptografie te zijn

Update: 4 april 2023

"Digitale veiligheid is een van de meest bekende onderwerpen in de wereld elektronisch ontwerp vandaag. Versleuteling is waarschijnlijk het eerste woord dat in je opkomt als ingenieurs aan beveiliging denken, en slechts enkele ingenieurs denken aan authenticatie. Authenticatie is echter een essentiële functie van een beveiligd apparaat of beveiligde transactie.

"

Authenticatie is belangrijk. Dankzij bestaande op silicium gebaseerde oplossingen kunnen we authenticatie mogelijk maken zonder dat we experts hoeven te zijn in de implementatie van cryptografie.

voorstellen

Digitale veiligheid is tegenwoordig een van de meest bekende onderwerpen in elektronisch ontwerp. Versleuteling is waarschijnlijk het eerste woord dat in je opkomt als ingenieurs aan beveiliging denken, en slechts enkele ingenieurs denken aan authenticatie. Authenticatie is echter een essentiële functie van een beveiligd apparaat of beveiligde transactie.

Denk aan identiteitsverificatie bij thuisbankieren. Vertrouwelijke informatie zoals saldi en rekeningnummers wil je natuurlijk versleutelen. Dit gebeurt wanneer je internetbrowser een groen slotje met https:// weergeeft. Dat wil zeggen dat het eerste dat de internetbrowser controleert bij het tot stand brengen van een beveiligde verbinding, is dat de website van de bank authentiek is; met andere woorden, het authenticeert de website van de bank. Zonder authenticatie zou u inlog- en wachtwoordinformatie naar nabootsingssites kunnen sturen, wat inderdaad zeer schadelijk kan zijn, aangezien die inloggegevens verder kunnen worden hergebruikt om enige vorm van ongeautoriseerde activiteit uit te voeren namens een nietsvermoedende bankrekeninghouder. Veilig internetten wordt meestal bereikt door middel van het TLS/SSL-protocol, dat naast codering authenticiteit en vertrouwelijkheid garandeert.

Authenticatie is ook belangrijk voor Internet of Things (IoT)-toepassingen: niet-vertrouwde endpoints kunnen hele infrastructuren in gevaar brengen. Laten we eens kijken naar een slimme meter die is aangesloten op een elektriciteitsdistributiesysteem. Een gemakkelijke manier voor aanvallers om het elektriciteitsnet te compromitteren, is door virussen of malware in slimme meters te laden. Geïnfecteerde meters kunnen vervolgens valse berichten naar de infrastructuur sturen die een stroomverbruik weergeven dat aanzienlijk afwijkt van het werkelijke stroomverbruik, waardoor het net uit balans kan raken. Als het net te veel rapporteert, zal het schijnbaar overtollige vermogen ergens anders naartoe worden geleid, maar als het net te weinig rapporteert, zal het een stroomstoot veroorzaken; in het ergste geval kan de aanval een totale black-out veroorzaken door de balans van het netwerk te verstoren. Om dit te voorkomen, is het noodzakelijk om te controleren of de hardware en de firmware van de meter echt zijn. Het proces van het verifiëren van de firmware wordt Secure Boot genoemd.

Implementeer een geldige authenticatiemethode

Nu we het belang ervan begrijpen, gaan we bespreken hoe authenticatie kan worden geïmplementeerd. De eenvoudigste authenticatiemethode is het gebruik van een wachtwoord. In ons voorbeeld van een slimme meter kan het apparaat een code naar het netbeheersysteem sturen. De server verifieert het wachtwoord en autoriseert vervolgens verdere transacties. Hoewel deze benadering gemakkelijk te begrijpen is, is het verreweg niet de beste. Een aanvaller kan eenvoudig communicatie monitoren, het wachtwoord vastleggen en hergebruiken om niet-legitieme apparaten te authenticeren. Daarom beschouwen we authenticatie op basis van wachtwoorden als zwak.

Een betere manier om authenticatie in de digitale wereld uit te voeren, is de challenge-response-methode. Laten we eens kijken naar twee soorten challenge-response-methoden: de ene op basis van symmetrische cryptografie en de andere op basis van asymmetrische cryptografie.

Symmetrische wachtwoordverificatie

Authenticatie op basis van symmetrische encryptie is gebaseerd op een gedeeld geheim. De host en het te authenticeren apparaat hebben dezelfde sleutelcode. De host stuurt een willekeurig nummer, de challenge, naar het apparaat. Het apparaat berekent een digitale handtekening als functie van de sleutel en uitdaging en stuurt deze terug naar de host. De host voert vervolgens dezelfde berekening uit en vergelijkt de resultaten. Als de twee berekeningen overeenkomen, is het apparaat geverifieerd (Afbeelding 1). Om ervoor te zorgen dat resultaten niet kunnen worden nagebootst, moeten functies met voldoende wiskundige eigenschappen worden gebruikt. Geheimen kunnen bijvoorbeeld niet worden opgehaald zonder de berekening van het resultaat te forceren. Veilige hash-functies zoals SHA-256 ondersteunen deze vereisten. Voor de challenge-response-methode bewijst het apparaat dat het het geheim kent zonder het geheim te onthullen. Zelfs als een aanvaller de communicatie onderschept, heeft de aanvaller nog steeds geen toegang tot het gedeelde geheim.


Afbeelding 1. Verificatie op basis van symmetrische codering is gebaseerd op sleutelnummers die worden gedeeld tussen host en apparaat.

Asymmetrische cryptografische authenticatie

Authenticatie op basis van asymmetrische encryptie berust op twee sleutels: een privésleutel en een openbare sleutel. De privésleutel is alleen bekend bij het apparaat dat moet worden geverifieerd, terwijl de openbare sleutel kan worden onthuld aan elke entiteit die bereid is het apparaat te authenticeren. Net als bij de eerder besproken methode, stuurt de host een uitdaging naar het apparaat. Het apparaat berekent een handtekening op basis van de uitdaging en de privésleutel en stuurt deze terug naar de host (Afbeelding 2). Maar hier gebruikt de host de openbare sleutel om de handtekening te verifiëren. Het is ook belangrijk dat de functie die wordt gebruikt om de handtekening te berekenen bepaalde wiskundige eigenschappen heeft. De meest gebruikte functies voor asymmetrische schema's zijn RSA en ECDSA. Ook hier bewijst het apparaat dat het een geheim kent, de private key, zonder deze prijs te geven.


Afbeelding 2. Asymmetrische sleutelauthenticatie is afhankelijk van openbare en privésleutels.

Waarom veilige IC's goed zijn voor authenticatie

Challenge-respons-authenticatie vereist altijd dat het object wordt geauthenticeerd om het geheim te bewaren. Bij symmetrische codering is dit een gedeeld geheim tussen de host en het apparaat. Voor asymmetrische codering is dit de privésleutel. Hoe dan ook, de beveiliging die wordt bewerkstelligd door challenge-response-authenticatie breekt wanneer geheimen worden gelekt. Dit is waar beveiligings-IC's kunnen helpen. Een essentiële eigenschap van een beveiliging IC is om sterke bescherming van sleutels en geheimen te bieden.

Maxim biedt drie families van op authenticatie gebaseerde oplossingen:

Authenticatie-IC's: dit zijn configureerbare apparaten met een vaste functie die de meest kosteneffectieve manier bieden om challenge-respons-authenticatie te implementeren, samen met een compacte set cryptografische bewerkingen.

Veilige microcontrollers: deze apparaten ondersteunen niet alleen challenge-response-authenticatie, maar bieden ook een volledige reeks cryptografische functies, waaronder codering.

Low Power Microcontrollers: hoewel deze producten niet specifiek gericht zijn op beveiliging, hebben ze alle bouwstenen die nodig zijn om sterke authenticatie mogelijk te maken.

Gecertificeerd IC

Van de authenticatie-IC's ondersteunen op SHA-256 gebaseerde producten authenticatie met behulp van een gedeeld geheim (Afbeelding 3), terwijl op ECDSA gebaseerde IC's private/publieke sleutelparen gebruiken (Afbeelding 4). Naast de encryptie-engine hebben deze producten ook een ingebouwd EEPROM-geheugen. Dit geheugen is configureerbaar en kan worden gebruikt om geverifieerde gebruikersgegevens op te slaan, zoals kalibratie-informatie voor sensoren.

Producten op basis van SHA-256 zijn de meest kosteneffectieve oplossing. Hoewel ze wederzijdse authenticatie mogelijk maken, vereist de distributie van de gedeelde sleutel enkele voorzorgsmaatregelen, zodat de sleutel niet wordt blootgesteld tijdens de fabricage en installatie van het apparaat. Dit geheim kan in de Maxim-fabriek worden geprogrammeerd om deze tekortkoming te omzeilen.


Afbeelding 3. SHA-256 beveiligde authenticatie is gebaseerd op een gedeeld geheim.

Maxim's DS28E15/DS28E22/DS28E25 IC's zijn gebaseerd op SHA-256 technologie en hebben verschillende interne geheugengroottes. Omdat aan de hostzijde en aan de apparaatzijde dezelfde sleutel wordt opgeslagen, wordt aanbevolen om aan de hostzijde een coprocessor zoals de DS2465 te gebruiken.

Producten op basis van asymmetrische codering (zoals DS28C36 en DS28E35) bieden een flexibelere oplossing omdat het niet nodig is om de sleutel te beschermen tegen openbaarmaking aan de hostzijde. Om echter de openbare-sleutelberekening te ontlasten en extra beveiligingsbewerkingen te bieden, kan een host-side coprocessor zoals de DS2476 (een bijbehorende IC voor de DS28C36) worden gebruikt om de ontwikkeling van systeemoplossingen te vereenvoudigen.


Afbeelding 4. Op ECDSA gebaseerde authenticatie is gebaseerd op private/publieke sleutelparen.

Veilige microcontroller die symmetrische en asymmetrische codering ondersteunt

Maxim biedt veilige microcontrollers, variërend van de MAX32590 (ARM9 werkend op 384 MHz) applicatie-grade processors die high-level besturingssystemen zoals Linux kunnen draaien, tot kleine vormfactor coprocessors zoals de MAX32555 of MAXQ1061.

Deze microcontrollers ondersteunen symmetrische en asymmetrische codering en cryptografische algoritmen voor digitale handtekeningen en authenticatie. Ze beschikken over hardwareversnellers voor SHA, RSA, ECDSA en AES, evenals een complete cryptografische bibliotheek, die een kant-en-klare API biedt die voldoet aan de standaarden. Ze hebben een ingebouwde beveiligde opstartfunctie, zodat de authenticiteit van de firmware altijd gegarandeerd is. Ze kunnen een breed scala aan authenticatieschema's aan vanwege hun uitgebreide set coderingsfuncties.

De MAXQ1061 is een coprocessor die niet alleen authenticatie ondersteunt, maar ook de meest kritieke stappen in het TLS/SSL-standaard IP-beveiligde communicatieprotocol afhandelt. Het verwerken van het TLS-protocol op de chip verhoogt het beveiligingsniveau en ontlast de hoofdprocessor van rekenintensieve taken. Dit is zeer waardevol voor ingebedde systemen met beperkte middelen.

microcontroller met laag vermogen

Low-power microcontrollers zoals de MAX32626 zijn gericht op draagbare apparaten en zijn dus geen "op veiligheid gerichte" IC's. Het product is echter ontworpen met het oog op toekomstige beveiligingsuitdagingen naarmate aanvallen vaker voorkomen. Daarom heeft de MAX32626 een hardware-vertrouwensbeschermingseenheid die authenticatie ondersteunt, evenals hardware-AES voor codering en ingebouwd veilig opstarten.