Cryptology Academy · Oppitunti

AEAD:n valinta tuotantojärjestelmiin

Sovella päätöksentekokehystä oikean AEAD-menetelmän valitsemiseen uhkamallin ja suorituskykyvaatimusten perusteella.

Oppitunti 4/413 vaihetta

AEAD:n valinta tuotantojärjestelmiin on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

AES-GCM: oletusvalinta

AES-GCM on oikea oletusvalinta useimpiin tuotantojärjestelmiin. AES-NI kiihdyttää sitä lähes kaikissa nykyaikaisissa x86- ja ARM64-suorittimissa, sitä tuetaan laajasti TLS-pinoissa ja kryptografisissa kirjastoissa, ja se hyötyy laajasta kryptanalyysistä sekä todellisista käyttökokemuksista.

AES-GCM:n nonce-rajat

AES-GCM käyttää 96-bittistä noncea. Satunnaisesti luotuja nonceja käytettäessä syntymäpäiväraja saavutetaan samalla avaimella noin 2^32 viestin jälkeen, jolloin nonce-törmäyksen todennäköisyys ei ole enää vähäinen. Suuren volyymin järjestelmissä noncejen hallinta laskurin avulla tai avaimen vaihtaminen 2^32 viestin jälkeen on välttämätöntä.

ChaCha20-Poly1305: kun AES-NI:tä ei ole

ChaCha20-Poly1305 on oikea valinta, kun AES-NI:tä ei ole saatavilla tai noncejen luominen saattaa olla epäluotettavaa. Se on nopea ohjelmistototeutuksena, vakioaikainen rakenteensa ansiosta (ja siten vastustuskykyinen ajoitussivukanaville), ja se on TLS 1.3:n pakollinen salauspaketti ympäristöissä, joissa ei ole AES-laitteistotukea.

AES-GCM-SIV noncejen suojaamiseen

Kun nonceja saatetaan käyttää uudelleen tai ne on luotava deterministisesti, kuten tilattomissa palveluissa tai avainten käärimisessä, AES-GCM-SIV (RFC 8452) on oikea valinta. Se tarjoaa suojan nonce-väärinkäyttöä vastaan kohtuullisin suorituskykykustannuksin verrattuna tavalliseen AES-GCM:ään.

AEGIS maksimaaliseen läpimenoon

AEGIS-128L on oikea valinta, kun salauksen suurin mahdollinen läpimeno on tarpeen ja AES-NI:n saatavuus taataan kaikissa käyttöympäristöissä. Suuren kaistanleveyden verkkolaitteet, VPN-keskittimet ja tallennustilan salausjärjestelmät ovat erityisen sopivia käyttökohteita, joissa AEGIS tarjoaa merkittävän suorituskykyedun AES-GCM:ään verrattuna.

Avaimen koon valinta: 128 vai 256 bittiä

AES-128 tarjoaa 128-bittisen turvallisuuden, jota pidetään riittävänä kaikkia nykyisiä ja ennakoitavissa olevia klassisen laskennan uhkia vastaan. AES-256 tarjoaa lisämarginaalia tulevaa kehitystä vastaan, ja sitä edellytetään joissakin vaatimustenmukaisuuskehyksissä, kuten NSA Suite B:n mukaisessa TOP SECRET -luokituksessa. Useimmissa sovelluksissa AES-128 riittää ja on hieman nopeampi.

Noncen koossa huomioitavaa

AES-GCM käyttää 96-bittisiä nonceja, ja myös AES-GCM-SIV käyttää 96-bittisiä nonceja. XSalsa20 (jota käytetään libsodiumin secretboxissa) käyttää 192-bittisiä nonceja, joten satunnaisten noncejen luominen on turvallista huomattavasti useammille viesteille samalla avaimella. Suuremmat noncet pienentävät tahattoman uudelleenkäytön riskiä suuren volyymin järjestelmissä.

Suositellut kirjastot

Käyttäkää vakiintuneita AEAD-kirjastoja sen sijaan, että toteuttaisitte primitiivit suoraan. libsodium tarjoaa yksinkertaisen AEAD-rajapinnan (crypto_aead_aes256gcm_encrypt, crypto_aead_chacha20poly1305_ietf_encrypt). Google Tink paketoi AEAD-primitiivit ja tarjoaa avainten kierrätyksen sekä versioinnin. Kielikohtaiset TLS-kirjastot käsittelevät AEAD:n automaattisesti siirtotien suojausta varten.

AES-CBC:stä siirtyminen

AES-CBC erillisellä HMAC-SHA256:lla (EtM-järjestyksessä) on hyväksyttävä mutta vanhentunut ratkaisu. Siirtyminen AES-GCM:ään yksinkertaistaa toteutusta korvaamalla kaksi primitiiviä yhdellä ja poistaa virheellisen yhdistämisen riskin. CBC-HMAC:lla levossa olevat tiedot tulisi salata uudelleen AES-GCM:llä suunnitellun avaintenkierron yhteydessä.

AEAD-toteutusten testaaminen

AEAD-toteutukset tulee testata NIST:n (AES-GCM) ja RFC 8439:n (ChaCha20-Poly1305) virallisia testivektoreita vasten. Testatkaa aina, että autentikointitagin tarkistuksen epäonnistuminen saa salauksen purkamisen palauttamaan virheen sen sijaan, että se palauttaisi osittaisen selvätekstin. Virheellinen virheenkäsittely on yleinen toteutuspuute.

Päätöksentekokaavio

Valitkaa AES-GCM, kun AES-NI on käytettävissä ja noncet ovat yksikäsitteisiä. Valitkaa ChaCha20-Poly1305, kun AES-NI:tä ei ole tai nonceihin ei voida luottaa yhtä hyvin. Valitkaa AES-GCM-SIV, kun noncejen uudelleenkäyttö on huolenaihe. Valitkaa AEGIS, kun suurin mahdollinen läpimeno ja taattu AES-NI-tuki ovat etusijalla. Älkää koskaan valitko uusia järjestelmiä varten AEAD:n ulkopuolisia toimintatiloja.

AEAD-valinnan tarkistus

Tilaton mikropalvelu on otettu käyttöön useana replikkana. Sen on salattava dataa, mutta se ei pysty koordinoimaan yhteistä nonce-laskuria. Mikä AEAD-tila on sopivin?

Oppitunnin yhteenveto: oikean AEAD:n valinta

AES-GCM on oletusvalinta. ChaCha20-Poly1305 sopii ympäristöihin, joissa ei ole AES-NI:tä. AES-GCM-SIV käsittelee nonceiltaan epäluotettavat ympäristöt. AEGIS maksimoi läpimenon, kun AES-NI:n saatavuus taataan. Käyttäkää primitiivien manuaalisen yhdistämisen sijaan kirjastoja, kuten libsodiumia tai Tinkiä. Testatkaa aina virallisia testivektoreita vasten ja varmistakaa, että autentikoinnin epäonnistumiset käsitellään oikein.

Aloita maksutta

Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
67
Oppitunnit
261

Usein kysytyt kysymykset

Onko oppitunti ”AEAD:n valinta tuotantojärjestelmiin” ilmainen?

Kyllä – oppitunnin ”AEAD:n valinta tuotantojärjestelmiin” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”AEAD:n valinta tuotantojärjestelmiin”?

Sovella päätöksentekokehystä oikean AEAD-menetelmän valitsemiseen uhkamallin ja suorituskykyvaatimusten perusteella. Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”AEAD:n valinta tuotantojärjestelmiin”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?

Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Miksi Encrypt-Then-MAC on parempi kuin MAC-Then-Encrypt
  2. SIV-tila: nonce-väärinkäyttöä kestävä AEAD
  3. AEGIS: nopea todennettu salaus
  4. AEAD:n valinta tuotantojärjestelmiin
← Takaisin: Cryptology Academy