Уязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабр

Уязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабр NFC

Технология нфс – что это такое

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

Функционирует модуль НФС на электромагнитном поле, генерирующемся мобильным устройством – смартфоном. Такие волны воздействуют на сеть считывателя, находящуюся в пассивном состоянии, образуется контакт.

Описание носителя карты подорожник и подбор ключей шифрования

Как и московский товарищ, Подорожник базируется на смарт-картах типа

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

В качестве стандарта носителя Подорожника выбран MIFARE Plus 4K, работающий в режиме совместимости с MIFARE Classic.

Данный стандарт является усовершенствованной версией MIFARE Classic: алгоритм шифрования был изменён на AES, что позволило закрыть известные на момент выхода уязвимости. Первые MIFARE Plus появились в 2009 году и до конца 2021 года в публичном доступе не было информации о каких-либо уязвимостях в данных носителях.

В октябре 2021 года вышла в свет работа «Ciphertext-only Cryptanalysis on Hardened Mifare Classic Cards», описывающая атаку на карты MIFARE, работающие в режиме совместимости с Mifare Classic. Именно работа Подорожника в режиме совместимости позволила получить дальнейший доступ к карте.

Память MIFARE Plus 4K разбита на 40 секторов: первые 32 сектора содержат 64 байта информации, последние 8 — 256 байт, что в сумме и даёт 4096 байт, которые указаны в названии.

Для доступа к каждому сектору используется два ключа, KeyA и KeyB — они никак не зависят друг от друга и применяются для чтения/записи соответственно.

В апреле 2021 года на Github появился репозиторий aczid/crypto1_bs, содержащий реализацию атаки описанную в научной статье. Я не буду подробно останавливаться на процессе компиляции и запуска скрипта, лишь скажу, что для атаки достаточно использовать любой libnfc-ридер, например, известный в узких кругах ACR122U.
Уязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабр

Таким образом были получены ключи A и B от всех 40 секторов карты Подорожник.

Алгоритм действий

Можно ли открыть мобильным телефоном домофонный замок, и при каких условиях выполняется такое действие, мы узнали. Теперь рассмотрим, в какой последовательности выполняется подобное действие.

Перед тем, как открыть домофон мобильным телефоном с модулем NFC, выполняем шаги в соответствии с данной инструкцией:

  • на смартфон загружаем любое программное обеспечение, эмулирующее теги. Один из проверенных вариантов – «Интерсвязь», в котором предусмотрена опция «теледомофоны», и имеется возможность сохранять несколько образов ключей в электронном виде;
  • запускаем опцию, создаем электронный образ ключа, выполняя все пункты инструкции, появляющейся на экране телефона;
  • приближаем мобильное устройство к домофонному замку либо к ключу, его открывающему. Эмулированная отмычка в полной мере повторит параметры предмета, открывающего дверь;
  • полученный результат сохраняется.

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

Анализ памяти карты

После получения ключей доступа к секторам, стало возможно чтение и запись любых данных на карту. После снятия первых дампов сразу бросилось в глаза, что большинство секторов (1-3, 6, 7, 13-39) забиты нулями и никак не используются: для чего в таком случае используется карта на 4 Кб (а не на 2, например) для меня осталось загадкой.

Более того, после нескольких поездок было обнаружено, что данные меняются только в секторах 4, 5 и 9. Так же сразу стало очевидно, что сектор 9 содержит в себе только данные о числе поездок за текущий месяц: значения в некоторых блоках памяти только инкрементируются и соответствуют этому показателю.

Самое же интересное происходит в секторах 4 и 5 — привожу их значения до и после одной из поездок:

 Sector: 4 Sector: 4
F02300000FDCFFFFF023000000FF00FF	E01500001FEAFFFFE015000000FF00FF
F02300000FDCFFFFF023000000FF00FF	E01500001FEAFFFFE015000000FF00FF
FC00D11439014D04204E0001371E8066	FC00D11439014D04204E0001371E8066
E56AC127DD4548778B0019FC84A3784B	E56AC127DD4548778B0019FC84A3784B Sector: 5 Sector: 5
94293901C532100E0000000000009E39	102B3901851E100E000000000000AF9B
030094293900B96D0690000000000000	0400102B3900386D9A9A000000000000
030094293900B96D0690000000000000	0400102B3900386D9A9A000000000000
77DABC9825E17F0788009764FEC3154A	77DABC9825E17F0788009764FEC3154A

Легко заметить, что первый и второй блоки в секторе 4 всегда совпадают, точно так же ведут себя блоки 2 и 3 в пятом секторе. Экспериментируя с различными балансами, валидаторами в метро и наземном транспорте и интервалами между поездками удалось выяснить следующее:

  • Первые 2 байта первого (или второго) блока четвёртого сектора хранят в себе информацию о балансе электронного кошелька карты в виде целочисленного числа, последние 2 разряда которого содержат информацию о копейках.
  • Первые 4 байта первого блока пятого сектора хранят количество минут, прошедших с 1 января 2021 года. Таким образом, информация о последней поездке хранится на карте с точностью до минуты.
  • Следом за минутами, два байта выделено для идентификатора валидатора: эти идентификаторы отличаются даже в пределах одной станции метро и получить одинаковое значение можно лишь пройдя через тот же турникет.
  • Первый байт второго (или третьего) блока пятого сектора хранит в себе информацию о кол-ве поездок в текущем месяце, аналогично той, что записана в девятом секторе.
Проблемы NFC:  Как использовать Apple Pay и отечественные альтернативы бесконтактной оплаты на своем телефоне


Кроме этого, в 5-м секторе находится

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

Атака повторного воспроизведения

Атака повторного воспроизведения (replay)

— атака на систему аутентификации путём записи и последующего воспроизведения ранее посланных корректных сообщений или их частей.

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

Тестирование атаки производилось по следующим схемам:

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

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

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

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

Как активировать

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

Для этого нужно:

  • В меню валидатора выбираем «Пополнение кошелька»;
  • Далее прикладываем карту к прибору и ждем пока на экране не появится запись что «Карточка записана»;
  • Вытаскиваем ее из аппарата;
  • Если на мониторе вы увидели свой счет, значит процедура завершена;

Как быть, если смартфон не имеет модуля?

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

Но встречаются мобильные телефоны, не имеющие инновационного модуля. Что предпринять в такой ситуации, не приобретая новый гаджет?

Потребителям, владеющим смартфонами без чипа НФС, разработчики из Китая предлагают установить необычный стикер, внешне напоминающий миниатюрную коробочку из пластикового материала.

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

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

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

Как восстановить «подорожник»

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

Как и где купить

Приобрести проездной Подорожник можно только в специализированных офисах и точках продаж:

  1. В кассовом отделе ГУП Петербургский метрополитен;
  2. В кассовом отделе СПб ГКУ «Организатор перевозок»;
  3. В специализированных киосках;

Купить подорожник

Чтобы оформить банковскую карточку “Подорожник”, вам необходимо посетить одно из отделений банков:

  1. Газпромбанк;
  2. Русский Стандарт;
  3. Банк Санкт-Петербург;

Для оформления будет необходим паспорт. С помощью банковских транспортных карт можно так же оплачивать покупки и снимать с нее деньги.

Как проверить баланс

Проверить баланс онлайн

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

  1. Прислоните карту к валидатору и посмотрите сколько у вас осталось денег;
  2. Попросите кондуктора посмотреть баланс;
  3. Посмотреть через автоматы для пополнения;
  4. Через визуализаторы которые установлены у входа в метрополитен;
  5. В момент прохода через турникет;
Проблемы NFC:  NFC: что это, где используется, как настроить на телефоне | РБК Тренды

Как проверить готовность к работе микрочипа в смартфоне

Для этого существует определенный алгоритм действий:

  1. в мобильном телефоне открываются стандартные настройки;
  2. выполняется вход в раздел «беспроводные соединения (сети)», находится необходимый подраздел;
  3. если микрочип пребывает в отключенном состоянии, то ползунок переводится в положение «вкл.».

Смартфон подготовлен к применению для настройки бесконтактного соединения.

Как это работает:

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

Если вас заинтересовала тема NFC, почитайте и другие наши статьи:

  • 4 причины купить смартфон с NFC, если у вас его еще нет
  • В Россию приехал первый бюджетный смартфон с NFC

Купить карту в киосках

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

  • Улица Кронштадтская у дома 22 (станция метро Автово);
  • Торфяная дорога, у дома 4 (ст.М. Старая деревня);
  • Ул. Бабушкина у дома 69 (ст.М. Ломоносовская);
  • Улица Большая Пороховская у до 12 корпус 34 (метро Новочеркасская);
  • Балканская площадь у дома 5
    (трамвайное кольцо);
  • Пискаревский проспект у д. 40;
  • Ул. Прокофьева, у д. 4 (у автобусного кольца);
  • Город Колпино Ул. Братьев Радченко, у д. 7/25а;
  • Г.Колпино Тверская ул., у д. 4/35;
  • Колпино, Октябрьская ул., у д. 13;
  • Пушкин, Привокзальная площадь;
  • Кронштадт, проспект Ленина, у д. 13;
  • Сестрорецк, Ул. Токарева, у д. 15;
  • Петергоф, Привокзальная площадь (ж/д ст. Новый Петергоф);
  • Петергоф, Гостилицкое шоссе;
  • Красное Село, проспект Ленина, у д. 53;

Купить подорожник в кассе «организатора перевозок»

Кассы Санкт-Петербургского государственного казенного учреждения «Организатор перевозок» где можно приобрести проездной расположены по адресам:

  • улица Рубинштейна, дом 32, лит.А (станция метро Достоевская, Владимирская);
  • пл-дь Ленина, дом 8 корпус 8 (станция метро площадь Ленина);

Метим территорию

Итак, наш план действий: научить смарфтон реагировать определенным образом на определенную же метку NFC. У каждой метки есть идентификатор. Гаджет должен опознать его и выполнить «запрограммированные» действия. Чтобы привязать действия к ID метки нам понадобится одно из подходящих приложений — например, NFC ReTag Free.

ШАГ 1. Качаем из магазина, запускаем. Подносим нашу метку — в данном случае транспортную карту. Приложение опознает ее и сообщает нам идентификатор.

Уязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабр

Тут много всего интересного — запуск приложений, включение Wi-Fi, изменение громкости сигнала, звонок на определенный номер…

Уязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабрУязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабрУязвимость карты Подорожник: бесплатные поездки в наземном транспорте Санкт-Петербурга / СоХабр

Мобильное приложение plantain

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

Для работы потребуется телефон с ОС Android 4.2 с NFC-модулем производства NXP. Работа приложения протестирована на Yotaphone 2 и планшете Google Nexus 7.

Я занимаюсь веб-разработкой и до этого не имел дела с разработкой под Android, поэтому код может быть написан не по гайдлайнам и с использованием bad practices.

Ссылка на Github: (раньше ссылка была тут, но вынужден убрать)

Мобильные приложения «подорожник» для android и ios

Мобильное приложение «Подорожник» разработано для того, чтобы пассажир мог проверить баланс или пополнить счет в любой удобный момент. Сделать это можно, к примеру, дома. Достаточно зайти в программу: проверить баланс и пополнить средства, если их недостаточно для предполагаемого маршрута.

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

Приложение запускается автоматически, если к нему поднести карту. Как добавить «Подорожник» в Google Pay:

Можно ли открыть домофон с применением мобильного?

Телефон, оснащенный чипом NFC, используют вместо ключа от домофона.

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

Известно три способа пересылки данных по беспроводному соединению, поддерживаемому модулем НФС:

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

О возможности привязки «подорожника» к смартфону

«Подорожник» — это проездной, созданный для удобства жителей Санкт-Петербурга. Среди резидентов он популярен, как билет на метро. Для него можно выбрать подходящую тарификацию и экономить на поездках.

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

Проблемы NFC:  Новости | Вниманию пассажиров! Вопросы-ответы по использованию карты «Тройка» с приложением «Стрелка»

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

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

Важно! Данный способ не рассчитан для льготных категорий граждан.

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

Как использовать:

  1. Нужно загрузить на телефон приложение «Подорожник». С помощью программы можно покупать билеты и смотреть, сколько осталось поездок на счету.
  2. Внести реквизиты с карточки-проездного и покупать в приложении билеты. Цены в системе соответствуют стоимости в метрополитене.
  3. Для прохода к индикатору на турникете нужно поднести заднюю панель смартфона. При этом не важно, включён телефон или нет, проездной считается, даже если батарейка разряжена.

Установить приложение можно на современные телефоны, такие как Huawei, Iphone, Samsung, Блэкберри, Алкатель и другие.

Обязательные условия

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

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

  1. обеспечивает ли ваше мобильное устройство поддержку технологии НФС, оснащено ли он встроенным модулем. Проверка этого пункта осуществляется через стандартные настройки смартфона. Правда, если вы пользуетесь способом перевода денежных средств по бесконтактному каналу, необходимости в данном действии нет;
  2. вторым, и особенно важным условием, считается поддержка считывателем домофона технологии – часто встречается оборудование, оснащенное устаревшими магнитными замками.

NFC-домофон откроется лишь с помощью метки, использование кода или пароля для обеспечения доступа отпадает.

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

Если получится скопировать ключ от домофона на телефон с NFC, вы легко попадете в подъезд собственного дома. Кроме того, данная мера значительно усиливает уровень безопасности, перекрывая доступ к квартирам посторонним людям.

Взлом такого домофона, в отличие от старого аналога, практически невозможен.

Пополнение баланса карты

Баланс карточки можно пополнить сразу несколькими способами:

  • С помощью билетного терминала;
  • Через специальное автоматическое устройство ГКУ «Организатор перевозок»
  • На кассе метро или там же в терминале оплат;
  • С баланса сотового телефона;
  • С помощью электронных денег (Вебмани, киви, Я.Д);
  • Через интернет банк;

Пополнить онлайн с карты

Пополнить через смс

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

Важно! Максимальная сумма которую можно положить на проездной документ равняется 15000 рублей.

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

Условия использования

Для быстрой и простой оплаты проезда в общественном транспорте, активно используются специализированные терминалы и валидаторы. Чтобы сделать оплату нужно:

  1. Прислонить карточку для считывания информации;
  2. Подождать пока на экране появятся данные электронного проездного и подтверждение его работоспособности;
  3. Далее происходит снятие денег для оплаты поездки;
  4. В том случае если оплата не прошла, попробуйте повторить процедуру или заплатите наличными средствами;

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

Электронный брелок подорожник

Для удобства использования и сохранности электронного проездного, он выпускается в более удобном формате брелка. Купить брелок Подорожник в СПБ можно в тех же отделениях где приобретается и обычная карта.

Заключение

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

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

Отзывы

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

Оцените статью
NFC в смартфонах