карта тройка какой протокол

Использование карты «Тройка» в качестве полиса ОМС

Тройка + полис ОМС=? или как все начиналось

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

Тюнингуем Тройку

Зная возможности Mifare Classic — совместимых карт, я решил объединить Тройку и старую студенческую карту ради удобства и просто из интереса к результату эксперимента.
Как мы знаем, карты Mifare Classic 1K и 4K вывели из оборота из-за уязвимостей в пользу более защищенных, но совместимых Mifare Plus S, Plus X 2k или Plus EV1 2k. Но суть осталась та же: как социальные, так и карты Тройка имеют одну и ту же начинку, с разницей лишь в объеме (количестве защищенных секторов, что в нашем случае абсолютно не играет значения).

Вооружившись статьями про исследования защищенности Тройки и Android приложением «Mifare Classic Tool», я решил заглянуть сначала внутрь социальной карты, чтобы найти место, где записан номер полиса ОМС. Благодаря документу почти двадцатилетней давности я уже предполагал, что он будет в 5-м секторе карты, зарезервированном как медицинское приложение МГФОМС, что и подтвердилось на практике.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Искомый номер полиса оказался в 5м секторе на второй строке со 2го по 9й байт, то есть, в данном случае «7700009016811218«. Отлично, зацепка (а, точнее, зацепище есть)!

Что касается карты Тройка, то там 5й сектор забит нулями, то есть, пока не используется. Ключи A и B отличаются от тех, которые на СКС, но это поправимо, их можно переписать такими же, как и там.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Эксперименты

Помимо желанного номера полиса ОМС, в секторе присутствовали и другие данные, назначение которых мне неизвестно. Начитавшись статей про 8й сектор (электронный кошелек) и его защищенность имитовставками, я предположил, что здесь эти данные могут играть такую же роль имитовставки или контрольной суммы для проверки целостности данных в секторе. Поэтому я решил проверить это, переписав на одну Тройку весь сектор в точности, как на СКС, а на вторую — только номер полиса. Сказано — сделано!

Снял полный дамп с СКС, и записал на первую Тройку весь 5й сектор, а на вторую — записал отредактированный дамп 5го сектора, где фигурирует только номер полиса.

Результаты

Прогулявшись до поликлиники и проверив обе карты, я смог с обеих войти на инфоматы и записаться к врачу! Разумеется, в качестве способа аутентификации следует выбрать «Карта москвича» или «Социальная карта москвича» (работают оба способа) и приложить карту к считывателю.

Из этого следует, что инфоматам достаточно лишь номера полиса в отведенном для него месте и знакомых им ключей от пятого сектора.

Теперь можно немало удивить работников поликлиники, продемонстрировав им использование Тройки в качестве полиса ОМС и проходить более удобную и современную бесконтактную аутентификацию, ибо даже современные полисы ОМС не поддерживают бесконтактный обмен информацией — их необходимо вставлять чипом в инфомат. И «Тройка» воистину становится ключом к городу, в частности, к поликлиникам.

Источник

Проезд в тюрьму. Почему нельзя взламывать «Тройку» по инструкции в Интернете

Бумажные билеты в общественный транспорт стали пережитком времени во всех крупных городах России. На смену им пришли пластиковые карты. Они удобные, но, увы, не без изъянов. Люди давно научились взламывать проездные вроде московской «Тройки», чтобы пользоваться городским транспортом бесплатно. Лайф рассказывает, как работает взлом, а заодно и о его последствиях. Чтобы не было соблазна.

Коллаж © LIFE. Фото © Агентство городских новостей «Москва»

Транспортные карты в большинстве своём делятся на две категории: одни — с чипом NFC, другие — с магнитной лентой. К первым относится большинство современного городского пластика: «Тройка», «Подорожник», «Волна», и не только. Вторые же используются сегодня крайне редко. Но несколько примеров мы нашли в Туле, Благовещенске, а также в Краснодаре.

Несмотря на то что в их основе заложены разные принципы работы, злоумышленники имеют подход к обеим категориям. Но подробнее рассмотрим пример именно с NFC. Другие сегодня пока не актуальны.

Как можно взломать карту? Это же кусок пластика!

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Фото © Агентство городских новостей «Москва»

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

Если расслоить условный «Подорожник» надвое, можно увидеть Radio Frequency IDentification (RFID) или, вероятнее всего, Near Field Communication (NFC). И то и другое — системы радиочастотной идентификации, которые вполне себе друг друга понимают. Системы эти состоят из двух компонентов — микрочипа и индуктивной антенны. Первый располагается либо в центре, либо на правом или левом краю карты. Служит для хранения небольших объёмов информации. Антенна обвивает карту по периметру и, к слову, служит не только для передачи информации, но и для питания системы.

Самым популярным брендом, под которым выпускаются описанные смарт-карты, является Mifare. Он принадлежит NXP, некогда принадлежавшей компании Philips. Именно NXP занимается производством болванок для «Троек» и «Подорожников», а также чипов NFC для многих Android-смартфонов.

Под брендом Mifare выпускается несколько типов карт. Самые популярные — Ultralight, Classic и Plus. Не будем углубляться в нюансы каждой категории, но отметим, что самыми популярными в России являются Classic и Plus. Оба стандарта совместимы друг с другом, что упрощает взлом второго, если способ для первого уже придуман.

В зависимости от стран, популярные стандарты и сферы их применения могут отличаться. Полный список типов карт и их свойств можно найти здесь. А определить, какого именно типа ваша карта с NFC, можно с помощью официальной утилиты NXP Taginfo.

Источник

NFC + «Тройка» = «Мой проездной»

Мой проездной, теперь и электронный

Доводилось ли вам слышать на эскалаторе объявление о том, что можно заблаговременно приобретать проездные билеты для того, чтобы не стоять в очередях у окошек, в которых служащие метрополитена продают проездные билеты?

Те, кто пользуется только наземным транспортом, вынуждены спускаться в метро, чтобы пополнить «Тройку» – согласитесь, не очень удобно.
С новым приложением «Мой проездной» от Банка Москвы больше действительно не придётся терять время в очередях, или, в очередной раз пытаясь зайти в метро, становиться перед фактом нулевого баланса на транспортной карте «Тройка».

Стоит отдельно отметить, что это действительно первое подобное приложение, позволяющее не только прочитать баланс любой транспортной карты (не только «Тройки», но и обычного билета с чипом, продающегося для городского наземного транспорта и метро), но и приобрести билет и сразу же записать его на имеющийся проездной.

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

Самые критические функции, связанные с привязкой банковской карты, проведением платежа по ней и работе с профилем клиента, были нами сделаны быстро, так как это отлаженный и стабилизированный функционал.

Что умеет «Мой проездной»

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Работает это следующим образом – если в вашем Android-смартфоне есть NFC-модуль (а здесь заранее стоит отметить тот факт, что не все смартфоны с поддержкой NFC аппаратно поддерживают бесконтактные чипы, использующиеся в «Тройке» – список проверенных устройств будет ниже), то с помощью «Моего проездного» вы сможете купить и записать на «Тройку» любой билет действующего тарифного меню: «Единый», «ТАТ» на 1-60 поездок, «90 минут» или проездной на 30, 90 и 365 дней.

Естественно – все покупки не облагаются никакой комиссией.

Помимо этого можно с банковской карты напрямую пополнить баланс Электронного кошелька, а также прочитать текущий баланс билетов ГУП «Мосгортранс» (наземный транспорт) и ГУП «Московский метрополитен» (метро), которые записаны на вашу «Тройку».

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Само приложение, уже доступное в магазине Google Play, является дальнейшим развитием «Единой платежной платформы» Банка Москвы. Уже сейчас в эту экосистему входят приложения «БМmobile.Кошелёк», «Переводы» и «Квартплата», а также городское приложение «Парковки Москвы». При этом используется единая учётная запись пользователя для всех приложений, что удобно не только в том случае, если вы являетесь клиентом непосредственно банка.

Поэтому и регистрация требуется только в том случае, если у вас ещё нет учётной записи в одном из вышеупомянутых приложений. А сделав её один раз, вы сможете использовать привычные вам логин и пароль в других приложениях Банка Москвы. Согласитесь – это удобно.

При решении задач, связанных с разработкой интеграционного слоя между смартфоном и бесконтактной картой, нами использовались стандартные системные библиотеки, лицензированные владельцем технологии – компанией «NXP Semiconductors». Основной проблемой стало собственно определение типа NFC-контроллера.

Изначально предполагалось использовать стандартные функции, позволяющие при старте аппликации определять – поддерживает ли установленный NFC-контроллер взаимодействие с картами стандарта «Mifare Classic» или нет. В итоге пришлось модифицировать уже согласованный дизайн, поскольку выяснилось, что довольно большой процент бюджетных китайских смартфонов, оборудованных NFC-контроллером, всё-таки прекрасно поддерживает взаимодействие с «Тройкой», но при этом системная функция возвращала совершенно иной ответ.

Вообще, читая отзывы на маркете, начинаешь понимать несущественные на первый взгляд упущения. Так, например, многие думают, что бумажные билеты и карта «Тройка» – это одно и то же, и сильно удивляются, почему их карту приложение «Яндекс.Метро» читает, а приложение «Мой проездной» – нет. На самом деле, это совсем не так, «бумажные» билеты реализованы на носителях стандарта «Mifare Ultralight», а карта «Тройка» (на самом деле многоразовый носитель) использует стандарт «Mifare Classic», а это две большие разницы. Мы, кстати, в ближайших релизах поддержим чтение баланса «бумажных» билетов.

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

Например, если чехол вашего смартфона поддерживает бесконтактную зарядку, то вероятность того, что даже при «правильном» NFC-контроллере будут читаться бесконтактные карты, не сильно высока. Дополнительные проблемы – это так называемые дуальные карты (т.е. карты, поддерживающие работу по контакту и бесконтакту), данные карты не только требовательны к питанию, но и зачастую требуют реализации для них отдельных алгоритмов взаимодействия.

Источник

Используем Apple Pay и карту Тройка в качестве пропуска на работу

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

TL;DR В статье описывается процесс создания системы контроля доступа (СКУД), в которой в качестве идентификатора могут использоваться карты Тройка, любые бесконтактные банковские карты EMV, а также телефоны с Apple Pay и Android Pay. Управление системой происходит через Telegram-бота.

Основные задачи системы

Пожалуйста, не нужно больше карт!

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

— У вас уже есть наша карта?
— Пощадите…

Сейчас каждый хочет всучить вам свою карту: магазины, фитнес-клубы, парковки, бизнес-центры, VIP-скидки-баллы-накопления. Предлагать человеку носить с собой еще одну карту просто унизительно. А учитывая, что карты стандарта EM-Marine (125kHz), которые популярны в системах контроля доступа на территории СНГ, имеют толщину в три раза больше обычных ISO 7810 — это втройне унизительно.
Поэтому первое требование к нашей системе — никаких дополнительных карт.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Сравнение толщины карт Em-Marine и ISO7810

Помимо физических размеров, карты EM-Marine технологически отсталые. Такую карту можно легко клонировать с расстояния полуметра прямо из кармана прохожего.

Видео с демонстрацией: www.youtube.com/watch?v=qvIIUny4EWI
На видео показано считывание тонкой карты em4100 с расстояния 50см, толстые карты читаются с большего расстояния.

Все СКУД неудобные

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

В некоторых случаях сложные СКУД необходимы: в крупных зданиях с множеством зон доступа, турникетами, охраной, временными пропусками.

В случаях, когда контролировать доступ нужно к одной или двум дверям, такие усложнения не оправданы. Даже содержание отдельного компьютера с программой под СКУД — перебор для нас.

У нас нет отдельных сотрудников, занимающихся выпуском пропусков, нет временных пропусков и охраны. Администрирование системы должно быть настолько простым, чтобы любой новый человек мог быстро её освоить без инструкций. Так как ответственного за СКУД человека может не быть на месте, управление системой должно быть удаленным.

Карта «Тройка» как идентификатор

Карта «Тройка» — пополняемая карта для оплаты проезда на всех видах общественного транспорта Москвы. Это наиболее выгодный и удобный способ оплаты общественного транспорта и некоторых городских услуг: планетарий, каток, зоопарки, Третьяковская галерея, парковка. Поэтому «Тройка» есть у каждого москвича, который регулярно пользуется общественным транспортом. Приобрести карту можно в кассах метрополитена за ≈1$.

Технически карта выполнена на базе чипа Mifare Plus, работающего в режиме SL1 — режим эмуляции Mifare Classic 1K. На обратной стороне карты находится 10-значный номер, который используется для удаленного пополнения баланса карты. Этот номер удобно использовать в качестве идентификатора в СКУД.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Номер карты «Тройка», записан в памяти карты в 32-м блоке 8-го сектора. Для чтения защищенной области памяти необходим шестибайтный ключ, который давно не является таким уж секретным.

Номер карты «Тройка» (не путать c UID чипа) хранится в защищенной памяти в блоке 32 со второго байта по младшие четыре бита седьмого байта. Для чтения этой области памяти необходим А-ключ от сектора 8. Эти ключи давно не являются секретом и легко находятся в интернете вместе с подробным описанием формата хранения данных. Так как мы не собираемся записывать никакие данные на карту, нам достаточно ключа А для чтения нужного сектора.

Таким образом, для занесения нового пропуска в базу данных достаточно визуально считать номер карты и сообщить его администратору. Это можно сделать даже удаленно.

Вопросы безопасности такого подхода рассматриваются в FAQ в конце статьи. Примеры кода для чтения номера карты Тройка с помощью Arduino есть в главе «Первый прототип».

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

Apple/Android Pay и банковские карты

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Платежные инструменты с разными названиями работают по одному протоколу EMV

Все платежные инструменты, изображенные на картинке выше, работают по одному протоколу EMV, свободно доступному на сайте EMVco.com. Поэтому говоря «EMV-карта», мы будем подразумевать одновременно Apple Pay, Android Pay, Samsung Pay, Visa PayWave, MasterCard PayPass.

Существует заблуждение, будто POS-терминал должен отдельно поддерживать Apple/Android Pay, поэтому пользователи предпочитают искать на кассе специальную пиктограмму, чтобы быть уверенным, что их платежный инструмент поддерживается. На самом деле, почти везде, где поддерживается бесконтактная оплата, будет работать любое устройство.

Бесконтактные EMV-карты (и контактные тоже) позволяют без авторизации, то есть без ввода PIN-кода, считать данные, обозначенные ниже. В последней главе мы рассмотрим, почему это достаточно безопасно.

Некоторые карты не передают реквизиты Cardholder Name и лог транзакций, но PAN (номер карты) передается всегда. Этот номер не изменяется на протяжении всего срока действия карты.

Поэтому именно PAN мы решили использовать в качестве идентификатора для пропуска в СКУД. Для простоты и большой приватности, было решено использовать последние 10 цифр от номера карты. Таким образом, формат идентификатора получается такой же длины, как и номер карты Тройка.

В итоге, в базе данных идентификаторов мы имеем однородные записи длинной в 10 цифр, без необходимости дополнительно помечать где карта Тройка, а где EMV-карта.

Читаем EMV-карты на коленке

Чтобы изготовить прототип считывателя, мне потребовалось бегло изучить протокол EMV. Под спойлером — краткий разбор протокола EMV с примерами чтения на Arduino и компьютере.

Для чтения EMV карт подойдут такие устройства:

Описанный ниже процесс не является корректной реализацией протокола EMV. Приведенные команды APDU содержат ошибки и нарушают рекомендации EMVco, из-за чего могут не работать с некоторыми картами.

Для изучения протокола EMV рекомендуется читать официальную документацию, которую я, к своему стыду, почти не читал.

Приведенные APDU-команды будут одинаковыми не зависимо от выбранного оборудования. Однако в случае с PC/SC ридером не нужно заботиться о низкоуровневых командах, настраивать модуляцию и т.д.

Я буду использовать программу SmartCard Scripter, в связке с PC/SC-ридером HiD Omnikey. Программа SmartCard Scripter имеет наиболее компактный pascal-подобный синтаксис из всего что я видел. Краткое описание синтаксиса infintuary.org/scs_tut.php

Для того чтобы послать произвольную APDU команду на карту, достаточно такого когда:

Начало коммуникации — команда SELECT (PPSE)

Начало общения с EMV-картой всегда происходит с чтения файла PPSE (Payment System Environment) командой SELECT.

APDU-команда SELECT PPSE

Старт платежного приложения — SELECT AID

В ответ на SELECT PPSE карта должна вернуть FCI (File Control Information) со списком приложений, существующих на карте. Помимо платежных приложений (VISA, MasterCard, AmericanExpress) карта может содержать неплатежные приложения, используемые для других нужд.

Ответ карты VISA на SELECT PPSE

Для удобства проанализируем ответ с помощью онлайн-парсера формата TVL emvlab.org/tlvutils/. Тот же ответ карты VISA, обработанный парсером:

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.

AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам. Поэтому для простоты поиска AID в ответе, мы будем искать маркер 4F 07 и считать 7 байт после него как AID. Такой подход очень примитивный и может не работать в случаях, если длина AID будет другой, но для нашей задачи это не важно, так мы скорее всего никогда не столкнемся с картами, отличными от Visa и MasterCard. Поэтому наш самодельный парсер PPSE-ответа можно упростить до такой логики: если ответ начинается с 6F, заканчивается на 90 00 и содержит внутри последовательность 4F 07, ответ считается корректным.

Некоторые популярные AID

Получив значение AID, его нужно запустить командой SELECT. В данном случае мы запускаем приложение Visa International, полученное из ответа на PPSE SELECT

APDU-команда SELECT AID

Обработка PDOL (Processing Options Data Object List)

В ответ на запуск платежного приложения карта может затребовать от считывателя PDOL (Processing Options Data Object List). Это набор параметров POS-терминала — поддерживаемые протоколы и стандарты, валюта, в которой будет производиться расчет, дата, случайное число для криптографии, и так далее.

Список PDOL может различаться у разных карт. Общее число параметров PDOL — несколько десятков. Полный список параметров PDOL можно посмотреть здесь: eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags.
Сложность состоит в том, что список PDOL у разных карт, даже выпущенных одним банком в разное время, может существенно различаться. Некоторые карты запрашивают два-три параметра, другие — десяток.

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

Ответ карты на старт платежного приложения. Содержит запрос PDOL.

Пропустим этот ответ через парсер:

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Видно, что значение PDOL начинается с маркера 9F38 и равно 9F66049F02069F03069F1A0295055F2A029A039C019F3704. Парсер emvlab.org не умеет парсить значения PDOL, поэтому воспользуемся программой для Android-смартфонов Credit Card Reader.

Вот тот же ответ, обработанный более умным парсером. Видно каждый параметр PDOL:

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Данный парсер не скрывает байт длины после маркера, как это делает emvlab.org. Поэтому последний байт каждого маркера следует читать как длину.

Разберем запрос PDOL подробнее

Карта ожидает ответ на PDOL в том же порядке, в котором следуют запросы, и ровно той длины, которая указана после каждого параметра PDOL. Если сложить длину всех параметров (последний байт каждого параметра), получится 33 байта. Значит карта ожидает от считывателя PDOL длиной в 33 байта.

Так как мы не собираемся списывать с карты деньги, наша задача — сформировать самый простой из возможных ответ PDOL, который удовлетворит карту. Если наш ответ не понравится карте, она ответит кодом 6985 Conditions of use not satisfied.

Экспериментальным путем я выяснил, что почти на все запросы PDOL можно ответить нолями, кроме Terminal Transaction Qualifiers (TTQ). В случае с VISA, нам нужно убедить карту в том, что терминал соответствует спецификации VCPS 2.1.1. Для этого ответ на TTQ должен выглядеть так:

Подробнее про формат TTQ здесь.

Карты MasterCard, которые мне довелось испытать, позволяли игнорировать PDOL и отдавали PAN-номер без корректного ответа на PDOL.

Вот как будет выглядеть минимальный рабочий ответ на запрошенный выше PDOL:

Если наш ответ удовлетворил карту, мы получим сообщение, начинающееся с маркера 77 с кодом SW2=9000. Этот ответ может содержать нужный нам PAN-номер, а может и не содержать. (офигеть)

Поиск PAN-номера

Так как нам лень писать полную имплементацию протокола EMV, разбирать все структуры ответов и формировать корректные запросы, мы поступим глупым способом, а именно пошлем все возможные запросы и будем просто искать в ответах нужный маркер, содержащий PAN-номер.

PAN-номер может содержаться в трех местах:

И парсим все ответы на предмет маркеров 57 13 либо 5A 08. Найденные 8 байт карты можно дополнительно чекнуть на контрольную сумму с помощью Алгоритма Луна.

Если номер валидный, берем его последние десять цифр.

В итоге наш примитивный алгоритм чтения PAN-номера можно изобразить в виде блок-схемы

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

Первый прототип

Было решено использовать в качестве идентификатора пользователя 10-значный номер, который будет формироваться либо из десяти последних цифр PAN-номера платежной карты, либо из номера карты «Тройка». Идентификатор должен передаваться контроллеру, который будет сверять его с хранящимися в базе данных номерами и решать, открывать дверь, или нет.

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

Так родился первый прототип считывателя на Arduino + PN532 breakout board.
Видео с демонстрацией работы прототипа: www.youtube.com/watch?v=aXNvjuRrCQk

Скетч для Arduino, показанный в видео, выложен здесь: github.com/zhovner/Adafruit-PN532, в папке examples/ApplePay_Troyka_ACS
Данный код довольно плохой, потому как не генерирует ответ PDOL, из-за чего не все EMV-карты будут успешно прочитаны. Однако он позволяет понять общую логику работы системы описанной в статье.

Считыватель Parsec

С самого начала мы не хотели городить кустарные поделки на arduino или raspberry pi, поэтому стали искать решение на базе промышленного оборудования.

Так как на рынке готовых решений не существует устройств даже примерно похожих на то, что нам было нужно, мы стали спрашивать у всех производителей СКУД, кто сможет реализовать наши извращенные фантазии в своем оборудовании.

Единственной компанией, которая стала с нами разговаривать, были Parsec.ru
В итоге они согласились реализовать наши идеи в прошивке своего считывателя PNR-P03E.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.
Parsec PNR-P03E позвоялет запрограммировать любой нестандартный алгоритм чтения карт

Большинство RFID-считывателей, которые доступны в продаже, поддерживают только определенный формат идентификаторов. Например Mifare, HiD iClass и т.д.

Нам же требовалось, чтобы считыватель поддерживал одновременно несколько форматов карт, и реализовывал нестандартный протокол чтения EMV-карт.

Ключевые особенности считывателя PNR-P03E

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

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

Контроллер БОРЕЙ

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

Часто контроллеры СКУД состоят из нескольких блоков управления и компьютера с базой данных. Мы принципиально не хотели держать отдельный компьютер и искали компактное решение в виде одного устройства, которым можно управлять через API для интеграции с Telegram-ботом.

Поиск такого устройства занял больше месяца, пока я не наткнулся на старую статью на хабре «Обзор СКУД с бесплатным программным обеспечением». В комментариях пользователь rgmih упомянул, что их компания производит именно такой контроллер.

Так мы нашли контроллер БОРЕЙ от компании ИТРИУМ.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.
Плата контроллера БОРЕЙ в настенном корпусе

Устройство работает под управлением Linux на базе ARM-процессора.

Основные достоинства устройства, которые редко можно встретить у других контроллеров:

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

Если доступ запрещен, контроллер посылает сигнал индикации на считыватель, и тот горит красным цветом и пищит о том, что доступ не разрешен.

Управление контроллером

Контроллер подключается в сеть c помощью Ethernet-кабеля. Начальная настройка требует только задать IP-адрес устройства. Никакого программного обеспечения, помимо браузера, не требуется.

Учетные записи заводятся в меню «Бюро пропусков». Чтобы не вводить идентификатор карты вручную, его можно поднести к считывателю в момент создания учетной записи.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.
Создание нового пропуска в веб-интерфейсе контроллера БОРЕЙ

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

Бюро пропусков в Telegram

Чтобы каждый раз не обучать нового администратора, как пользоваться веб-интерфейсом контроллера, мы решили создать Telegram бота, через которого будет происходить добавление/удаление пропусков. Это возможно благодаря наличию в контроллере БОРЕЙ REST API.

карта тройка какой протокол. картинка карта тройка какой протокол. карта тройка какой протокол фото. карта тройка какой протокол видео. карта тройка какой протокол смотреть картинку онлайн. смотреть картинку карта тройка какой протокол.

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

Иллюстрации к статье — aquamine
Помощь в написании кода — ValdikSS
Написание Telegram бота — Alexey Tsverov
Разработка прошивки считывателя — компания Parsec и лично Леонид Стасенко
Помощь в настройке контроллера — компания ИТРИУМ и лично Глеб rgmih Рыбаков

Источник

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

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