PIN-kod ( engelsk Personal Identification Number - personligt identifieringsnummer) - en analog till ett lösenord . Under auktorisering av operationen används den både som ett lösenord för kortinnehavarens åtkomst till terminalen (ATM) och som en hemlig nyckel för digital signering av begäran. PIN-kod tillhandahålls för kreditkort och liknande kort (till exempel SIM-kort ); den används för att auktoriserakorthållare. PIN-koden ska endast vara känd för kortinnehavaren. Vanligtvis är försök att komma in korrekt begränsat (oftast inte mer än 3 gånger), varefter kortet spärras för användning. Mycket ofta används förkortningen PIN med prefixkoden, vilket är felaktigt, eftersom PIN är ett nummer och "nummer" och "kod" är i själva verket synonymer. Detta problem kallas RAS-syndrom .
I mobiltelefoner måste du för att låsa upp PIN-koden ange den så kallade PUK (kallas ibland PUC-koden). Följaktligen kräver PIN1 PUK1 och PIN2 kräver PUK2. Om PUK-koden skrivs in felaktigt 10 gånger spärras SIM-kortet permanent.
I banktillämpningar kan PIN-koden genereras med IBM 3624-algoritmerna (en deterministisk kryptoalgoritm som använder PAN som indata) eller verifieras med VISA PVV-algoritmen. Den andra algoritmen tillåter i princip situationer där inte bara den enda PIN-koden som ställts in av banken, utan även flera andra (i 40% av fallen) kan klara kontrollen. I genomsnitt kan ett testvärde för PVV motsvara 1,58 olika PIN-koder, så systemets säkerhet minskar inte från denna effekt [1] [2] [3] .
2006 lanserades ett rykte om att om man anger en PIN-kod i en bankomat i omvänd riktning automatiskt ringer polisen. I praktiken har sådana system, såsom ATM SafetyPIN-programvara , inte använts [4] [5] [6] .
PIN utvecklades och patenterades av den skotske ingenjören James Goodfellow 1965. . Han utvecklade en anordning för automatiserad utgivning av pengar genom att acceptera ett kartongkort (informationen var ett område markerat med radioaktivt kol-14), som hade en knappsats för att ange en PIN-kod.
ISO 9564-standarden är en internationell PIN-standard som definierar de grundläggande bestämmelserna för dess användning.
Grundläggande principer för att använda PIN:
Standarden fastställer också några funktioner hos PIN-inmatningsenheten:
Verifiering är en verifiering av överensstämmelsen mellan PIN-koden och kortnumret. Denna korrespondens är inte en-till-en (det räcker med att komma ihåg att längden på PIN-koden kan vara 4 siffror, medan antalet siffror i kortnumret är 16). Dessutom kan olika PIN-kodvärden motsvara ett kortnummer. Kravet för att matcha kortnumret och PIN-koden är som följer: för ett godtyckligt kortnummer måste uppsättningen av PIN-kodvärden som motsvarar detta kort vara sådan att sannolikheten att gissa denna PIN-kod är låg. Det finns två vanliga PIN-generering/verifieringsmetoder baserade på IBM 3624 och VISA PIN-algoritmer.
IBM 3624-Offset-algoritmen skapades för den första generationen av ATM och blev därför allmänt använd.
Det speciella med metoden är att även avstängd ATM kunde verifiera PIN-koden utan behov av datorer och lagring för att hantera databaser med användaruppgifter. Istället kan kundens PIN-kod genereras från ett kortnummer krypterat med en hemlig nyckel.
Algoritm: kortnumret (16 siffror) tas och krypteras med DES. Efter kryptering slängs alla siffror utom de fyra första. De kan dock vara ' A' -' F'- värden , som inte är acceptabla för standarduttagsautomatlayouten. En decimaliseringstabell tillämpas på dessa värden. Det resulterande värdet kallas PIN Natural.
Decimiliseringstabell:
0123456789ABCDEF
0123456789012345
För att erhålla PIN-värdet läggs PIN Natural-siffrorna till modulo 10 med motsvarande siffror i PIN Offset-värdet, som är en godtycklig sekvens av 4 siffror. PIN Offset-värdet kan skrivas på kortets magnetremsa eller lagras i emittentens databas.
Exempel:
Kortnummer 4556 2385 7753 2239
Kortnummer efter DES-kryptering 3F7C 2201 00CA 8AB3
Enligt algoritmen lämnar vi de fyra första siffrorna 3F7C
Enligt decimaliseringstabellen får vi Natural PIN 3572
PIN-förskjutning 4344
Slutlig PIN-kod 7816
Verifieringen av PIN-koden som angetts av kortinnehavaren utförs av PIN Offset och kortnumret. Det är lätt att se att PIN-värdet helt bestäms av kortnumret och PIN Offset-värdet. Sannolikheten att gissa PIN-koden vid första försöket är 0,0001 [8] .
VISA-algoritmen används av många banksystem och är inte bara tillämplig på VISA-kort.
Denna algoritm genererar en PVV (PIN-verifieringsvärde) baserat på TSP (transformerad säkerhetsparameter). PVV, liknande PIN Offset, kan lagras på kortets magnetremsa eller i emittentens databas. Användaren anger en PIN-kod, som krypteras av ATM och skickas till bearbetning med kortdata, där PVV beräknas utifrån den inmatade PIN-koden och jämförs med värdet på magnetremsan.
Beräkningen av PVV utförs enligt följande algoritm:
Den är baserad på en 64-bitars TSP-sträng, som är 16 hexadecimala tecken, som inkluderar (från vänster till höger):
PAN 12 - 12 höger siffror[ vad? ] förutom siffran längst till höger, som är kontrollnumret.
PAN 12 läses från vänster till höger.
PVKI ( PIN Verification Key Index ) - ett nummer från 1 till 6 väljs av krypteringsnyckeln
PIN-kod - 4 siffror
Exempel :
PAN: 1234 5678 9012 3445 PVKI: 1 PIN: 9090 TSP: 5678901234419090
TSP är krypterad med 3Des-algoritmen (effektiv nyckellängd 112 bitar). Efter kryptering får vi en sträng med en längd på 64 bitar, vilket motsvarar 16 hexadecimala tecken. Därefter bildas PVV:
Den hexadecimala strängen skannas från vänster till höger. Decimalsiffror väljs och lagras i PVV tills 4 siffror hittas.
Om mindre än fyra siffror hittas efter den första skanningen kommer endast hexadecimala siffror att väljas under den andra skanningen, som omvandlas till decimaler genom att subtrahera 10.
Exempel :
3DES-utgång: 0FAB9CDEFFE7DCBA
PVV: 0975 (0, 9, 7, F=5)
Skillnaden mellan dessa algoritmer ligger i det faktum att IBM-algoritmen är en algoritm för att både generera och verifiera en PIN-kod, medan PVV-algoritmen endast bestämmer verifiering [9] .
Med IBM 3624 har varje kortnummer ett enda PIN-värde.
Med VISA PVV-algoritmen är PIN-koden en slumpmässig variabel och beror inte på kortnumret. Det är lätt att räkna ut att i fallet med att välja en PIN-kod för varje kortnummer enligt en lika sannolik lag, motsvarar detta PVV-värde minst två PIN-värden med en sannolikhet på 42%. Samtidigt är det genomsnittliga antalet injektionsmissbrukare som motsvarar ett givet PVV-värde 1,58. Det vill säga, när du använder VISA PVV är sannolikheten att gissa en PIN-kod 1,58 gånger högre än i fallet med IBM 3624. Men när det gäller den erforderliga mängden uppräkning av möjliga PIN-koder i ordning, förblir den densamma.
Enligt kraven i internationella betalningssystem ska PIN-kodens värde inte lagras (ens i skyddad form) vare sig i serviceterminalerna eller på emittentens hosting.
Det finns flera möjligheter för utfärdaren att återställa PIN-koden med hjälp av den information den har.
Om PIN Offset/PVV lagras på en magnetremsa, kommer emittenten uppenbarligen inte att kunna återställa PIN-koden. Därför rekommenderas förvaring på en magnetremsa och minskar risken för kompromisser från bankpersonal.
När du lagrar PIN Offset/PVV i bankens databas med hjälp av IBM 3624 kan emittenten enkelt beräkna kortets PIN. När det gäller VISA-algoritmen kan utfärdaren välja PIN-kodsvärdet som motsvarar PVV-värdet lagrat i databasen genom att räkna upp 10 000 värden.
År 2002 upptäckte studenter vid University of Cambridge attacken med decimaliseringstabellen [8] .
PIN-koden för bankkort genereras genom att kortnumret krypteras. Det krypterade numret är ett hexadecimalt värde och de första fyra siffrorna tas. En decimaliseringstabell används för att konvertera detta värde till decimal genom att konvertera A till 0, B till 1, etc. Dessa tabeller betraktas inte som konfidentiella hårdvarumoduler och kan tillhandahållas tillsammans med kortnumret. Genom att manipulera innehållet i tabellen blir det möjligt att lära sig mer om innebörden av PIN-koden än genom att utesluta enskilda kombinationer. Till exempel om tabellen används
0123456789ABCDEF
0000000100000000,
matchning med PIN 0000 kommer att bekräfta att PIN-koden inte innehåller siffran 7, vilket utesluter mer än 10 % av alla möjliga kombinationer. Det genomsnittliga antalet försök som krävs för att gissa PIN-koden är 15.
Om PIN-koden skrivs in felaktigt tre gånger spärras SIM-kortet tills rätt PUC ( Personal Unblocking Code ) matas in , vilket ger tio försök att komma in. Om PUC skrivs in felaktigt kommer SIM-kortet att blockeras permanent.
Om PIN Offset/PVV lagras på en magnetremsa kommer det inte att vara möjligt att ändra PIN-koden i bankomaten, eftersom ändring av PIN-koden kommer att resultera i en ändring av PIN Offset/PVV. När det lagras i databasen är det inga problem att ändra PIN-koden, eftersom PIN Offset/PVV-värdena i detta fall kommer att beräknas för den nya PIN-koden och placeras i databasen istället för de tidigare värdena.
Många bilradioapparater använder ett kodinmatningssystem efter ett fullständigt strömavbrott, vilket syftar till att förhindra användning av stulen utrustning. Bilradiokoden tilldelas på fabriken eller anges av användaren när den är installerad. Om koden matas in felaktigt flera gånger i rad är radion blockerad ett tag eller för alltid.