Испытанным способом идентификации держателя банковской карты является использование секретного персонального идентификационного номера PIN. Значение PINдолжно быть известно только держателю карты. Длина PINдолжна быть достаточно большой, чтобы вероятность угадывания злоумышленником правильного значения с помощью атаки полного перебора значений была приемлемо малой. С другой стороны, длина PINдолжна быть достаточно короткой, чтобы дать возможность держателям карт запомнить его значение. Рекомендуемая длина PINсоставляет 4...8 десятичных цифр, но может достигать 12.
Предположим, что PINимеет длину четыре цифры, тогда противник, пытающийся подобрать значение PINк банковской карте, стоит перед проблемой выбора одной из десяти тысяч возможностей. Если число попыток ввода некорректного значения PINограничивается пятью на карту в день, этот противник имеет шансы на успех менее чем 1:2000. Но на следующий день противник может попытаться снова, и его шансы увеличиваются до 1:1000. Каждый следующий день увеличивает вероятность успеха противника. Поэтому многие банки вводят абсолютный предел на число неверных попыток ввода PINна карту, чтобы исключить атаку такого рода. Если установленный предел превышен, считается, что данная карта неправильная, и ее отбирают.
Значение PINоднозначно связано с соответствующими атрибутами банковской карты, поэтому PINможно трактовать как подпись держателя карточки. Чтобы инициировать транзакцию, держатель карты, который использует POS-терминал, вставляет свою
карту в специальную щель считывателя и вводит свой PIN, используя специальную клавиатуру терминала. Если введенное значение PINи номер счета клиента, записанный на магнитной полосе карты, согласуются между собой, тогда инициируется транзакция.
Защита персонального идентификационного номера PINдля банковской карты является критичной для безопасности всей платежкой системы. Банковские карты могут быть потеряны, украдены или подделаны. В таких случаях единственной контрмерой против несанкционированного доступа остается секретное значение PIN. Вот почему открытая форма PINдолжна быть известна только законному владельцу карты. Она никогда не хранится и не передается в рамках системы электронных платежей. Очевидно, значение PINнужно держать в секрете в течение всего срока действия карты.
Метод генерации значения PINоказывает существенное влияние на безопасность электронной платежной системы. Вообще, персональные идентификационные номера могут формироваться либо банком, либо держателями карт. В частности, клиент различает два типа PIN :
Если PINназначается банком, банк обычно использует один из двух вариантов процедур генерации PIN.
При первом варианте PINгенерируется криптографически из номера счета держателя карточки. Процесс генерации назначаемого PINиз номера счета показан на рисунке. Сначала номер счета клиента дополняется нулями или другой константой до 16 шестнадцатеричных цифр (8 байт). Затем получившиеся 8 байт шифруются по алгоритму DESс использованием секретного ключа. Из полученного шифртекста длиной 8 байт поочередно выделяют 4-битовые блоки, начиная с младшего байта. Если число, образуемое этими битами, меньше 10, то полученная цифра включается в PIN, иначе это значение не используется. Таким путем обрабатывают все 64 бита (8 байт). Если в результате обработки не удалось получить сразу требуемое количество десятичных цифр, то обращаются к неиспользованным 4-битовым блокам, из которых вычитают 10.
Очевидное достоинство этой процедуры заключается в том, что значение PINне нужно хранить внутри электронной платежной системы. Недостатком этого подхода является то, что при необходимости изменения PINтребуется выбор либо нового счета клиента, либо нового криптографического ключа. Банки предпочитают, чтобы номер счета клиента оставался фиксированным. С другой стороны, поскольку все PINвычисляют, используя одинаковый криптографический ключ, изменение одного PINпри сохранении счета клиента неизбежно влечет за собой изменение всех персональных идентификационных номеров.
При втором варианте банк выбирает значение PINслучайным образом, сохраняя значение этого PINв виде соответствующей криптограммы. Выбранные значения PINбанк передает держателям банковских карт, пользуясь защищенным каналом.
Использование PIN, назначенного банком, неудобно для клиента даже при небольшой его длине. Такой PINтрудно удержать в памяти, и поэтому держатель карты может записать его куда-нибудь. Главное-это не записать PINнепосредственно на карту или какое-нибудь другое видное место. Иначе задача злоумышленника будет сильно облегчена.
Для большего удобства клиента используют значение PIN, выбираемое самим клиентом. Такой способ определения значения PIN позволяет клиенту:
Когда PINвыбран клиентом, он должен быть доведен до сведения банка. PINможет быть передан в банк заказной почтой или отправлен через защищенный терминал, размещенный в банковском офисе, который немедленно его шифрует. Если банку необходимо использовать выбранный клиентом PIN, тогда поступают следующим образом. Каждую цифру выбранного клиентом PINскладывают по модулю 10 (без учета переносов) с соответствующей цифрой PIN, выводимого банком из счета клиента. Получаемое десятичное число называется "смещением". Это смещение запоминается на карте клиента. Поскольку выводимый PINимеет случайный характер, то выбранный клиентом PINневозможно определить по его "смещению".
Главное требование безопасности состоит в том, что значение PINдолжно запоминаться владельцем карты и никогда не должно храниться в любой читабельной форме. Но люди несовершенны и очень часто забывают свои значения PIN. Поэтому банки должны заранее заготовить специальные процедуры для таких случаев. Банк может реализовать один из следующих подходов. Первый основан на восстановлении забытого клиентом значения PINи отправке его обратно владельцу карты. При втором подходе просто генерируется новое значение PIN.
При идентификации клиента по значению PINи предъявленной карте используются два основных способа проверки PIN: неалгоритмический и алгоритмический.
Неалгоритмический способ проверки PINне требует применения специальных алгоритмов. Проверка PINосуществляется путем непосредственного сравнения введенного клиентом PINсо значениями, хранимыми в базе данных. Обычно база данных со значениями PINклиентов шифруется методом прозрачного шифрования, чтобы повысить ее защищенность, не усложняя процесса сравнения.
Алгоритмический способ проверки PINзаключается в том, что введенный клиентом PINпреобразуют по определенному алгоритму с использованием секретного ключа и затем сравнивают со значением PIN, хранящимся в определенной форме на карте. Достоинства этого метода проверки:
---------------------------------------------------------------------------