PIN-kode ( engelsk Personal Identification Number - personligt identifikationsnummer) - en analog af en adgangskode . Under autorisation af operationen bruges den både som adgangskode til kortholders adgang til terminalen (ATM) og som hemmelig nøgle til digital signering af anmodningen. PIN er angivet til kredit og lignende kort (for eksempel SIM-kort ); det bruges til at autorisere kortholderen. PIN-koden bør kun være kendt af kortholderen. Normalt er forsøg på at indtaste korrekt begrænset (for det meste ikke mere end 3 gange), hvorefter kortet spærres for brug. Meget ofte bruges forkortelsen PIN med præfikskoden, hvilket er forkert, da PIN er et tal, og "nummer" og "kode" i virkeligheden er synonymer. Dette problem kaldes RAS syndrom .
I mobiltelefoner skal du indtaste den såkaldte PUK for at låse PIN-koden op (nogle gange kaldet PUC-koden). Derfor kræver PIN1 PUK1, og PIN2 kræver PUK2. Hvis PUK-koden indtastes forkert 10 gange, spærres SIM-kortet permanent.
I bankapplikationer kan PIN-koden genereres ved hjælp af IBM 3624-algoritmerne (en deterministisk kryptoalgoritme, der bruger PAN som input) eller verificeres ved hjælp af VISA PVV-algoritmen. Den anden algoritme tillader i princippet situationer, hvor ikke kun den eneste PIN-kode, der er indstillet af banken, men også flere andre (i 40% af tilfældene) kan bestå kontrollen. I gennemsnit kan en testværdi af PVV svare til 1,58 forskellige PIN-koder, så systemets sikkerhed falder ikke af denne effekt [1] [2] [3] .
I 2006 blev der lanceret et rygte om, at indtastning af en pinkode i en hæveautomat automatisk ville ringe til politiet. I praksis er sådanne systemer, såsom ATM SafetyPIN-software , ikke blevet brugt [4] [5] [6] .
PIN blev udviklet og patenteret af den skotske ingeniør James Goodfellow i 1965. . Han udviklede en enhed til automatisk udstedelse af penge ved at acceptere et papkort (hvor informationen var et område markeret med radioaktivt kulstof-14), som havde et tastatur til at indtaste en PIN-kode.
ISO 9564-standarden er en international PIN-standard, der definerer de grundlæggende bestemmelser for dens brug.
Grundlæggende principper for brug af PIN:
Standarden etablerer også nogle funktioner i PIN-indtastningsenheden:
Verifikation er en verifikation af overensstemmelsen mellem PIN-koden og kortnummeret. Denne korrespondance er ikke en-til-en (det er tilstrækkeligt at huske, at længden af PIN-koden kan være 4 cifre, mens antallet af cifre i kortnummeret er 16). Forskellige PIN-kodeværdier kan også svare til ét kortnummer. Kravet til at matche kortnummeret og PIN-koden er som følger: For et vilkårligt kortnummer skal det sæt af PIN-kodeværdier, der svarer til dette kort, være sådan, at sandsynligheden for at gætte denne PIN-kode er lav. Der er to almindelige PIN-generering/bekræftelsesmetoder baseret på IBM 3624 og VISA PIN-algoritmerne.
IBM 3624-Offset-algoritmen blev skabt til den første generation af ATM og blev derfor meget brugt.
Det særlige ved metoden er, at selv slukket ATM var i stand til at bekræfte PIN-koden uden behov for computere og lager til at administrere databaser med brugerregistreringer. I stedet kan kundens pinkode genereres ud fra et kortnummer krypteret med en privat nøgle.
Algoritme: kortnummeret (16 cifre) tages og krypteres ved hjælp af DES. Efter kryptering kasseres alle cifre undtagen de første fire. De kan dog være ' A' -' F'- værdier , som ikke er acceptable for standard ATM-layoutet. En decimaliseringstabel anvendes på disse værdier. Den resulterende værdi kaldes PIN Natural.
Decimiliseringstabel:
0123456789ABCDEF
0123456789012345
For at opnå PIN-værdien tilføjes PIN-natur-cifrene modulo 10 med de tilsvarende cifre i PIN-forskydningsværdien, som er en vilkårlig sekvens på 4 cifre. PIN Offset-værdien kan skrives på kortets magnetstribe eller gemmes i udsteders database.
Eksempel:
Kortnummer 4556 2385 7753 2239
Kortnummer efter DES-kryptering 3F7C 2201 00CA 8AB3
Ifølge algoritmen forlader vi de første fire cifre 3F7C
Ifølge decimaliseringstabellen får vi Natural PIN 3572
PIN-offset 4344
Endelig pinkode 7816
Verifikationen af den PIN-kode, som kortholderen indtaster, udføres af PIN-offset og kortnummeret. Det er let at se, at PIN-værdien er fuldstændig bestemt af kortnummeret og PIN-offset-værdien. Sandsynligheden for at gætte pinkoden ved første forsøg er 0,0001 [8] .
VISA-algoritmen bruges af mange banksystemer og gælder ikke kun for kort af typen VISA.
Denne algoritme genererer en PVV (PIN-verifikationsværdi) baseret på TSP (transformeret sikkerhedsparameter). PVV, svarende til PIN Offset, kan gemmes på kortets magnetstribe eller i udstederens database. Brugeren indtaster en PIN-kode, som krypteres af ATM og sendes til behandling med kortdataene, hvor PVV beregnes ud fra den indtastede PIN-kode og sammenlignes med værdien på magnetstriben.
Beregningen af PVV udføres i henhold til følgende algoritme:
Den er baseret på en 64-bit TSP-streng, som er på 16 hexadecimale tegn, som inkluderer (fra venstre mod højre):
PAN 12 - 12 højre cifre[ hvad? ] bortset fra cifferet længst til højre, som er kontrolnummeret.
PAN 12 læses fra venstre mod højre.
PVKI ( PIN Verification Key Index ) - et tal fra 1 til 6 vælges af krypteringsnøglen
PIN-kode - 4 cifre
Eksempel :
PAN: 1234 5678 9012 3445 PVKI: 1 PIN: 9090 TSP: 5678901234419090
TSP er krypteret med 3Des-algoritmen (effektiv nøglelængde 112 bit). Efter kryptering får vi en streng med en længde på 64 bit, hvilket svarer til 16 hexadecimale tegn. Dernæst dannes PVV:
Den hexadecimale streng scannes fra venstre mod højre. Decimalcifre vælges og gemmes i PVV indtil 4 cifre er fundet.
Hvis der findes mindre end fire cifre efter den første scanning, vil kun hexadecimale cifre blive valgt under den anden scanning, som konverteres til decimal ved at trække 10 fra.
Eksempel :
3DES udgang: 0FAB9CDEFFE7DCBA
PVV: 0975 (0, 9, 7, F=5)
Forskellen mellem disse algoritmer ligger i, at IBM-algoritmen er en algoritme til både at generere og verificere en PIN-kode, mens PVV-algoritmen kun bestemmer verifikation [9] .
Med IBM 3624 har hvert kortnummer en enkelt PIN-værdi.
Med VISA PVV-algoritmen er PIN-koden en tilfældig variabel og afhænger ikke af kortnummeret. Det er let at beregne, at i tilfælde af at vælge en PIN-kode for hvert kortnummer i henhold til en ligesandsynlig lov, svarer denne PVV-værdi til mindst to PIN-værdier med en sandsynlighed på 42%. Samtidig er det gennemsnitlige antal sprøjtebrugere svarende til en given PVV-værdi 1,58. Det vil sige, at når du bruger VISA PVV, er sandsynligheden for at gætte en PIN-kode 1,58 gange højere end i tilfældet med IBM 3624. Men med hensyn til den nødvendige mængde af opregning af mulige PIN-koder i rækkefølge, forbliver den den samme.
I henhold til kravene i internationale betalingssystemer bør værdien af PIN-koden ikke opbevares (selv i beskyttet form) hverken i serviceterminalerne eller på udstederens hosting.
Der er flere muligheder for udstederen for at gendanne PIN-koden ved hjælp af de data, den har.
Hvis PIN-offset/PVV er gemt på en magnetstribe, vil udstederen naturligvis ikke være i stand til at gendanne PIN-koden. Derfor anbefales opbevaring på en magnetstribe og reducerer muligheden for at gå på kompromis fra bankpersonalet.
Ved lagring af PIN Offset/PVV i bankens database ved hjælp af IBM 3624, kan udstederen nemt beregne kortets PIN. I tilfælde af VISA-algoritmen kan udstederen vælge PIN-kodeværdien svarende til PVV-værdien gemt i databasen ved at optælle 10.000 værdier.
I 2002 opdagede studerende ved University of Cambridge angrebet med decimaliseringstabel [8] .
PIN-koden til bankkort genereres ved at kryptere kortnummeret. Det krypterede tal er en hexadecimal værdi, og de første fire cifre er taget. En decimaliseringstabel bruges til at konvertere denne værdi til decimal ved at konvertere A til 0, B til 1 osv. Disse tabeller betragtes ikke som fortrolige hardwaremoduler og kan leveres sammen med kortnummeret. Ved at manipulere indholdet i tabellen bliver det muligt at lære mere om PIN-kodens betydning end ved at udelukke individuelle kombinationer. For eksempel hvis tabellen bruges
0123456789ABCDEF
0000000100000000,
matchning med PIN 0000 vil bekræfte, at PIN-koden ikke indeholder tallet 7, hvilket udelukker mere end 10 % af alle mulige kombinationer. Det gennemsnitlige antal forsøg, der kræves for at gætte pinkoden, er 15.
Hvis PIN-koden indtastes forkert tre gange , spærres SIM-kortet, indtil den korrekte PUC ( Personal Unblocking Code ) er indtastet , hvilket giver ti indtastningsforsøg. Hvis PUC indtastes forkert, spærres SIM-kortet permanent.
Hvis PIN-offset/PVV er gemt på en magnetstribe, vil det ikke være muligt at ændre PIN-koden i pengeautomaten, da ændring af PIN-koden medfører en ændring af PIN-offset/PVV. Når det er gemt i databasen, er det ikke et problem at ændre PIN-koden, for i dette tilfælde vil PIN Offset/PVV-værdierne blive beregnet for den nye PIN-kode og placeret i databasen i stedet for de tidligere værdier.
Mange bilradioer bruger et kodeindtastningssystem efter et komplet strømafbrydelse, som har til formål at forhindre brug af stjålet udstyr. Bilradiokoden tildeles fra fabrikken eller indtastes af brugeren, når den er installeret. Hvis koden indtastes forkert flere gange i træk, så er radioen spærret i et stykke tid eller for altid.