04 jul 2016

Digitális aláírás: elmagyarázzuk!

     

04 jul 2016

A digitális aláírás alapja a titkosítás, más néven a kriptográfia. Az aláíráshoz használt titkosítás módszer ismert, viszont a megfejtéshez szükséges kulcsok titkosak.

A kulcsok valójában hosszú számkódok. Illetéktelen használatához elég a kulcsokat lemásolni, az eredeti példány a gyanútlan tulajdonosnál marad. A kódkulcsokat ezért illetéktelen személyektől elzártan kell tartani.


lock2Minden titkosítás alapja, hogy a titok feloldásához szükséges információk csak az illetékesek birtokában vannak, az illetéktelen személyek ellenben nem ismerik ezeket az információkat.

Hogyan jut el a kódkulcs a címzetthez?

room_key-512 A bizalmas információkat kódkulccsal titkosítják, az üzenetet a fogadó fél dekódolja. A kódkulcsot meg kell osztani üzenetváltás előtt  a  felek között, de az előzetes egyeztetése nehéz, hiszen a titkosító kódkulcsot is titkosítva kellene küldeni, mivel illetéktelen személy figyelheti a kódkulcs egyeztetést is. Ez “kígyó a saját farkába harap” helyzet!

spy1Az interneten át küldött információkat illetéktelen személyek is láthatják.

A megoldás: kulcspár a kódkulcs helyett!

keychain-512A titkosításhoz egy összetartozó kulcspárt használnak, egyetlen titkos kódkulcs helyett.
A kulcspár tagjai összehangoltan működnek, az egyik kulccsal bekódolt titkot csak a másik kulcs tudja kinyitni.
A kulcspár egyik tagját titokban tartjuk , ez a

titkos kulcs

A másik tagját pedig bárki számára elérhetővé tesszük, ez a

nyilvános kulcs

A nyilvános kulcs ismeretében nem lehet következtetni a titkos párjára, és nem lehet megfejteni vele az általa titkosított adatokat.


rsa-key-generation
A kulcspár előállítása matematikai módszerrel történik, hatalmas prímszámok szorzata alapján. Kizárólag a kulcspár másik tagjával lehet megfejteni, még a kódoló kulcs sem alkalmas a dekódolásra!
részletek: a matematika.

A kulcspár bármely tagjával lehet titkosítani, de nem lehet ugyanazzal a kulccsal megfejteni az információt. A megfejtést csak a kulcspár másik tagjával lehet végezni.

Az módszer a szorzás és osztás matematikai műveleten alapul. Habár inverze egymásnak a két művelet, osztani a gyakorlatban lassabban lehet, mint szorozni. Pontosabban “faktorizálni” nehezebb, azaz valamely szám osztóit visszakeresni általában rengeteg próbálkozással lehet. Az eljárás úgy van felépítve, hogy a kódolás és dekódolás is szorzás és  maradékképzésen alapul, amihez nagyon nagy prímszámokat használnak. A kulcsokat előállító prímszámok irdatlan nagy számok, és az irdatlan nagy számok szorzata alapján visszakövetkeztetni az eredeti számokra irdatlan-irdatlan sok próbálkozást jelentene. Mivel az illetéktelen személy nem ismeri a titkos kulcsot, ezért a titkosítás visszafejtéséhez reménytelenül sok osztási műveletet kellene kipróbálni, annyit amit még a mai számítógépek sem tudnak belátható időn belül elvégezni.

A kulcspárat két véletlenszerűen választott óriási prímszámokból állítják elő. A nagyon nagy prímszámok miatt az egyik kulcs ismeretében sem lehet a kulcs párját belátható időn belül kiszámolni, valamint a kulccsal végzett titkosító műveletet kiinduló értékeit sem lehet visszaszámolni.

Kissé sántító, de képszerű hasonlattal magyarázva a működés:

A matematikai műveletet ahhoz lehetne hasonlítani, mintha a titkosításhoz két összekapaszkodó fogaskereket használnánk, eltérő fogszámmal.

  • “Relatív prím”-eket szimbolizálnak a fogaskerekek, azaz a nagyobb fogainak száma nem valahányszorosa a kisebbnek.
  • A fogaskerekek csak egy irányban képesek forogni (szorozni tudunk, osztani nem).
  • A fogaskerekek fogszámát nem ismerjük, csak a fogszámok közös többszörösét (ahány lépéssel minimum el kell forgatni valamelyik kereket, hogy a kezdeti mutatóállás ismét előálljon).
    Ez a közös többszörös olyan nagy szám, hogy abból visszaszámolni az eredeti prímszámokat (fogaskerék fogak számát) gyakorlatilag lehetetlen.
  • A publikus és titkos kulcs is (egy-egy hatalmas szám) a fogaskerék fogak (a relatív prímszámok) alapján és egy megfelelően választott számpár alapján készül.
  • A fogaskerekek egy-egy irányt mutató nyíllal vannak ellátva, a nyilak aktuális iránya titkosított/feloldott betűkre utalnak.

Kódoláskor az eredeti üzenet betűi és a megfelelő kulcs alapján számított fordulattal forgatkuk a kerekeket. A kódolt betűket visszenyerni csak ugyanabba az irányba történő forgatással lehet.
Az eltérő átmérő, a relatív prímség, a csak egy irányba forgathatóság miatt, de legfőképp a “konstruktor” prímszámok nagysága miatt, csak akkor van esély megfejteni az eredeti információt, ha ismerjük a kulcspár másik tagját.


Mindkét kulccsal lehet titkosítani, két használati mód létezik:

A titkosítás.

A címzett nyilvános kulcsával titkosítunk, így biztosan csak a címzett tudja majd elolvasni az üzenetet, mert csak ő ismeri a titkosításra használt nyilvános kulcs titkos párját. Hiába szabadon hozzáférhető a címzett nyilvános kulcsa, az a titkos üzenet megfejtéséhez nem használható.


encryptA nyilvános kulccsal biztonságosan lehet titkos üzenetet küldeni a kulcstulajdonos számára.

Az aláírás.

Az aláíró a titkos kulcsával titkosítja a dokumentumot, amit később bárki mrgfejthet az aláíró nyilvános kulcsával. A megfejthetőség ténye bizonyítja, hogy a titkosítást az aláíró titkos kulcsával végezték, tehát a dokumentum aláírója valóban az adott személy, hiszen a dokumentum az aláíró személy nyilvános kulcsával fejthető csak vissza.
Valójában nem a teljes dokumentumot, csak annak a “digitális kivonatát” írja alá a tulajdonos, így a dokumentum dekódolás nélkül olvasható marad. A “digitális kivonatról” az oldal végén olvashatsz.


signTitkos kulccsal aláírunk, amit mások nyinvános kulccsukkal ellenőriznek.
részletek: az aláírt dokumentum.

Az aláírt dokumentum  nem változik meg aláíráskor, hanem a digitális aláírás egy külön előállított kis állomány, ami garantáltan összetartozik az aláírt dokumentummal.

A dokumentum és az aláírás összetartozását biztosító módszert később elmagyarázzuk, de röviden a lényeg:

Az aláírás egy “kivonattal” hivatkozik az eredeti dokumentumra. A kivonat lényege, hogy az eredeti dokumentum minden betűje összefügg a kivonattal, azaz az eredeti dokumentum apró megváltoztatása esetén a kivonat érvényét veszti.

Nem lehet például egy aláírt szerződés dátumát utólag meghamisítani, mert a kivonat kimutatja a változást, és az aláírás érvényét veszti.

Aláírásként a kivonatot az aláíró betitkosítja a saját titkos kulcsával, majd az aláírt dokumentumhoz mellékeli.

Az aláírás ellenőrzése:

  • az aláíró személy ellenőrzése, azaz a betitkosított kivonatot visszanyerjük az aláíró nyilvános kulcsával. A nyilvános kulcs visszakódolási képessége bizonyítja, hogy az aláíró személy az, aki a nyilvános kulcs titkos párját birtokolja.
  • dokumentum sértetlenség ellenőrzése, azaz kivonat készítése a dokumentumból és a kivonatok megegyezése esetén belátható, hogy a dokumentumban semmilyen változás nem történt az aláírás óta.

 

 

Cégvezetőknek!
Informatika a legjobb formában:
vissza a főoldalra

 

 

Ki a nyilvános kulcs gazdája?

Egy személy és a nyilvános kulcs  összetartozását tanúsítvány igazolja, amit a hatóság, azaz tanúsítványkiadó szervezet állít ki.

A nyilvános kulcs és titkos kulcs összetartozását a matematika garantálja, de a nyilvános kulcs személyhez tartozását valakinek igazolnia kell. A tanúsítványkiadó szervezet a tulajdonos és a nyilvános kulcs megjelölése mellett egyéb információkat is feltüntet a tanúsítványban. A tanúsítványt a hatóság a saját digitális aláírásával hitelesíti.


tanúsítványTanúsítványt állít elő a hatóság a nyilvános kulcsról, ami a személy és kulcs összetartozást igazolja.

részletek: a tanúsítványkiadó hatóság.

A tanúsítványkiadó hatóság előtt

  • igazolni kell a személyazonosságot,
  • a nyilvános kulcsot kell bemutatni,
  • nyilatkozni kell a tanúsítvány használatának céljáról.

Ezek alapján tanúsítványt állítanak ki, amely jogszerűen csak a meghatározott műveletekre használható. Például egy aláíró tanúsítvány gazdája aláírhat a saját nevében, de nem írhat alá szerződést a meghatározott tranzakciós érték felett. A magyarországon bevezetett új elektronikus személyi igazolvány tartalmazhat (saját kérésre) aláíró tanúsítványt, illetve TB számot is tartalmaz.

A tanúsítványkiadó szervezet sem ismeri meg az titkos kulcsot! Éppen ez a nagyszerű a nyilvános kulcsú titkosításon alapuló eljárásokban, hogy a titkos kulcsot csak a tulajdonos ismeri, azt soha senkinek nem kell és nem szabad átadni!


A tanúsítványkiadó digitális aláírását is tanúsítják!

A tanúsítványkiadó hatóság aláírását egy magasabb rangú tanúsítványkiadó szervezet igazolja, és így tovább. A tanúsítványlánc pár szint után befejeződik: a legfőbb tanúsítványkiadó digitális aláírásáról szóló tanúsítványt saját maga írja alá, de az erről szóló engedélyt papíron deklarálják, páncélszekrényben őrzik valahol.


HierarchyA legfőbb tanúsítványkiadó tanúsítványát papíron deklarálják.

További érdekességek..

A digitális ujjlenyomat

A digitális ujjlenyomat arra való, hogy a digitális állományok szándékos vagy véletlen megváltozását ki lehessen mutatni. Több elnevezést is használnak: “digitális kivonat”, “hash kód”,  “üzenetpecsét”, “lenyomat”, “ellenőrző összeg”, “ellenőrző kód” stb. Az ujjlenyomat egy egyedi kódsor, amit a tárgy digitális állományon végighaladó matematikai függvénnyel állítanak elő.
A tárgy dokumentum bármely betűjének (bájtjának ha úgy tetszik) a megváltozása teljesen más ujjlenyomatot eredményez.
Az ujjlenyomatból nem lehet visszakövetkeztetni a tárgy dokumentum tartalmára.
Az ujjlenyomat nagysága fix, nem függ a tárgydokumentum méretétől.

Néhány példa a használatra:

  • Adatátvitelkor az adat után küldve az ujjlenyomt elárulja ha hibásan érkezik meg az adat.
  • Programkódban rossz szándékú módosítás tetten érhető az eredeti ujjlenyomat ismeretében.
  • Digitásis aláíráskor csak a “digitális kivonatot” írják alá, így az eredeti dokumentum olvasható marad bárki számára, és gyorsabb lesz az aláírás művelete.
  • A jelszavakat nem tárolják a számítógépeken, csak annak hash kódját, ezért nem lehet megismerni mások jelszavait. Bejelentkezéskor a megadott jelszóból ismét hash kódot generálnak, ha az megegyezik a tárolt hash kóddal, akkor bejelentkező nyilván ismerte a jelszavat.
részletek: így működik a hash kód.

Szemléltetés:

használjunk Rubik kockát hash kódnak!

  • A rubik kocka lapocskái fix számúak, valamint a színek összekeverhetősége miatt óriási a varicók száma. 43 quintillió az nagyon sok variáció…
  • Találjunk ki minden betűhöz és írásjelhez egy Rubik kocka tekerési mozdulatot, pld. “a”= x tengelyen középső sor 1 fordulat, “b”= z tengelyen bal sor 2 fordulat, stb…
  • A kivonatolni kívánt dokumentum betűin egyenként menjünk végig oda-vissza és az egyes betűk alapján tekergessük a Rubik kockát.

Az eredmény:

  • Ha pontosan hajtjuk végre a műveletet, a dokumentum szerint tekergetve a kockát mindig ugyanaz a Rubik kocka kép lesz az eredmény.
  • Ha akár egy betű is változik akárhol a dokumentumban, a Rubik kocka képe teljesen más lesz. (ezért haladunk oda-vissza a dokumentumon)
  • A kocka kinézete alapján nem lehet a kivonatolt dokumentum tartalmát kitalálni.
  • Egy meghatározott kocka álláshoz értelmes dokumentumot kitalálni szinte lehetetlen. (Itt sántít leginkább a kocka hasonlat, mert értelmetlen szöveget egy ügyes Rubik kocka játékos ki tudna találni, bár kétséges, hogy néhány betűt ügyesen úgy lehetne változtatni, hogy a kocka képe ne változzon)
  • A variációk nagy száma miatt gyakorlatilag minden dokumentumhoz egyedi kockakép (kivonat) tartozik.

Íme a “fapados” digitális aláírás:

Írok egy dokumentumot, elküldöm postán, lefotózom magam a dokumentum alapján kirakott kockával , azt elküldöm e-mailben és kiteszem a netre is.
A hamisítónak nehéz dolga lenne:

  • Ha a postán elkapott dokumentumot hamisítaná, a fotó a kockával lebuktatná. = hash kód
  • Ha a kocka képét is próbálná utánváltoztatni, akkor hogyan készít fotót a kockáról és a személyről. = digitális aláírás
    (Itt sántít leginkább a hasonlat, mert fotót hamisítani viszonylag könnyű, bár azt még más nevében el is kellene küldeni és netre is kellene tenni.)

De mire jó a digitális aláírás?

hamisíthatatlan

gyors

másolható tetszőleges példányban

nincs fizikai helyigény



A titkos kulcs biztonságos őrzése

A nyilvános csatornákon utazó információkat a kódkulcsok védik az illetéktelenek elől, ezért csak a titkos kulcsot ismerők képesek megfejteni azokat.
A titkos kulcs védelme a leggyengébb láncszeme az egész rendszernek. A kulcsként szolgáló digitális kód lemásolható, titokban használható.
A fizikailag biztonságos, támadás ellen védett privát számítógépen tárolás minimum követelmény.
Magát a kulcsot is lehet titkosítani, de csak megjegyezhető jelszóval van értelme lekódolni. Ha a támadó minden igyekezet ellenére megszerzi a jelszavas kulcsot, azt még vissza kell fejtenie a használathoz. Jelszó próbálgatás ellen a hosszú jelszó a megoldás, bár ezzel csak késleltetni lehet a feltörést.
A kódkulcs jelszavas (logikai) védelme helyett fizikai kulcstároló eszközöket fejlesztettek ki, ilyen például a “smartcard“, valószínű mindannyiunknak ismerős, mert a chip-es bankkártya is smartcard, de az új magyar személyi igazolvány is ilyen.
A smartcardra mentett kódkulcsot nem lehet kiolvasni, hogy aztán a kódkulccsal elvégezzük a titok megfejtését. Ez helyett a smartcard olyan “okos” hogy a dekódolás műveletet el tudja végezni a rajta tárolt titkos kulcs segítségével. A smartcsard egy fekete doboz, aminek ha beküldjük titkos adatot, visszaküldi azt megfejtve anélkül, hogy a titkos kulcsot elárulná bárkinek. Sőt, többnyire a titkos kulcsot sem rámásolják, hogy azt a keletkezés pillanatában se lehessen lemásolni, hanem maga a smartcard állítja elő a kulcspárt, aminek csak a nyilvános tagját engedi kiolvasni, valamint kiolvashatóan el lehet rajta tárolni rajta a nyilvános kulcsból előállított tanúsítványt.
A smartcard használata jelszóval védett (pld. pin kód) és a próbálgatások ellen önmegsemmisítéssel védekezik, azaz néhány próbálkozás után kitörli a saját tartalmát.
Mivel a smartcard nem adja ki magából a titkos kulcsot, nem lehet észrevétlenül kimásolni róla azt, fizikailag el kellene lopni a kártyát a kulcs használathoz.

Kulcs ellopás ellen a tanúsítvány kiadó szervezet is véd, nyilvános listát vezet a visszavont tanúsítványokról, amire a tanúsítvány tulajdonos bejelentése esetén felveszik a tanúsítványt. A visszavonási lista logikai természetű, a digitális aláírást ellenőrző fél felelőssége, hogy a visszavonási listán után nézzen a tanúsítványnak.

A visszavonási lista internetes elérhetőségét magába a tanúsítványba is belefoglalják, így az is garantált, hogy a támadó nem tudja azt hamis adatokkal kicserélni. Továbbá maga a visszavonási lista is alá van írva a tanúsítványkiadó által, ezért azt is közel lehetetlen hamisítani.

Időpecsételés

Létezik még egy fontos szolgáltatás. Az időpecsételés által, az időpecsét szolgáltató az időpecsételendő adatokból nyert ujjlenyomatot és a pecsétkéréskor aktuális időt a saját aláírásával egyszerre hitelesíti, és erről külön előállít egy időpecsét állományt. Ezzel a szolgáltatással lehetőség nyílik egyes események bekövetkeztének pontos idejét igazolni. Például ellenőrizhető az, hogy egy szerződést nem visszadátumozva készít el az egyébként jogosan digitálisan aláíró személy.

Leave a comment
More Posts
Comments
Comment