Самое распространенное использование криптографии это обеспечение ПИНа, для использования магнитной карты в местах, где нельзя осуществить контроль за правомерностью доступа , например в ATM (банкоматах), либо в каких-то других ситуациях, где осуществить предоставление обычной бумажной подписи невозможно. Все это распространяется на кредитные, дебитные и ATM-карты. На сегодняшний день не так много денежных карт, у которых не было бы наличия ПИН.
Второе по распространенности использование криптографии это предоставление механизмов контроля за оригинальностью магнитной ленты . Назначение заключается в предупреждении создания карт мошенническим путем , когда на ленту записывается значение, которое не может быть получено из видимой информации, содержащейся на карте. Когда карта проверяется в режиме on-line, это значение может быть проверено для того чтобы подтвердить подлинность карты. Для этого существует несколько различных стандартов, самые используемые это Visa Card Verification Value (CVV) или, аналог для Мастеркарда, CVC.
Другие варианты использования криптографии напрямую не относятся к картам, обычно они относятся к шифрованию ПИН и сообщениям, передаваемым в финансовом окружении, чтобы предотвратить их перехват или подделку.
3.1. Простое шифрование.
Большинство шифрований магнитных карт базируется на Алгоритме Шифрования Данных (DEA), называемым DES или Стандарт Шифрования Данных. Идея лежащая в этом алгоритме заключается в том что оригинальное (нешифрованное) значение, передается алгоритму DES, который может быть выпонен как в программном, так и в аппаратном виде. Затем DES шифрует чистое значение, используя ключ (секретный, 64-битный), и на выходе выдает зашифрованное значение.
Примем во внимание следующее:
- Алгоритм DES не является секретным. Он доступен для широкого использования. Однако КЛЮЧ является секретным.
- Этот процесс является реверсивным. Функцию DES «decipher» , используя тот же самый ключ, переработает шифрованную информацию в открытую (оригинальную).
Безопасность и целостность всего процесса шифрации зависит от секретности используемого ключа. Ключ это случайное значение, которое очень жестко защищено. Большинство сложностей, связанных с шифровальными системами DES связаны с защитой, хранением и передачей ключей, и эти действия называются “key management” – операции с ключами.
Также нужно заметить что операция шифрования “encipher” , как описано выше не совсем надежна. Теоретически, большое количество параллельных процессов могут подобрать ключ в несколько дней. Эта особенность активно обсуждается в дискуссиях на тему улучшения безопасности, однако дополнительные методы могут ограничить применение данного алгоритма.
Простой пример для демонстрации: пароли на входе компьютерных систем.
Пароли, использующиеся в компьютерных системах часто шифруются, после того как они были установлены, и хранятся в файле в зашифрованном виде. Когда пользователь входит в систему, пароль вводится в скрытом поле, чистым текстом. Важно понимать, что это значение не сравнивается со значением, которое расшифровывается из файла пароля. Чистый текст зашифровывается тем же ключом и сравнивается с шифрованным значением, которое находится в файле паролей. Чистый текст, зашифрованный аналогичным ключом, всегда даст тот же самый результат и практически все криптографические системы сравнивают зашифрованный текст с зашифрованным, чтобы избежать доступа к чистым значениям в компьютерных системах, поскольку те могут быть скомпрометированы дампом памяти, взломом и т.д.
Однако в этой ситуации пользователь пароля всегда может предъявить претензию, что его пароль может быть раскрыт расшифровыванием зашифрованного значения, и это неподвластно пользователю – это правда.
3.2.Обмен динамическим ключом.
Много финансовых систем внедряют обмен динамическим ключом. В то время как это напрямую не относится к магнитным картам, это достаточно актуально, для того чтобы обратить на это внимание.
В обмене динамическим ключом 2 стороны обмениваются ключами «на лету» для того чтобы один ключ не использовался продолжительное время ввиду риска его расшифровки. Обычно это используется в финансовом окружении, когда две стороны обмениваются финансовыми авторизационными (подтверждающими) сообщениями – например банк получателя и банк отправителя. Когда банк получателя передает ПИН банку отправителя для подтверждения, это сообщение должно быть зашифрованным. Банку отправителя будет нужен доступ к ключу, которым шифровался ПИН, чтобы расшифровать сообщение при получении. Стороны предварительно договорились об этих ключах и ключи могут быть изменены путем динамического обмена ключей, когда ключи предоставляются (зашифрованные старыми шифровальными ключами) и меняются в реальном времени для дополнительной безопасности.
3.3. Обработка ПИН.
Принцип ПИН основан на том факте, что никто кроме легального владельца карты его не знает. Поэтому, когда ПИН предоставляется клиенту:
- ПИН не должен хранится нигде в открытом виде
- ПИН не должен быть реверсирован на основании информации на магнитной ленте
или базы данных.
Обычно, ПИН это 4-значное число.
Когда выпускается ПИН, очередность событий такова:
- Генерируется 4-значное число - это ПИН;
- ПИН комбинируется с другой информацией, например с номером счета, чтобы создать блок данных для процесса шифрования;
- Входной блок трижды шифруется, использую рабочие ключи ПИН;
- Выбираются цифры из зашифрованного результата. Они становится Pin Verification Value (Число Проверки ПИН) или Pin Offset (Смещение ПИН);
- Смещение ПИН сохраняется;
- Печатается конверт с ПИН;
- Память очищается нулями, чтобы скрыть все следы присутствия чистого ПИН.
На этом этапе единственное место где находится значение ПИН это конверт. ПИН не может быть получен на основании смещения ПИН.
Когда карта используется и вводится ПИН, смещение ПИН вычисляется на основании введенного ПИН, используя рабочие ключи ПИН, и сравнивается с сохраненным смещением ПИН, чтобы определить правильность ввода ПИН. Это означает, что когда ПИН проверяется, проверяющей системе нужен доступ к рабочим ключам ПИН, используемого при формировке ПИН или его изменения.
Еще раз нужно подчеркнуть, что смещение включает в себя цифры, выбранные из шифрованных данных. Обычно это 4-6 цифр. Невозможно воссоздать ключи или ПИН используя это значение.
3.4. Обработка VCC.
Быстро стало понятно что распространение денежных карт привело к риску финансовых институтов со стороны мошенников. В мире кредитных карт это к производству карт с или без магнитной полосы, подделывая имена и логотипы. На арене ATM карт, злоумышленники наблюдали за вводом ПИН «через плечо», сопоставляли ПИНы с информацией на квитанциях и создавали свои магнитные ленты на болванках для карт.
Эти и другие угрозы подвели к введению Card Verification Value, невозможной для получения последовательности цифр, создаваемой процессом шифровки и записанной на магнитную ленту карты. Это означает что электронный сбор информации о транзакциях (ATM или POS) эффективно защищен от мошенников.
Комбинация статичных данных как, например, номер счета трижды шифруется, используя специальную пару ключей Card Verification. Выбранные из результата цифры используются для создания CVV и пишутся на магнитную ленту.
К CVV относится все то же самое, что и к Pin Offset. Т.к. CVV состоит из нескольких цифр, и используется тройная шифрация, ключи CVV и значения хорошо защищены и наличие CVV дает дополнительный уровень подтверждения что карта не является поддельной.
Нужно заметить что CVV просто дополнительный метод защиты, он так же не 100%-но надежен. Он, например не защищает от мошеннического сбора информации с магнитных карт, например на фальшивых ATM (банкоматах).
Дальнейшее развитие CVV, CVV2, используется для авторизации по телефону. Приблизительно такая же схема расчетов как и для CVV, выбранные из результата цифры печатаются на обороте карты. Эти цифры могут быть запрошены, чтобы подтвердить правомерность сделки. Опять же, это всего лишь дополнительная проверка.
3.5.Работа с ключами.
Работа с ключами подразумевает собой хранение, защиту и передачу ключей. В одной финансовой организации может быть множество DES ключей, и они требуют должного обращения. Одно из самых худших случаев отладка компьютерных ошибок – это отладка программ связанных с шифрованием данных, так как дампы памяти не несут никакого смысла, и может быть очень сложно обнаружить, что используется неверный шифровальный ключ.
В хороших системах рабочие ключи никогда не хранятся в незашифрованном формате. Даже когда они создаются, часто это происходит автоматически, так что ключи никогда не известны людям.
Когда создаются инициализационные ключи, 64 бита делятся между двумя или более людьми, которые «бросают монетку» для каждого бита. Так как каждый работает с одним из сегментов ключа, целый ключ неизвестен никому, так обычно делается изначальное создание мастер-ключа.
Несмотря на простую концепцию, управление ключами может стать довольно сложным на практике.
В простой ATM сети например, мастер-ключ терминала используется для шифровки рабочих ключей при передаче. Мастер-ключ терминала (МКТ) генерируется для каждого терминала, делится на 2 части и печатается (или иногда шифруется на специальной магнитной карте). Каждый ТМК затем инсталлируется в банкомат.
Система затем закачает рабочие ключи терминала, зашифрованные мастер ключом терминалов на каждый банкомат. Затем рабочие ключи терминала используется для шифрации данных ПИН при передаче хосту во время процессинга. Если потребуется, рабочий ключ терминала может быть изменен через некоторые интервалы, либо динамически, однако этот процесс требует особой внимательности и подхода
Нужно заметить, что обмен ключами – это самое слабое место DES систем, поэтому нужно особенно тщательно продумывать систему управления ключами.
3.6.Физическое приложение.
Зашифрованный процессинг и управление ключами обычно проводится на специализированном защищенном оборудовании. DES может быть встроен и в программное обеспечение (используя такие продукты как например IBM’s PCF), но это менее безопасно, к тому же алгоритм DES может усиленно использовать ресурсы процессора.
Есть компании, специализирующиеся на выделенных шифровальных объектах, как например Racal и Atalla. Обычно они называются HSM (Защищенный Модуль Хоста), однако Racal решает как назвать объект.