AES-256 šifriranje objašnjeno: što znači za vaše podatke

AES-256 šifriranje objašnjeno: što znači za vaše podatke

AES-256 je standard šifriranja koji američka vlada koristi za tajne podatke. Evo što to zaista znači za vaše datoteke.


AES-256 je simetrični algoritam šifriranja koji Nacionalni institut za standarde i tehnologiju (NIST) standardizirao 2001. Predstavlja zlatni standard za šifriranje podataka u mirovanju i koristi se u svemu, od vladinih komunikacija do aplikacija za pohranu fotografija. Kada aplikacija tvrdi da koristi "šifriranje vojnog razreda", obično misli na AES-256.

Ovaj vodič objašnjava kako AES-256 funkcionira, što razlikuje različite načine rada (GCM nasuprot CBC), zašto duljina ključa nije jedino što je važno i što provjeriti kada aplikacija tvrdi da koristi AES-256 šifriranje.

Što je AES-256?

AES označava Advanced Encryption Standard. 256 se odnosi na duljinu ključa u bitovima. Ključ od 256 bita ima 2^256 mogućih vrijednosti — to je broj s 77 znamenki. Gruba sila cijelog prostora ključeva nije moguća ni s kombiniranom snagom svih računala na Zemlji, čak ni ako su sva radila od nastanka svemira.

AES je blokovna šifra: šifrira podatke u blokovima fiksne veličine od 128 bita (16 bajtova). Veći podaci se dijele na blokove i šifriraju serijski ili paralelno, ovisno o načinu rada.

Sam algoritam primjenjuje 14 rundi matematičkih transformacija na svaki blok: zamjenu bajtova, pomak redaka, miješanje stupaca i dodavanje ključa. Svaka runda koristi dio ključa u obliku koji je izveden iz izvornog 256-bitnog ključa. Bez ključa, obrnuti postupak ovih transformacija računalno nije izvediv.

Zašto je važna duljina ključa

Duljina ključa određuje prostor pretrage za napad grubom silom. Usporedba:

Duljina ključa Mogući ključevi Procijenjeno vrijeme grube sile
128 bita 3,4 × 10^38 Trilijuni godina na suvremenom hardveru
192 bita 6,3 × 10^57 Astronomski dulje
256 bita 1,2 × 10^77 Višestruko dulje od starosti svemira

Praktični napadi ne ciljaju samu šifru. Ciljaju implementaciju: slabo izvođenje ključa iz lozinke, pogrešnu upotrebu inicializacijskih vektora, nesigurno pohranjivanje ključeva ili napade bočnim kanalom. Ovo je razlog zašto "koristimo AES-256" nije dovoljno; cijela implementacija mora biti ispravna.

Načini rada: GCM nasuprot CBC i drugima

AES sama po sebi šifrira jedan 128-bitni blok. Za šifriranje stvarnih datoteka potreban je način rada koji definira kako se šifriraju višestruki blokovi. Najvažniji načini rada su:

AES-CBC (Cipher Block Chaining)

CBC ulančava blokove: svaki blok čistog teksta XOR-ira se s prethodnim šifriranim blokom prije šifriranja. Ovo osigurava da identični blokovi čistog teksta proizvode različit šifrirani tekst. Međutim, CBC ne pruža provjeru autentičnosti: napadač može mijenjati šifrirani tekst i dešifriranje neće primijetiti manipulaciju. Datoteke se mogu oštetiti bez otkrivanja. CBC je zastarjeli izbor za nove implementacije.

AES-GCM (Galois/Counter Mode)

GCM kombinira šifriranje s proverom autentičnosti. Šifrira podatke (povjerljivost) i generira autentifikacijski oznaku (integritet). Ako je bilo koji bit šifriranih podataka promijenjen, dešifriranje ne uspijeva umjesto stvaranja oštećenih podataka. Ovo sprječava napade manipulacijom šifriranog teksta. GCM je specifikacija NIST-a SP 800-38D i preporučeni algoritam za šifriranje s autentifikacijom u aplikacijama visoke sigurnosti.

Vaultaire koristi AES-256-GCM za sve operacije šifriranja datoteka. Svaka datoteka dobiva jedinstveni inicializacijski vektor koji osigurava da identične datoteke proizvode različit šifrirani tekst.

Inicializacijski vektori (IV-ovi) i zašto su važni

IV je nasumični broj koji se koristi kao dodatni ulaz za svaku operaciju šifriranja. Bez jedinstvenosti IV-a, isti ključ + isti čisti tekst = isti šifrirani tekst, što curenje informacija. Kritično pitanje implementacije: da li svaka datoteka dobiva jedinstven IV? Ponovna upotreba IV-ova je ozbiljna sigurnosna ranjivost koja je kompromitirala stvarne implementacije.

Izvođenje ključa: pretvaranje lozinki u ključeve šifriranja

AES-256 zahtijeva 256-bitni ključ. Lozinke ili uzorci nisu 256-bitni ključevi — oni su kratki stringovi s neravnomjernom raspodjelom entropije. Funkcija za izvođenje ključa (KDF) premošćuje ovaj jaz.

Uobičajeni KDF-ovi uključuju:

  • PBKDF2 (Password-Based Key Derivation Function 2): naveden u RFC 8018. Primjenjuje hash funkciju (obično HMAC-SHA512) iterativno s jedinstvenom kriptografskom soli. Visok broj iteracija (npr. 600.000) čini svaki pokus pogađanja skupim za računanje.
  • Argon2: pobjednički algoritam natjecanja za hashing lozinki iz 2015. Otporan na ASIC i GPU napade jer zahtijeva mnogo memorije.
  • scrypt: sličan Argon2-u; dobra otpornost na prilagođeni napadački hardver.

Vaultaire koristi PBKDF2 s HMAC-SHA512 i 600.000 iteracija, s jedinstvenom kriptografskom soli po trezoru. Pohrana soli znači da iste lozinke u različitim trezorima ne proizvode iste ključeve. Visok broj iteracija znači da testiranje milijarde uzoraka zahtijeva godine neprekidnog računanja po trezoru.

Što provjeriti kada aplikacija tvrdi da koristi AES-256

Tvrdnja "koristimo AES-256 šifriranje" ne govori ništa o:

  • Načinu rada (GCM nasuprot CBC nasuprot ECB — ECB je potpuno nesiguran za slike)
  • Jedinstvenosti IV-ova po datoteci
  • Metodi izvođenja ključa
  • Pohrani ključeva (na uređaju nasuprot poslužiteljima tvrtke)
  • Šifriranju metapodataka (nazivi datoteka, datumi)

Šest stvari koje treba provjeriti:

  1. Naveden je specifičan algoritam i način rada. "AES-256-GCM" je tehnička specifikacija. "Šifriranje vojnog razreda" je marketinški jezik.
  2. Odakle dolazi ključ? Je li izveden iz vaših vjerodajnica lokalno, ili ga generira i pohranjuje poslužitelj tvrtke?
  3. Metoda izvođenja ključa. PBKDF2, Argon2 ili scrypt s visokim brojem iteracija. Ako aplikacija ne navodi KDF, lozinka se vjerojatno izravno koristi kao ključ ili prolazi kroz jednu iteraciju hasha.
  4. Šifriranje metapodataka. Šifriraju li se nazivi datoteka, datumi i duljine? Nešifrirani metapodaci otkrivaju što je pohranjeno čak i ako je sadržaj šifriran.
  5. Jedinstveni IV-ovi. Svaka datoteka dobiva jedinstven IV pri svakoj operaciji šifriranja. Ponovna upotreba IV-ova kompromitira sigurnost.
  6. Provjera autentičnosti. Koristite li GCM ili drugu autentificirani šifru? Šifriranje bez provjere autentičnosti dopušta nedetektirane manipulacije.

AES-256 u Vaultaireu

Vaultaire implementira AES-256-GCM za šifriranje datoteka i ChaCha20 za šifriranje metapodataka. Ključevi se izvode lokalno iz uzoraka putem PBKDF2 s HMAC-SHA512 i 600.000 iteracija. Uzorak se nikad ne pohranjuje. Svaka datoteka dobiva nasumično generirani IV. Metapodaci (nazivi datoteka, datumi, dimenzije minijatura) šifrirani su odvojeno, šifrom različitom od šifriranja datoteka, čime se eliminiraju napadi bočnim kanalom kroz cachiranje vremena.

Pročitajte cijelu arhitekturu sigurnosti i objašnjenje šifriranja uzorkom.

Često postavljana pitanja

Je li AES-256 zaista neslomljiv?

AES-256 je neprobojan prema svim poznatim napadima kada se ispravno implementira. Napad grubom silom na 256-bitni ključ zahtijevao bi više energije nego što Sunce može proizvesti za svog ostatka života. Praktični napadi ciljaju implementaciju, a ne samu šifru — slabo izvođenje ključa, ponovna upotreba IV-a, nesigurna pohrana ključeva. Ovo je razlog zašto detalji implementacije jednako vrijede kao i odabir algoritma.

Što je razlika između AES-128 i AES-256?

AES-128 koristi 128-bitne ključeve (3,4 × 10^38 mogućih vrijednosti). AES-256 koristi 256-bitne ključeve (1,2 × 10^77 mogućih vrijednosti). Prostor ključeva AES-256 je kvadrat prostora ključeva AES-128. Oba su sigurna za praktičnu upotrebu; AES-256 pruža veći faktor sigurnosti za scenarije u kojima je dugotrajna zaštita podataka kritična, ili gdje su dostupni kvantni napadi.

Što znači "vojni razred" ili "bankovni razred" šifriranja?

Ovi izrazi nisu tehnički standardi. "Vojni razred" obično znači AES-256, koji američka vojska koristi za tajne podatke prema CNSS politici 15. "Bankovni razred" obično znači TLS 1.2 ili 1.3 koji banke koriste za mrežni promet. Oba su marketinški opisi koji ne govore ništa o načinu rada, metodi izvođenja ključa ili pohrani ključeva. Tražite specifičan algoritam i način rada: AES-256-GCM.

Može li kvantno računalo probiti AES-256?

Groverov algoritam teoretski smanjuje efektivnu sigurnost AES-256 na 128 bita na kvantnom računalu. 128-bitna sigurnost i dalje je neprobojna prema bilo kakvom poznatom napadu. AES-256 ostaje siguran u post-kvantnom scenariju. NIST-ovi post-kvantni standardi (objavljeni 2024.) ciljaju asimetrično šifriranje (RSA, ECC), ne simetrično šifriranje poput AES-a.

Zaključak

AES-256 je neprobojna šifra kada se ispravno implementira. Ali sama šifra nije dovoljna: GCM način rada dodaje provjeru autentičnosti, jedinstveni IV-ovi po datoteci sprječavaju curenje uzoraka, snažno izvođenje ključa pretvara zapamtljive uzorke u 256-bitne ključeve, a pohrana ključeva samo na uređaju osigurava da tvrtka ne može pristupiti vašim datotekama. Kada procjenjujete aplikaciju koja tvrdi da koristi AES-256, pitajte za sve ove detalje, a ne samo za ime algoritma.