PIN kód ( anglicky Personal Identification Number - osobní identifikační číslo) - obdoba hesla . Při autorizaci operace se používá jednak jako heslo pro přístup držitele karty k terminálu (ATM) a jednak jako tajný klíč pro digitální podpis požadavku. PIN je poskytován pro kreditní a podobné karty (například SIM karty ); slouží k autorizaci držitele karty. PIN by měl znát pouze držitel karty. Obvykle jsou pokusy o správné zadání omezeny (většinou ne více než 3x), poté je karta zablokována pro použití. Velmi často se zkratka PIN používá s předčíslím, což je nesprávné, protože PIN je číslo a „číslo“ a „kód“ jsou ve skutečnosti synonyma. Tento problém se nazývá RAS syndrom .
V mobilních telefonech je k odemknutí PIN potřeba zadat tzv. PUK (někdy nazývaný PUC kód). Proto PIN1 vyžaduje PUK1 a PIN2 vyžaduje PUK2. Pokud je kód PUK zadán 10krát nesprávně, SIM karta se trvale zablokuje.
V bankovních aplikacích lze PIN vygenerovat pomocí algoritmů IBM 3624 (deterministický kryptoalgoritmus využívající jako vstup PAN) nebo ověřit pomocí algoritmu VISA PVV. Druhý algoritmus v zásadě umožňuje situace, kdy kontrolou může projít nejen jediný PIN nastavený bankou, ale i několik dalších (ve 40 % případů). V průměru může jedna testovací hodnota PVV odpovídat 1,58 různým PINům, takže bezpečnost systému tímto efektem neklesá [1] [2] [3] .
V roce 2006 se objevila fáma, že zadávání PIN u bankomatu obráceným způsobem automaticky přivolá policii. V praxi se takové systémy, jako je software ATM SafetyPIN , nepoužívaly [4] [5] [6] .
PIN byl vyvinut a patentován skotským inženýrem Jamesem Goodfellowem v roce 1965. . Vyvinul zařízení pro automatizované vydávání peněz akceptováním kartonové karty (informace na ní byla oblast označená radioaktivním uhlíkem-14), která měla klávesnici pro zadání PIN.
Norma ISO 9564 je mezinárodní standard PIN, který definuje základní ustanovení pro jeho použití.
Základní principy používání PIN:
Norma také stanoví některé funkce zařízení pro vkládání PIN:
Verifikace je ověření shody mezi PIN kódem a číslem karty. Tato korespondence není individuální (stačí si připomenout, že délka PIN může být 4 číslice, zatímco počet číslic v čísle karty je 16). Jednomu číslu karty mohou také odpovídat různé hodnoty PIN kódu. Požadavek na shodu čísla karty a PIN kódu je následující: pro libovolné číslo karty musí být sada hodnot PIN kódu odpovídající této kartě taková, aby pravděpodobnost uhodnutí tohoto PIN byla nízká. Existují dvě běžné metody generování/ověření PIN založené na algoritmech IBM 3624 a VISA PIN.
Algoritmus IBM 3624-Offset byl vytvořen pro první generaci ATM a stal se tak široce používaným.
Zvláštností metody je, že i vypnutý bankomat dokázal ověřit PIN bez potřeby počítačů a úložišť pro správu databází uživatelských záznamů. Místo toho lze PIN zákazníka vygenerovat z čísla karty zašifrovaného tajným klíčem.
Algoritmus: číslo karty (16 číslic) je převzato a zašifrováno pomocí DES. Po zašifrování jsou všechny číslice kromě prvních čtyř zahozeny. Mohou to však být hodnoty ' A' -'F ' , které nejsou přijatelné pro standardní uspořádání bankomatů. Na tyto hodnoty se použije decimalizační tabulka. Výsledná hodnota se nazývá PIN Natural.
Decimilizační tabulka:
0123456789ABCDEF
0123456789012345
Pro získání hodnoty PIN jsou přirozené číslice PIN přidány modulo 10 s odpovídajícími číslicemi v hodnotě PIN Offset, což je libovolná sekvence 4 číslic. Hodnotu PIN Offset lze zapsat na magnetický proužek karty nebo uložit do databáze vydavatele.
Příklad:
Číslo karty 4556 2385 7753 2239
Číslo karty po šifrování DES 3F7C 2201 00CA 8AB3
Podle algoritmu ponecháme první čtyři číslice 3F7C
Podle decimalizační tabulky získáme Natural PIN 3572
Offset PIN 4344
Konečný PIN 7816
Ověření PIN kódu zadaného držitelem karty se provádí pomocí PIN Offsetu a čísla karty. Je snadné vidět, že hodnota PIN je zcela určena číslem karty a hodnotou PIN Offset. Pravděpodobnost uhodnutí PINu na první pokus je 0,0001 [8] .
Algoritmus VISA je používán mnoha bankovními systémy a je použitelný nejen pro karty typu VISA.
Tento algoritmus generuje PVV (hodnota ověření PIN) na základě TSP (transformovaný bezpečnostní parametr). PVV, podobně jako PIN Offset, lze uložit na magnetický proužek karty nebo do databáze vydavatele. Uživatel zadá PIN kód, který je zašifrován ATM a odeslán ke zpracování s údaji o kartě, kde se na základě zadaného PIN kódu vypočítá PVV a porovná se s hodnotou na magnetickém proužku.
Výpočet PVV se provádí podle následujícího algoritmu:
Je založen na 64bitovém řetězci TSP, což je 16 hexadecimálních znaků, které zahrnují (zleva doprava):
PAN 12 - 12 pravých číslic[ co? ] kromě číslice úplně vpravo, což je kontrolní číslo.
PAN 12 se čte zleva doprava.
PVKI ( PIN Verification Key Index ) - číslo od 1 do 6 je vybráno šifrovacím klíčem
PIN kód - 4 číslice
Příklad :
PAN: 1234 5678 9012 3445 PVKI: 1 PIN: 9090 TSP: 5678901234419090
TSP je šifrováno pomocí algoritmu 3Des (efektivní délka klíče 112 bitů). Po zašifrování získáme řetězec o délce 64 bitů, což odpovídá 16 hexadecimálním znakům. Dále se tvoří PVV:
Hexadecimální řetězec je skenován zleva doprava. Vyberou se desetinné číslice a uloží se do PVV, dokud nebudou nalezeny 4 číslice.
Pokud je po prvním skenování nalezeno méně než čtyři číslice, budou během druhého skenování vybrány pouze hexadecimální číslice, které se převedou na desítkové odečtením 10.
Příklad :
Výstup 3DES: 0FAB9CDEFFE7DCBA
PVV: 0975 (0, 9, 7, F=5)
Rozdíl mezi těmito algoritmy spočívá v tom, že algoritmus IBM je algoritmem pro generování i ověřování PIN kódu, zatímco algoritmus PVV určuje pouze ověření [9] .
U IBM 3624 má každé číslo karty jednu hodnotu PIN.
U algoritmu VISA PVV je PIN náhodná proměnná a nezávisí na čísle karty. Je snadné spočítat, že v případě volby PINu pro každé číslo karty podle ekvipravděpodobného zákona tato hodnota PVV odpovídá minimálně dvěma hodnotám PIN s pravděpodobností 42%. Průměrný počet injekčních uživatelů drog odpovídající dané hodnotě PVV je přitom 1,58. Tzn., že při použití VISA PVV je pravděpodobnost uhodnutí PIN kódu 1,58x vyšší než v případě IBM 3624. Z hlediska potřebného množství výčtu možných PINů v pořadí však zůstává stejná.
Podle požadavků mezinárodních platebních systémů by hodnota PIN-kódu neměla být ukládána (ani v chráněné podobě) ani na servisních terminálech, ani na hostingu vydavatele.
Vydavatel má několik možností, jak obnovit PIN kód pomocí dat, která má.
Pokud je PIN Offset/PVV uložen na magnetickém proužku, vydavatel zjevně nebude schopen PIN obnovit. Proto se doporučuje skladování na magnetickém proužku a snižuje možnost kompromitace ze strany personálu banky.
Při ukládání PIN Offset/PVV do databáze banky pomocí IBM 3624 si vydavatel snadno spočítá PIN karty. V případě algoritmu VISA může vydavatel vybrat hodnotu PIN kódu odpovídající hodnotě PVV uložené v databázi výčtem 10 000 hodnot.
V roce 2002 objevili studenti na univerzitě v Cambridge útok na decimalizační tabulku [8] .
PIN kód pro bankovní karty je generován zašifrováním čísla karty. Šifrované číslo je hexadecimální hodnota a berou se první čtyři číslice. K převodu této hodnoty na desítkové se používá decimalizační tabulka převodem A na 0, B na 1 atd. Tyto tabulky nejsou považovány za důvěrné hardwarové moduly a mohou být poskytnuty spolu s číslem karty. Manipulací s obsahem tabulky je možné dozvědět se více o významu PIN kódu než vyloučením jednotlivých kombinací. Například pokud se použije tabulka
0123456789ABCDEF
0000000100000000,
spárování s PIN 0000 potvrdí, že PIN neobsahuje číslici 7, což vylučuje více než 10 % všech možných kombinací. Průměrný počet pokusů potřebných k uhodnutí PINu je 15.
Pokud je PIN kód třikrát zadán nesprávně , SIM karta se zablokuje, dokud není zadán správný PUC ( Personal Unblocking Code ) , který poskytuje deset pokusů o zadání. Pokud je PUC zadáno nesprávně, SIM karta bude trvale zablokována.
Pokud je PIN Offset/PVV uložen na magnetickém proužku, nebude možné PIN změnit v bankomatu, protože změna PIN bude mít za následek změnu PIN Offsetu/PVV. Při uložení do databáze není problém PIN změnit, protože v tomto případě budou hodnoty PIN Offset/PVV vypočteny pro nový PIN a umístěny do databáze místo předchozích hodnot.
Mnoho autorádií používá po úplném výpadku proudu systém zadávání kódu, který má za cíl zabránit použití odcizených zařízení. Kód autorádia je přidělen z výroby nebo zadává uživatel při jeho instalaci. Pokud je kód zadán nesprávně několikrát za sebou, rádio se na chvíli nebo navždy zablokuje.