AES-256-versleuteling uitgelegd in gewone woorden
Bijna elke app zegt AES-256. De vraag die ertoe doet, is waar de sleutel woont.
In het kort
AES is de versleutelingsstandaard die het NIST heeft gepubliceerd, en AES-256 is de versie met sleutels van 256 bits: veel te veel mogelijkheden om ze allemaal te proberen. GCM is een manier om AES te gebruiken die ook manipulatie detecteert. Omdat het algoritme zo sterk is, hangt de echte beveiliging van een app af van het sleutelbeheer: wie de sleutel heeft, waar hij wordt bewaard en wat hem ontgrendelt.
Om te onthouden
- AES-256: een NIST-standaard, blokken van 128 bits, sleutels van 256 bits.
- GCM voegt een integriteitscontrole toe: gewijzigde gegevens laten zich niet ontsleutelen.
- Een sterk algoritme met een slecht bewaarde sleutel beschermt niets.
Wat AES is
AES, de Advanced Encryption Standard, is een blokcijfer dat in 2000 werd gekozen door het Amerikaanse National Institute of Standards and Technology (NIST) en is vastgelegd in FIPS 197. Het bewerkt gegevens in blokken van 128 bits met een geheime sleutel. De standaard kent drie versies, AES-128, AES-192 en AES-256, en het getal is de lengte van de sleutel in bits.
Het zit overal, ook in je iPhone: als je een toegangscode instelt, wordt gegevensbescherming ingeschakeld, die de gegevens op je iPhone versleutelt met 256-bits AES.
Waarom 256 bits ruim voldoende is
Een sleutel van 256 bits kan 2²⁵⁶ verschillende waarden hebben. Ze allemaal proberen is geen kwestie van snellere computers: het ligt ver voorbij alles wat in de praktijk mogelijk is. Daarom gaan echte aanvallen op goed gebouwde systemen om het algoritme heen in plaats van erdoorheen, en richten ze zich op de sleutel, het wachtwoord dat hem ontgrendelt, of de gegevens terwijl ze ontsleuteld zijn.
Wat GCM toevoegt
Een cijfer alleen verbergt gegevens, maar kan je niet vertellen of iemand ze heeft gewijzigd. GCM, Galois/Counter Mode, door het NIST vastgelegd in SP 800-38D, is geauthenticeerde versleuteling: naast de versleutelde gegevens maakt het een tag, en als de gegevens of de tag zijn gewijzigd, mislukt het ontsleutelen in plaats van beschadigde of gemanipuleerde inhoud terug te geven.
GCM kent één strikte regel: de waarde waarmee elke versleuteling begint, een nonce of IV, mag met dezelfde sleutel nooit worden herhaald. Zorgvuldige implementaties maken elke keer een nieuwe.
Sleutelbeheer is de echte vraag
'AES-256' vertelt je dat het slot sterk is. Over waar de sleutel wordt bewaard, zegt het niets. Deze vragen zeggen veel meer over een app:
- Wie heeft de sleutel? Kan het bedrijf je toegang per e-mail resetten, dan kan het bedrijf, of iedereen die er inbreekt, bij je gegevens.
- Waar wordt hij bewaard? Een sleutel die naast de gegevens staat, of die is afgeleid van een korte pincode, wordt het zwakke punt.
- Wat ontgrendelt hem? Een sleutel die wordt beschermd door de beveiligingshardware van je apparaat en een geheim dat alleen jij kent, is veel moeilijker aan te vallen.
- En als je het geheim vergeet? Een eerlijk antwoord draait om een herstelsleutel die jij bewaart, niet om een supportticket.
Elk bestand
een eigen AES-256-GCM-sleutel
Kluissleutel
omhult elke bestandssleutel
Secure Enclave
geopend met je patroon
Hoe Latent het toepast
Latent versleutelt elk bestand met een eigen AES-256-GCM-sleutel. Die sleutels worden omhuld door een kluissleutel, die zelf wordt beschermd door een sleutel in de Secure Enclave van je iPhone en met je patroon of wachtwoord wordt ontgrendeld. Zodra de kluis vergrendelt, worden de sleutels uit het geheugen gewist. Niemand anders heeft een kopie: de herstelzin van negen woorden is de enige reserve, en alleen jij hebt hem.