birthday attack
Főnév
birthday attack (tsz. birthday attacks)
- (informatika) A birthday attack (születésnapi támadás) egy kriptográfiai támadási forma, amely a születésnapi paradoxon matematikai elvén alapul, és célja ütközések (collisions) keresése hash függvényekben vagy más egyedi azonosítókat használó rendszerekben. A támadás lényege, hogy két különböző bemenetre keresünk azonos kimenetet egy hash függvény esetén, és ezt a vártnál sokkal kevesebb próbálkozással is el lehet érni – a “paradoxon” miatt.
Ez a módszer különösen fontos hash algoritmusokkal kapcsolatban, például MD5, SHA-1, stb., ahol az ütközések megtalálása sérti a hash-függvény ütközésállóságát, és digitális aláírások meghamisításához, adatmanipulációhoz vezethet.
🧠 Mi az a születésnapi paradoxon?
A születésnapi paradoxon azt mondja, hogy meglepően kevés ember kell ahhoz, hogy esély legyen két ember ugyanazon a napon születésére.
Matematikailag: - Egy 365 napos évvel számolva, - Már 23 ember esetén is több mint 50% az esély, hogy két embernek azonos a születésnapja!
Ez az elv hash ütközésekre is érvényes: ha egy hash érték 𝑛 bit hosszú, akkor 𝑛/2 bitnyi “erőfeszítéssel” (próbálkozással) jó eséllyel találunk két különböző bemenetet ugyanazzal a hash kimenettel.
🔐 Hash függvények és ütközések
A hash függvény egy olyan algoritmus, amely tetszőleges hosszú bemenetből rögzített hosszúságú kimenetet (hash értéket) generál. Jó hash függvény jellemzői:
- Determinált – ugyanaz a bemenet → ugyanaz a kimenet.
- Előképkép-ellenálló – adott hash értékből nehéz megtalálni a bemenetet.
- Másodlagos előképkép-ellenálló – adott bemenethez nehéz másikat találni, ami azonos hash-t ad.
- Ütközésálló – nehéz két különböző bemenetet találni, amelyek azonos hash-t adnak.
A birthday attack pont ez utóbbit támadja.
📉 Birthday attack matematikailag
Ha egy hash függvény n bit hosszú kimenetet ad, akkor 2ⁿ lehetséges hash érték létezik.
- Egy véletlen bemenetekből álló sorozatból már körülbelül √(2ⁿ) ≈ 2ⁿ⁄² próbálkozás után jó eséllyel találunk két különböző bemenetet, melyek ugyanazt a hash értéket adják.
Példák: - MD5 (128 bit) → ~2⁶⁴ próbálkozással várható ütközés. - SHA-1 (160 bit) → ~2⁸⁰ próbálkozással várható ütközés.
Ez még mindig sok, de nem annyira sok, mint 2¹²⁸ vagy 2¹⁶⁰, ami az „ideális” biztonság lenne.
🧩 Birthday attack lépései (általános)
- Végy egy hash függvényt (pl. SHA-1).
- Generálj különböző bemeneteket.
- Hash-eld őket, és figyeld a hash értékeket.
- Tárold őket egy hash-táblában vagy listában.
- Ha két bemenet ugyanazt a hash értéket adja, akkor találtál egy ütközést.
🛠️ Konkrét alkalmazás – digitális aláírás hamisítása
A digitális aláírás során jellemzően a dokumentum hash-ét írjuk alá, nem magát a dokumentumot.
Egy támadó a következőt teheti:
- Készít két dokumentumot: egy ártalmatlant (pl. számla) és egy rosszindulatút (pl. szerződés).
- Addig manipulálja őket, amíg azonos hash értéket nem kap.
- Aláíratja az ártalmatlan dokumentumot.
- A digitális aláírás így a rosszindulatú dokumentumra is érvényes lesz → hamisítás!
Ez valódi fenyegetés volt az MD5 és SHA-1 algoritmusoknál!
✅ Védekezés
Módszer | Leírás |
---|---|
Erősebb hash algoritmusok használata | SHA-256, SHA-3, BLAKE2, BLAKE3 |
Hosszabb hash kimenet | Így a birthday attackhez több próbálkozás kell |
Digitális aláírás + extra védelem | Pl. salting, timestamp, hibrid protokollok |
Üzenet-hash kombinációk (HMAC) | Véd az aktív manipulációk ellen |
⚠️ Algoritmusok, amelyeket érint a birthday attack
Algoritmus | Érintettség |
---|---|
MD5 | ✔ – gyakorlati támadás lehetséges, nem biztonságos |
SHA-1 | ✔ – 2017-ben a Google SHAttered projektje megtalált egy ütközést |
SHA-2 / SHA-256 | ❌ – jelenleg nincs hatékony birthday attack ellene |
SHA-3 / BLAKE2 / BLAKE3 | ❌ – új generáció, ellenáll a támadásoknak |
📚 Történelmi háttér
- 1980-as évek: A birthday paradox elve először megjelenik hash funkciók analízisében.
- 1990-es évek: Az MD5 biztonsága megkérdőjeleződik.
- 2004–2005: Első gyakorlati ütközések MD5 esetén.
- 2017: Google bejelenti az első sikeres SHA-1 ütközést (SHAttered projekt).
🧠 Összefoglalás
Fogalom | Jelentés |
---|---|
Birthday attack | Ütközéskereső támadás hash függvények ellen |
Alapja | Születésnapi paradoxon: √(N) minta → 50% esély ütközésre |
Cél | Két különböző bemenet, azonos hash érték |
Fenyegetés | Digitális aláírás hamisítása, adatmeghamisítás |
Megoldás | Erősebb hash, SHA-2, SHA-3, BLAKE2, HMAC használata |
Érintett algoritmusok | MD5, SHA-1 (már nem biztonságosak) |
A birthday attack nem csak elméleti lehetőség, hanem valós veszély, amely megingatta több népszerű algoritmus hitelességét. Ma már elengedhetetlen, hogy biztonságos hash algoritmusokat használjunk, és ismerjük a lehetséges támadási formákat.
- birthday attack - Szótár.net (en-hu)
- birthday attack - Sztaki (en-hu)
- birthday attack - Merriam–Webster
- birthday attack - Cambridge
- birthday attack - WordNet
- birthday attack - Яндекс (en-ru)
- birthday attack - Google (en-hu)
- birthday attack - Wikidata
- birthday attack - Wikipédia (angol)