Az AES-256 titkosítás magyarázata: mit jelent az adataidra nézve
Az AES-256 magyarázata: hogyan működik a titkosító, miért számít a 256 bites kulcs, mit ad hozzá a GCM mód, és mit ellenőrizz, ha egy app AES-256 titkosítást ígér.
Mi az az AES-256?
Az AES-256 szimmetrikus blokktitkosító: az Advanced Encryption Standard 256 bites kulccsal futtatva. Ugyanaz a kulcs titkosít és fejt vissza. Az adatokat 128 bites blokkokban, 14 körben dolgozza fel, és a NIST 2001-ben FIPS 197 néven szabványosította.
A név három tényt foglal magában. Az AES az algoritmust nevezi meg, amelyet a NIST 2001-ben a Rijndael pályázatból választott ki. A 256 a kulcs bitben mért hossza, amely meghatározza, hány kulcsot kell kipróbálnia egy nyers erős támadónak. Egy mód, például a GCM vagy a CBC, amelyet általában a név után írnak (AES-256-GCM), dönti el, hogyan kapcsolódnak egymáshoz a blokkok, és ellenőrzi-e valami a titkosított szöveg sértetlenségét. Az AES-256 önmagában a titkosítót és a kulcsméretet adja meg. Nem mondja meg a módot, és azt sem, kinél van a kulcs.
Az AES-256 az Advanced Encryption Standard 256 bites kulccsal, amelyet a NIST 2001-ben FIPS 197 néven szabványosított. Ezt a szimmetrikus titkosítási algoritmust használja az Egyesült Államok kormánya minősített adatokhoz, a bankok pénzügyi tranzakciókhoz, a biztonságra összpontosító alkalmazások pedig a tárolt és a továbbított adatok védelmére. Az AES-256-nak 2^256 lehetséges kulcsa van, ami nagyobb szám, mint a megfigyelhető univerzum atomjainak becsült száma. Nincs ismert támadás, amely ezt a kulcsteret számítással bejárható méretűre szűkítené.
Ez az útmutató elmagyarázza, mit csinál valójában az AES-256, miért számít a kulcsméret, mit jelentenek a különböző módok (ECB, CBC, GCM), és mit keress, ha egy app azt állítja, hogy AES-256 titkosítást használ.
Mit csinál valójában az AES
Az AES szimmetrikus blokktitkosító. A „szimmetrikus” azt jelenti, hogy ugyanaz a kulcs titkosít és fejt vissza. A „blokktitkosító” azt jelenti, hogy az adatokat rögzített, 128 bites (16 bájtos) blokkokban dolgozza fel.
Az algoritmus fogja az adataidat (nyílt szöveg), kombinálja őket egy kulccsal, és matematikai átalakítások sorozatával összekevert kimenetet (titkosított szöveget) állít elő. Ezek az átalakítások (helyettesítés, eltolás, keverés és kulcshozzáadás) rögzített számú körön át ismétlődnek. Az AES-256 14 kört használ.
Minden kör négy műveletet végez:
- SubBytes: minden bájtot egy rögzített helyettesítő tábla (S-box) alapján cserél, és ezzel nemlinearitást visz be.
- ShiftRows: az egyes sorok bájtjait különböző mértékben tolja el, így szétteríti az adatokat a pozíciók között.
- MixColumns: az oszlopokat véges test feletti mátrixszorzással keveri, így a változások szétterjednek a bájtok között.
- AddRoundKey: a körkulcsot (amely a fő kulcsból származik) XOR-művelettel kombinálja az adatokkal.
14 kör után a nyílt szöveg alaposan össze van keverve. A műveletek visszafordítása a helyes kulccsal visszaadja az eredeti adatokat. Kulcs nélkül a titkosított szöveg megkülönböztethetetlen a véletlen zajtól.
Miért számít a 256 bit
Az AES-256-ban a „256” a kulcs hosszára utal: 256 bit. Ez határozza meg, hány lehetséges kulcsot kell kipróbálnia egy támadónak, hogy nyers erővel feltörje a titkosítást.
| Kulcsméret | Lehetséges kulcsok | Nyers erős feltörés ideje (másodpercenként 1 billió próbálkozás) |
|---|---|---|
| 56 bites (DES) | 7.2 x 10^16 | ~20 óra |
| 128 bites (AES-128) | 3.4 x 10^38 | 10^13 év (10 billió év) |
| 256 bites (AES-256) | 1.16 x 10^77 | 10^51 év |
Összehasonlításként: az univerzum körülbelül 1,38 x 10^10 éves. Az AES-256 nyers erős feltörése nagyjából 10^41-szer tovább tartana, mint az univerzum kora, még másodpercenként egybillió próbálkozással is.
Az AES-128 nyers erős feltörése már most sem kivitelezhető számítással. Az AES-256 további tartalékot ad a számítástechnika jövőbeli fejlődésével, köztük a kvantumszámítással szemben. A Grover-algoritmus (egy kvantumszámítógépes támadás) gyakorlatilag megfelezi a kulcshosszt, így az AES-256 az AES-128-nak felel meg, ami továbbra is kivitelezhetetlen. Az AES-128 tényleges biztonsága 64 bitre csökkenne, ami már sebezhető lehet. Ezért részesítik előnyben a biztonságkritikus alkalmazások az AES-256-ot.
AES-módok: miért számítanak
Az AES önmagában egyszerre csak egy 128 bites blokkot titkosít. Valódi adatokhoz (fotókhoz, dokumentumokhoz, videókhoz) „működési mód” kell, amely a 16 bájtnál nagyobb adatokat kezeli. A mód határozza meg, hogyan kapcsolódnak egymáshoz a blokkok, és jelentős biztonsági következményei vannak.
ECB (Electronic Codebook): ne használd
Minden blokkot külön, ugyanazzal a kulccsal titkosít. Az azonos nyílt blokkokból azonos titkosított blokkok lesznek. Ez kiszivárogtatja az adatokban lévő mintázatokat. A klasszikus bemutató: egy bitképet ECB-vel titkosítva a titkosított szövegben megmarad a kép szerkezete, így a tartalom felismerhető. Az ECB része a szabványnak, de soha nem szabad olyan adatokhoz használni, amelyeknek szerkezete vagy ismétlődő mintázata van (és ide tartozik gyakorlatilag minden valódi adat).
CBC (Cipher Block Chaining): elavult
Minden blokkot titkosítás előtt XOR-művelettel kombinál az előző titkosított blokkal. Ez megszünteti az ECB mintázatszivárgását. A CBC évtizedekig a szabványos mód volt, de a legtöbb alkalmazásban a GCM váltotta fel. A CBC-hez véletlenszerű inicializálóvektor (IV) kell, és nincs beépített hitelesítése (nem veszed észre, ha a titkosított szöveget módosították).
GCM (Galois/Counter Mode): a jelenlegi szabvány
A GCM a számlálómódú titkosítást Galois-test feletti hitelesítéssel kombinálja. Hitelesített titkosítást ad: titkosítja az adatokat, ÉS létrehoz egy hitelesítő címkét, amely a titkosított szöveg bármilyen módosítását észleli. Ha egyetlen bit megváltozik, a visszafejtés hibával leáll, ahelyett hogy sérült nyílt szöveget adna.
A NIST 2007-ben az SP 800-38D-ben szabványosította a GCM-et. Új megvalósításokhoz ez az ajánlott mód.
Az AES-256-GCM 256 bites kulcsú AES Galois/Counter módban. Ezt kell használniuk a biztonságkritikus alkalmazásoknak, és ezt használja a Vaultaire a fotók és fájlok tartalmának titkosítására.
| Mód | Mintázatszivárgás | Hitelesítés | Jelenlegi ajánlás |
|---|---|---|---|
| ECB | Igen (súlyos) | Nincs | Ne használd |
| CBC | Nincs | Nincs (külön MAC kell) | Elavult; HMAC-kal elfogadható |
| GCM | Nincs | Igen (beépített) | Új megvalósításokhoz ajánlott |
Mit jelent az AES-256 a fotótárolásban
Ha egy fotószéf app „AES-256 titkosítást” ígér, három dolognak kell igaznak lennie:
A fájltartalom AES-256-tal van titkosítva. A nyers fotóadatok (pixelek, metaadatok, bélyegkép) 256 bites kulccsal titkosított szöveggé alakulnak.
Minden fájl egyedi inicializálóvektort (IV) használ. Ha két azonos fotót ugyanazzal a kulccsal titkosítanak, a titkosított szövegnek eltérőnek kell lennie. Ehhez fájlonként egyedi IV kell. Enélkül a statisztikai elemzés mintázatokat fedhet fel.
A mód hitelesítést ad (GCM vagy azzal egyenértékű). Hitelesítés nélkül a támadó észrevétlenül módosíthatja a titkosított szöveget. A visszafejtés eredménye hibaüzenet helyett sérült adat lenne.
Amit egy marketingoldalon szereplő „AES-256” nem árul el
Az AES-256 szükséges, de nem elégséges. Több döntő tényező határozza meg, hogy a titkosítás valóban védi-e az adataidat:
Számít a kulcsszármaztatás. Hogyan jön létre a 256 bites kulcs? Ha egy 4 jegyű PIN-kódból gyenge kulcsszármaztató függvénnyel állítják elő, a tényleges biztonság 4 számjegy (10 000 kombináció), nem 256 bit. Egy erős megvalósítás magas iterációszámú PBKDF2-t vagy megfelelő memória- és időparaméterekkel futó Argon2-t használ. A Vaultaire HMAC-SHA512-es PBKDF2-t használ 600 000 iterációval, hogy a választott 5x5-ös mintából és egy eszközsóból helyi széfkulcsot származtasson. A PBKDF2 minden próbálkozást drágábbá tesz, de a minta entrópiáját nem emeli 256 bitre.
Számít a kulcs tárolása. Hol van a kulcs? Ha nyílt szövegként az app homokozójában tárolják, egy fájlhozzáféréssel rendelkező kártevő elolvashatja. Az Apple Secure Enclave bizonyos, nem exportálható kulcsműveleteket támogat, nem tetszőleges, app által adott AES-kulcsokat. A szimmetrikus kulcsú felépítések ehelyett a Kulcskarikára és az adatvédelmi osztályokra támaszkodhatnak, ezért a dokumentációnak a pontos API-t és védelmi osztályt kell megneveznie, nem csak annyit, hogy „hardveres védelem”.
Számít, mi van titkosítva. Egyes appok titkosítják a fájltartalmat, de a fájlneveket, a bélyegképeket és a metaadatokat titkosítatlanul hagyják. Egy törvényszéki vizsgáló talán nem látja a fotódat, de a fájllistában látja a „nyaralas-strand-2025.jpg” nevet. Az átfogó titkosítás a metaadatokat is külön védi.
Számít a kulcs életciklusa. Meddig marad elérhető a visszafejtett kulcsanyag? A Vaultaire zároláskor vagy bezáráskor elengedi az aktív széf és a mesterkulcs állapotát, és új feloldást kér. A szimmetrikus kulcs bájtjai szükségképpen az app memóriájában vannak, amíg egy széf nyitva van, és a Swift és az iOS nem teszi lehetővé, hogy egy app bizonyítsa, hogy minden átmeneti másolatot felülírt.
Az AES-256 a gyakorlatban: kik használják
| Szereplő | Felhasználás | Mód |
|---|---|---|
| Az Egyesült Államok kormánya (NSA) | Minősített adatok | GCM (vagy CTR külön hitelesítéssel) |
| Apple (iCloud Speciális adatvédelem) | iCloud végponttól végpontig titkosítás | GCM |
| Signal | Üzenettitkosítás | CBC (HMAC-kal a hitelesítéshez) |
| Bankok | Pénzügyi tranzakciók titkosítása | GCM |
| 1Password | Jelszószéf | GCM |
| Vaultaire | Fotó- és fájlszéf | GCM |
| VeraCrypt | Lemeztitkosítás | XTS (lemezblokkokra optimalizálva) |
Gyakori tévhitek
A „katonai szintű titkosítás” semmi konkrétat nem jelent. A marketingoldalak azért használják ezt a kifejezést, mert jól hangzik. A hadseregek használnak AES-256-ot. És AES-128-at is. A kifejezés nem árulja el a módot, a kulcsszármaztatást, a kulcstárolást, sem azt, hogy valójában milyen adatok vannak titkosítva.
A „256 bites titkosítás” nem feltétlenül AES-256. Más titkosítók is 256 bites kulcsot használnak (ChaCha20, Twofish, Serpent). Ellenőrizd, melyik algoritmust nevezik meg. Az AES-256-GCM a jelenlegi szabvány.
Az AES-256 nem véd a gyenge jelszó ellen. Ha a jelszavad „1234”, és a kulcsszármaztatás gyenge, a titkosítás gyakorlatilag 4 számjegyes biztonságot ad, a titkosító erősségétől függetlenül. A lánc a leggyengébb szemnél szakad el.
Az AES-256 nem védi a használatban lévő adatokat. Amikor megnézel egy fotót, azt vissza kell fejteni a memóriában. Abban a pillanatban nyílt szövegként van jelen a RAM-ban. A jó megvalósítások ezt az időablakot a lehető legrövidebbre szabják, és a visszafejtett adatokat gyorsan törlik.
Gyakran ismételt kérdések
Mit jelent az AES-256 rövidítés?
Advanced Encryption Standard (fejlett titkosítási szabvány), 256 bites kulccsal futtatva. Az AES az a titkosító, amelyet a NIST 2001-ben, a Rijndael kialakítás kiválasztása után FIPS 197 néven szabványosított. A 256 a kulcs bitben mért hossza. Egy utótag, például az AES-256-GCM, a működési módot adja hozzá, ami a titkosítótól és a kulcsmérettől független választás.
Feltörhető az AES-256?
Nincs ismert támadás, amely a teljes kulcstér szűkítésével feltörné az AES-256-ot. A legjobb ismert támadás (Bogdanov, Khovratovich és Rechberger 2011-es biclique-támadása) az AES-256-ot 2^256 műveletről 2^254,4-re csökkenti, ami elméleti javulás, a gyakorlatban számítási szempontból jelentéktelen. Az AES-256 feltöretlen.
Ellenáll az AES-256 a kvantumszámítógépeknek?
Lényegében igen. A Grover-féle kvantumalgoritmus megfelezi a tényleges kulcshosszt: kvantumtámadással szemben az AES-256 128 bites biztonságnak felel meg. Az AES-128 tényleges biztonsága 64 bitre csökkenne, ami már sebezhető lehet. Egy Grover-keresésnek az AES-256 ellen így is nagyjából 2^128 művelet kellene, ami nem kivitelezhető.
Mi a különbség az AES-128 és az AES-256 között?
Az AES-128 128 bites kulcsot használ (10 kör). Az AES-256 256 bites kulcsot használ (14 kör). Mindkettő biztonságosnak számít a jelenlegi támadásokkal szemben. Az AES-256 nagyobb tartalékot ad a jövőbeli fejlődéssel, főleg a kvantumszámítással szemben. A több kör miatt az AES-256 körülbelül 40%-kal lassabb az AES-128-nál, de a hardveres gyorsítás ezt a modern eszközökön elhanyagolhatóvá teszi.
Lelassítja az AES-256 titkosítás a telefonomat?
Normál használatban nem érezhetően. A modern Apple-processzorok a rendszer kriptográfiai könyvtárain keresztül hardveres gyorsítást adnak az AES-hez. Ez nem jelenti azt, hogy egy app AES-művelete a Secure Enclave-ben fut. Az idő így is a fájlmérettől, az eszköztől, a tárhelytől és a megvalósítástól függ, ezért egy biztonsági állításnak méréseken kell alapulnia, nem egy általános ezredmásodperces számon.
Honnan tudom, hogy egy app tényleg AES-256-ot használ?
Nézd meg az app biztonsági dokumentációját, ne csak a marketingoldalát. Keresd a konkrét algoritmust és módot, a kulcshierarchiát, a származtatási paramétereket, a Kulcskarika vagy a Secure Enclave pontos használatát, a nonce-kezelést, a helyreállítási utat, és azt, hogy a metaadatok is titkosítva vannak-e. A nyílt forráskód és a független auditok megkönnyítik ezeknek az állításoknak az ellenőrzését.
Összegzés
Az AES-256 széles körben használt, a NIST által szabványosított szimmetrikus titkosító, amely ellen nincs ismert gyakorlati támadás; egy Grover-algoritmust futtató kvantumszámítógépnek is nagyjából 2^128 munkával kellene számolnia. Ha AES-256 titkosítást ígérő appokat értékelsz, nézz a titkosítón túl: ellenőrizd a módot (GCM), a kulcsszármaztatást (magas iterációszámú PBKDF2/Argon2), a kulcstárolást (a pontosan megnevezett Kulcskarika- és adatvédelmi osztály) és azt, hogy valójában milyen adatok vannak titkosítva (tartalom + metaadatok).
A Vaultaire AES-256-GCM-et használ a fájltartalomhoz, a fejlécekhez, a metaadatokhoz, az indexekhez és a bélyegképekhez. A HMAC-SHA512-es PBKDF2 a mintából és egy, az egész eszközre érvényes Kulcskarika-sóból helyi széfkulcsot származtat; ez a kulcs kicsomagol egy véletlenszerű mesterkulcsot, amely a fájlok titkosítására szolgál. A szimmetrikus műveletek az app folyamatában, a CryptoKiten keresztül futnak, a helyreállítási állapotot pedig zárolt eszközön az iOS Kulcskarika és az adatvédelem védi. A teljes hierarchia a biztonsági modellben van dokumentálva.