Система оплаты проезда общественного транспорта Москвы / Habr


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

RFID
Конечно же я начал с поиска в гугле и без особых усилий нашёл название данной — RFID (Radio Frequency IDentification) или в переводе на русский Радиочастотная Идентификация. Прочитав статью на википедии, я понял что метки (карты) делятся на 3 диапазона работы, Метки диапазона LF (125—134 кГц), Метки диапазона HF (13,56 МГц), Метки диапазона UHF (860—960 МГц). В общественном транспорте используются метки второго диапазона — HF.

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

На данный момент производятся 5 видов микросхем для карт:

Mifare Classic 1k, Mifare Classic 4k
Mifare Ultralight
Mifare Ultralight C
Mifare Plus
Mifare DESFire EV1

В нашем общественном транспорте используются первый и второй виды карт.

Социальная карта москвича сделана на основе Mifare 1k
Социальная карта студента сделана на основе Mifare 4k
Билет на несколько поездок на метрополитене сделан на основе Mifare Ultralight
1k и 4k означают объём памяти на карте 1 и 4 килобайт соответственно.
Так же у меня в наличии была социальная карта жителя московской области, которая отличалась от первой только названием и дизайном.

Практика
Естественно чтобы посмотреть данные записанные на карте и как то с ними поработать нужен был ридер для этих карт. В процессе поиска я наткнулся на модель под названием ACR122U. По цене он меня вполне устраивал, с доставкой с интернет-аукциона ebay вышло около 60 долларов.
Вот наконец 3 недели спустя я получил заветную посылку, в ней лежал сам ридер, две пустые белые карты Mifare 1k и диск с драйверами и дистрибутивом.


Собственно ридер.

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

Софт
После нескольких дней поиска я нашёл такой комплект средств разработки под названием libNFC. Немного изучив его я понял, что это именно то, что нужно. Одновременно с этим я наткнулся на блог одного человека по имени Александр darksimpson Симонов, который рассказывал о системе работы турникетов метрополитена, а также о данном проекте. Более того, он даже собрал все необходимые программы под винду, что было весьма удобно. Дальше я приступил к испытаниям. Но для начала расскажу о структуре карты.

Структура карты
Здесь я рассмотрю структуру карт Mifare 1k и 4k. Карта 1k разделена на 16 секторов, от 0 до 15. Нулевой сектор, это блок производителя, в котором записан индивидуальный серийный номер карты

UID он прописывается на производстве и не поддаётся изменению. Остальные 15 секторов доступны для считывания/записи. Каждый сектор имеет два ключа вида A и B, а также LOCK-биты.
Комбинация последних даёт считывающему устройству информацию о том, разрешена ли запись/чтение и то с помощью какого вида ключей это можно сделать. В основном считывание происходит через ключи вида А, запись через ключи вида B. На пустых картах во всех секторах стоят ключи FFFFFFFFFFFF.Для 4k ситуация аналогичная, но вместо 16 секторов на ней 40. То есть чтобы считать содержимое карты на компьютер нужно знать ключи от всех 16 секторов, но так как на всех проездных билетах все ключи изменены, возникает логичный вопрос, как же узнать эти ключи? В этом мне помогла утилита MFCUK доработанная и собранная под винду другим блоггером под никнеймом Odinokij_kot. О работе этой программы вы можете прочитать в его статье

Пример работы MFCUK

Считывание карты
Для считывания карты мне понадобилась скачанная программа

mfclassic_d.exe, найденные ключи для моей социальной карты жителя московской области и командная строка. В последней я указал путь к программе, файл с ключами от моей карты, вид ключей, запрос на считывание и имя файла в который запишется дамп карты. После нажатия заветной кнопки Enter пошёл процесс считывания, через пару секунд всё закончилось, о чем свидетельствовала надпись Done, 64 of 64 blocks read. Writing data to file: card.mfd… Done. После этого я попытался разобраться в тех данных, которые были записаны на карте, но меня это ни к чему не привело, так как в файле была лишь куча шестнадцатиричных чисел, единственное более менее понятными оказались паспортные данные записанные в одном из секторов. Запись карты производится аналогично, только нужно указать файл с ключами для той карты на которую мы записываем.

Пример работы mfclassic_d

Начало экспериментов. Тест номер №1
Сначала я считал карту до прохода через турникет автобуса, и после. Тоже самое я сделал с турникетом в метро. После сравнения дампов карты, я выяснил, что после прохода в автобусах, трамваях и троллейбусах изменяются только данные записанные в 4 секторе, остальные данные оставались теми же, в метрополитене менялись только данные 1 сектора. Отсюда вывод,

метрошники используют 1 сектор, наземники 4.

Тест №2. Наземка
Вторым вопросом стояла возможность клонирования моей карты на одну из двух белых, которые шли в комплекте к ридеру. Указав в программе файл моей карты, а также ключи от пустой карты я начал процесс записи, времени ушло немного больше чем при считывании, примерно 4 секунды. В окне командной строки появилась надпись Done, 64 of 64 blocks written, что свидетельствовало об успешной записи на карту. После этого я отправился на Боевое крещение. Подошёл автобус, на остановке было 3 человека, я заходил последним, чтобы не создать очередь в случае непредвиденной ситуации. Итак, я подхожу к турникету, прикладываю только что записанную карточку, и о чудо, турникет показал срок действия моей социальной карты, заморгал зелёной лампой и дружелюбно пропустил меня в салон. Моему счастью не было предела. Позже я проверил карту на троллейбусах и трамваях, результат был тем же.

Тест №3. Метрополитен
Воодушевлённый успехами на наземном транспорте, я отправился в метро. Спустившись, я подошел к турникету, приложил ту же самую белую карту, на мониторе турникета высветилась надпись

Действителен до: чч.мм.гг, после чего я спокойно прошел через турникет. Для меня, конечно, результат был ожидаем, но нотки сомнения всё равно присутствовали. Я был доволен как слон, в моей голове была мысль о безоговорочной победе над общественным транспортом города Москвы. Заехав в одно место, примерно через час мне снова пришлось спуститься в метро и тут меня ждал самый большой сюрприз. Приложив белую карту к турникету я увидел зловещую надпись Билет не исправен. Я приложил её ещё к паре турникетов, результат был тем же. Тогда я достал настоящую социальную карту и лишь с её помощью успешно прошёл через турникет. В метро я продолжал думать что же всё таки произошло. Выйдя на улицу пошёл на остановку, сел на автобус, приложил белую карту, она сработала. Странно, подумал я. Вернувшись домой я стал выяснять что же не так. Не найдя никакого логического объяснения я лёг спать. Следующим утром я спустился в метро, приложил свою оригинальную социальную карту и увидел ту самую пресловутую надпись Билет не исправен
. После чего я проследовал в кассу за получением объяснения происходящего, где мне сказали что «возможно вы передали карту другому человеку, который по ней прошёл и это заметили. Из-за этого вашу карту занесли в СТОП-лист» Потом мне объяснили что нужно делать и куда ехать чтобы карту разблокировали. Через 2 недели по моему заявлению карту разблокировали и я продолжал по ней ездить.

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

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

MIfare Zero
Остановиться в своих экспериментах я не мог, а в размышлениях так тем более. И вот меня посетила мысль, что если вдруг как то изменить UID на такой же как и у оригинальной карты. И вот после поисков в гугле я наткнулся на блог ещё одного человека по имени Андрей, который писал о способе клонирования Mifare карт. Оказалось что существуют неофициально выпускаемые карты под названием Mifare Zero. В этих самых картах блок производителя то бишь

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

Изображение Mifare Zero из блога Андрея

Эксперимент №5. Возвращение в метро
Записав свою карту на карту Mifare Zero, с помощью утилиты mfsetuid_d.exe я поставил на неё UID своей социальной карты. Теперь это были две идентичные карты, которые отличались лишь рисунком, на одной он был, на другой нет. Спустившись в метро я успешно прошёл по данной карте, но радоваться было рано, надо было через некоторое время повторить проход, чтобы точно удостовериться в работоспособности карты и том, что её не заблокируют. Целую неделю я проходил через турникет по белой карте, всё было отлично, в СТОП-лист её не вносили. Успех!

Эксперимент №6
Следующим что я захотел испытать получится ли осуществить проход сразу нескольких людей, потому как по моей карте можно было пройти 1 раз в 7 минут. Взяв обе карты, мы с другом пошли в метро. Сначала прошёл я по оригинальной карте, затем друг по белой на соседнем турникете, пока что всё отлично, посидев в макдаке, мы поехали обратно, но к сожалению обе карты оказались заблокированными. Объяснение этому в том, что после моего прохода в базу пришли данные о моей карте, они проверились, всё сходится, следом прошел друг и данные снова верны. Но система увидела то, что по одной карте прошли 2 раза не выдержав 7 минутный интервал, такого быть не может, карта ведет себя не корректно и поэтому система её заблокировала. Вывод из этого такой, клонировать карту всё таки можно, но система защиты в метрополитене работает отлично и обойти её всё-таки наверное невозможно. Но пара задумок всё ещё оставалась.

Эксперимент №7
Предметом этого испытания стали карты студента. Однажды я предположил что если к примеру есть два студенческих проездных. Один из них продлен на данный месяц, второй нет. Так вот, если банально скопировать 1 сектор с продлённого проездного на непродлённый, то может что и выйдет?.. Начало месяца. Я не стал продлевать студенческую карту и взял на несколько часов продленную карту своей подруги, считал содержимое 1 сектора и записал на свою карту. После этого я отправился в метро со своей картой, приложив её я увидел что срок действия карты до конца текущего месяца. В результате я в течении всего дня ездил по данной карте, её не блокировали. Тут я снова подумал теперь точно победа, карта на блокируется и продлевать её можно с любого продленного студенческого, но как обычно не тут то было. Следующим утром карта была заблокирована. Видимо это случается потому, что в конце каждого дня база проверяет был ли действительно данный студенческий билет продлён на текущий месяц, в нашем случае нет, следовательно карту в

СТОП-лист

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

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

Данная статья написана только для ознакомления, и ни в коем случае не призывает заниматься подделкой проездных билетов, так как это противоречит статье 327 УК РФ. Автор не несет ответственности за любые неправомерные действия совершенные людьми, под воздействием данной статьи.

Карта в "Стоп-листе"

Погашение задолженности через Личный кабинет пассажира

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

Способы оплаты задолженности за проезд и вывода карты из "Стоп-листа" при пополнении баланса банковской карты:

1.       Автоматическое списание задолженности банком после формирования задолженности:

·         1 час;

·         24 часа;

·         96 часов;

·         28 дней.

2.       Автоматическое списание задолженности через 30 минут после попытки оплаты в автобусе, когда карта находится в "Стоп-листе".

3.       Оплата в личном кабинете пассажира на сайте etk31.ru.

Для этого:

1.       На сайте etk31.ru перейти в раздел Личный кабинет пассажира.


2.       Ввести номер банковской карты, которая находится в "Стоп-листе"


3.       В списке неоплаченных проездов нажить кнопку Оплатить


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

Если Ваша карта в "Стоп-листе" это не освобождает Вас от оплаты проезда. Оплата осуществляется наличными по утвержденной тарификации проезда на общественном транспорте по городским и пригородным маршрутам. 

Воронежец столкнулся с системной проблемой при оплате проезда в транспорте

Его карта при оплате проезда оказалась в стоп-листе

Воронежцы пожаловались в редакцию портала «МОЁ! Online» на «беспредел» водителей маршрутки, которые якобы не дают возможности пассажирам оплатить проезд картой. Однако водители, как выяснилось, ни при чём.

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

Объясняем. Проблема, которую описывает автор, заключается не в злобных «маршруточниках». Попасть в стоп-лист банковская карта может из-за того, что платеж за одну из ваших предыдущих поездок на общественном транспорте по какой-то причине не прошёл. Это может случиться в том числе из-за нехватки средств на счету или технического сбоя. Банк-отправитель платы за проезд, как правило, некоторое время ещё пытается перевести зависший платёж. И если в это время пассажир вносит плату за проезд с помощью карты повторно, она временно заносится в стоп-лист. Если оплата так и не проходит, на счёт карты записывается долг за оплату проезда.

Найти информацию о неоплаченных проездах можно на сайте https://lk.informseti.ru. Чтобы попасть в личный кабинет, нужно ввести номер карты, которую вы прикладывали или вводили в терминал. Вывести карту из стоп-листа можно, оплатив задолженность.

Любимые читатели, воронежские терминалы в общественном транспорте обслуживает «Газпромбанк». Исключение составляют только терминалы в автобусах компании «Воронежпассажиртранс» — № 6, 7С (сезонный), 9КА, 14В, 15, 17, 41, 48, 52, 59, 60С (сезонный), 79, 87 и 98. Их обслуживает Сбербанк. Если при оплате проезда банковской картой произошёл технический сбой, вы можете обратиться в обслуживающую организацию по следующим номерам.

Телефон горячей линии Газпромбанка 8800-100-07-01

Телефон Сбербанка 8(800)555-55-50

Воронежец столкнулся с системной проблемой при оплате проезда в транспорте

Его карта при оплате проезда оказалась в стоп-листе

Воронежцы пожаловались в редакцию портала «МОЁ! Online» на «беспредел» водителей маршрутки, которые якобы не дают возможности пассажирам оплатить проезд картой. Однако водители, как выяснилось, ни при чём.

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

Объясняем. Проблема, которую описывает автор, заключается не в злобных «маршруточниках». Попасть в стоп-лист банковская карта может из-за того, что платеж за одну из ваших предыдущих поездок на общественном транспорте по какой-то причине не прошёл. Это может случиться в том числе из-за нехватки средств на счету или технического сбоя. Банк-отправитель платы за проезд, как правило, некоторое время ещё пытается перевести зависший платёж. И если в это время пассажир вносит плату за проезд с помощью карты повторно, она временно заносится в стоп-лист. Если оплата так и не проходит, на счёт карты записывается долг за оплату проезда.

Найти информацию о неоплаченных проездах можно на сайте https://lk.informseti.ru. Чтобы попасть в личный кабинет, нужно ввести номер карты, которую вы прикладывали или вводили в терминал. Вывести карту из стоп-листа можно, оплатив задолженность.

Любимые читатели, воронежские терминалы в общественном транспорте обслуживает «Газпромбанк». Исключение составляют только терминалы в автобусах компании «Воронежпассажиртранс» — № 6, 7С (сезонный), 9КА, 14В, 15, 17, 41, 48, 52, 59, 60С (сезонный), 79, 87 и 98. Их обслуживает Сбербанк. Если при оплате проезда банковской картой произошёл технический сбой, вы можете обратиться в обслуживающую организацию по следующим номерам.

Телефон горячей линии Газпромбанка 8800-100-07-01

Телефон Сбербанка 8(800)555-55-50

Вопросы и ответы

Почему банковские карты и nfc-устройства попадают в стоп-лист?

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

Как погасить долг за проезд по банковской карте?

Если при оплате проезда Вы прикладывали к терминалу банковскую карту (не телефон), Вы можете погасить задолженность самостоятельно через личный кабинет пассажира.
Для этого перейдите в кабинет, введите полный номер банковской карты и код с картинки, нажмите «Войти».
Если по карте есть неоплаченные поездки, на странице истории оплат Вы увидите кнопку «Погасить задолженность» и сумму долга. Неоплаченная поездка будет иметь статус «Запрещена».
Чтобы оплатить поездки, нажмите «Погасить задолженность». Если средств на карте будет достаточно, банк произведёт списание средств. Мобильный банк пришлёт сообщение о покупке в DATA.KGILC.RU LKP.
На странице истории оплаты появится строка об успешном ручном погашении, а статус неоплаченной поездки изменится на «Поездка оплачена».
Карта будет выведена из стоп-листа в течение суток.

Что делать, если в стоп-листе телефон, часы или браслет?

Если в транспорте Вы прикладывали к терминалу телефон, часы или браслет, самостоятельно вывести устройство из стоп-листа будет нельзя.
Вам нужно обеспечить наличие денег на балансе карты и подождать повторного обращения банка к карте для списания. После первого отказа банк обращается к карте через сутки, затем через 3 дня, 10 дней и через 14 дней.
Если средств на карте достаточно, но списание в указанные сроки не происходит, напишите нам на почту поддержки [email protected] или в группу во «ВКонтакте» - возможно, во время списания на стороне банка возникла тех. ошибка. Мы проверим и расскажем, что делать.

Почему нельзя вывести из стоп-листа nfc-устройство через личный кабинет?

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

Отзывы о Сбербанке России: «Оплата проезда по банковской карте. Подмосковье. Карта в стоп-листе. Техподдержка не отвечает»

Здравствуйте.

По информации ГУП МО "МОСТРАНСАВТО" моя проблема находится в компетенции АО "Расчетные решения", но АО "Расчетные решения" на banki.ru не нашел. Написал в раздел  НКО "Расчетные решения", но никакой реакции не последовало. Пишу сюда, т.к. не знаю, как можно решить описанную ниже проблему.

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

Подробнее по проблеме.

24.03.2019  мною  была  проведена оплата проезда при помощи банковской карты в автобусе №22 г. Пушкино московской области.

По  независящим от меня причинам (деньги на карте были) карта попала в стоп-лист.

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

В  связи  с  проблемой  погашения задолженности 25.03.2019 обратился в службу    технической    поддержки    личного   кабинета   по   адресу [email protected],  где  по  требованию  ответного письма указал
первые  6  цифр  и  последние  4  цифры  банковской карты, а также мой контактный номер телефона. К сожалению, ответа на мое письмо не последовало.

Примечание: указанный выше адрес электронной почты приведен в разделе "Обратная связь" страницы
https://securepayments.sberbank.ru/mta/lk/index.html

29.03.2019 мною было направлено повторное письмо с целью выяснения текущего состояния  решения моей проблемы. Ответа вновь не последовало.

15.04.2019 мною было направлено еще одно письмо с той же целью. Ответа не было.

06.05.2019, по рекомендации "Горячей линии" МосТрансАвто, написал письмо на e-mail МосТрансАвто, которые ответили, что решение данных вопросов не входит в компетенцию ГУП МО "МОСТРАНСАВТО" и мое обращение перенаправлено по компетенции в АО "Расчетные решения".

На сегодняшний день какой-либо реакции АО "Расчетные решения" нет, карта по-прежнему находится в стоп-листе. Погасить задолженность при помощи "Личного кабинета пассажира" не удается.

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

Примечание: в августе-сентябре 2018 моя карта также попала в стоп-лист, обратился на горячую линию мострансавто и через некоторое время (недели через 2) со мной связались, в ЛК вручную удалось погасить задолженность. Проблема была решена.




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

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