PIN kód ( angol Personal Identification Number - személyi azonosító szám) - a jelszó analógja . A művelet engedélyezése során a kártyabirtokos terminálhoz (ATM) való hozzáféréséhez jelszóként és a kérelem digitális aláírásának titkos kulcsaként is szolgál . A PIN-kódot hitel- és hasonló kártyákhoz (például SIM-kártyákhoz ) biztosítjuk; a kártyabirtokos felhatalmazására szolgál . A PIN kódot csak a kártyabirtokos ismerheti. Általában a helyes beviteli kísérletek korlátozottak (legfeljebb 3-szor), ezután a kártya használata letiltásra kerül. Nagyon gyakran a PIN rövidítést használják az előtagkóddal, ami helytelen, mivel a PIN egy szám, a „szám” és a „kód” pedig valójában szinonimák. Ezt a problémát RAS-szindrómának nevezik .
Mobiltelefonokban a PIN-kód feloldásához meg kell adni az úgynevezett PUK kódot (ezt néha PUC kódnak is hívják). Ennek megfelelően a PIN1 kódhoz PUK1, a PIN2-hez pedig PUK2 szükséges. Ha a PUK-kódot tízszer hibásan adja meg, a SIM-kártya véglegesen blokkolva lesz.
Banki alkalmazásokban a PIN-kód előállítható IBM 3624 algoritmusokkal (determinisztikus titkosítási algoritmus, amely PAN-t használ bemenetként), vagy ellenőrizhető a VISA PVV algoritmussal. A második algoritmus elvileg olyan helyzetekre ad lehetőséget, amikor nem csak a bank által beállított egyetlen PIN, hanem több másik is (az esetek 40%-ában) átmegy az ellenőrzésen. A PVV egy tesztértéke átlagosan 1,58 különböző PIN-nek felelhet meg, így a rendszer biztonsága ettől a hatástól nem csökken [1] [2] [3] .
2006-ban felröppent egy pletyka, miszerint az ATM-nél fordított PIN kód beírása automatikusan hívja a rendőrséget. A gyakorlatban nem használtak ilyen rendszereket, mint például az ATM SafetyPIN szoftver [4] [5] [6] .
A PIN kódot James Goodfellow skót mérnök fejlesztette ki és szabadalmaztatta 1965-ben. . Készüléket fejlesztett ki automatizált pénzkibocsátásra egy kartonkártya elfogadásával (amelyen egy radioaktív szén-14-gyel jelölt terület volt az információ), amelyen PIN-kód beírására alkalmas billentyűzet volt.
Az ISO 9564 szabvány egy nemzetközi PIN-szabvány, amely meghatározza használatának alapvető feltételeit.
A PIN-kód használatának alapelvei:
A szabvány a PIN-beviteli eszköz néhány funkcióját is meghatározza:
Az ellenőrzés a PIN kód és a kártyaszám közötti megfelelés ellenőrzése. Ez a levelezés nem egy az egyhez (elég felidézni, hogy a PIN kód hossza 4 számjegy lehet, míg a kártyaszám számjegyeinek száma 16). Ezenkívül egy kártyaszámnak különböző PIN-kód értékek felelhetnek meg. A kártyaszám és a PIN-kód egyeztetésének követelménye a következő: tetszőleges kártyaszám esetén az ehhez a kártyához tartozó PIN kód értékkészletének olyannak kell lennie, hogy kicsi a valószínűsége ennek a PIN-kódnak a kitalálásának. Két általános PIN előállítási/ellenőrzési módszer létezik, amelyek az IBM 3624 és a VISA PIN-algoritmusokon alapulnak.
Az IBM 3624-Offset algoritmust az ATM első generációjához hozták létre, és így széles körben elterjedt.
A módszer sajátossága, hogy még a kikapcsolt ATM is képes volt ellenőrizni a PIN-kódot anélkül, hogy számítógépre és tárhelyre lett volna szükség a felhasználói rekordok adatbázisainak kezeléséhez. Ehelyett az ügyfél PIN kódja előállítható egy titkos kulccsal titkosított kártyaszámból.
Algoritmus: a kártyaszám (16 számjegy) felvétele és titkosítása DES segítségével történik. A titkosítás után az első négy kivételével minden számjegyet el kell dobni. Lehetnek azonban " A" - " F" értékek , amelyek nem elfogadhatók a szabványos ATM-elrendezésben. Ezekre az értékekre egy decimalizációs tábla kerül alkalmazásra. Az így kapott értéket PIN Natural-nak nevezzük.
Decimilációs táblázat:
0123456789ABCDEF
0123456789012345
A PIN-érték megszerzéséhez a PIN természetes számjegyei modulo 10-ként hozzáadódnak a megfelelő számjegyekhez a PIN-eltolás értékéhez, amely egy tetszőleges 4 számjegyből álló sorozat. A PIN Offset értéke felírható a kártya mágnescsíkjára, vagy eltárolható a kibocsátó adatbázisában.
Példa:
Kártyaszám 4556 2385 7753 2239
Kártyaszám DES titkosítás után 3F7C 2201 00CA 8AB3
Az algoritmus szerint meghagyjuk az első négy számjegyet 3F7C
A decimalizációs táblázat szerint a Natural PIN 3572 kódot kapjuk
PIN-eltolás 4344
Végső PIN 7816
A kártyabirtokos által beírt PIN kód ellenőrzése a PIN Offset és a kártyaszám alapján történik. Könnyen belátható, hogy a PIN-kódot teljes mértékben a kártyaszám és a PIN-eltolás értéke határozza meg. A PIN-kód kitalálásának valószínűsége az első próbálkozásra 0,0001 [8] .
A VISA algoritmust számos bankrendszer használja, és nem csak VISA típusú kártyákra alkalmazható.
Ez az algoritmus egy PVV-t (PIN-ellenőrzési értéket) állít elő a TSP (transzformált biztonsági paraméter) alapján. A PVV, hasonlóan a PIN Offsethez, a kártya mágnescsíkján vagy a kibocsátó adatbázisában tárolható. A felhasználó beír egy PIN kódot, amelyet ATM titkosít, és a kártyaadatokkal együtt feldolgozásra küldi, ahol a beírt PIN kód alapján kiszámítja a PVV-t és összehasonlítja a mágnescsíkon található értékkel.
A PVV kiszámítása a következő algoritmus szerint történik:
Egy 64 bites TSP karakterláncon alapul, amely 16 hexadecimális karakterből áll, amely tartalmazza (balról jobbra):
PAN 12 - 12 jobb oldali számjegy[ mi? ] , kivéve a jobb szélső számjegyet, amely a vezérlőszám.
A PAN 12 balról jobbra olvassa be.
PVKI ( PIN Verification Key Index ) – a titkosítási kulcs egy 1-től 6-ig terjedő számot választ ki
PIN kód - 4 számjegy
Példa :
PAN: 1234 5678 9012 3445 PVKI: 1 PIN: 9090 TSP: 5678901234419090
A TSP-t a 3Des algoritmus titkosítja (effektív kulcshossz 112 bit). A titkosítás után egy 64 bites karakterláncot kapunk, ami 16 hexadecimális karakternek felel meg. Ezután PVV jön létre:
A hexadecimális karakterláncot balról jobbra szkenneli. A tizedesjegyek kiválasztása és tárolása a PVV-ben történik, amíg meg nem találja a 4 számjegyet.
Ha az első letapogatás után négynél kevesebb számjegyet talál, akkor a második letapogatás során csak hexadecimális számjegyek kerülnek kiválasztásra, amelyeket 10 kivonásával decimálissá alakítanak át.
Példa :
3DES kimenet: 0FAB9CDEFFE7DCBA
PVV: 0975 (0, 9, 7, F=5)
Ezen algoritmusok közötti különbség abban rejlik, hogy az IBM algoritmus egy PIN kód generálására és ellenőrzésére egyaránt alkalmas, míg a PVV algoritmus csak az ellenőrzést határozza meg [9] .
Az IBM 3624 esetében minden kártyaszám egyetlen PIN-kóddal rendelkezik.
A VISA PVV algoritmusnál a PIN véletlenszerű változó, és nem függ a kártyaszámtól. Könnyen kiszámítható, hogy minden kártyaszámhoz egy kiegyenlíthető törvény szerint PIN-kód kiválasztása esetén ez a PVV-érték legalább két PIN-értéknek felel meg 42%-os valószínűséggel. Ugyanakkor az adott PVV-értéknek megfelelő intravénás kábítószer-használók átlagos száma 1,58. Vagyis a VISA PVV használatakor a PIN-kód kitalálásának valószínűsége 1,58-szor nagyobb, mint az IBM 3624 esetében. A lehetséges PIN-kódok sorrendben történő felsorolásának szükséges mennyiségét tekintve azonban ez változatlan marad.
A nemzetközi fizetési rendszerek követelményei szerint a PIN-kód értéke nem tárolható (még védett formában sem) sem a szolgáltató terminálokon, sem a kibocsátó tárhelyén.
A kibocsátónak számos lehetősége van a PIN-kód visszaállítására a birtokában lévő adatok felhasználásával.
Ha a PIN-eltolás/PVV mágnescsíkon van tárolva, a kibocsátó nyilvánvalóan nem tudja visszaállítani a PIN-kódot. Ezért a mágnescsíkon történő tárolás javasolt, és csökkenti a banki személyzet kompromisszumának lehetőségét.
A PIN-eltolás/PVV-nek a bank adatbázisában az IBM 3624 segítségével történő tárolásakor a kibocsátó könnyen kiszámíthatja a kártya PIN-kódját. A VISA algoritmus esetén a kibocsátó 10 000 érték felsorolásával választhatja ki az adatbázisban tárolt PVV értéknek megfelelő PIN kód értéket.
2002-ben a Cambridge-i Egyetem hallgatói felfedezték a decimalizációs táblázat támadást [8] .
A bankkártyák PIN kódja a kártyaszám titkosításával jön létre. A titkosított szám hexadecimális érték, és a rendszer az első négy számjegyet veszi. Egy tizedesjegy-táblázatot használnak ennek az értéknek decimálissá konvertálására úgy, hogy A-t 0-ra, B-t 1-re stb. konvertálnak. Ezek a táblázatok nem minősülnek bizalmas hardvermodulnak, és a kártyaszámmal együtt megadhatók. A táblázat tartalmának manipulálásával lehetővé válik, hogy többet megtudjunk a PIN kód jelentéséről, mint az egyes kombinációk kizárásával. Például, ha a táblázatot használják
0123456789ABCDEF
0000000100000000,
A 0000 PIN-kóddal való egyeztetés megerősíti, hogy a PIN-kód nem tartalmazza a 7-es számot, ami az összes lehetséges kombináció több mint 10%-át kizárja. A PIN-kód kitalálásához szükséges kísérletek átlagos száma 15.
Ha a PIN kódot háromszor hibásan adja meg , a SIM-kártya blokkolva lesz mindaddig, amíg meg nem adja a helyes PUC-kódot ( Personal Unblocking Code ) , amely tíz beviteli kísérletet tesz lehetővé. Ha a PUC-t helytelenül adja meg, a SIM-kártya véglegesen blokkolva lesz.
Ha a PIN-eltolás/PVV mágnescsíkon van eltárolva, akkor az ATM-nél nem lehet megváltoztatni a PIN-kódot, mivel a PIN megváltoztatása a PIN-eltolás/PVV változását eredményezi. Az adatbázisban tárolva nem okoz gondot a PIN megváltoztatása, mert ebben az esetben a rendszer az új PIN-hez a PIN Offset/PVV értékeket számítja ki és helyezi el az adatbázisban a korábbi értékek helyett.
Sok autórádió a teljes áramszünet után kódbeviteli rendszert használ, melynek célja az ellopott berendezések használatának megakadályozása. Az autórádió kódját gyárilag hozzárendelik, vagy a felhasználó adja meg a telepítéskor. Ha a kódot többször egymás után hibásan írják be, akkor a rádió egy időre vagy örökre le van tiltva.