AES-256-salaus selitettynä: mitä se tarkoittaa tiedoillesi

AES-256-salaus selitettynä: mitä se tarkoittaa tiedoillesi

AES-256 selitettynä: kuinka algoritmi toimii, miksi 256-bittiset avaimet merkitsevät, mitä GCM-tila lisää ja mitä tarkistaa, kun sovellus väittää käyttävänsä AES-256-salausta.


AES-256 on Advanced Encryption Standard 256-bittisellä avaimella, jonka NIST standardisoi FIPS 197:nä vuonna 2001. Se on symmetrinen salausalgoritmi, jota Yhdysvaltain hallitus käyttää luokiteltuihin tietoihin, pankit rahoitustapahtumien suojaamiseen ja tietoturvasovellukset lepotilassa ja siirrettävänä olevan datan suojaamiseen. AES-256:lla on 2^256 mahdollista avainta -- luku, joka on suurempi kuin arvioitu atomien määrä havaittavissa olevassa universumissa. Mikään tunnettu hyökkäys ei pienennä tätä avainavaruutta laskennallisesti toteutettavaksi haauksi.

Tämä opas selittää, mitä AES-256 oikeasti tekee, miksi avainpituus merkitsee, mitä eri tilat tarkoittavat (ECB, CBC, GCM) ja mitä etsiä, kun sovellus väittää käyttävänsä AES-256-salausta.

Mitä AES oikeasti tekee

AES on symmetrinen lohkosalain. "Symmetrinen" tarkoittaa, että sama avain salaa ja purkaa salauksen. "Lohkosalain" tarkoittaa, että se käsittelee dataa 128-bitin (16 tavun) kokoisissa lohkoissa.

Algoritmi ottaa datasi (selkoteksti), yhdistää sen avaimeen ja tuottaa matemaattisten muunnosten kautta salatun tulosteen (salateksti). Nämä muunnokset -- korvaus, siirto, sekoitus ja avaimen lisäys -- toistuvat kiinteän määrän kierroksia. AES-256 käyttää 14 kierrosta.

Jokainen kierros käyttää neljää operaatiota:

  1. SubBytes: Jokainen tavu korvataan kiinteän korvauksen taulukon (S-box) avulla, lisäten epälineaarisuutta.
  2. ShiftRows: Jokaisen rivin tavuja siirretään eri määrillä, levittäen dataa asemien välillä.
  3. MixColumns: Sarakkeet sekoitetaan matriisikertolaskulla äärellisessä kentässä, levittäen muutoksia tavujen välillä.
  4. AddRoundKey: Kierrosavain (johdettu pääavaimesta) XOR-yhdistetään dataan.

14 kierroksen jälkeen selkoteksti on perusteellisesti sekoitettu. Näiden operaatioiden peruuttaminen oikealla avaimella palauttaa alkuperäiset tiedot. Ilman avainta salateksti on erottamaton satunnaisesta kohinasta.

Miksi 256 bittiä merkitsee

AES-256:n "256" viittaa avainpituuteen: 256 bittiä. Tämä määrittää, kuinka monta mahdollista avainta hyökkääjän on kokeiltava murtaakseen salauksen raakavoimalla.

AvainpituusMahdolliset avaimetRaakavoimamurron aika (biljoonainen arvauk./sek.)
56-bittinen (DES)7,2 x 10^16noin 20 tuntia
128-bittinen (AES-128)3,4 x 10^3810^13 vuotta
256-bittinen (AES-256)1,16 x 10^7710^51 vuotta

Universumin ikä on noin 1,38 x 10^10 vuotta. AES-256:n raakavoimamurto kestäisi noin 10^41 kertaa kauemmin kuin universumin ikä, jopa biljoonalla arvauksella sekunnissa.

AES-tilat: miksi ne merkitsevät

AES itsessään salaa vain yhden 128-bitin lohkon kerrallaan. Todelliselle datalle (kuville, asiakirjoille, videoille) tarvitaan "toimintatila", joka käsittelee yli 16 tavun kokoiset tiedot. Tila määrittää, kuinka lohkot ketjutetaan yhteen, ja sillä on merkittäviä turvallisuusvaikutuksia.

ECB (Electronic Codebook) -- älä käytä

Jokainen lohko salataan itsenäisesti samalla avaimella. Identtiset selkotekstilohkot tuottavat identtisiä salatekstilohkoja. Tämä vuotaa datassa olevia kuvioita. ECB sisältyy standardiin, mutta sitä ei pitäisi koskaan käyttää datalle, jolla on rakenne tai toistuvia kuvioita.

CBC (Cipher Block Chaining) -- vanha standardi

Jokainen lohko XOR-yhdistetään edelliseen salatekstilohkoon ennen salausta. Tämä poistaa ECB:n kuviovuodot. CBC vaatii satunnaisen alustovektorin (IV) eikä tarjoa sisäänrakennettua todentamista.

GCM (Galois/Counter Mode) -- nykyinen standardi

GCM yhdistää laskuritilasalauksen Galois-kenttätodennukseen. Se tarjoaa todennetun salauksen: salaa datan JA tuottaa todennustunnisteen, joka havaitsee kaikki muutokset salatekstiin. Jos yksikin bitti muuttuu, salauksen purku epäonnistuu virheellisen datan sijaan.

NIST standardisoi GCM:n SP 800-38D:ssä (2007). Se on suositeltu tila uusille toteutuksille.

AES-256-GCM on AES 256-bittisellä avaimella Galois/Counter Mode -tilassa. Tätä tietoturvakriittiset sovellukset käyttävät ja tätä Vaultaire käyttää kuvien ja tiedostojen sisällön salaamiseen.

Mitä AES-256 tarkoittaa kuvien tallennuksessa

Kun kuvaholvisovellus väittää käyttävänsä "AES-256-salausta", kolmen asian pitäisi olla totta:

  1. Tiedostojen sisältö on salattu AES-256:lla. Raaka kuvadata (pikselit, metatiedot, esikatselukuva) muunnetaan salatekstiksi 256-bittisellä avaimella.

  2. Jokainen tiedosto käyttää yksilöllistä alustovektoria (IV). Jos kaksi identtistä kuvaa salataan samalla avaimella, salatekstin pitäisi olla erilainen. Tämä vaatii tiedostokohtaisen IV:n.

  3. Tila tarjoaa todennuksen (GCM tai vastaava). Ilman todennusta hyökkääjä voi muokata salatekstiä ilman havaitsemista.

Mitä markkinointisivun "AES-256" ei kerro

AES-256 on välttämätön mutta ei riittävä. Useat kriittiset tekijät määrittävät, suojaako salaus oikeasti datasi.

Avainten johtaminen merkitsee. Kuinka 256-bittinen avain luodaan? Jos se johdetaan 4-numeroisesta PIN-koodista heikolla KDF:llä, tehokas turvallisuus on 4 numeroa (10 000 yhdistelmää), ei 256 bittiä. Vahva toteutus käyttää PBKDF2:ta suurella iteraatiomäärällä tai Argon2:ta sopivilla muisti/aika-parametreilla. Vaultaire käyttää PBKDF2:ta HMAC-SHA512:lla, johtaen avaimen kuviosta 5x5-ruudukolla miljardeilla mahdollisilla syötteillä.

Avainten säilytys merkitsee. Missä avain asuu? Jos avain on tallennettu selkotekstinä sovelluksen hiekkalaatikkoon, mikä tahansa haittaohjelma, jolla on tiedostopääsy, voi lukea sen. Oikeaoppinen avainten säilytys käyttää laitteistopohjaisia mekanismeja kuten Applen Secure Enclavea.

Avaimen johdolla on väliä. Miten 256-bittinen avain luodaan? Jos se on johdettu 4-numeroisesta PIN-koodista käyttämällä heikkoa KDF-koodia, tehokas suojaus on 4 numeroa (10 000 yhdistelmää), ei 256 bittiä. Vahva toteutus käyttää PBKDF2 korkea iteraatiomäärä tai Argon2 sopivalla muisti- ja aikaparametrilla. Vaultaire käyttää PBKDF2 kanssa HMAC-SHA512 ja 600 000 iteraatiota paikallisen holvin avaimen johtamiseksi valitusta 5x5-kuviosta ja laitteen suolasta. PBKDF2 tekee jokaisesta arvauksesta kalliimpaa; se ei nosta kuvion entropiaa 256 bittiin.

Avainten säilytysasiat. Missä avain asuu? Jos avain on tallennettu pelkkänä tekstinä sovelluksen hiekkalaatikkoon, tiedostoihin pääsevät haittaohjelmat voivat lukea sen. Applen Secure Enclave tukee tiettyjä ei-vietäviä avaintoimintoja, ei mielivaltaisia sovelluksen toimittamia AES-avaimia. Symmetrinen avaimen mallit voivat sen sijaan luottaa Keychain ja Tietosuoja, joten asiakirjoissa tulisi nimetä tarkka API ja suojausluokka sen sijaan, että sanottaisiin vain "laitteiston tukema".

AES-256 käytännössä: kuka käyttää sitä

OrganisaatioKäyttötapausTila
Yhdysvaltain hallitus (NSA)Luokiteltu tietoGCM
Apple (iCloud ADP)iCloudin päästä päähän -salausGCM
SignalViestien salausCBC (HMAC-todennuksella)
PankitRahoitustapahtumien salausGCM
1PasswordSalasanaholviGCM
VaultaireKuva- ja tiedostoholviGCM

Usein kysytyt kysymykset

Voiko AES-256:n murtaa?

Mikään tunnettu hyökkäys ei murra AES-256:ta pienentämällä koko avainavaruutta. Tunnetuin hyökkäys (Bogdanovin, Khovratovichin ja Rechbergerin biclique-hyökkäys, 2011) pienentää AES-256:n 2^256 operaatiosta 2^254,4:ään -- teoreettinen parannus, joka on laskennallisesti merkityksetön käytännössä. AES-256 on edelleen murtamaton.

Onko AES-256 kvanttikestävä?

Pääosin kyllä. Groverin kvanttialgoritmit puolittavat tehokkaan avainpituuden: AES-256 vastaa 128-bittistä turvallisuutta kvanttihyökkäyksiä vastaan. NIST suosittelee AES-256:ta pitkäaikaiseen turvallisuuteen kvanttilaskennan edistymistä vastaan.

Hidastaako AES-256-salaus puhelintani?

Ei havaittavissa normaalikäytössä. Nykyaikaiset Applen prosessorit tarjoavat laitteistokiihdytyksen AES:lle järjestelmän salauskirjastojen kautta. Tämä ei tarkoita, että sovelluksen AES-toiminto suoritetaan sisällä Secure Enclave. Aika riippuu edelleen tiedoston koosta, laitteesta, tallennustilasta ja toteutuksesta, joten tietoturvavaatimuksen tulee perustua mittauksiin yleisen millisekunnin lukujen sijaan.

Kuinka tiedän, käyttääkö sovellus oikeasti AES-256:ta?

Tarkista sovelluksen tietoturvadokumentaatio, ei vain sen markkinointisivu. Etsi tietty algoritmi ja tila, avainhierarkia, johtamisparametrit, tarkka Keychain tai Secure Enclave käyttö, nonce-käsittely, palautuspolku ja ovatko metatiedot myös salattuja. Avoimen lähdekoodin ja riippumattomien tarkastusten avulla nämä väitteet on helpompi tarkistaa.

Yhteenveto

AES-256 on symmetrisen salauksen kultainen standardi: NIST:n standardisoima, hallitusten ja rahoituslaitosten käyttämä ja kaikkien tunnettujen hyökkäysten, mukaan lukien kvanttilaskenta, kestävä. Kun arvioit sovelluksia, jotka väittävät käyttävänsä AES-256-salausta, katso algoritmin taakse: tarkista tila (GCM), avainten johtaminen (PBKDF2/Argon2 suurella iteraatiomäärällä), avainten säilytys (laitteistopohjainen) ja mitä dataa oikeasti salataan (sisältö ja metatiedot).

Vaultaire käyttää AES-256-GCM tiedostosisällölle, otsikoille, metatiedoille, indekseille ja pikkukuville. PBKDF2 kanssa HMAC-SHA512 johtaa paikallisen holvin avaimen kuviosta ja laitteen laajuisen Keychain suola; tämä avain avaa satunnaisen pääavaimen, jota käytetään tiedostojen salaukseen. Symmetriset toiminnot suoritetaan sovellusprosessissa CryptoKit, kun iOS Keychain ja Data Protection suojaa palautustilaa, kun laite on lukittu. Täydellinen hierarkia on dokumentoitu turvamalli.