Безопасность в международных платёжных системах. Криптооборудование

от автора

Часть 2

Последовательность изложения несколько изменилась с начальными планами. Как показалось, что без понимания нижнего уровня будет крайне не правильно рассказывать, что на уровне выше. Поэтому в это раз разговор будет:

О криптооборудовании

В ПС по большому используется два вида криптооборудования: HSM и PINpad

HSM
HSM (hardware security module) — специализированный вычислитель, который выполняет различные криптографические операции.

HSM это замечательная и довольно дорога штука. На нижнем уровне это специализированный компьютер чаще всего выполненный в форм-факторе ISA, PCI, PCI-E карты. Такой HSM оборудован одним или двумя физическими COM-портами выведенными на планку крепления. Даннаые порты предназначены для подключения принтера, карт-ридера или CRT-терминала.

Это внутренний HSM

Известных производителей HSM раз и два и обчёлся, это SafeNet и Thales e-Security. Так же для себя их производят IBM, Intel и еще ряд чисто железячных контор.

Суть HSM заключается в том, что он может выполнить различные криптографические операции без участия центрального процессора компьютера, куда он установлен. И что данные криптофункции выверены и выверены очень качественно и имею различные сертификации на «корректность-правильность» их выполнения. В некоторых случаях говорят что HSM ускоряет криптооперации, это от части верно, только на действительно слабых компьютерах.
У HSM есть одна крайне важная функция, он может и надёжно хранит внутри себя один ключ — LMK (local master key). Реально ключей может быть несколько, но для упрощения считаем, что он один.
LMK (local master key) — ключ под которым или которым шифруются все остальные ключи используемые данным HSM.
Для чего так сделано?
Предположим вам надо хранить 100 3DES ключей, это 100х16 байт, а если надо 1000 или вдруг послезавтра нужно будет хранить 5000? Все это необходимо предусмотреть. И каким то надежным образом защитить ключи (про физическое устройство HSM чуть ниже). Поэтому решили поступить довольно элегантно.

  1. Когда вы хотите сохранить ключ K в HSM вы переедаете это ключ в HSM.
  2. HSM его шифрует ключом LMK и полученную криптограмму ключа K отдаёт вам.
  3. Вы эту криптограмму можете спокойно сохранить в т.ч. и на жестоком диске компьютера, где установлен HSM.
  4. Когда вы захотеть что то сделать с этим ключом вы даёте необходимую криптограмму HSM-у и он её расшифровывает. И что важно, расшифрованный ключ оставляет только внутри себя!

Здесь мы подошли к основополагающему требованию к HSM — ключи в открытом виде присутствуют только внутри HSM. Т.е. вы не может просто так взять и достать ключи из HSM в открытом виде. Выгрузить их можно только под другим ключом — т.е. ввиде криптограммы.
Так же вы можете для примера загрузить в HSM два ключа A и B и попросить перешифровать данные из под ключа A под ключ B. И это операция перешифрования данных из под одного ключа под другой является может быть самой главной операцией HSM. Его способность выполнять операцию внутри себя гарантирует что зашифрованные данные в чистом виде не покинут HSM.
Современные HSM-ы умеют работать с очень многими криптофункциями и алгоритмами, вот для примера довольно типичный список:

  • Асимметричные алгоритмы шифрования: RSA, DSA, ECDSA, Diffie Hellman
  • Электронная цифровая подпись: RSA, DSA (512-1024 бита), ECDSA, PKCS #1 v1.5, 9796, X509, Timestamp
  • Симметричное алгоритмы шифрование: AES, DES, 3DES, CAST-128, RC2, RC4, SEED, ARIA
  • Имитовставка (MAC): SHA-1, SHA-256, SHA-384, SHA-512, MD2, RIPEMD128, RIPEMD160, DES MDC-2 PAD1, SSL3 MD5 MAC, AES MAC, CAST-128 MAC, DES MAC, DES3 MAC, DES3 Retail CFB MAC, DES30x9.19 MAC, IDEA MAC, RC-2 MAC, SEED MAC, ARIA MAC, VISA CVV
  • Хэширование: MD5, SHA-1, SHA-256, SHA-384, SHA-512, MD2, RIPEMD128, RIPEMD160, DES MDC-2 PAD1
  • Эллиптические кривые (ECC), Кривые ECC Brainpool (Именованные и заданные пользователем)
  • Генерация случайных чисел

HSM обладает так же некоторой системой разграничения прав — кто и что может делать с ключами. И если вы забыли или потеряли пароль на инициализацию HSM или административные пароли от HSM. Все не просто плохо, а ужасно! Вас могут спасти только миллионы лет на прямой подбор пароля. Обходных путей тут нет! И поэтому данные устройства очень не любят наши правоохранительные органы.

И ещё про устройство HSM.
Встроенный процессор и память на плате защищены кожухом. При попытке заглянуть под неё, HSM сотрёт LMK ключ и заблокирует процессор для использования.
На HSM установлена внешняя литьевая батарея, она предназначена для поддержания работы встроенного процессора. Если вы её отсоединение, то опять потеряете LMK. Я писал, что оборудование дорогое и качественное — встроенные литьевые батареи реально работают по 10-15 лет.
Есть и более замечательной свойство у это платы, она может определить, что её вынимали из компьютера даже при том, что питание компьютера отключено, и в этом случаи вы опять потеряете LMK!
Попробуйте догадаться как?

Выше был показан так HSM в так называемом внутреннем исполнении — в виде платы. Такие платы могут устанавливаться в корпуса промышленных компьютеров и это уже стаовится внешним HSM. И к таким HSM вы может получить доступ через сеть TPC/IP.

А это внешний HSM, вид сзади. Спереди это просто компьютер.

Про HSM можно много рассказывать и написать статьи три. А уже профессионалы, которые могут с ними работать на Россию действительно в пределах сотни.

PINpad
PINpad — со стороны пользователя это просто цифровая клавиатура, но изнутри это почти HSM. PINpad имеет один интерфейс к стандартным компьютерам в виде COM-порта или USB.
PINpad существенно слабее по производительности, чем самый дохленький HSM и может не уметь делать многие вещи, но у него есть одна функция, которая отличает его от HSM:
это способность принять ввод ПИН-кода от пользователя и зашифровать его внутри себя ключом, который опять же надежно хранится внутри его.
Это ключ называется PEK (PIN encryption key) — ключ для шифрации ПИН-кода
PINpad имеют те же требования к вскрытию, а может даже и чуточку посущественней т.к. с ними часто работают озверевшие пользователи. Надо отметить, что в ряде случае вы можете не иметь PINpad на POS-терминалах, а можете вводить ПИН-код прямо на терминале. Все современные POS-терминалы так же имею защиту от вскрытия, для исключения хищения ключей из них.

Вот два примера PINpad-ов для
Банкомата или терминала самообслуживания

И POS-терминала.

Существует список сертифицированных устройств на которых можно вводит ПИН-код с уверенностью он не покидает не зашифрованным это устройство. Это список называется PCI PED Approved list он приведен здесь www.pcisecuritystandards.org/approved_companies_providers/approved_pin_transaction_security.php

Про PINpad можно тоже много писать и это тема отдельной стати.

Конец 2-ой части.

ссылка на оригинал статьи http://habrahabr.ru/post/166181/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *