Как устроен и как работает пин-пад
Многие из нас хоть раз читали, как происходит обработка банковских операций. И все мы знаем, что незашифрованный PIN не уходит никуда дальше пин-пада. А вот о том, как именно это реализовано, информации традиционно маловато.

Итак, в ходе данной статьи поговорим о пин-падах. Узнаем, как они устроены, какой защитой обладают. На примере реального девайса рассмотрим управление им. Как обычно, будет много интересного.
❯ Суть такова
В комментариях к моему посту про магнитные карты многие заинтересовались именно процессом обработки транзакций. Так что решил написать и про это, тем более, что тема работы подобных устройств меня интересовала давно.
POS-terminal’ы наподобие VeriFone Tranz или VeriFone OMNI давным-давно ушли в историю. Абсолютное большинство платёжных терминалов ныне оснащается устройством для ввода и шифрования ПИН (в большинстве случаев он вообще встроенный).

Итак, пин-пад (PIN Entry Device) представляет собой устройство, имеющее защищённое хранилище ключей (как это реализовано, поговорим чуть позже), позволяющее пользователю ввести ПИН и вернуть его зашифрованное значение. Для использования в банковской сфере они проходят сертификацию PCI PED (Payment Card Industry PIN Entry Device). Пин-пад может быть как внешним, выполненным в виде отдельного устройства, так и встроенным, реализованным схемотехникой терминала.
Отдельно идут так называемые интеллектуальные пин-пады, представляющие собой практически полноценные POS-terminal’ы, адаптированные для управления с кассового компьютера.
❯ Обзор оборудования
В качестве основной железки, что будет фигурировать в этой статье, был взят VeriFone PINpad 1000SE (он же просто PP1000SE). Модель достаточно старая, после вывода из эксплуатации терминалов без поддержки бесконтактной оплаты (CTLS) встречается чуть реже, чем нигде, хотя в лучшие времена стояли практически повсеместно. Почему именно он? Всё дело в том, что платёжные терминалы и банковская сфера в принципе — весьма закрытая область. И найти какой-либо софт, документацию, а уж тем более средства разработки крайне проблематично. Чего не скажешь о нашем девайсе, нужная информация для которого отыскалась без каких-либо проблем.

Собственно, вот так он выглядит. Думаю, многие из вас его даже вспомнят. На передней панели у него дисплей (графический, но используется только в текстовом режиме, причём вмещается на дисплей всего восемь символов), кнопки для ввода ПИН, отмены, корректировки и подтверждения, а также ненужные кнопки программируемые функциональные клавиши (о которых, к слову, в единственном общественно доступном мануале сказано нечто вроде «This feature is not implemented in this version of firmware).

С обратной стороны наклейка с названием модели, резиновые ножки, отверстие пищалки, а также закладная для крепления на стойку. Ну и разъём типа 4P4C для подключения кабеля.

Распиновка этого разъёма приведена в документации. Она здесь вот такая.

Разбираем. Электроника закрыта защитной пластиной. Также видна давно сдохшая батарейка типа CR2450. Её надо заменить на новую, иначе при подаче питания пин-пад не будет подавать никаких признаков жизни.

Снимем защитную пластину. Отчётливо видны некий проприетарный чип, парочка микросхем от ST и Cypress, немножко дискретной логики. Этим самым проприетарным чипом выступает либо что-то заказное, либо микросхемы общего назначения, на которые вместо обычной ещё на заводе нанесена маркировка компании. В старых экземплярах таких компонентов не было, чаще всего использовались Z80/MC68000 с соответствующей обвязкой.
Сами ключи обычно хранятся в SRAM, так что при разряде батарейки они тоже исчезнут вместе со всеми параметрами.

Открутим плату. Дисплей графический, без маркировки. Отодрать его от пластмассового крепления у меня не вышло, побоялся его сломать.
❯ Методы защиты
Итак, как мы помним, пин-пад должен обладать защищённым хранилищем ключей. В частности, это значит, что при попытке получения доступа ключи будут необратимо стёрты. Для этого используются специальные механизмы защиты от вскрытия (anti-tampering systems). Помимо систем контроля используются и различные конструктивные решения, усложняющие неразрушающую разборку устройства или вообще делающие её невозможной. Продемонстрируем, как они выглядят.

Рассмотрим ту самую пластину, закрывающую электронику. Это не просто кусок текстолита. Внутри него по всей его площади проходит тоненькая дорожка-змейка. При попытке просверлить или проковырять в ней отверстие цепь разомкнётся, и контур безопасности окажется разорван. Пластина соединена с платой при помощи кусочков анизотропной резины, аналогичной той, что используется для подключения к контактам на плате сегментных ЖКИ.

Помимо пластин существуют и рамки. обеспечивающие контроль связанности между собой двух плат. Вот для примера такая рамка в пин-паде VeriFone SC5000. По её периметру наклеен шлейфик, подключённый к плате при помощи всё той же резинки. Также контролируется и плотность прижатия плат — для этого стоит ещё один кусочек контактной резины, соединяющий непосредственно платы.

А вот ещё один пин-пад, Ingenico 3050. Отчётливо виден приклеенный на обратной стороне крышки шлейф с той самой дорожкой-змейкой.

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


К методам защиты также относится и заливка смолой. Ныне в POS-terminal’ах такое встречается редко, а вот клавиатуры банкоматов всё также частенько заливают. Иногда вместо полной упаковки устройства в единый монолит из эпоксидки её просто наливают сверху на плату (по форме или просто каплей), защищая отдельные её участки.

Вернёмся к нашему Ingenico 3050. Поверх материнской платы припаяна ещё одна вверх ногами, на которой и находятся управляющие чипы. Из-за такой конструкции демонтировать этот узел без отрыва дорожек или перегрева микросхем не так-то просто, особенно с учётом того, что помимо пайки он ещё и приклеен.

А вот POS-terminal Ingenico 5100. У него процессор и его обвязка находятся внутри единого монолита из смолы. Наружу торчат только контакты для подключения.
Пин-пад от банкомата. Тут используется комбинированная защита — плата, помещённая в контур безопасности, залитая поверх смолой.


Более новый пин-пад, EPPV6. Отчётливо видны отсеки в корпусе, залитые смолой, а заодно и отверстие, куда она заливалась. Заклеенное наклейкой „Kill EPP“ отверстие — кнопка самоуничтожения (при нажатии ключи стираются, а устройство блокируется), нажимаемая при выводе экземпляра из эксплуатации.
Помимо аппаратных существуют и программные методы защиты: защищённые загрузчики, шифрованные прошивки, подписывание ПО.
❯ Первое включение

Итак, батарейку припаяли, можно пробовать подключать. Для удобства я спаял переходник, к которому пин-пад подключается при помощи обычного витого кабеля с разъёмами 4P4C на концах от трубки стационарного телефона.
Подаём питание. Пин-пад должен будет пискнуть и написать нечто вроде „Tampered device“ (ну, или не написать, если батарейка дожила до наших дней и вам не пришлось её менять). Жмём несколько раз „Cancel“ и попадаем в рабочий режим. Если туда загружена какая-нибудь строка, он выведет её, если же нет, то на экране появится бегущая стрелка.
Нажмём комбинацию клавиш „Cancel“+»2″, наберём пароль 844747746 и попадём в сервисное меню. Список пунктов там такой:
- P.C MEM TST — тест NVRAM (с её полным стиранием)
- INIT MKEY RAM — удаление ключей
- LANGUAGES — ну, это ясно, что такое
- DSP ALL MSG — режим отображения сообщений
- SET BAUD RATE — скорость порта
- SET KEY MGT — режим организации ключей
- SET PP MODE — режим работы пин-пада (Nurit/VeriFone)
- OS ACCESS — выход в Nurit OS (NOS)
Также есть комбинация «Cancel»+«3» с паролем 83746, но ничего интересного для нас там нет.
❯ Что с экраном?
Вы спросите: а почему же графический экран используется столь нерационально? Не лучше ли было разработчикам поставить сегментный дисплей?

Всё очень просто. Существовала ещё и «узкая» версия PP1000SE, более старая. Там стоит сегментный экран, а также отсутствуют два последних пунктам меню. В лучшие времена VeriFone приобрела израильскую компанию Lipman Electronics Engineering, выпускавшую терминалы Nurit. Соответственно, часть её наработок и была использована в PP1000SE второй версии. А ради совместимости с первой и были введены подобные меры.
«Широкий» PP1000SE можно переключить в режим Nurit (если что, для выхода оттуда надо нажать сначала на среднюю фиолетовую кнопку, а затем на «2», пароль тот же самый), на нём же можно выйти в Nurit OS, выбрав последний пункт меню, после чего зажав клавиши «3»+«5»+«7».



А вот антикварный пин-пад PP1000+. По системе команд он аналогичен PP1000SE. Внутри, кстати, как раз видна смола.
❯ Управляющие пакеты
PP1000SE управляется пакетами данных. Началом служит символ «SI» или «STX», концом — «SO» или «ETX». Какой из двух выбрать, указано в таблице формата каждого пакета в мануале.
После пакета данных идёт контрольное значение — последовательный XOR всех байт пакета, за исключением начального.
Функция для расчёта этого значения
uint8_t BCC(string data)
Если контрольная сумма соответствует, пин-пад присылает в ответ байт «ACK», если нет — «NAK». После трёх несоответствий подряд отправляется «EOT».
Также стоит отметить параметры порта — 7 data bits, even parity. Скорость задаётся в том самом меню.
❯ Выводим текст на экран
На примере вывода текста рассмотрим отправку пакета.
void showString(string s)
Итак, для вывода текста служит пакет типа Z2. Вначале к строке добавляется символ «STX» (для удобства коды всех этих символов я указал в начале программы через define), потом, код пакета «Z2», далее символ «SUB», служащий для очистки экрана, сама строка для вывода, символ «ETX». Рассчитывается и также добавляется контрольное число.
Итак, пробуем:
Программа для вывода строки
#include #include using namespace std; #define STX 0x02 #define ETX 0x03 #define SI 0x0F #define SO 0x0E #define ACK 0x06 #define EOT 0x04 #define NAK 0x15 HANDLE hSerial; uint8_t openPort(int portNumber) < char sPortName[10]; sprintf (sPortName, "COM%i", portNumber); hSerial = ::CreateFile(sPortName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); DCB dcbSerialParams = < 0 >; dcbSerialParams.DCBlength = sizeof(dcbSerialParams); if(!GetCommState(hSerial, &dcbSerialParams)) < cout dcbSerialParams.BaudRate = CBR_1200; dcbSerialParams.ByteSize = 7; dcbSerialParams.StopBits = ONESTOPBIT; dcbSerialParams.Parity = EVENPARITY; if(!SetCommState(hSerial, &dcbSerialParams)) < cout cout uint8_t ReadCOM(uint8_t & sReceivedByte) < DWORD iSize; ReadFile(hSerial, &sReceivedByte, 1, &iSize, 0); // получаем 1 байт return iSize; >DWORD WriteCOM(uint8_t data) < DWORD dwBytesWritten; // тут будет количество собственно переданных байт DWORD dwSize = 1; WriteFile(hSerial, &data, dwSize, &dwBytesWritten, NULL); return dwBytesWritten; >void WriteStringCOM(string data) < for(int i = 0; i < data.length(); i++) WriteCOM(data[i]); >uint8_t BCC(string data) < char temp = data[1]; for(int i = 2; i < data.length(); i++) temp ^= data[i]; return temp; >void showString(string s) < uint8_t data = 0; string input = ""; input += STX; input += "Z2"; input += 0x1A; input += s; input += ETX; input += BCC(input); WriteStringCOM(input); while(!ReadCOM(data));; if(data != 0x06) cout int main()
Запускаем, и, если всё было подключено правильно, на дисплее должно будет появиться примерно следующее:

Разумеется, на «узком» пин-паде это тоже работает:

❯ Ключи

Ну что же, время перейти к самому главному — к тому, как именно производится шифрование. В большинстве пин-падов используется алгоритм 3DES. Ранее использовался простой DES, но ныне его почти нигде не встретишь.
Итак, в терминальном ПО можно встретить в основном три вида ключей: PIN, MAC и KLK. Первый из этого списка — ключ непосредственно для шифрования PIN. Второй — ключ Message Authentication Code, позволяющий отслеживать подлинность отправляемых пакетов данных. Третий — Key Loading Key, ключ для загрузки ключей, позволяющий для большей безопасности загружать уже зашифрованные ключи. Из всех трёх нам больше всего интересен ключ PIN.
❯ Организация ключей
Существует два метода работы с ключами — Master/Session и DUKPT. В настоящее время используется преимущественно второй вариант.
Master/Session — уже достаточно старый метод. Принцип его работы такой: внутри пин-пада в защищённом хранилище находится мастер-ключ. Терминал содержит в своей памяти рабочий (сессионный) ключ, зашифрованный мастер-ключом. При необходимости что-либо зашифровать, терминал отправляет пин-паду этот рабочий ключ, где он расшифровывается мастер-ключом. Назад возвращается зашифрованный блок данных. При этом ни мастер-ключ, ни расшифрованный рабочий не покидают пределов пин-пада.
DUKPT — более совершенный вариант. Суть его в том, что, при помощи BDK (Base Derivation Key) генерируются IPEK (Initial PIN Encryption Key) и KSN (Key Serial Number), которые и загружаются в пин-пад. На базе IPEK выпускаются ключи, уже используемые в процессе шифрования.
При каждой операции шифрования KSN увеличивается на единицу, а пин-пад возвращает зашифрованный блок данных и новое значение KSN.
В данном примере рассмотрим метод Master/Session как наиболее простой в реализации.
❯ Загружаем ключ
Итак, для загрузки ключей в пин-пад существует пакет «02». Далее требуется указать номер ячейки, куда будет загружен ключ, и, собственно, сам ключ.
Вот как-то так
void setMKEY() < string input = ""; uint8_t data = 0; input += SI; input += "02"; input += "0"; input += "0123456789ABCDEF"; input += SO; input += BCC(input); WriteStringCOM(input); for(int i = 0; i < 6; i++) < while(!ReadCOM(data));; printf("%02X ",data); >WriteCOM(0x06); while(!ReadCOM(data));; printf("%02X ",data); >
Для примера я загружу туда ключ 0123456789ABCDEF. Этот пакет несколько отличается по формату: после ответа пин-пада надо отправить «ACK», иначе ключ забит не будет.
После загрузки ключа также пропадёт сообщение «Tampered device».
❯ PIN-block

Разумеется, пин-пад шифрует не просто PIN, а PIN-block — специальный пакет данных. Чаще всего используют ISO 9564 Format 0, являющийся результатом операции XOR данных PAN и PIN.
❯ Запрашиваем PIN
Ну что, время попробовать прочитать PIN.
Для начала подготовим входные данные. PAN возьмём всё тот же, что был в посте про магнитные карты — 4034351574462072. Рабочим ключом пусть будет 0123456789012345. Зашифруем его с помощью ранее заданного мастер-ключа, получив при этом значение 59216EC9E36F8EF8.
ПИНом будет банальный 1234. На основе PAN и PIN рассчитаем PIN-block: 041277AEA8BB9DF8.
Пишем очередную прогу. Вначале необходимо выбрать мастер-ключ, для чего отправляем пакет с кодом 08. После отправки запроса на ввод пин-пад запрашивает PIN, после чего отправляет зашифрованный PIN-block. В это время на дисплее крутятся надписи «PROCESSING» и «PIN PAD», которые будут оставаться там до нажатия кнопки «Cancel» или прихода нового пакета. После получения PIN-block отправим пакет «Indicate host done» (с кодом Q2), который выведет на экран пин-пада сообщение «Thank you».
Функции в итоге получились вот такие:
void selectMKEY() < string input = ""; input += SI; input += "08"; input += "0"; //номер ячейки ключа input += SO; input += BCC(input); WriteStringCOM(input); >void requestPINEntry() < uint8_t data = 0; string input = ""; input += STX; input += "70"; input += 0x2E; input += "4034351574462072"; //PAN input += 0x1C; input += "59216EC9E36F8EF8"; //рабочий ключ input += "9.99"; //сумма к оплате для отображения на дисплее input += ETX; input += BCC(input); WriteStringCOM(input); for(int i = 0; i < 11; i++) < while(!ReadCOM(data));; printf("%02X ",data); >for(int i = 0; i < 16; i++) < while(!ReadCOM(data));; cout cout WriteCOM(0x06); Sleep(1000); indicateHostDone(); > void indicateHostDone()
Запускаем. Вводим наш ПИН — 1234. Пин-пад в ответ присылает нам PIN-block 5DCB16E4555C6B1A. Расшифровываем его с помощью нашего незашифрованного рабочего ключа и получаем наше расчётное значение 041277AEA8BB9DF8.
Оно живое, оно работает!
❯ Немного о Contactless
Также мне довелось раздобыть PP1000SE CTLS. От обычного он отличается слотом для SAM-модуля и наличием бесконтактного считывателя. Увы, никаких команд касательно считывания карты найти мне так и не удалось…





А вот и такой экземпляр в работе, фото сделано в Греции летом две тысячи двадцать первого года:

❯ Так что в итоге?
Вот мы и рассмотрели ещё одну составляющую обработки пластиковых карт. Попутно продемонстрировали, как запустить такие устройства в «лабораторных» условиях.
Определённо уверен, что все эти материалы кому-нибудь понравятся, тем более, что такого описания подобного оборудования почти никто не делал.
Ссылки

- Payment Card Tools
- PP1000SE Reference and Programmers Guide
- Как расшифровать данные магнитной дорожки с использованием DUKPT
Сброс TAMPER на терминале VeriFone VX520
Внимание! После снятия флага TAMPER к POS- терминалу необходимо подключить внешнюю пин-клавиатуру. Так как в POS-терминале не будет ключей, они будут браться именно из неё. Либо заново загрузить KLK-ключи.
Шаг 1.
Заходим в сервисное меню. Сделать это можно одновременно нажав клавишу ENTER (зеленая) и цифру 7 либо функциональные клавиши F2 и F4. Далее требуется ввести пароль. Вводим установленный пароль системного меню.

Шаг 2.
Очищаем всю память терминала. Для этого в системном меню терминала выбираем пункт Memory Functions

Далее выбираем Clear Mem
bankomatchik.ru
Форум по ремонту банкоматов и прочей банковской техники.
- Непрочитанные сообщения
- Темы без ответов
- Активные темы
- Поиск
KLK ключи на терминалах Ingenico
Первое новое сообщение • 5 сообщений • Страница 1 из 1
Alexkol Прохожий Сообщения: 2 Зарегистрирован: 08 апр 2015, 02:51 Откуда: Красноярск
KLK ключи на терминалах Ingenico
Добрый день. У меня тоже проблема с соединением на терминале ICT220 банка ВТБ24 Вся история уже длится больше недели. Началось всё с того, что при закрытии смены в момент обновления похоже моргнул свет. Я отвлёкся, а когда повернулся на экране уже горела надпись LLT. В компьютерной технике я довольно не плохо разбираюсь и продаю. Но вот с терминалом этим работаю только 2 месяц. Попытался разобраться сам, но в интернете информации практически нет. Обращался в банк, там разговаривают довольно не охотно и на все технические вопросы отвечают: идите туда, где покупали. Пришел в местное представительство АТОЛа, но когда мастер стал смотреть терминал, увидел LLT, я понял что он понимает в этом не больше меня. В итоге в Атоле сказали, что терминал надо отсылать на завод и там настраивать. Но это как минимум 2 недели, а нам работать надо, решил пока повременить и поискать другие варианты. Через знакомых всё-таки вышел на программистов из местного филиала ВТБ24 и передал им терминал, к сожалению лично пообщаться так и не удалось. Когда мне вернули терминал, то передали, что с него удалились KLK-ключи и его надо отправлять на завод так как настраивают только там. Теперь, когда я включаю терминал надписи LLT уже нет, всё вроде бы в порядке, но при любой операции появляется ошибка в момент соединения: либо "SSL 0 -1", либо "невозможно получить номер смены". А на распечатке "инфо терминала" где пункт CD КЛЮЧЕЙ внутреннего ПИН-ПАД теперь пусто. Подскажите кто знает, что это за ключи и как быть? Может их можно ввести с сохранившейся старой распечатки?
Alexkol
acsel Специалист Сообщения: 427 Зарегистрирован: 29 дек 2010, 16:35 Благодарил (а): 12 раз
Re: KLK ключи на терминалах Ingenico
В каждом теминале есть есть ключи для работы. Судя по всему, у вас слетела прошивка, которую потом вам залили ВТБшники, и ключи. Вам следует вбить в терминал ключи и потом провести TMS-сессию чтобы терминал загрузил ваш профиль для работы. У Ingenico, кстати, подобные проблемы очень часто встречаются.
Вот похожая ситуация, там же инструкция для ВТБ.
http://bankomatchik.ru/forums/34/6041?p=81760#p81760
acsel
Alexkol Прохожий Сообщения: 2 Зарегистрирован: 08 апр 2015, 02:51 Откуда: Красноярск
Re: KLK ключи на терминалах Ingenico
Посмотрел эту инструкцию. Получается, что у меня конфигурация уже загружена в терминал и надо только сделать запрос ключей. Но там подразумевается, что какие-то ключи уже должны быть. А у меня нет ни одного.
Делаю как в инструкции, но в 4 пункте когда ввожу ID ключа 00 "KLK КЛЮЧ УЖЕ ВВЕДЁН" не отображается, а пишет: "KLK КОМПОНЕНТА 1:" . А при выполнении пункта 5 появляется знакомая ошибка: или "SSL 0 -4" или "ошибка авторизации"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Alexkol
acsel Специалист Сообщения: 427 Зарегистрирован: 29 дек 2010, 16:35 Благодарил (а): 12 раз
Re: KLK ключи на терминалах Ingenico
У Вас слетели ключи, сработала защита от вторжений, скачок напряжения как раз к этому приводит. Теперь Вам надо где-то раздобыть KLK-ключи. Звоните в атол и объясняйте ситуацию. Вообще такие ключи процессинг на бумаге присылает, но как поведет себя атол это другой вопрос.
acsel
zid83 Прохожий Сообщения: 4 Зарегистрирован: 11 май 2017, 02:12
Re: KLK ключи на терминалах Ingenico
Приветствую. При подключении ipp220 к ict220 стёрли ключи. Сами олени. Ну в общем что есть. Терминал работает и даже оплата проходит. Но вот заставить работать пинпад с бесконтактной оплатой уже никак. Я так понимаю варианта 2 или попытаться найти чек с распечатанными ключами и вбить их ручками (что мало вероятно так как терминалу 5 лет) или нести его в атоловский сервис? Покупался он как комплект отличный безналичный банк экваер ВТБ.
При попытке запроса ключей терминал соединяется с банком но приходит ответ отказано
05.02.2013 06:49:19 dime
>Есть и более замечательной свойство у это платы, она может определить, что её вынимали из компьютера даже при том, что питание компьютера отключено, и в этом случаи вы опять потеряете LMK!
Попробуйте догадаться как?
Довольно очевидный способ — мониторить выводы разъёма, которые в шине дублированы. Например, в шине есть несколько выводов типа «земля». Вставляем плату — все они замкнуты на материнке. Вытаскиваем — они размыкаются. Угадал? 🙂
05.02.2013 07:05:12 kimssster
February 4, 2013, 11:05 pm
Управлял где-то годик HSM e-thales security payshield 9000. В основе принцип 2 персон: 2 смарт карты – поочередно вводятся последовательности pin для инициализации LMK, 2 железных ключа: режимы работы зависят от того в какую сторону повернут ключ – ощущаешь себя как при пуске ракет. Применялась для расшифровки ключевых последовательностей: 1) печать крипто-ключей для pos-terminal и банкоматов 2) загрузка KLK ключей непосредственно в pos-terminal. Для того чтобы производить данные манипуляции, к HSM нужно было синхронизировать ЭВМ, потому что печатать сама она не умеет и данные для расшифровки тоже в нее подгрузить нельзя. Еще минус в том, что HSM это крипто средство, которое по требованиям должно находиться в специальном помещении, а удаленно до него не достучаться. Управляется через Putty, пробовал HyperTeminal так ни разу не законнектился. В комплекте идет 1 кабель USB-->COM-мама и все, для синхрона пришлось искать переходники и т.п. Если честно, за стоимость в 1 млн. руб., с точки зрения юзабилити могло быть и лучше.
По поводу Pin-клавиатур в банкоматах. Выходят из строя они редко, но почему-то в них очень часть слетают ключи шифрования
05.02.2013 07:40:18 opanas
February 4, 2013, 11:40 pm
Добавлю и от себя информацию (на прошлом месте работы продавали HSM в банки) — действительно, SafeNet и Thales являются двумя ведущими вендорами, причем Thales делает упор на финансово-специализированные HSM (линейка PayShield, поддерживают специфические команды), то SafeNet является более доступным вариантом (в частности в виде платы) и линейка широкая, в том числе HSM общего назначения с длинным списком поддерживаемых операций.
Касательно удаленного управления — «безопасность наше все», поэтому HSM и находится в отдельной комнате, и сеть использует изолированную, и ключевая информация двухфакторна (ключ/смарткарта + ПИН) как минимум 2-8 офицерам безопасности делится (чтоб сговор минимализировать вероятность сговора). Правда, с появлением модели Thales HSM 9000 таки появилась возможность удаленной работы с HSM'ом с помощью Remote HSM Manager — это по сути 3 картридера со своим набором смарт-карт, где один картридер выступает в качестве аналогичного картридера самого HSM'a, а остальные два — полностью повторяют логику работы физических ключей доступа. В ценах могу ошибаться, но стоит такой набор порядка 10 000 евро и особо актуален, когда HSM в ЦОД устанавливают, а не локально в защищенной комнате банка используют.
05.02.2013 07:59:52 Sleuthhound
February 4, 2013, 11:59 pm
От ректального криптоанализа горячим паяльником никакой HSM не спасет 😉 Это на тему как узнать пин-код карты босса. 😀
А так HSM устройства очень даже интересные, стоят во всех банкоматах.
05.02.2013 08:03:01 Ocelot
February 5, 2013, 12:03 am
Если это единственная проверка, то она легко обходится. Замкнул нужные контакты снаружи, аккуратно вынул, надел на разъем заглушку. Рискну предположить, что дополнительно мониторится емкость между контактами.
05.02.2013 08:06:28 StarWoofy
February 5, 2013, 12:06 am
Статья интересная, орфография ужасная.
Грамарнаци негодуе.
05.02.2013 08:06:53 opanas
February 5, 2013, 12:06 am
ПИН-код вы через HSM не узнаете никак — он в чистом виде не хранится и HSM может лишь принимать запрос «проверь-ка, правильный ли вот этот введенный ПИН» (собственно, именно такой запрос и идет от банкомата). Банкомат по умолчанию шифрует лишь ПИН код (с помощью мини-HSM встроенного в клавиатуру), остальные сервисные команды с процессинговым центром идут без шифрования. Именно поэтому раньше были популярны атаки на банкомат, когда злоумышленники подключали сетевой кабель из банкомата в свой ноутбук и, представившись процессингом, давали команду на выдачу денег из кассет. Для борьбы с такими умниками сейчас весь трафик банкомата и шифруют с помощью VPN — большинство по инерции на Cisco, экономные на програмных продуктах, а наиболее умные 🙂 — на Check Point (мне известен проект защиты 3000 банкоматов с централизованным управлением, администрируют 1-2 человека).
05.02.2013 08:28:10 SADKO
February 5, 2013, 12:28 am
Расскажите пожалуйста подробнее про POS терминалы, предусмотрена ли там защита от вскрытия и вмешательства в схему?
А как дела с информационной составляющей спектра ЭМП?
А то выглядят хлипко, весят легко, и пользуясь POS терминалом мне часто становится не по себе.
05.02.2013 08:39:47 kimssster
February 5, 2013, 12:39 am
Спасибо за информацию. Сообщу своим бывшим коллегам про удаленку. По поводу цены… видимо для народного банка стоимость увеличили в 2 раза. Основной целью его внедрения был отказ от пересылки спецсвязью конвертов из гпц, а печать их на месте при необходимости смены ключей, перерегистрации устройств и т.п.
05.02.2013 08:46:37 opanas
February 5, 2013, 12:46 am
Поделюсь той информацией, что знаю: ведущих производителей ПОС-терминалов несколько, возможности различных аппаратов и их систем управления отличаются. Безопасность транзакций осуществляют за счет SSL-шифрования: в ПОС устанавливается приватный/публичные ключи и устанавливается SSL-VPN туннель с процессингом, где установлен SSL-терминирующее оборудование (например для этого используют Radware Alteon/AppDirector балансировщики трафика).
Так что бояться тут особо нечего, более реалистичная система фрода (нарушения. кражи) — это когда вашу карточку незаметно считывают в скиммере, например, прикрепленном к ноге официанта-злоумышленника, который «роняет» и поднимает вашу платежную карту. Также стоит внимательно смотреть на банкомат перед использованием — распространена схема, когда в картоприемник приклеивается доп.считыватель, а недалеко от банкомата видеокамера записывает ввод ПИН-кода.
05.02.2013 08:48:08 kimssster
February 5, 2013, 12:48 am
Мне тоже известен, только устройств по-больше и не только банкоматы еще и усошки на амиконовском паке. Вариантов множество, в общем.
05.02.2013 08:50:33 Sleuthhound
February 5, 2013, 12:50 am
В POS-терминалах на вскрытие есть защита, кнопка (как правило 2 или 3), размыкающая цепь питания микросхемы памяти где лежат ключи. Если POS-терминал с внешним пин-падом, то ключи хранятся именно в пин-паде и там же идет шифрование введенного пина. Если POS-терминал без пин-пада, то все шифруется там. В любом случае концевики есть и в POS-терминале и пин-паде, где хранятся ключи определяется в настройках терминала.
Ну и POS-терминалв это не HSM, если откроешь его, в кирпич он не превратиться, просто сбросятся ключи шифрования и все.
05.02.2013 09:50:45 zBit
February 5, 2013, 1:50 am
Может поставите ссылку на первую часть в начале статьи?
05.02.2013 17:43:29 menraen
February 5, 2013, 9:43 am
От применения терморектального криптоанализа может и не спасёт, только вот неэффективен этот вид криптоанализа против таких систем 🙂
Я уже как-то писал про интересную особенность подобных железяк. Их главная задача — любой ценой не дать защищаемой информации (в данном случае — ключам) попасть в руки атакующего, причем под «любой ценой» обычно понимается, что даже потеря защищаемой информации является предпочительней выдачи ее неавторизованному лицу.
Т.е. при малейшем подозрении со стороны девайса на попытку атаки ключи испаряются. А атака может быть:
подбор пароля — попытки вручную либо механически подобрать код
физическая — попытки что-нибудь выпаять (или впаять)
химическая — попытки растворить корпус
электрическая — попытки подать нестандартное напряжение
логическая — попытки подать нестандартные входные данные
термическая — попытки раскалить/заморозить
принуждение — на случай захвата устройства вместе с человеком-носителем
Причем при настройке порога срабатывания этих защит считают ложную сработку меньшим злом, чем несработку при атаке.
Также учитывается возможность того, что у врага есть бесконечно много таких устройств, которые ему не жалко «убить» в поисках уязвимостей (т.е. коммерчески доступное устройство). Для защиты от этого каждое устройство может быть внутри уникальным — разное расположение элементов, ширина и расположение дорожек, адреса устройств на внутренней шине, пороги срабатывания защит.
05.02.2013 18:19:54 dozier
February 5, 2013, 10:19 am
Прошу прощения, но из вашего поста я мало что понял что такое HSM. Кроме того, что «HSM это замечательная и довольно дорогая штука» и как он работает непонятно для чего этот удивительный девайс нужен. Этим грешат много писателей здесь, которые хотят рассказать о чем-то удивительном и малоизвестном, но добавить небольшой абзац вначале статьи, где это и зачем применяется не удосуживаются 🙂
05.02.2013 18:41:52 mejedi
February 5, 2013, 10:41 am
Существует список сертифицированных устройств на которых можно вводить ПИН-код с уверенностью, что он не покидает не зашифрованным это устройство.
Выглядит как самое слабое место во всей системе. Подскажите как мне, как пользователю, удостовериться что мне предлагают вводить пин на сертифицированном устройстве?
А король то голыйАутентификация то выходит односторонняя (я подтверждаю свою аутентичность тем, что знаю PIN, а вторая сторона никак свою подлинность не подтверждает).
05.02.2013 18:50:16 dozier
February 5, 2013, 10:50 am
Сертификация это не то, что вас, как пользователя заверит в надежности защиты. Это список того, чему госорганы доверяют.
05.02.2013 18:52:30 Cobolorum
February 5, 2013, 10:52 am
Да мониторится земля.
Но не пара, а несколько контактов. Для PCI-E испольнения можно пошаманить и вытащить. А вот для просто PCI наверное будет сложно.
05.02.2013 18:57:02 Cobolorum
February 5, 2013, 10:57 am
Современный POS при вскрытии превратится в полу-керпич. Он должен показать что возника tamper ошибка и отправляй его на родину к производителю.
05.02.2013 18:59:21 mejedi
February 5, 2013, 10:59 am
ОК, просто я так понимаю много вкладывается в то, чтобы пин код, введенный на клавиатуре, так просто в открытом виде не ходил. Но при этом его можно с небольшими усилиями увести фишингом (замаскировать свою поделку под защищенное устройство) или подсмотреть камерой из-за угла.
Или речь тут не идет о вводе ПИН-а клиентом в публичных местах?
05.02.2013 18:59:27 Cobolorum
February 5, 2013, 10:59 am
Как конечному пользователю ни как не убедится. Вводя ПИН-всегда рискуешь.
05.02.2013 19:06:44 Cobolorum
February 5, 2013, 11:06 am
Один ПИН ни чего не даст. Нужен ПИН + вторая полоса с карты (об этом будет дальше в статьях).
Речь идёт об обеспечении элементарной безопасности. Для примера я вот не знаю решений где можно ввести ПИН на сенсорном экране монитора банкомата. Но есть решения где можно ввести ПИН на сенсорном экране терминала. Вроде разницы то не много, но в первом случаи не получается контролировать «периметр устройства», а вот во втором случаи даже очень просто. Подвесить троян или что то подобное в банкомат на порядки проще чем в POS терминал.
06.02.2013 07:05:31 Sleuthhound
February 5, 2013, 11:05 pm
Нет, никуда отправлять не надо, полу-кирпичами они не становятся.
Ошибка возникает, но терминал продолжает работать. Сбрасываются только ключи, это 100%, на столе стоят Verifon VX510 и Ingenico 5100, я такие регулярно перебираю, выходят из строя то принтеры, то чип-ридеры, открываю, ставлю новые, перепрошиваю, заливаю новые ключи и все работает.
01.03.2013 21:44:42 ntkt
March 1, 2013, 1:44 pm
«Управляется через Putty» — тссс! Ведь мы-то знаем, что положено использовать выделенный защищенный аппаратный терминал 🙂