Dan Kaminsky egyik BlachHates előadásán megemlített ötlete alapján Landon Fuller elkészített egy kis programot, melynek segítségével a DNS rendszeren keresztül lehet üzeneteket váltani.
Mindez ugyan őrültségnek tűnhet (az is), de a megoldás szépsége miatt azt hiszem érdemes rá szánni néhány percet:
A kommunikálni készülő feleknek szükségük lesz egy közös szótárra, egy inicializáló vektorra (IV), egy rekurzív, gyorsítótárazó névszerverre, valamint egy wildcard DNS zónára.
A DNS kérésekben beállítható az úgynevezett RD (Recursion Desired) flag, ami 1-re állítva engedélyezi a rekurziót, 0-ra állítva pedig értelemszerűen letiltja azt, így a szerver csak a saját, helyi gyorsítótárában tud keresni.
A küldő oldalon csapjuk hozzá az üzenetünkhöz annak pl. 8 biten ábrázolt hosszát, és az így keletkezett bitsorozat minden bitjéhez válasszunk egy-egy nevet a wildcard zónából a szótárunk és az IV segítségével. Ezek után az 1-es bitekhez tartozó neveket kérjük el rekurzívan a névszervertől.
Ekkor a névszerver gyorsítótárába bekerülnek ezek a nevek.
A fogadó oldalon a szótár és az IV segítségével generáljuk le az előzővel megegyező bit-név megfeleltetéseket tartalmazó listát, majd kezdjük el nem-rekurzívan lekérdezni ezeket a közösen használt szervertől! A kiszolgáló azokat a neveket fogja megtalálni (a saját gyorsítótárában), amelyeket a küldő is lekérdezett, ezek lesznek tehát az 1-es bitek, a többi pedig maradhat 0. Voila, az üzenet előállt!
synapse · http://www.synsecblog.com 2008.12.20. 15:51:48
Lionking 2008.12.22. 13:45:56
Lionking 2008.12.22. 13:48:41
Lionking 2008.12.22. 13:50:30