2010. november 7., vasárnap

Kulcsok 2

A dinamikus kulcsoknak van egy még biztonságosabb változata. Amikor például nincs semmiféle algoritmus ami alapján ki lehet találni a jelszót. A jelszó fix része bemondásos alapú. Vagyis egy olyan információn alapul amit a két fél ismerhet. Például : Kutya név, gyerek neve, stb.

A telefonbeszélgetés alkalmával lehet célozni erre a jelszóra. Pl: hogy vannak a gyerekek ? Vagy : hogy van a kutya ? Itt nevek nem is hangzanak el, de a két fél tudja a neveket. stb.

A lényeg, hogy lehet közölni úgy is információt a másik féllel, hogy az nem tűnik jelszónak de mégis az lesz. Egy harmadik szemlélő vagy hallgatózó ebből sehogy nem fog tudni rájönni, hogy mi a jelszó.SMS-be ugyanígy el lehet rejteni a jelszót. Nem feltétlenül kell a nevet használni. Lehet a kutya színe, haj szín, szem szín, vagy egyéb más (előre megállapodott) tulajdonság is a jelszó.

A kulcs alkalmazásánál fontos, hogy a kommunikációt figyelve se lehessen rájönni, hogy mi a jelszó.

A változó jelszavak alkalmazásának a jelentősége, hogy egy korábban visszafejtett üzenetből és a jelszavából se lehessen kikövetkeztetni, hogy legközelebb mi lesz a jelszó.

A bemondásos jelszó akkor is hatásos, ha kitudódik az előre megbeszélt kulcs és új kulcsot kell küldeni a másiknak. Ilyenkor csak olyan jelszót lehet alkalmazni amit előre semmiképpen nem lehet kitalálni.

Adat titkosítás

Adat titkosításról csak pár szó. Egy példán fogom illusztrálni, hogy hogy működik.

Ezt az oldalt fogom használni az egyszerűség kedvéért :

https://flexcrypt.com/FQTIndex.aspx

Step 1 : Beírjuk a szöveget amit el akarunk titkosítani. Pl ezt :
Helló, szia szevasz, van nálatok terasz ?

Bejelöljük alul a kis négyzetet és megnyomjuk a gombot.
Step 2: Megadjuk a jelszót. Pl legyen ez : 123456 (hú de titkos :)
(kétszer adjuk meg, mert kétszer kéri - az elütések kiküszöbölése végett)

Megnyomjuk megint a gombot.

Valami ilyesmit kapunk :

==========Encrypted with Flexcrypt Text Encryption==========
464C45585F4651543B36303B3235343B312E3030
73656130134100001000600000006F513B9FAD0CD6AB3F7CD0C71FCD8F19
40F0401FF60D096A3D03BF6D7B294559061FB9368ECB280684D650F55276
59B7C1FBBD8EAE507F1AB8057B9590443E7C70CE087C4005CFD52541F0F4
9BB4392BDA771403DC39BE1C58B2C1B65A195907F8C857F5011AF24B9CFB
2B7C96014B0300
========== More info at http://www.flexcrypt.com ===========

Ezt az egésuzet kivágjuk és ez lesz majd az üzenet.

Ha vissza akarjuk fejteni, akkor nyomjuk meg a To Start gombot és oda illesszük be a fenti titkosított szöveget.

jelöljük be a kis négyzetet és nyomjuk meg a gombot. Bekéri a jelszót. adjuk meg (123456) és nyomjuk meg a gombot.

Ezt kapjuk : Helló, szia szevasz, van nálatok terasz ?

Kb ilyen egyszerűen kell ennek működnie. Vannak gépre telepíthető programok is azok használata biztonságosabb. Ezek közül talán majd írok egyről amit érdemes használni (biztos van gnu-s program ami futtatható különféle op rendszerek alatt.)

A titkosításról ennyit. Használni így kell, lehetőleg minél hosszabb jelszavakkal ami jó bonyolult és mindenféle karakterekből áll.

Kulcsok

Az előző bejegyzésben vázoltam, hogy miként lehet szinte lekövethetetlenül levelezgetni két fél között. Most nézzük meg a kulcsokat. A kulcsok lényege, hogy egyedi legyen. Vagyis csak azok tudják akikkel az információ meg lett osztva és ne nagyon lehessen kitalálni. Csak példákat fogok mondani, hogy ezt hogy kell elképzelni.

Egy kulcs a jelszó amivel a titkosított tartalmat betitkosítjuk. ezt ismernie kell a küldőnek is és a fogadónak is. A kulcs lehet fix, fix-változó vagy dinamikus.
A fix kulcs az egy olyan jelszó amit elég egyszer megmondani és az marad egészen addig míg valami miatt egy új jelszót nem kell kitalálni.
A fix-változó egy olyan kulcs aminek van egy fix része és egy algoritmus alapján hozzá tudunk rendelni egy változó részt is. Példa: a fix rész például az, hogy Jelszo. A változó rész pedig lehet az adott naptári nap elnevezése, amikor történik a kommunikáció. például vasarnap. De lehet a dátum is: 20111107 vagy így : november7vasarnap. de lehet más is nem csak a dátumhoz vagy az időponthoz igazítva. Az a fontos, hogy könnyen kitalálható legyen az algoritmus ismeretében. Lehet a cél vagy a küldő személyhez is kötni a jelszó változó részét. A lényeg, hogy a jelszó megtudásához a fix rész megismerése nem elegendő. kell az algoritmus is ami alapján ki lehet számítani, vagy kitalálni, hogy mi a jelszó.
A dinamikus jelszó ugyanaz mint az előbbi, csak fix rész nélkül. Itt az algoritmus ismerete elegendő a visszafejtéshez.

Dinamikus jelszóra példa, amikor a feladó (from) és a subject mezőből lehet kiszámítani a jelszót. Példa : a from mezőben ez van : valaki@freemail.hu a subjectben pedig ez : Udvozlet a tavoli keletrol.
egybeírva : valaki@freemail.huUdvozlet a tavoli keletrol. Bekódolva ez :

dmFsYWtpQGZyZWVtYWlsLmh1VWR2b3psZXQgYSB0YXZvbGkga2VsZXRyb2wu (B64-be)
v4|4k1undefinedfr33m41|.hu|_|dv0z|37 4 74v0|1 k3|37r0|. (LeetKey-be)

stb.

Itt a jelszó a bekódolt tartalom (dmFsYWtpQGZyZWVtYWlsLmh1VWR2b3psZXQgYSB0YXZvbGkga2VsZXRyb2wu) Elég hosszú elég bonyolult és elég nehéz kitalálni.

De nem csak a jelszó lehet ilyen kulcsfontosságú adat. A címzett által létrehozandó postafiók is lehet fix vagy algoritmus szerint változó. Pl vasarnap@incognitomail.org, stb.
Ezekben a kulcsokban egyszer meg kell állapodni és utána már csak ismertetni kell a két fél között - erre jó a személyes találkozó. A fix és algoritmikus használat keverve adja a legjobb hatásfokot. Tehát van egy fix rész és van egy amit ki lehet következtetni valamiből (időből, tárgyból, feladóból bármiből)

Ennyit a kulcsokról.

Titkosított levelezés

Gondoltam írok pár szót a titkosított levelezésről.

Ez csak egy alapséma lesz, amit persze tovább lehet fejleszteni és bonyolítani.

A lényege, hogy két különböző úton terjednek az infoemációk (vagyis inkább azt mondanám, hogy 3 különböző úton)

Az egyik út a személyes kontaktus útján terjedő információ. A második a mobil telefon, a harmadik pedig az internet.

A személyes találkozás alkalmával kell egyeztetni a kulcsfontosságú dolgokat, ami lehet szóban de lehet egy leírás is. A kulcsok kezeléséről írok mindjárt egy külön bejegyzést, mert ez bővebb téma annál, hogy itt megemlékezzünk róla. Elég annyit tudni, hogy a kulcsokat mindenképpen személyesen kell átadni a másik félnek. így bizton tudhatjuk, hogy egy harmadik félnél nem lesz meg az információ. Tehát a kulcsokat személyesen átadtuk.

A következő lépés a telefon. Egy sms üzenet vagy egy telefonbeszélgetés jelzi, hogy a kommunikáció "idő-szerű". Vagyis, hogy mindkét fél ott ül a gépnél és on-line van. Vagyis el tudja végezni a szükséges lépéseket.

Feladóról és Címzettről fogok beszélni, természetesen mindkét oldal lehet egyszerre mind a kettő is, mivel párhuzamosan tudnak menni az üzenetek.

A Feladó küldhet nyílt üzenetet is, de be is titkosíthatja valami egyszerű AES titkosítóval is az üzenetet. Ehhez vannak on-line programok (bár ez nem annyira biztonságos - mivel a hálózatot lehallgathatják) meg vannak helyileg telepített titkosító programok is (ezekről is egy külön fejezetben emlékezem meg - mert terjedelmes a dolog)

Tehát megvan az üzenet amit át akarunk küldeni. A küldést anonym mailereken keresztül végezzük. A címzett pedig valamilyen szintén anonym postafiók. (ezekről is külön)
A címzettnek csupán annyi a dolga, hogy az adott pillanatban álljon készen az átmeneti anonym postafiók. (Az ilyen fiókok általában törlődnek is maguktól egy órán belül, vagy lehet törölni őket kézzel is. Így nem sok nyoma marad a kommunikációnak)

Az anonym senderek általában 5-10 percen belül eljuttatják a címzettnek a leveleket.

Tehát összefoglalva : Küldünk egy sms-t (tök mindegy, hogy mi van az sms-ben. Lehet valami félrevezető marhaság is nem az a lényeg, hanem az, hogy amikor jön az sms, akkor a küldő küldje el amit kell, mert a fogadó oldal készen áll a fogadásra. Az anonym postafiókot is elküldhetjük az sms-ben ahol várjuk az üzenetet (bár ez nem annyira biztonságos) A Küldő elküldi a levelet anonym emailerrel az anonym fiókra.
A Címzett kiveszi az üzenetet és feldolgozza. Elolvassa, ha kell a titkosítást leveszi róla (visszafejti) majd az üzenetet törli. Ha jól csinálja, akkor csak a memóriában jelenik meg az üzenet tartalma és ezt egy gép kikapcsolása után már semmilyen módon nem lehet visszafejteni. vagy usb-re menti egy titkosított helyre.

Amikor az üzenet megjött és fel lett dolgozva, mehet vissza egy sms. hogy kész.
Amennyiben nem jön sms, az azt jelenti, hogy gond van. Egy másik úton meg lehet próbálkozni új küldéssel (több alternatív útvonal kell) A kommunikációnak akkor van vége, ha a Címzett visszajelzett, hogy az üzenetet megkapta.

Természetesen a kommunikáció lehet két irányú is. A Címzett is küldhet közben vagy utána egy másik üzenetet a Feladónak. Természetesen egy másik anonym postafiókra ami a Küldőnél áll rendelkezésre.

Ezt a módszert egyirányú kommunikációra remekül lehet használni. Tehát olyan üzenetváltásokra, amikor tiszta, hogy mit kell küldeni és aki várja az is tudja, hogy mi fog jönni. Ha pedig az egészet TOR-ban csinálja az ember akkor a lehallgatás is reménytelen. Kideríteni, hogy hova ment a levél szinte lehetetlen. Se a feladó nem ismert, se a címzett. Így nincs nyom amin el lehetne indulni.

Ha valahogy mégis meg lehetne szerezni az üzenet tartalmát (ami nem valószínű) akkor még mindig ott van a titkosítási probléma. Ha egy sima aes titkosítással be van titkosítva a szöveg, akkor azon lehet próbálkozni visszafejteni. És mivel titkosított az üzenet az internet forgalomból kulcsszavak keresésével lehetetlen kiszűrni. A titkosításhoz a jelszó meg lehet akármilyen hosszú, lehet értelmetlen szöveg is.

Nézzünk egy példát :

A küldést innen csináljuk :

https://www.cotse.net/cgi-bin/mixmail.cgi

A To: mezőbe beírjuk az anonym fiókot (amit a fogadó már közben elkészített) például : proba@incognitomail.org
A From: Mezőbe beírunk valami létezőnek tűnő címet. Pl: valaki@freemail.hu (semmi jelentősége nincs, hogy ide mit írunk)
A Subject mezőbe is beírunk valamit. (nincs jelentősége)
A chain-nál kiválasztjuk pl a "kulin"-t. Az üzenetbe beírjuk az üzenetet vagy az eltitkosított szöveget. elküldjük.

A fogadó oldalon a küldés előtt (természetesen) létrehozzuk az átmeneti postafiókot pl itt : incognitomail.com (proba@incognitomail.org)
Várjuk, hogy megjöjjön az üzenet. amikor megjött visszajelzünk, Kivesszük az üzenetet és töröljük a postafiókot.

Nagyjából ennyi.