- Как устроен и как работает пин-пад
- ❯ Суть такова
- ❯ Обзор оборудования
- ❯ Методы защиты
- ❯ Первое включение
- ❯ Что с экраном?
- ❯ Управляющие пакеты
- ❯ Выводим текст на экран
- ❯ Ключи
- ❯ Организация ключей
- ❯ Загружаем ключ
- ❯ PIN-block
- ❯ Запрашиваем PIN
- ❯ Немного о Contactless
- ❯ Так что в итоге?
- Главное в оборудовании
- Подробнее о наших услугах
- Преимущества
Как устроен и как работает пин-пад
Время на прочтение
Многие из нас хоть раз читали, как происходит обработка банковских операций. И все мы знаем, что незашифрованный 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 всех байт пакета, за исключением начального.
Функция для расчёта этого значения
Если контрольная сумма соответствует, пин-пад присылает в ответ байт «ACK», если нет — «NAK». После трёх несоответствий подряд отправляется «EOT».
Также стоит отметить параметры порта — 7 data bits, even parity. Скорость задаётся в том самом меню.
❯ Выводим текст на экран
На примере вывода текста рассмотрим отправку пакета.
Итак, для вывода текста служит пакет типа Z2. Вначале к строке добавляется символ «STX» (для удобства коды всех этих символов я указал в начале программы через define), потом, код пакета «Z2», далее символ «SUB», служащий для очистки экрана, сама строка для вывода, символ «ETX». Рассчитывается и также добавляется контрольное число.
Итак, пробуем:
Программа для вывода строки
Запускаем, и, если всё было подключено правильно, на дисплее должно будет появиться примерно следующее:
Разумеется, на «узком» пин-паде это тоже работает:
❯ Ключи
Итак, в терминальном ПО можно встретить в основном три вида ключей: 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». Далее требуется указать номер ячейки, куда будет загружен ключ, и, собственно, сам ключ.
Вот как-то так
Для примера я загружу туда ключ 0123456789ABCDEF. Этот пакет несколько отличается по формату: после ответа пин-пада надо отправить «ACK», иначе ключ забит не будет.
После загрузки ключа также пропадёт сообщение «Tampered device».
❯ PIN-block
❯ Запрашиваем PIN
Ну что, время попробовать прочитать PIN.
Для начала подготовим входные данные. PAN возьмём всё тот же, что был в посте про магнитные карты — 4034351574462072. Рабочим ключом пусть будет 0123456789012345. Зашифруем его с помощью ранее заданного мастер-ключа, получив при этом значение 59216EC9E36F8EF8.
Функции в итоге получились вот такие:
❯ Немного о Contactless
А вот и такой экземпляр в работе, фото сделано в Греции летом две тысячи двадцать первого года:
❯ Так что в итоге?
Вот мы и рассмотрели ещё одну составляющую обработки пластиковых карт. Попутно продемонстрировали, как запустить такие устройства в «лабораторных» условиях.
Определённо уверен, что все эти материалы кому-нибудь понравятся, тем более, что такого описания подобного оборудования почти никто не делал.
TS-RDR-QR2-EM Tantos Считыватель QR-кода и карт формата EM-Marin, накладной. Чтение штрих-кодов любых форматов не поддерживается!
Код товара: Бренд: Tantos
Розничная цена:7 270,00 руб
TS-RDR-QR2-MF Tantos Считыватель QR-кода и карт формата Mifare, накладной. Чтение штрих-кодов любых форматов не поддерживается!
Розничная цена:7 970,00 руб
Розничная цена:11 940,00 руб
TS-RDR-MF Black Считыватель карт Mifare (в режиме чтения UID), рабочая частота 13,56МГц, выходной протокол Wiegand-26, питание 9-16В, габаритные размеры 102х43х16мм. Цвет: черный
Розничная цена:2 480,00 руб
TS-RDR-E Black Считыватель карт Em-marine, выходной протокол Wiegand-26, питание 9-16В, габаритные размеры 102х43х16мм. Цвет: черный.
Розничная цена:1 540,00 руб
Розничная цена:2 380,00 руб
Matrix-II (мод. Е) серый
Matrix-II (мод. Е) серый. Бесконтактный уличный считыватель, формат считываемых карт EM-Marine, выходной интерфейс ТМ, 85х44х18 мм
Розничная цена:1 942,50 руб
Оптовая цена:1 850,00 руб
Код товара: Бренд: Parsec
Розничная цена:14 400,00 руб
CTM-KP Считыватель ключей TouchMemory накладной крашеный с 1-цветной индикацией, 49×21 мм
Код товара: Бренд: CTM
CTM-HR (хром) Считыватель ключей Touch Memory накладной с 1-цветной индикацией. Размеры (D х H): 39 х10 мм
TS-RDR-E White Считыватель карт Em-marine, выходной протокол Wiegand-26, питание 9-16В, габаритные размеры 102х43х16мм. Цвет: белый
TS-RDR-USB-EM Настольный USB-считыватель для внесения идентификаторов формата Em-Marin в базу данных СКУД
Розничная цена:1 640,00 руб
TS-RDR-E Metal (W-26)
Розничная цена:3 820,00 руб
Розничная цена:5 520,00 руб
Розничная цена:4 290,00 руб
Код товара: Бренд: Sigur
Розничная цена:25 000,00 руб
Z-2 (мод. RD-ALL) темный
Розничная цена:5 250,00 руб
Оптовая цена:5 000,00 руб
Z-2 (мод. MF) Cчитыватель RFID 13,56 MHz Mifare (чтение/запись) Поддержка форматов Mifare 1K, Mifare 4K, Mifare ID, настольный, USB
Розничная цена:5 575,50 руб
Оптовая цена:5 310,00 руб
Matrix-III RD All темно-серый
Matrix-III RD All темно-серый. RFID считыватель 13,56 MHz & 125 KHz (EMM, HID, Mifare (только чтение номера), интерфейсы RS485, RS-232, Wiegand 26, Dallas Touch Memory, 115х75х22мм
Розничная цена:5 649,00 руб
Оптовая цена:5 380,00 руб
Розничная цена:1 260,00 руб
Оптовая цена:1 200,00 руб
CP-Z-2 (мод. MF-I) накладной тёмный
Розничная цена:2 278,50 руб
Оптовая цена:2 170,00 руб
CP-Z-2 (мод. EP) накладной тёмный
Розничная цена:1 606,50 руб
Оптовая цена:1 530,00 руб
PROX-13 ver.2 Бесконтактный считыватель идентификаторов форматов MIFARE и ICODE, DS1990A, Wiegand-26, -34, -37, -40, -42, -58, 87х44х18 мм, IP 54
Код товара: Бренд: Prox
Розничная цена:4 300,00 руб7 877,50 руб
Matrix-II EH серый
Matrix-II EH серый. Считыватель карт HID и EM-Marine, выходной интерфейс ТМ или Wiegand 26, питание 8-18 В, Размеры: 85х44х18 мм
Розничная цена:2 478,00 руб
Оптовая цена:2 360,00 руб
Розничная цена:12 604,00 руб
Оптовая цена:8 220,00 руб
Розничная цена:2 466,00 руб
Оптовая цена:2 340,00 руб
КТВ Контактор-считыватель врезной без подсветки.
Код товара: Бренд: Даксис
Код товара: Бренд: ACS
Розничная цена:6 400,00 руб
Оптовая цена:6 100,00 руб
PROX KC-MF-USB Регистрационный считыватель (только чтение), карты MIFARE; USB (эмуляция СОМ-порта и клавиатуры).
Код товара: Бренд: VIZIT
Розничная цена:2 845,00 руб
Matrix-II (мод. Е) черный
Matrix-II (мод. Е) черный Бесконтактный уличный считыватель, формат считываемых карт EM-Marine, выходной интерфейс ТМ, 85х44х18 мм
CP-Z-2 (мод. MF-I) накладной светлый
CP-Z-2 (мод. MF-I) накладной светлый. Миниатюрный уличный считыватель Mifare, 45×25мм
Matrix-II MF-I черный
Matrix-II MF-I черный. Считыватель карт Mifare, выходной интерфейс ТМ или Wiegand 26, питание 8-15 В. Размеры: 85х44х18 мм
Розничная цена:2 740,50 руб
Оптовая цена:2 610,00 руб
Код товара: Бренд: Цифрал
Розничная цена:2 531,15 руб
Matrix-IV EHT Metal Keys – Антиклон
Розничная цена:3 780,00 руб
Оптовая цена:3 600,00 руб
CP-Z-3 (мод. E) темный
CP-Z-3 (мод. E) Бесконтактный считыватель, 125 кГц, HID Prox, EM-Marine, 8 – 18В, 35мA, Wiegand 26, Dallas Touch Memory (эмуляция DS1990A), -30°С +40°С, 78х26х10 мм, чёрный
Обязательный элемент любой СКУД, без которого невозможна ее работа — бесконтактный считыватель для карт. Устройства считывают код смарт-карты или программируемого ключа и мгновенно идентифицируют личность человека и уровень его доступа. Представленные в разделе считыватели используются для контроля действий персонала на предприятиях и в офисах, а также в частных домах, в отелях для открытия номера посетителем.
Главное в оборудовании
Одна из главных характеристик при выборе считывателей – формат идентификаторов. В наличии представлены следующие популярные модели:
- EM-Marin – используются в системах контроля доступа и учета рабочего времени, авторизации при включении компьютера, отслеживания транспорта, приложениях для учета товаров на складах, в антикражных и охранных системах. Чтение ключа осуществляется на расстоянии от пары сантиметров до 1 метра. Рабочая частота – 125 кГц.
- Считыватели карт HID Prox – популярны при организации простых систем физического контроля доступа персонала на охраняемую территорию или здание. Их применение повышает удобство процедуры идентификации пользователей при входе в операционную систему или к рабочим приложениям. Считывание кода пропуска типа HID Prox производится на дистанции до двух метров и зависит от технических характеристик, мест и условий эксплуатации устройства.
- Mifare – обеспечивают высокую скорость идентификации. Применяются в общественном транспорте для осуществления оплаты за проезд, в магазинах для организации дисконтной программы и скидок по картам покупателей и в качестве ключей доступа к компьютеру и в помещения. Рабочая частота – 13.56 МГц.
Подробнее о наших услугах
«Сатро-Паладин» занимается послепродажной подготовкой товара – монтажом оборудования, инженерных и сетей коммуникации. Компания работает с физическими и юридическими лицами. Опыт работы позволяет выполнять технически сложные задачи и устанавливать необходимое оборудование в домах, офисах, торговых центрах, больницах и на промышленных предприятиях. Также организация проводит бесплатное сервисное обслуживание товаров, приобретенных на нашем сайте.
Преимущества
- Большой выбор бесконтактных, USB и считывателей с поддержкой NFC, поставляемых в Россию напрямую с завода-изготовителя
- Доставка по Москве и РФ
- Наличный и безналичный расчет
- Быстрый возврат средств
- Гарантия
- Распродажа товаров.
Чтобы купить оборудование по выгодной цене – переходите на сайт и заказывайте!