Rejtjelezési feladat

Környezet
Egy képzelt tõzsdei rendszerben a brókerek a tõzsde szerverérõl kérdezhetik le a részvények listáját, majd az egyes részvények áraihoz egyenkénti lekérdezéssel juthatnak hozzá.
A brókerek és a részvények árát szolgáltató szerver RSA nyilvános kulcsú rejtjelezési algoritmus felhasználásával kommunikálnak. A rejtjelezéshez szükséges kulcsokat minden résztvevõ fél saját maga generálja, majd a generált kulcsokat egy megbízható Certification Authority-val hitelesítik. A CA hitelesítését minden fél ellenõrizni tudja. A rejtjelezés 512 bites RSA kódolással valósul meg, amely idõbélyeget és ellenõrzõ CRC-t is tartalmaz (az üzenetismétlés és üzenethamisítás kiküszöbölésére).
A kommunikációs hálózat olyan, hogy egy esetleges támadó fél az egyes üzeneteket nem csak lehallgatni, hanem megváltoztatni is képes (aktív behatolásra is van mód).
Célunk ilyen környezetben meghatározni, hogy az adott rejtjelezési módszer milyen szintû védelmet képes nyújtani.
Kommunikációs protokoll
Egy bróker egy részvény aktuális árfolyamát a következõ nagyvonalú lépésekkel kérdezheti le. Bny jelöli a bróker nyilvános, Bt a titkos kulcsát, míg a szerver kulcsai: Tny, Tt, az RSA kódolás végrehajtását a  jel jelöli, a kódolt üzenet a  jel elõtt, míg a kódoláshoz szükséges kulcs a jel mögött található.
1. lépés: Rejtjelezett kommunikációs kapcsolat felépítése
A bróker a szerverhez való kapcsolódás elsõ lépéseként elküldi a nyilvános kulcsát a CA cerificate-tel együtt, amire a szerver hasonlóan válaszol. A rejtjelkulcsok ilyen formán történõ egyeztetése után kódolva folytatódik a kommunikáció.

2. lépés: Részvény árfolyamának lekérdezése
Ha már létrejött a rejtjelezett kommunikáció, akkor a bróker úgy tud biztonságosan üzenetet küldeni a szervernek, ha az a saját tikos kulcsával és a szerver nyilvános kulcsával is lekódolja az üzenetet.

3. lépés: Válasz
A lekérdezett részvény árfolyamának állását a szerver egy válaszüzenetben küldi vissza.

A Query és Reply üzenetek felépítése
Mind a Query, mind a Reply üzenetek egy-egy 512 bites egységet képeznek, amelyen 1-1 kódolást hajt végre az RSA algoritmus. Az üzenetismétlések elkerülése végett 32 bites idõbélyeget, az üzenetek integritás ellenõrzésére pedig egy 32 bites CRC-t is tartalmaz az üzenet blokk:

Message block	TimeStamp	CRC	
448 bit	32 bit	32 bit	

A Query Message block részletesebb felépítése a következõ:
Header	"Query Share Price" command	Share name	
96 bit	32 bit	320 bit	
A "Share name" tartalmazza a lekérdezni kívánt részvény nevét. Amennyiben rövidebb, mint 40 karakter (320 bit), akkor 0-kal tölti fel a maradék részt.

A kérdésre kapott válasznál a Message block a következõ képen épül fel:
Header	"Share Price" command	Share price	
96 bit	32 bit	320 bit	
A "Share price" tartalmazza a lekérdezett részvény árát karakteres formában. A fennmaradó üres karaktereket SPC-vel töltik fel.
Háttér információk
A rejtjel kommunikáció feltöréséhez a következõ információkat szerezheti meg egy esetleges támadó:
•	Az adott tõzsdén 3200 részvényt tartanak nyilván, a részvények neve ismert.
•	A brókerek egyszerû, standard PC-kel rendelkeznek (semmilyen extra HW kiegészítést nem használnak).
•	A PC rendszerórája 55 ezred-másodpercenként változik és +/- 1 perc pontosságú CET szerint.
•	A bróker oldalon futó szoftverek megszerezhetõk, elemezhetõk.
•	A megtéveszteni kívánt bróker 1997. Március 26-án délután generálta a rejtjelkulcsát.
•	A CA-hoz másnap nyújtotta be hitelesítési kérelmét.
•	A CA a hitelesítést 31-én teljesítette.
•	A bróker munkaideje fél ötig tart.
•	A rendszer a rejtjelkulcsokat automatikusan, a felhasználó beavatkozása nélkül, kizárólag a PC rendszeróráján alapuló álvéletlenszám-generátor segítségével állítja elõ, régebben generált kulcsok információit nem használja fel.
•	A tõzsde szerver jól védett, egyszerûen részletes információt róla, illetve a rajta futó szoftverekrõl nem lehet szerezni.
Kérdések
1. kérdés
Körülbelül hány próbálkozással lehet a bróker titkos kulcsát kitalálni?
2. kérdés
Feltételezve, hogy a bróker titkos kulcsa ismerté válik, hogyan érhetõ el, hogy a bróker érvénytelen értékeket kapjon válaszul kérdéseire?
3. kérdés
Továbblépésként hogyan oldható meg, hogy egy adott részvény árát mindig kevesebbnek, illetve többnek lássa a bróker?
4. kérdés
Milyen egyszerû bõvítéssel lehetne kiküszöbölni a hiányosságokat?