Проверка на ПИН код на банкова карта
Преди да пристъпим директно към въпроса за валидиране на ПИН карта, нека се спрем на някои теоретични въпроси.
В момента основният алгоритъм за криптиране за всички операции с банкови карти е DES алгоритъмът (а не 3DES, който се използва само за операции по криптиране, главно на транспортния слой). Без да навлизам в терминологията и класификацията на алгоритмите за криптиране, просто ще кажа, че това е алгоритъм за блоково криптиране с размер на блока от 8 байта и ключ от 56 бита (7 байта). На практика DES ключът обикновено се представя като блок от 8 байта, където във всеки байт са най-значимите 7 бита са значими, а последният бит е незначителен. Може да се използва за контрол на целостта на ключа (повече за това по-късно).
Тъй като в момента 56-битов ключ е недостатъчен от гледна точка на сигурността, вместо алгоритъма DES за криптиране, приемете алгоритъма 3DES в режим EDE (по-нататък под обозначението 3DES ще имам предвид използването на EDE схема). Обикновено в банкова среда алгоритъмът 3DES се използва с ключ с двойна дължина (112 бита, 16 байта), при който един и същ ключ се използва в първата и третата стъпка (вижте описанието на алгоритъма).
Алгоритми за потвърждаване на ПИН
В момента се използват основно следните 2 алгоритма за проверка на ПИН: Visa PVV и IBM 3624 ПИН компенсиране.
Този алгоритъм първоначално е разработен от платежната система Visa, но в момента е препоръчителният алгоритъм за проверка на ПИН както за Visa, така и за MasterCard. Този алгоритъм се основава на стойността на PVV (стойност за проверка на ПИН), която представлява криптограма, получена въз основа на следните стойности:
Номер на картата (оттук нататък PAN)
Индекс на ключ за потвърждение на ПИН, по-нататък PVKI
Ключ за потвърждение на ПИН (по-нататък PVK)
ПИН кодът на самата карта
За получаване на PVV се формира блок от PAN (последните 11 цифри, с изключение на контролния номер на картата), PVKI, PIN (стриктно, първите 4 цифри), който се кодира с помощта на PVK, след което 4-цифрен блок се извлича от него с помощта на специална функция. номер, който е стойността на PVV [1]. Тази PVV стойност е справка за проверка на ПИН кода. Тези. при получаване на операция с въведения ПИН, за да се провери на базата на PAN, PVKI, PVK, се генерира нова PVV стойност и се сравнява с референтната PVV за картата. Ако стойностите съвпадат, тогава ПИН кодът се счита за правилен, ако не съвпадат, той е неправилен.
Характеристиките на този алгоритъм включват следните "ограничения":
Основна невъзможност за възстановяване на ПИН от стойността на PVV
Използване на ПИН код от точно 4 цифри
Отместване на ПИН код на IBM 3624
системите за нормиране на "стари" региони (Западна Европа, Северна Америка) са доста консервативни и в много отношения работят върху "достатъчно" стари системи, което им подхожда доста добре
този алгоритъм ви позволява да възстановите стойността на ПИН кода от стойността за проверка (вижте по-долу), която може да бъде много полезен при определени условия
Този алгоритъм се основава на отместването на ПИН (стойност за проверка на ПИН), което представлява криптограма, получена от следните стойности:
Контролна стойност (Данни за проверка, по-долу VD) - някаква стойност (обикновено - част от номера на картата, но това не е необходимо)
Таблица за децимализация (по-долу DT)
Ключ за потвърждение на ПИН (PVK)
ПИН кодът на самата карта
За по-простота на по-нататъшното описание, под ключа за проверка на ПИН в случая на метода за компенсиране на ПИН на IBM 3624 ще използваме комбинацията от ключа PVK и стойността на таблицата за децимализация DT.
За да се получи отместване на ПИН, контролната стойност VD се кодира с помощта на PVK ключа, след което от получената стойност се получава блок от 16 десетични цифри, използвайки таблицата за децимализация DT.
Първите N цифри се вземат от получения блок, където N е дължината на ПИН (методът IBM 3624 ви позволява да проверите ПИН с дължина до 16 цифри), след което съответната цифра на получения блок се изважда от всеки ПИН цифра по модул 10. Получената стойност ще бъде стойността на отместването на ПИН.