Klk ключи что это
Перейти к содержимому

Klk ключи что это

  • автор:

Klk ключи что это

Как создать адрес биткоин-кошелька с помощью закрытого ключа
Klk ключи что это. Как создать адрес биткоин-кошелька с помощью закрытого ключа На ее основе создаются специальные сурдологические устройства для детей с проблемами слуха.

Как создать адрес биткоин-кошелька с помощью закрытого ключа

Небольшая статья с примерами о том, каким образом можно получить открытый ключ, имея закрытый.

Как создать адрес биткоин-кошелька с помощью закрытого ключа

В предыдущей статье мы рассматривали различные методы генерации закрытого ключа. Какой бы метод вы ни выбрали, в конце вы получите 32 байта данных. Вот ключ, который мы получили в конце той статьи:

60cf347dbc59d31c1358c8e5cf5e45b822ab85b79cb32a9f3d98184779a9efc2
В этой статье мы будем использовать этот закрытый ключ для получения как открытого ключа, так и адреса для биткоин-кошелька.

Наша задача – применить серию преобразований к закрытому ключу, чтобы получить открытый ключ, а затем и адрес кошелька. Большинство этих преобразований называются хэш-функциями. Эти хэш-функции являются односторонними преобразованиями, которые нельзя отменить. Мы не будем вдаваться в механизм самих функций — по этому вопросу есть много замечательных статей. Вместо этого мы рассмотрим, как использование этих функций в правильном порядке может помочь вам сгенерировать адрес биткоин-кошелька, который вы впоследствии сможете использовать.

Криптография с использованием эллиптической кривой

Первое, что нам нужно сделать, это применить алгоритм цифровой подписи ECDSA или Elliptic Curve к нашему закрытому ключу. Эллиптической кривой является кривая, определенная уравнением y² = x³ + ax + b с выбранной a и b. Существует целое семейство таких кривых, которые широко известны и широко используются. Для биткоина используется кривая secp256k1/. Если вы хотите узнать больше о криптографии на основе эллиптических кривых, почитайте эту статью.

Применяя ECDSA к закрытому ключу, мы получаем 64-байтовое целое число. Оно состоит из двух 32-байтовых целых чисел, которые представляют соединенные вместе точки X и Y эллиптической кривой.

Для нашего примера мы получили:

На языке Python это будет выглядеть так:

Примечание: как видно из кода, прежде чем я использовал метод на базе модуля ECDSA, я расшифровал закрытый ключ, используя кодеки. Это больше относится к Python и меньше к самому алгоритму, но я объясню, что мы здесь делаем во избежание возможной путаницы.

В Python есть как минимум два класса, которые могут хранить закрытый и открытый ключи: “str” и “bytes”. Первый – это строка, а второй – массив байтов. Криптографические методы в Python работают с классом “bytes”, принимая его в качестве входных данных и возвращая как результат.

Теперь, есть маленькая загвоздка: строка, скажем, 4f3c не равна массиву байтов 4f3c, она равна массиву байтов с двумя элементами, O<. И вот тут как раз в дело вступает codecs.decode: этот метод преобразует строку в массив байтов. Все то же самое будет и для всех криптографических манипуляций, которые мы будем приводить в этой статье.

Открытый ключ

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

Сжатый открытый ключ

Но мы можем сделать лучше. Как вы помните, открытый ключ является некоторой точкой (X, Y) на кривой. Мы знаем кривую, и для каждого X есть только два Ys, которые определяют точку, которая лежит на этой кривой. Так зачем хранить Y? Вместо этого, давайте сохраним X и знак Y. Позже мы можем вернуть Y, если в этом будет необходимость.

Особенности заключаются в следующем: мы берем X из открытого ключа ECDSA. Теперь, мы добавим 0x02, если последний байт Y четный, и байт 0x03, если последний байт нечетный.

В нашем случае последний байт нечетный, поэтому мы добавляем 0x03, чтобы получить сжатый открытый ключ:

Этот ключ содержит ту же информацию, но он почти в два раза короче, чем несжатый ключ. Клево!

Раньше программное обеспечение кошельков использовало длинные, полные версии открытых ключей, но теперь большинство из них перешло на сжатые ключи.

Шифрование открытого ключа

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

Здесь нам нужно применить SHA-256 к открытому ключу, а затем применить RIPEMD-160 к результату. Порядок очень важен.

SHA-256 и RIPEMD-160 являются двумя хэш-функциями, и опять же, мы не будем вдаваться в детали того, как они работают.

Важно то, что теперь у нас есть 160-битное целое число, которое будет использоваться для дальнейших модификаций. Назовем это зашифрованным открытым ключом. Для нашего примера, зашифрованный открытый ключ – это 453233600a96384bb8d73d400984117ac84d7e8b

Зашифрованный открытый ключ = RIPEMD-160 (SHA-256 (Открытый ключ))

Вот как мы шифруем открытый ключ в Python:

Добавление сетевого байта

Биткоин имеет две сети, основную и тестовую. Основной сетью является сеть, которую все люди используют для перевода монет. Тестовая сеть была создана, как вы уже догадались, для тестирования новых функций и программного обеспечения.
Мы хотим создать адрес для использования его в основной сети, поэтому нам нужно добавить 0x00 к зашифрованному открытому ключу. Результат 00453233600a96384bb8d73d400984117ac84d7e8b . Для тестовой сети это будет 0x6f .

Контрольная сумма

Теперь нам нужно рассчитать контрольную сумму для нашего ключа в основной сети. Идея контрольной суммы состоит в том, чтобы убедиться, что данные (в нашем случае, ключ) не были повреждены во время передачи. Программное обеспечение кошелька должно ориентироваться на контрольную сумму и отмечать адрес как недопустимый, если контрольная сумма не соответствует заявленной.

Чтобы вычислить контрольную сумму ключа, нам нужно применить SHA-256 дважды, а затем взять первые 4 байта результата. В нашем примере двойной SHA-256 — это 512f43c48517a75e58a7ec4c554ecd1a8f9603c891b46325006abf39c5c6b995 , и поэтому контрольная сумма 512f43c4 (обратите внимание, что 4 байта составляют 8 шестнадцатеричных цифр).

1_c0ArwEiHwayazRBpEbQQOA.png
С = SHA-256 (SHA-256 (зашифрованный открытый ключ основной сети))
Контрольная сумма = первые 4 байта С

Для расчета контрольной суммы адреса используется следующий код:

Получение адреса

Наконец, чтобы получить адрес, мы просто объединяем ключ основной сети и контрольную сумму. В нашем случае это выглядит так: 00453233600a96384bb8d73d400984117ac84d7e8b512f43c4

Вот и все! Это адрес кошелька для закрытого ключа, приведенного в начале статьи.

Но вы можете заметить, что что-то не так. Вы, вероятно, уже встречали биткоин-адреса, и они не выглядели так. Ну, причина в том, что они кодируются с помощью Base58 (вариант кодирования цифрового кода в виде буквенно-цифрового текста на основе латинского алфавита. Алфавит кодирования содержит 58 символов). Это немного странно.

Вот алгоритм для преобразования шестнадцатеричного адреса в адрес Base58:

Мы получаем 17JsmEygbbEUEpvt4PFtYaTeSqfb9ki1F1 , сжатый адрес биткоин-кошелька.

Шестнадцатеричный адрес = зашифрованный открытый ключ основной сети + адрес контрольной суммы = Base58 (Шестнадцатеричный адрес)

Вывод

Процесс генерации ключей кошелька можно разделить на четыре этапа:

  • создание открытого ключа с помощью ECDSA
  • шифрование ключа с помощью SHA-256 и RIPEMD-160
  • расчет контрольной суммы с помощью двойной SHA-256
  • кодирование ключа с помощью Base58.

В зависимости от формы открытого ключа (полный или сжатый), мы получаем разные адреса, но оба совершенно допустимы.

Вот полный алгоритм для несжатого открытого ключа:

Эллиптический открытый ключ = ECDSA (закрытый ключ)
Открытый ключ = 0х04 + эллиптический открытый ключ
Зашифрованный открытый ключ = RIPEMD-160 (SHA-256 (открытый ключ))
Зашифрованный открытый ключ основной сети = 0х00 + Зашифрованный открытый ключ
С = SHA-256 (SHA-256 (Зашифрованный открытый ключ основной сети))
Контрольная сумма = первые 4 байта С
Шестнадцатеричный адрес = Зашифрованный открытый ключ основной сети + Контрольная сумма
Адрес = Base58 (Шестнадцатеричный адрес)

Если вы хотите «поиграть» с кодом, я опубликовал его на GitHub.

Я делаю обзор о криптовалютах на Medium. Первая часть – подробное описание блокчейна.

Подключение эквайринга Эвотор.PAY

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

Компактные и легкие терминалы пришли на помощь! Купить терминал эвотор с последующим подключением Эвотор.PAY вы сможете в интернет-магазине Тех-центр или по телефону с предоставлением гарантии от производителя. Также для начинающих бизнесменов аппарат эвотор купить в рассрочку без переплат не составит труда без посещения банков и заполнения кучи документов. Подключайте сервисы и заказывайте технику сейчас, а платите потом.

Все больше предпринимателей понимают ценность приема платежных карт для развития бизнеса. По оценкам Эвотора, подключение эквайринга позволяет увеличить выручку торговой точки до 70%.

Что представляет собой Эвотор.PAY?

Основные преимущества подключения Эвотор.PAY

• Подключение происходит от 5 рабочих дней без посещения в банковского офиса
• Производится приём любых видов платежей
• Финансы зачисляются на РС любого российского банка уже в течение последующего дня.
• Полная совместимость с любыми кассами Эвотор
• Сертификат PCI DSS гарантирует безопасную работу электронной платформы, защищая от хакерских атак и обеспечивая сохранность персональных данных при оплате банковскими картами.
• Поддержка еще 156 моделей платежных устройств от других изготовителей.
• Прием платежных карт можно настроить за пару минут.

Чтобы подключить эквайринг Эвотор.PAY, не надо ходить в банк: вы заполняете заявку в личном кабинете Эвотора, мы передаём её эквайеру, а он её одобряет. После этого надо активировать Эвотор 5i или, если у вас другая модель Эвотора, пинпад Ingenico IPP320.

Выбор эквайера

Эквайер UCS МТС-банк Банк «Русский стандарт»
Сроки подключения до 5 рабочих дней от 5 рабочих дней до 20 рабочих дней
Платёжный лимит 20 000₽, можно отключить по заявлению 20 000₽, можно отключить по заявлению
Зачисление выручки на следующий рабочий день, если накопилось 5 000₽ на следующий рабочий день на следующий рабочий день

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

Эквайеры переводят выручку в любой российский банк и не берут за это дополнительной комиссии. Чтобы работать с банком-эквайером, не нужно заводить там новый счёт.

Заполнение заявки

Перейдите в Личный кабинет → Эквайринг. Выберите, что будете использовать — Эвотор 5i или пинпад IPP320.

Выберите устройство

Заполните данные контактного лица. Введите телефон и почту, по которым с вами точно можно связаться: на почту мы пришлём документы на подпись, а по телефону позвоним, если понадобится решить срочный вопрос. Введите код партнёра, если он у вас есть. Нажмите «Далее».

Кнопка «Далее»

Укажите свой город, сферу деятельности и деятельность. Появится таблица с комиссиями эквайеров. Выберите эквайера и нажмите «Далее».

acquiring_03.png

Если вы ИП, начните вводить фамилию или ИНН. Личный кабинет сам подставит в форму данные из ЕГРИП. Заполните поля, которые остались пустыми.

Форма ввода данных об ИП

Если у вас ООО, начните вводить название компании или ИНН. Личный кабинет сам подставит в форму данные из ЕГРЮЛ. Заполните поля, которые остались пустыми.

Форма ввода данных об ООО

Введите реквизиты счёта. Трижды их проверьте: на этот счёт эквайер будет переводить ваши деньги. Нажмите «Далее».

Кнопка «Далее»

Если вы ИП, заполните сведения о себе.

Форма ввода сведений об ИП

Прикрепите сканы паспорта или его фото без вспышки. Если вы не резидент России, прикрепите ещё вид на жительство, миграционную карту и разрешение на работу — всего можно прикрепить до 10 документов. Нажмите «Далее».

Кнопка «Далее»

Если вы ООО, введите сведения о бенефициарах — тех, кто получает дивиденды от деятельности компании и имеет долю более 25% в её уставном капитале. Если вы единственный учредитель и одновременно генеральный директор, поставьте отметку в чекбокс «Бенефициар является руководителем организации».

Форма ввода сведений о бенефициарах

Если долей более 25% владеют несколько человек, нажмите «Добавить бенефициара».

Кнопка «Добавить бенефициара»

В разделе «Подписант договора» введите данные о сотруднике, уполномоченном подписывать договор с банком. Можете скопировать их с данных о бенефициаре. Загрузите сканы паспорта. Выберите документ, дающий сотруднику право подписи. Нажмите «Далее».

Кнопка «Далее»

Заполните данные о торговой точке, где будет стоять банковский терминал. Укажите точный адрес, размер помещения и тип точки — офис, кафе, ларёк, магазин и т. д. Приложите скан договора аренды или свидетельства о собственности. Если занимаетесь бизнесом, для которого нужна лицензия, поставьте отметку в поле «Деятельность организации подлежит лицензированию». Укажите данные лицензии и загрузите её скан или фото без вспышки.

Интерфейс загрузки сканов

Введите серийный номер Эвотора и пинпада. Серийные номера указаны на нижних корпусах устройств. Нажмите «Далее».

Ввод серийного номера

Если нужно, добавьте комментарий. Например, напишите, если сомневаетесь, правильно ли заполнили те или иные поля — мы перепроверим. Нажмите «Отправить».

Кнопка «Отправить»

Отслеживание заявки

Отслеживайте статус заявки в Личный кабинет → Эквайринг → Заявки. UCS рассматривает заявку до 5 рабочих дней. МТС-банк — от 5 рабочих дней. Банк «Русский стандарт» — до 20 рабочих дней.

  • Ваша заявка получена. Менеджер Эвотор.PAY проверяет заявку перед тем, как отправить её в банк.
  • Заявка на рассмотрении в банке. UCS рассматривает заявку до 3 рабочих дней, «Русский стандарт» — до 10 рабочих дней, МТС-банк — от 5 рабочих дней.
  • Подпишите документы и пришлите сканы. Проверьте электронную почту — на неё пришли документы, которые нужно подписать. Подпишите их и пришлите скан ответным письмом. Оригиналы в течение месяца отправьте по адресу: ООО «ЭВОТОР» (Эвотор.PAY), Москва, 119021, ул. Тимура Фрунзе, д. 24.
  • Сканы документов получены и отправлены в банк. Эквайер проверяет, правильно ли вы подписали договор. UCS отвечает до 2 рабочих дней, МТС-банк — от 5, «Русский стандарт» — до 10.
  • Требуется дополнительная информация. Эквайер может запросить фотографии торговой точки — такие, на которых виден адрес. Если вы не резидент России, эквайер запросит вид на жительство, миграционную карту и разрешение на работу. Эквайер может рассматривать дополнительные документы в течение 10 рабочих дней.
  • Ожидаем параметры от банка. UCS присылает настройки для активации банковского терминала, МТС-банкт — в течение 5 рабочих дней, «Русский стандарт» — в течение 10 рабочих дней.
  • Ваше оборудование готово к активации. Эквайер прислал настройки для активации пинпада. Если используете Ingenico IPP320, в заявке появится ссылка для установки драйвера.

Активация Эвотора 5i

Загрузите обновления для модуля эквайринга. Перейдите в Настройки → Обслуживание кассы → Эвотор.PAY → Прошивка. Нажмите «Запрос на обновление».

Подождите, пока обновления загрузятся — если связь плохая, они могут грузиться долго. Когда всё будет готово, Эвотор сообщит. Нажмите «Да».

Кнопка «Да»

Закончив обновление, Эвотор откроет меню «Обслуживание кассы».

Проверьте, установлены ли на Эвоторе ключи безопасности. Зайдите в Настройки → Обслуживание кассы → Эвотор.PАY → Общая информация. Если в поле «Keys» пусто, нужно установить ключи безопасности.

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

Установка ключей безопасности

Зайдите в Настройки → Обслуживание кассы → Эвотор.PАY → Общая информация. Запишите последние шесть цифр из строки SerNo.

Строка SerNo

Перейдите в раздел «Ключи». Нажмите «Ввод KLK» и введите эти шесть цифр в обратном порядке, начиная с последней. Нажмите «Ввод».

Кнопка «Ввод»

Нажмите «Сохранить KLK».

Кнопка «Сохранить KLK»

В скобках появится значение ключа. Ещё раз нажмите «Сохранить KLK».

Кнопка «Сохранить KLK (подтверждение)

Кнопка «Выход»

Нажмите «Обновить ключи с сервера» и подтвердите обновление.

Зайдите в Настройки → Обслуживание кассы → Эвотор.PАY → Общая информация. В поле Keys появятся ключи безопасности.

Поле Keys

Готово! Теперь ваш Эвотор 5i принимает карты.

Если возникла ошибка «Обмен завершён: Произошла ошибка (0105)», проверьте подключение к интернету. Если ошибка повторяется, подключите Эвотор к другой сети.

Если возникла ошибка NoTermID, действуйте по инструкции «Ошибки при обновлении прошивки платёжного модуля».

Если ключи безопасности не появились, напишите на support@evotor.ru. К письму приложите фото или видео момента с ошибкой. Если возникли другие проблемы, обратитесь в ближайший сервисный центр.

Видео-инструкция

Активация пинпада IPP320

Купите MagicBox — он не входит в комплект поставки.

MagicBox

Распакуйте пинпад и подключите к MagicBox. Подключите MagicBox патчкордом к роутеру или к розетке Ethernet. Патчкорд — это кабель Ethernet.

Патчкорд

Включите пинпад в розетку. На экране появится логотип Эвотор.PAY.

Логотип Эвотор.PAY

Активируйте пинпад. Нажмите на нём кнопку «2» и дождитесь, когда на экране появится сообщение «Терминал активирован».

Переведите пинпад в режим работы с кассой. Нажмите на пинпаде кнопку «6», затем зелёную кнопку. Стрелками выберите «Сохранить» и нажмите зелёную кнопку. На экране пинпада появится сообщение «Ожидание подключения к кассе».

Подключите пинпад к Эвотору. Перейдите на страницу драйвера пинпада в Эвотор.Маркете по ссылке, которую вы получили после одобрения заявки. Установите приложение на Эвотор.

Зайдите на Эвоторе в Настройки → Оборудование. Выберите драйвер по интеграции с ПО Эвотор V2.1 (SE). Нажмите «По умолчанию».

Кнопка «По умолчанию»

Дождитесь, когда на экране пинпада появится логотип Эвотор.PAY.

Готово! Ваш Эвотор принимает к оплате банковские карты.

Видео-инструкция

Решение проблем

Вариант 1. Вы купили пинпад не в Эвоторе. Обратитесь в ближайший сервисный центр.

Вариант 2. Пинпад не активировался, активируйте его ещё раз. Дальше действуйте по инструкции.

Вариант 3. Пинпад не подключён к Эвотору, подключите его ещё раз. Дальше действуйте по инструкции.

Вариант 1. Вы купили пинпад не в Эвоторе. Обратитесь в ближайший сервисный центр.

Вариант 2. Пинпад не подключён к Эвотору, подключите его ещё раз. Дальше действуйте по инструкции.

Вариант 3. На терминале не установлен драйвер Эвотор.PAY. Проверьте, есть ли на терминале драйвер Эвотор.PAY.

Если в списке оборудования драйвера нет, установите его. Ссылку на драйвер ищите в заявке на подключение эквайринга. После установки перезагрузите Эвотор.

Если ничего не помогло или у вас другая проблема, обратитесь в службу поддержки. В письме укажите серийный номер пинпада iPP320 и приложите фото или видео момента с ошибкой.

Частые вопросы

Обязательно ли открывать расчётный счёт в банке-эквайере?

Нет, расчётный счёт можно открыть в любом банке. Эквайер будет переводить деньги на тот счёт, который вы укажете в договоре.

Когда деньги поступают на расчётный счёт в банке?

«Русский стандарт» и МТС-банк переводят деньги на следующий рабочий день. UCS — на следующий день после того, как накопилось хотя бы 5000 рублей.

Могу ли я поменять эквайера?

Да. Для этого в личном кабинете зайдите в Личный кабинет → Эквайринг → Заявки. Нажмите «Дублировать» напротив заявки, в которой хотите поменять эквайера.

acquiring_31.png

Перепроверьте данные, выберите нового эквайера и отправьте заявку повторно.

Как устроен и как работает пин-пад

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

image

Итак, в ходе данной статьи поговорим о пин-падах. Узнаем, как они устроены, какой защитой обладают. На примере реального девайса рассмотрим управление им. Как обычно, будет много интересного.

❯ Суть такова

В комментариях к моему посту про магнитные карты многие заинтересовались именно процессом обработки транзакций. Так что решил написать и про это, тем более, что тема работы подобных устройств меня интересовала давно.
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 и попадём в сервисное меню. Список пунктов там такой:

  1. P.C MEM TST — тест NVRAM (с её полным стиранием)
  2. INIT MKEY RAM — удаление ключей
  3. LANGUAGES — ну, это ясно, что такое
  4. DSP ALL MSG — режим отображения сообщений
  5. SET BAUD RATE — скорость порта
  6. SET KEY MGT — режим организации ключей
  7. SET PP MODE — режим работы пин-пада (Nurit/VeriFone)
  8. 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». Рассчитывается и также добавляется контрольное число.
Итак, пробуем:

Запускаем, и, если всё было подключено правильно, на дисплее должно будет появиться примерно следующее:

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

❯ Ключи

Ну что же, время перейти к самому главному — к тому, как именно производится шифрование. В большинстве пин-падов используется алгоритм 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». Далее требуется указать номер ячейки, куда будет загружен ключ, и, собственно, сам ключ.

Для примера я загружу туда ключ 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».

Функции в итоге получились вот такие:

Запускаем. Вводим наш ПИН — 1234. Пин-пад в ответ присылает нам PIN-block 5DCB16E4555C6B1A. Расшифровываем его с помощью нашего незашифрованного рабочего ключа и получаем наше расчётное значение 041277AEA8BB9DF8.
Оно живое, оно работает!

❯ Немного о Contactless

Также мне довелось раздобыть PP1000SE CTLS. От обычного он отличается слотом для SAM-модуля и наличием бесконтактного считывателя. Увы, никаких команд касательно считывания карты найти мне так и не удалось…

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

❯ Так что в итоге?

Вот мы и рассмотрели ещё одну составляющую обработки пластиковых карт. Попутно продемонстрировали, как запустить такие устройства в «лабораторных» условиях.

Определённо уверен, что все эти материалы кому-нибудь понравятся, тем более, что такого описания подобного оборудования почти никто не делал.

На Эвотор ошибка 4128 на терминале Сбербанка

Такая проблема встречается только в том случае, когда к смарт-терминалу подключен арендованный у Сбера пин-пад. Уведомление означает, что информация, отправляемая с ККТ и пин-пада отличается. В этой статье рассказываем подробно, что делать с ошибкой 4128 Сбербанка.

На вашем Эвотор ошибка 4128? Найдем решение за 15 минут

Почему возникает ошибка 4128 на Эвотор

При такой проблеме на экране пин-пада возникает уведомление «Ключ KLK неверен». Ключ KLK — ключ личного кабинета или транспортный ключ для удаленного импорта мастер-ключей. Проблема возникает тогда, когда при обмене данными между POS-терминалом и банковской системой возникает несоответствие этого ключа. Из-за этого любая операция на пин-паде блокируется.

Причины кода 4128 ошибки настройки терминала Сбербанка

  1. Некорректный ввод KLK
  2. Изменение KLK
  3. Прочие причины

Часто такая проблема возникает спонтанно и не вызвана каким-то конкретным сбоем.

Точно установить причину может только специалист банка.

Штат профессиональных специалистов для вас

На Эвотор ошибка 4128 на терминале Сбербанка — что делать

Большинство проблем на арендованных пин-падах возникают из-за сбоев в соединении периферии с банком-эквайером. Со стороны смарт-терминала все работает как нужно. Чтобы устранить ошибку терминала 4128, нужно обратиться в техническую поддержку Сбера. Самостоятельно тут ничего не сделать.

Если ошибка 4128 на Эвотор возникла во время продажи

Из-за такой проблемы пин-пад блокируется, и пробить чек по карте уже не получится. В таком случае воспользуйтесь одним из альтернативных способов оплаты: за наличные или по QR-коду.

Важно! Ошибка 4128 на Эвотор 5i возникнуть не может, так как у этой модели имеется встроенный модуль эквайринга. Для приема оплат на данной ККТ не нужно подключать пин-пад.

Коды ошибок терминала Сбербанка: полный список с расшифровкой

При работе с терминалом Сбербанка, как и с любым другим устройством могут возникать ошибки, неполадки или проблемы при оплате картой или подключении терминала, в данной статье приведен наиболее полный перечень кодов с расшифровкой всех возможных ошибок POS/UPOS терминалов Сбербанка (в т.ч. с драйверами 1с).

Полный перечень кодов и причин ошибок терминала Сбербанка

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

Однако вы также можете обратиться в Контактный центр Сбербанка по телефонам службы поддержки 8 (800) 555-55-50 и 900.

Ниже вы также найдете памятку для кассира по работе с терминалом и наиболее частыми операциями.

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

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