Пользователь
0,0
рейтинг
5 апреля 2013 в 01:50

Разработка → Система оплаты проезда общественного транспорта Москвы из песочницы

image
Предыстория
В далёком 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 килобайт соответственно.
Так же у меня в наличии была социальная карта жителя московской области, которая отличалась от первой только названием и дизайном.
imageimageimageimage

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (167)

  • НЛО прилетело и опубликовало эту надпись здесь
    • +4
      Заблокирует, т.к. корреляция «время-место-интервал» по коду станции отслеживается.
    • +1
      Очень хороший вопрос. Теоретически да. Я тоже над этим здумывался, но руки не дошли проверить. По идее конечно система должна работать так: Проходим в Алтуфьево например в 12:00, проходит 10 минут, проходим на Выхино, время 12:10, система должна сравнить 2 вещи. Первая Соблюден ли интервал в 7 минут. Вторая Соблюдено ли время проезда между станциями, так как ехать нам 52 минуты, то следовательно интервал не соблюден и карту должны блокировать. Это в идеале. Но на самом деле мне кажется вторую проверку система не делает, ну кто знает.
      • 0
        А что если я вышел из метро, понял что не та станция и вернулся обратно?
        Меня заблокируют или даже не пустят в метро в течение 7 минут?
        • +3
          Даже не пустят, пока не пройдут 7 минут
          • +9
            Добрая система.
            Удивительно как берлинское метро выживает без турникетов.
            • +17
              так тут контролеры ходят и по 40 евро собирают с безбилетников 8)
              • 0
                Насколько я знаю еще и записывают твои данные с обязательной пометкой в личное дело «Обезьяна, не умеет пользоваться общественным транспортом», что может вызвать осложнения для получения визы в следующий раз.

                Причем никакие аргументы в стиле «Я первый раз в метро, гражданин начальник» никого действия не возымеют.
            • +7
              Примерно так же как Чешское ;) Там тоже нет турникетов, зато есть злые контролеры.
              И мне кажется, их система гораздо удобнее.
              • +1
                Ага, удобнее. В Москве введи контроллеров и надо с ними батальон спецназа пускать.
                • 0
                  Да нет же, батальон спецназа не нужен, а вот сотрудники заталкивающие пассажиров в вагоны, как в Японии, уже точно понадобятся :)
                • 0
                  Мне кажется если ввести контроллеров, то получится как с электричками. Всем поездом бегаем от контроллеров.
          • 0
            Верно, отсчитывается время последнего прохода и пишется на карту.
            Но есть хитрый признак, чтобы не отсчитывалось. Спец.карты для инвалидов и их сопровождающих. Без задержки.
            Если показать такую карту информационному терминалу метро для проверки — он проверит код льготы и запишет этот признак )
        • 0
          Вы вышли и поняли, что станция не та, на той же станции, где вошли? Это как минимум странно. А чтобы войти, сесть на поезд, проехать хотя бы одну станцию, выйти и понять — в 7 минут уложиться надо ещё постараться.
          • –2
            [ платформа] -> [выход] -> [ой, не та улица] -> [вход] -> [ой, турникет говорит постой человечешка]
            • 0
              платформа -> поезд -> платформа ->…
            • +10
              Хоть я и не москвич, и в Москве не был очень давно, но логика мне подсказывает, что фиксируются только входы. Т.е. чтобы вас не пустило должно быть так:
              [выход] -> [ой, не та улица] -> [вход] -> [а может всё же та?] -> [выход] -> [да нет, точно не та] -> [вход] -> [ой, турникет говорит постой человечешка]
            • +1
              Я живу рядом с Москвой и на метро езжу не постоянно, но всё-таки езжу. И может быть, у меня проблемы с памятью, но на выход турникеты работают без предъявления карты и соответственно, такой сценарий в принципе невозможен.
              • +1
                Очень просто:
                приходишь на станцию Кузьминки, «вотжешит, полно народу, поеду-ка я с конечной», едешь до Выхино, оп-па, на Выхино нет перехода на другую сторону, поехать обратно можно только через улицу, профит: стоишь 4-5 минут под турникетом.
                • –1
                  Ну вот это как раз тот сценарий, который предлагал я: «войти, сесть на поезд, проехать хотя бы одну станцию, выйти и понять». То есть там реально спуститься по эскалатору на Кузьминках, проехать до Выхино, подняться по эскалатору и перейти улицу за 2-3 минуты?
                  • +1
                    Вы не поняли ситуации. Выхино — наземная станция, там надо спускаться, чтобы выйти. К тому же там, чтобы перейти на другую платформу, требуется от силы минута — только под путями пройти.

                    Но можно же и под оборот уехать, тогда перевходить не надо

                    З.Ы. За семь минут можно проехать больше трех станций, это точно
                    • 0
                      Ясно, спасибо.
    • +1
      На этот вопрос невозможно ответить, т.к. мы не знаем того, как устроена система прохода через турникеты в метро. Например, в электричках, где турникеты работают в обе стороны, система не делает различия между входом на станцию и выходом с неё.

      Если вы возьмёте билет на поездку туда-обратно, зайдёте на станцию и тут же выйдете, то билет будет считаться использованным (вы типа съездили туда-обратно). При этом совершенно неважно, сколько раз вы отметились на станции назначения: 0, 1 или 2 (та станция может быть и без турникетов, или они могли не работать когда вы с неё выходили). В данной ситуации вы вообще можете совершать какие угодно комбинации, главное, чтобы они были хронологически последовательны. 1 раз отметились на станции «туда», после этого 1 раз на «обратно» – билет использован.

      Лично моё мнение, подпитываемое вышеизложенным опытом, состоит в том, что система прохода в метро в этом плане отличается несильно и никаких подобных проверок не делает. За исключением последовательности.
      • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Однажды я приехал на Курский вокзал, а там меня поджидал друг с билетом, купленным там же до ближайшей станции, туда-обратно, я смог выйти по этому билету (купленному от курского вокзала) и позже войти обратно на платформу — то есть последовательность в электричках не важна.
        • +1
          Нет, здесь она сохраняется. Как я уже упомянул выше, система не делает различий между «вошёл» и «вышел». Когда вы вышли по билету с вокзала, система подумала, что вы вошли на него. Когда вошли – что вышли.
  • +1
    Новые СКМ тоже идут на 4К.
    В расширенной области записаны паспортные данные, код льготы и другая информация, например для РЖД (электричка).
    • 0
      Новые СКМ к сожалению в руках не держал. А так да, информация для железнодорожников хранится в 3 секторе.
  • 0
    Знатный ресёрч!

    А всё же как турникет сверяет UID?
    У него есть мгновенный доступ к базам? А как в наземном транспорте?
    Можно ли генерировать UID?
    • 0
      Турникет 1 раз в 10 минут сверяется с базами. Что есть генерировать UID?
      • 0
        Даже турникет в автобусе?

        Я имею в виду носить пять карт и менять UID каждый день.
        Или он как-то проверяет его на валидность?
        • 0
          Связи турникета с «сервером» нет.
          Только оффлайн-синхронизация при выезде из парка и заезде в парк.
          У терминалов контролёра та же хрень.
          • 0
            Оффлайн синхронизация тоже загонит карту в стоп-лист?
            • +1
              Да. Из валидаторов скачиваются для дальнейшего анализа логи проходов, а в сами валидаторы загружаются новые стоп-листы. После закачки стоп-листа валидатор будет выдавать «АННУЛИРОВАНО» при попытке пройти по билету/карте, занесённому в стоп-лист.
            • +1
              К размышлению. Речь, если что, идет о МГТ. С метро несколько другая ситуация.
              У меня человек сейчас катается в автобусах по «продленной» социалке (СКС) без проблем. Ничего не подумайте, исключительно из спортивного интереса — интересно, когда все-таки что-нибудь поменятеся у них, пытаюсь отслеживать.
              Если же попытаться просто собрать «типа социалку» с нуля, то откидывается она достаточно быстро, за день-два.
              Это заставляет задуматься над механизмом проверки валидности у МГТ. По всей видимости, данные о фактической оплате проезда (продлении) там не особо участвуют, есть только данные о фактической выдаче карты.
              • 0
                Или МГТ просто динамит выгрузку обратно в ГУП СоцРегистр. Т.е. стоп-листы исправно закачивают, а сами «вверх» свои логи не отсылают, а оставляют себе для своей статистики, которую таки ведут.
        • 0
          Носить то карты можно, вот только кататься по ним незаконно :)
          • 0
            То есть автор статьи угорел, а другим не стоит? :-D
          • +2
            Насчет законности есть определенные сомнения. Я не законник, по этому не пинайте сильно, могу быть не прав, но знакомый поведал мне вот что:
            С его слов получается, что если мы проходим по обычной пустой карточке, то это не может быть нам инкриминировано как «подделка проездного документа». Т.к., получается, что эта самая «подделка», по нашему законодательству, предполагает копирование его внешнего вида. В нашем случае никакого копирования внешнего вида не было. Об электронной информации в законе нет слова, стало быть, как там «случайно перетекли байты с настоящей карты на вот эту пустую, когда они лежали рядом в кармане» мы не знаем.
            В таком случае максимум, что можно получить — штраф за безбилетный проезд.
            Такая ситуация у знакомого возникала реально в питерском метро, когда он изучал что и как там работает. Внезапно его начали прессовать именно по «подделке». В результате, по его словам он достаточно бодро отговорился именно вот таким экзерсисом.
            Возможно, повторяю, мы все не правы. Хотелось бы, к стати, услышать по этому поводу комментарии хабравчан, которые в законах и механизмах их применения шарят.
            • 0
              Как минимум это 272, т.к. на лицо нарушение работы системы ЭВМ.
              • 0
                Если, наверное, удастся доказать, что было нарушение (ничего не поломалось же, по факту) и это именно оно (опять же, по факту, просто так сложились звезды, что карточка сработала). Мне так кажется.
                • 0
                  В наших судах статью трактуют в пользу обвинения вплоть до маразматического искажения смысла. Другое дело, что контролеру всё это не надо, так что можно ходить спокойно, главное не ставить на поток и не организовывать продажи.
                  • 0
                    Это да… А за поставку на поток и организацию продаж, конечно же, должно получать всех люлей, ибо не хорошо это.
        • 0
          База UID хранится и точно также синхронизируется.
          В итоге обнаружив несуществующий UID система просто заблочит карту.
      • +3
        Можно записать UID, которого не будет в базе метро. Но т.к. на этот UID не найдётся и валидного «метрошного» номера — UID вторичен.
        Это как IMSI и мобильный номер в сотовой сети, далёкая аналогия.
    • +4
      У каждой карты есть UID (заводской номер), внутренний метрошный номер и «социальный» номер. Они не связаны между собой, метрошный номер можно узнать к примеру на чеке при зарядке студенческой карты.
      База хранится на «концентраторе турникетов» узла (вестибюль, один или два узла на станцию по числу входов).
      В наземном транспорте по инструкции водители каждый вечер относят валидаторы в парк на программирование. Сливаются логи, заливаются стоп-листы. Иногда забывают )
      • 0
        На счет наземного транспорта поспорил бы, моя самая первая карта с не тем UID работает до сих пор на всей наземке, уже около полугода и не забанена
        • 0
          Говорю же, иногда забывают.
          Есть ГУП «Московский Социальный Регистр», они операторы единой базы, присылают выгрузку в МосГорТранс, в метро, и.т.д.
          К ним приходят заявки на изготовление карт от собесов, из касс метро. Метро ведёт также собственный стоп-лист. Не всегда информация из метро попадает в СоцРегистр и в МГТ.
          Иными словами, метро может сразу само заблокировать карту. Как скоро разойдётся инфа и разойдётся ли — вопрос десятый. Не шучу, на РЖД одну такую заблокировали через 9 месяцев. На автобус — через 3. На метро — через сутки.
          • +2
            Ссылку забыл,
            soccard.ru/ — оператор стоп-листа
        • 0
          Вот и у меня подозрения, что любой случайный UID работает до тех пор, пока не начнёт вести себя странно.
      • 0
        Выходит студент-первокурсник не сможет сразу воспользоваться картой, потому что база ещё не попала в концентратор?!
        • +3
          Как только получит на руки карту — данные уже внесены. Делают две недели.
          • 0
            А что мешает заранее внести в базу пачку номеров карт и потом выдавать студентам не за две недели, а на месте?
            • 0
              Сканирование и печать фото и имени на карте как минимум.
              Отсутствие «офисов обслуживания клиентов» — только маленькое окошечко кассы.
              • 0
                В Питере есть специально обученный офис на Одоевского, 29 (возможно, ещё несколько по городу разбросаны) — при Вас снимут фото и отпечатают на карте. Время ожидания — минут 15 (если без очереди).
                В 2006 году уже работало.
    • 0
      Думаю там не так много номеров в стоплисте и их можно банально кешировать прямо в турникете
      • 0
        На концентраторе турникетов.
        А в наземке и у контры — в памяти валидаторов.
      • 0
        В стоп-лист номера, по всей видимости, попадают только на какое-то время. Там, в железках, память (рама) не резиновая, хотя ее и достаточно много. По всей видимости, через это самое время все встает на круги своя и информация о том, что карту стопали, исчезает отовсюду бесследно. Более того, по всей видимости, эта информация и сам оборот стоп-листа не затрагивает остальных вещей.
        Вот пример из жизни, где-то годовой (может и поболее, правда, не помню уже) давности:
        «Продлили» на коленке СКС. Через пару недель ее внезапно внесли в стоп (хотя, до этого не вносили). Мы подождали пару месяцев, а затем пошли в кассу и уже честно ее продлили. После этого все заработало как раньше.
        Как обстоят дела сейчас не знаю, может уже что-то изменилось.
  • 0
    Да, кстати, областная от московской отличается ещё и ключами )
  • +7
    а на картинке — Казань.
    Автобусы Авиастроительного района… остановка около ДК Ленина… Эх, ностальгия.
    • +1
      Кстати, о Казани, в нашем наземном транспорте такой трюк тоже прокатит? Не на это ли намекает картинка с нашими краснобусами в посте?
      • 0
        Не помню точно, могу узнать, но скорее всего в Казани Mifare Plus, как и «Подорожник» в Петербурге. У них нет этой уязвимости по вытаскиванию ключей.
      • 0
        Точно Mifare Plus. И этой уязвимости нет. Проверил.
        • 0
          И отрадно и печально.
  • +1
    Автор не донес главной мысли, которую я и надеялся найти, открывая топик. Если можно, ответьте, пожалуйста.
    1) Информация о текущем балансе хранится на карте, или все-таки на сервере, с которым турникет каждый раз связывается? Судя по тому, что в автобусах интернета нету, он должен храниться на карте. Так ведь?
    2) Если он хранится на карте, то, чисто теоретически, можно отследить изменяющиеся блоки после каждого списывания и сделать себе вечный проездной? Или не так?
    3) Не нашли ли вы ( и пытались ли) какой-нибудь дизассемблер или нечто подобное для расшифровки 16-ричных кодов? Какое шифрование там использовано, ведь все понимают, что такие карты есть в свободном доступе, и некоторые будут пытаться наладить бизнес по торговле «вечными проездными». Какая защита там стоит?
    • 0
      Информация хранится и на сервере и на карте. Приоритетной является та что на сервере, если данные не сходятся, карту блокируют. Расшифровать данные я особо не пытался.
      • 0
        Может быть вы имеет ввиду информацию по тому, продлен ли проездной на месяц, или нет? Ведь в этом случае возможность double-check-а инфы на сервере адекватна, в то время как банальный денежный баланс такую проверку не пройдет. Пример:

        на карте 200 рублей 00 копеек
        шаг 1. Идем в автобус, оплачиваем с карты проезд, остается 173 рубля 00 копеек
        шаг 2. Идем в место xxx, перезаписываем карту с начального дампа и снова имеем 200 рублей.
        шаг 3. Идем в метро, оплачиваем с карты проезд, остается 172 рубля 00 копеек.

        Здесь может иметь место следующая проверка: так как количество мест, где можно пополнить баланс карты, ограничено, то логично было бы в них поставить как-раз запись на сервер этой инфы. Также поставить записать на сервер списываний денег в метро. Тогда полчается довольно банально: метро все равно останется платным, так как нельзя будет перезаписывать карту с дампа, чтобы было вечно 200 рублей (сервер увидит, что списываю-то я нормально, а вот приходит не пойми откуда), а вот общественный транспорт может быть облопошен, если сумма остатка на карте на сервере, с которым синхронизируется метро, больше, чем стоимость одной проездки на автобусе.
        • +1
          Вечером карту заблокируют, увидев, что баланс карты уменьшается неправильно.
          • 0
            А как узнают-то? баланс будет соответствовать тому, что знает сервер в метро. Будет выглядеть будто я просто не катаюсь на общественном наземном трансопрте. Достаточно просто делать дамп, который будет записываться на карту, после каждого посещения метро.
            • +1
              Думаю, на сервере ведется лог всех действий по карточке. Там и будет что-то вроде (по крайней мере, если бы я разрабатывал систему, сделал бы так):
              Время                            Действие                      Баланс до:         Стоимость:     Баланс после:
              11:30    Платеж в пункте платежей #N                        0                      -200                  200
              12:00    Оплата проезда в автобусе, маршрут N       200                      27                   173
              12:30    Оплата проезда в метро, станция M.            200                      28                   172

              Легко определить, что у всех действий «баланс до» должен совпадать с «баланс после» предыдущего действия, пробегаться скриптом раз в сутки по всем действиям за сегодня и проверять их несложно, скорее всего так и делается.
              • 0
                Так в том и суть, что считывающие устройства в наземной транспорте не подключены к серверу.
                • 0
                  Вечером их сдают на зарядку и синхронизацию.
                  • 0
                    На синхронизацию.
                    Питание всё же от бортовой сети, батарейка — только для RTC и CMOS
                    • 0
                      А,, ну это в Москве, у нас в Екатеринбурге валидаторы для "Екарт" кондукторы носят на ремне, берут у пассажиров карточки и прикладывают к ним, наверное средний уровень интеллекта на Урале не позволяет пассажирам самостоятельно прикладывать карточку к валидатору.
                      • 0
                        В Мск проверочные терминалы у контролёров тоже заряжают, но тут шла речь про стационарные валидаторы. В Спб их тоже ставят, но есть и мобильные. В Казани — только мобильные у контров.
            • +2
              Выше же сказали, что базы с наземных терминалов тоже сливаются.
  • –3
    Хм… прикладываем ридер к карману жертвы, читаем данные, записываем на болванку. Так несколько раз. В итоге имеем энное количество карт, каждую можно использовать, пока её не заблочат. Если заблочат — проблема не наша, а жертвы. Можно кататься бесплатно, пока не загребут копы. :)

    Там с перезаписью как дела обстоят? Какая дистанция чтения у ридера?
    • +18
      Вытаскиваем телефон из кармана жертвы и кладем в свой. Так несколько раз. В итоге имеем энное количество телефонов, каждый можно использовать, пока его не заблочат. Если заблочат — проблема не наша, а жертвы. Можно звонить бесплатно, пока не загребут копы. :)
      • 0
        Для вытаскивания из кармана нужны хорошо натренированные ручки. В идеале ещё сообщники для создания массовки вокруг жертвы, гарантирования путей отступления и вообще прикрытия. А вот ридер приложить много ума не надо.
    • +1
      Есть «дальнобойные» ридеры — 10-15 см без усилителя.
      Делая так и тупо записывая на болванку, Вы подставляете и себя, и других — т.к. карточку честной бабушки или Ветерана Великой Отечественной тоже заблокируют. И им придётся идти в РУСЗН и заказывать новую карту и ждать две-три недели её изготовления.
  • +2
    Перезаписывать на болванку можно до ста тысяч раз, дистанция ну примерно 4 сантиметра, бывает зависит от карты.
  • 0
    Можно взять карточку условной бабушки из области, которая в Москву и не суётся, а катается по области, считать её, записать на болванку и кататься до срока истечения.
    • +2
      При проходе по картам бабушек турникеты иногда подмигивают сотрудникам правоохранительных органов, у которых к вам, при несоответсвии вашего возраста пенсионеру, могут возникнуть просьбы показать карту.
      • +1
        Для этого есть турникеты, расположенные рядом со стаканом — у них «мигалок» зачастую нету.
      • 0
        Соответствие возраста не роляет.
        Роляет фото на карте. То, что не остановили — не заслуга возрастного соответствия.
        У детей многодетных семей, детей без отцов, инвалидов любого возраста такие же карты.
        • 0
          Речь идёт просто о лампочке, сигнализирующей «соцкарта». И если с ней проходит молодой амбал, это повод его проверить и сличить фото.
  • +3
    Как-то одолжил у жены её карту для прохода в метро (Мастер-банк). Меня остановили после прохода турникетов менты вместе с сотрудницей метрополитена и попросили показать, по какой карте я прошёл. Показал — их устроило. Жена сказала, что её тоже останавливали, оказывается, ловят мухлюющих с социальными картами (имеется в виду, похоже, не клонирование, а разного рода менее технологичное мошенничество). Один раз ей зачем-то дали распечатку FAQ по борьбе с мошенниками с mosmetro.livejournal.com. Я это к тому, что вы, ребят, поосторожнее — если вот так тормознут после прохода по клону, могут быть неприятности, и показать что-то другое вместо клона — не поможет, сверят.
    • +1
      Если я не ошибаюсь, сзади турникетов есть 3 лампочки и в зависимости от того, какая категория карты (обычный проездной, студенческий, социальная) загорается соответствующая лампа — менты знают, какая что обозначает и останавливают, если визуально пассажир не попадает под нужную категорию.
      • +3
        Да есть такое. У меня официальная социальная (пенсионная) карта, хотя внешне я никак не подхожу под данную категорию. Останавливают примерно раз в две недели. Но не менты — обычно в часы пик за турникетами дежурят сами работники метрополитена
      • 0
        Требующие зарядки и обычные проездные 99% не мигают.
        Мигают социальные пенсионные (перемигиваются). Так было на старых турникетах.
        • +1
          Да, к стати, если соединить данные из бульдога и носорога, т.е. сделать клон соцкарты по номерам но с «немигающим» лэйаутом, то клон будет вполне себе бодро работать, если им пользоваться вместо оригинальной соцкарты, и не будет мигать, привлекая к себе внимание контролирующих :) Делали такой эксперимент.
          • 0
            Под немигучим лайаутом имеется ввиду 1-й сектор СКС?

            Тогда:
            UID валидной СКМ, 1 сектор от заряженной СКС, 3 и 4 сектор можно оставить от СКМ, наверное). В дальнейшем перезаписывать 1 сектор аналогичным от заряженной СКС каждый месяц. Так?
            Тогда для метро не нарушается соответствие между «метрошным» номером СКС и номером UID? По идее должно нарушаться. Т.е. будет работать не мигать, но заблокируют быстро.
            • +1
              Все неправильно наврал я, туплю. Давно уже было. В общем, CardCode меняли, дай б-г памяти. Остальное вроде не трогали.
  • +1
    Это само собой, да пусть даже не по клону, а по настоящей, но чужой социальной карте ходить не надо, штраф будет, а за клона и привлечь могут.
  • +2
    Перезаписывать UID перед каждой поездкой вариант? У меня ноутбук всегда с собой, а ридер весит менее телефона.
  • +1
    Да, это тоже работает. Но немного неудобно все же)
  • –1
    Про стоп-лист для наземного транстпорта:
    Почему такого не произошло на наземном транспорте? Да потому что у всех наземных турникетов не существует общей базы данных, в которой могли бы сопоставляться данные, её нету из-за того что невозможно соединить все турникеты воедино

    Не, ну неправда. Было бы желание соединили бы. Причём можно было бы соединить как в систему реального времени (например передавать данные по сотовым сетям, как например делается для терминалов оплаты и различных автоматов по продаже джанк-фуда и кофе), так и не совсем реального времени (например просто передавая данные по считанным картам через wi-fi на конечных станциях, оборудованных соответсующим оборудованием, а ночью синхронизируя данные уже на все автобусы, трамваи и тролейбусы, когда они в парке)…

    Думаю просто заморачиваться не стали, а так вполне можно было бы и сдедлать систему — каких-то прямо принципиальных препонов я не вижу…
    • +1
      Оборудовать каждый турникет wi-fi, а тем более gsm модемом + сим карты, влетело бы в немалую копеечку. Сделать это можно, но дорого
      • +1
        И незачем.
        В Питере реализовано по такому же принципу. Там есть карта «Подорожник», аналогом которой является московская «Тройка» или казанская ТК. Её можно пополнить хоть с помощью Яндекс.Денег, но «деньги» на карте не запишутся, пока не пройдёшь по ней в метро. Т.е метро сверяется с базой и записывает на карту изменение баланса.
        К примеру, у Вас пустая карта. Вы пополнили её в кассе, физически предъявив карту. Данные записываются и в БД (факт пополнения, сумма, дата, время, ИД кассы), и на карту. Можно ехать и в метро, и на автобусе.
        Другая ситуация. У Вас пустая карта. Вы пополнили её по номеру на сайте, физически не предъявив. БД об этом знает, но на карту ничего не записано. Метро при попытке прохода запишет, а автобус — нет, т.к. сверка данных валидаторов будет только вечером, в автобусном парке. Поэтому такую карту надо сначала «растолкать» проходом в метро, чтобы данные из БД «упали», а потом можно и на автобусе ехать.
        • 0
          вот это наворотили: чтобы на автобусе проехать нужно в метро обязательно бегать! А если я метро не пользуюсь и мне до него 20 минут пёхом?

          Как бы 21 век на дворе — беспроводные технологии и всё такое… не… не слышали? Или по проводу байтики текут быстрее?
      • 0
        Ну да, точно, я же забыл, что подвести коммуникации к каждому турнекету в метро — это копейки, как и сервера, на которых данные с них обрабатываются… Ну я уже не говорю о самих турнекетах, которыми оборудовали весь наземный транспорт — это вообще ничего не стоило — люди и компании работали за идею…

        А вот сотовую антенку с модулем, наподобие тех, что стоят на терминалах оплаты и банкоматах — это же вообще грабёж среди белого дня!!!

        Да, и не могу упомянуть, что когда покупаешь оптом — это выходит конечно же дороже чем в розницу…

        Конечно, удобнее же каждый раз бегать в метро, что «карту обновить», даже если ты в метро не ездишь и вообще с ним никак не пересекаешься…

        Куда я вообще полез со своим подходом и предложением: беспроводные технологии вообще в зачатке, поэтому всё, к чему провод провести нельзя — замкнутая и изолированная среда, которая не может иметь никаких коммуникаций с внешним миром :)

        P.S. На всякий случай (а то тут всякие попадаются): это был сарказм :)
        • 0
          Москва решила проще — вообще запретить «виртуальное» пополнение карты. Только физически, в кассах или в терминалах со считывателями.
          • 0
            Ну вы и весельчак :) У меня постепенно складывается впечатление, что вы Питерцы реально недолюбливаете москвичей и только и ищете повода, чтобы показать, как у вас там лучше… А про то, что Московский метрополитен и службы наземного транспорта никак не могут пассажиров поделить и оттого никак единой системы получиться не может — это я и так знаю.

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

            По мне так лишний геморрой на людей вешать нужно только если реально нет технической возможности, а услугу вводить по-возможности для большинства. Лично я не вижу сегодня никаких препонов и отсутсвия технических решений для реализации работы турникетов в том числе и с использованием беспроводных (в том числе и сотовых) сетей.
  • +1
    Вообще было бы интересно иметь мелкий девайс, который эмулирует карту, один фиг весь диалог идет в RF и форм-фактор «карты» неважен.

    тогда можно было ставить эксперименты- например схема явно не имеет защиты от синтетических данных, например случайный UID и правильный сектор данных, хотя это просто решается — достаточно при валидации данных использовать UID.
    • 0
      Да пожалуйста, напишите. Даже эмулятор не нужен, всё уже есть
      mifare.livejournal.com/8718.html
      • 0
        Сейчас я заказал некий шилд для ардуино (если конечно о чем то говорит), который умеет работать с mifare картами, простыми словами хочу собрать переносной карманный ридер.
  • +3
    Спасибо за статью. А как смотрели сотрудники метрополитена, которые вам карту разблокировали, что вы три раза к ним ходили?
    • 0
      Сотрудник метро не имеет возможности разблокировать карту. Точнее, могут ОДИН раз разблокировать временно только на один месяц только на метро некорректно заблокированную студенческую карту в двух офисах «Пассажирского агентства» метро.
      Из стоп-листа не убирают, а выпускают новую карту.

      После блокировки в метро обычно пропускают так или дают временный билет на 3 дня и отправляют в РУСЗН за новой картой.
    • 0
      Ну так как между блокировками карт проходил достаточно большой промежуток времени, меня они ни разу не вспомнили :)
  • +1
    В месте " договорились о встрече на одной из станций метро" ожидал что автора встретят скучные люди в форме. Однако детектива не получилось…
    • +11
      на каком основании? покупалась просто чистая карта мало ли для каких нужд, может, я дома систему контроля доступа в туалет делаю…
      • 0
        «Ну аппарат-то есть» (й) старый анекдот
        На самом деле такими вещами надо заниматься крайне аккуратно (даже если для fun only), потому как вся доказательная база по сути уже есть (сколько он там раз ходил разблокировать карту) и если захотят — закроют без вопросов. Причем коммерческой выгоды с этого особой не поимеешь, ну а для себя делать — прибыль в стоимость произдного за месяц…
        Сродни сидению в интернете за чужой счет во времена диал-апа. Куча людей развлекались, но особо невезучие пионеры вполне себе заработали статью и условку.
  • +1
    А если подделывать не соц карты, а обычные проездные? Как обычные проездные работают?
    • +1
      Я, как и автор, тоже углублялся в эту тему, правда до топика руки не дошли :)
      Обзавелся я как-то NFC-ридером, подумал об экспериментах с билетами. Меня не интересовали махинации с одним конкретным билетиком и я сразу же углубился в тему клонирования. В сети куча информации насчет упомянутой автором MIfare Zero с доступным для записи нулевым блоком, и к моему счастью, на ибее как раз продавались такие карточки, правда шибко дорого. Купил я 4 штучки и благополучно забыл про все это дело, ибо лень.

      Где-то через месяц, после большой гулянки, проснулся с полными карманами ультралайтов :D Большая часть ушла на вымывание картонки и рассматривание самой схемы. Кстати, я насчитал аж 4 разных типа схем, ведут они себя совершенно одинаково и дампы с них идентичны, понятия не имею в чем разница, видимо, только во внешнем виде.
      С остальными я уже начал экспериментировать. Никаких читаемых данных я не нашел — все зашифровано, но идея клонирования карты пришла на ум сама собой. Сходил купил на 1, 2 и 5 поездок, первым делом занялся картой на пять. Скопировал, пошел с другом на Южную, я прошел по настоящей, он по копии. Обоим написало, что осталось 4 поездки, но валидатор у кассы чуть позже все таки сказал, что у нас их всего 3 :( То есть, клонировать можно, но смысла в этом нет никакого.
      На следующий день я по делам отправился в метро и решил, мол, зачем добру зря пропадать, и попытался пройти по тому самому настоящему билетику, на котором по идее еще 3 поездки. При прикладывании турникет пищал. При повторном тоже. И еще раз. Подбежала метробабка, сказала, мол, билет видимо испорчен, если есть чек идите меняйте. Плюнул, достал вчера купленную на 1 поездку и поехал по своим делам.

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

      И да, друзья, не играйте с огнем, все же помнят надпись на старых билетах с магнитной полосой? Подделка билетов преследуется по закону. И органам до лампочки, ради науки это или нет, наживаетесь вы на этом или нет; клон карты — это самая настоящая подделка.
      • +1
        Клонировать ультралайты и по ним просто так проходить? Информация внутри ультралайта зашифрована?
        О каком времени (годе) идет речь?
        • 0
          2011
          Насчет шифровки не совсем корректно выразился: ну поглядел я на дамп, не увидел никакой семантики и забил болт на разбор всего этого дела.
          • 0
            >> Да, клонировать ультралайты и просто так по ним проходить.
            Клонировать ультралайт на другой ультралайт, серьезно? :)

            Семантика там вполне себе разглядываемая, такая же, как и на всех остальных картах метро/МГТ.
            Сначала заголовок с типом приложения, типом карты, номером метро, лэйаутом, сроком годности и т.д.
            Потом два раза дублируются блоки по лэйауту, где уже всякие сроки действия, кол-во поездок, время прохода и номер турникета, и так далее и тому подобное и так далее. А потом все это подкрепляется имитовставкой по ГОСТу, которая высчитывается исходя из UIDа, зоны OTP (которая выжигается равномерно по ходу расходования билета) и данных. Дьва раза.
            По этому, как вы смогли клонировать один ультралайт на другой — для меня большая загадка.
  • 0
    В связи с введением единого билета, предлагаю автору повторить свои эксперименты.
    • 0
      О каком едином идет речь?
      • 0
        image
        И аналог в новом дизайне.

        Никакого смысла, скорее всего — UL?
        • 0
          Вот эта хрень, по-моему, классик.
          Кто-то у меня ковырял. Но могу ошибаться, могу, могу, сам не видел и не трогал.
          • 0
            Ультралайт.
            И 90 минутный зелёный билет — тоже.

            Тройка — Mifare Plus 2K SL1
      • 0
        О билете на наземку и метро одновременно.
        Еще есть «Тройка»
        • 0
          см.выше комментом
  • 0
    Спасибо, очень интересное исследование. Не раскрыта тема NFC модулей в современных смартфонах.
    1. В каких диапазонах они работают? (я пока не обзавелся смартфоном с NFC, но например известно что метрошные карточки читаются, а пластиковые пропуска например, вот такие www.3pod.com.ua/foto/elektronnie-propuska.jpg — нет).
    2. Известно что NFC-модули смартфонов могут работать в режиме эмуляции карт. Интересно было бы попробовать «скопировать» карточку на NFС-модуль смартфона. Поскольку это программная эмуляция, то есть вероятность что там можно эмулировать все блоки, в том числе и c UID.
    Может быть, уже существует какой-то софт для этих целей?
    • +1
      Метро — это Mifare NXP, 13,56 МГц
      Пропуска толстенькие — это EM Marin, 125 КГц.
      Хотите пропуска скопировать —
      www.ikey.ru/product/rfd-1
      • 0
        Формально 125 КГц — это тоже NFC, или просто что-то подобное? Я к тому, что смартфоны этот диапазон не поддерживают потому что он какой-то устаревший/малораспространенный, потому что это не NFC, по каким-то техническим причинам (сложности с соответствующей антенной, нет поддержки в чипах, или еще почему-то?
        Удобно было бы бесконтактные домофонные ключи и пропуска загнать в смартфон:)
        • +1
          Стандарт NFC — 13.56 MHz.
          EM Marin — другие частоты, другая приёмопередающая аппаратура. Карты EM Marin тупы, они содержат в себе только уникальный номер, ID, у них нет криптопроцессора и других умных функций, по крайней мере, мне не попадались такие. Их областью применения были как раз изначально пропуска, ключи от ворот, шлагбаумы гаражей.
          В смартфоны решили встроить именно NFC из-за более универсального применения, да и стандарт прямо скажем перспективнее.
          Ничто не мешает отдельному производителю сделать смартфон с EM Marin, как есть же отдельные поделки с аналоговым ТВ, с 3мя SIM картами или со сканером штрих-кода. Стандартных чипов я не знаю таких, Qualcomm, MTK точно не делает, но можно и на логике )
          Наверняка промышленные КПК и терминалы сбора данных даже и есть такие, но это штучный товар.
        • +1
          Почитайте кстати, интересно
          habrahabr.ru/post/155973/
    • +2
      В общем случае UID полностью эмулировать нельзя. Там в чипах отродясь от этого стоит защита, которая в режиме эмуляции подменяет первый байт на другой. Есть такая штука, под названием «regiser hack», которая на некоторых чипах некоторых ревизий работает. Это единственная лазейка, пожалуй, но на нее я бы надеяться не стал.
      Вообще, это все и даже немного больше есть в доках к проекту libnfc.
  • +2
    Меня мучает вопрос: почему в Берлине и Праге обходятся без турникетов?
    Менталитет или продуманная система?
    • 0
      Это да. Я как прочитал первые две строчки, сразу подумал: бедный ребенок, с самого детства видел турникеты в общественном транспорте. Вообще до такого маразма как турникеты в городском автобусе пока только в Москве вроде дошли (в россии по крайней мере). Или я отстал от жизни?
      • 0
        сейчас будет эксперимент по отмене турникетов на трамваях
        по результатам возможно их уберут совсем
        на для этого придется пустить на линию контролеров с ментами (потому что сами контролеры задерживать зайцев не имеют права)
        • 0
          В Москве (ВАО) есть турникеты и ходят контролеры.
          • 0
            А теперь ещё и ГУП «Организатор перевозок». В том числе и в метро на станциях (не в поездах).
    • +1
      контролеры
    • 0
      Вас не мучает мысль прочитать комментарии, или хотя бы нажать Ctrl-F, прежде чем писать свой?
    • +1
      Конечно менталитет, представляешь что будет если в Москве убрать турникеты? Пол-Москвы поедет без билета и надо будет несколько дивизий внутренних войск чтобы ловить и штрафовать. :)
    • 0
      И менталитет и система.
      Когда меня в Праге без билета (каюсь) тормознули 5 контролеров и прошлось отвалить им, дай б-г памяти, крон 400, а может и больше, то желания более ездить без билета не возникало и не возникает. Это система. Для тех, у кого не хватает менталитета :)
      • 0
        В Хельсинки в метро (тоже нет турникетов) один раз видел, как контролёры проверяли билеты и попалась безбилетная девушка. Они с ней не разговаривали вообще. Просто молча перегородили выход (вдвоем) и спокойно ждали остановки, там её уже полиция приняла (не помню размеров штрафов там, но немаленькие).
        Так что для тех, кто менталитетом не вышел, есть эффективные методики :)
  • –1
    Спасибо, очень интересная статья.

    Возник такой вопрос: а если клонировать «бабушкины» социалки — в них ведь нет ограничения на 7 минут. Есть мысли?
    • +1
      Есть ограничение во всех, кроме инвалидов I, II группы и их сопровождающих, а также детей-инвалидов.
      В остальных есть.
      Ввели снова 16 мая 2012 г.
    • 0
      Если изучите внимательно формат данных, записанных на карте, то увидите, что это ограничение можно после каждого прохода снимать, откатывая время последнего прохода, хранящееся на карте, на десять минут назад ридером и ноутбуком прямо «в поле». Я, когда был еще молодой и зеленый, таким образом ради хохмы пол хора нашего (человек 30) подряд пропустил :)
      Насколько мне известно, за такие шутки карты не блокируют до сих пор.
      • 0
        Терминал проверки в метро (новый) умеет снимать ограничение, записав спец.флаг. Жаль только нет карты под рукой с нужным признаком, чтобы проверить, где именно лежит признак «требовать задержки». Время прохода после этого не перестаёт писаться, турникет перестаёт его проверять и открывает в любом случае.
  • +1
    Заметка: блоггер Odinokij_kot есть и на хабре. Вот он Odinokij_kot. Добавьте ссылку на него в пост, ибо по моему он тоже сюда писал статьи по RFID. Ещё есть отличный спец по RFID, который мне писал статью о взломе метро в «Хакер», камрад dark-simpson.livejournal.com/. В ЖЖ у него много-много полезной инфы по теме, ну и с ним тоже интересно пообщаться. Может много нового сказать, есть так же на хабре (но не писал) darksimpson
    • 0
      Добавьте его в пруфы в статье
      • 0
        Извиняюсь, моё упущение
  • –1
    У нас (в небольшом городе) два студента похожий эксперимент решили провести, только с банковскими картами. Попали под суд.
    • 0
      Ну банковские карты это уже совсем другая идея, там магнитная полоса как никак
    • 0
      для таких одаренных личностей на картах пишут, что подделка банковской карты преследуется законом.
      Правда у нас эта фраза на английском (ровно как и все остальное) и большинство (не владеющая данным языком) прочесть не может о чем там речь. И надпись про подпись на обороте. И если банковский сотрудник не проследил за этим при выдачи карты — фиг докажешь человеку, что там должен быть его автограф, к примеру, в магазине.
  • +1
    Спасибо за статью. Провожу сейчас пассивные эксперименты: собираю дампы с социальной карты и с проездного на 60 поездок. Вот мои наблюдения:
    Mifare Classic:
    В первых 16 байтах сектора метро пишется информация о проездном. Она может изменяться либо при пополнении, либо в начале месяца. Судя по всему, она прямо соответствует опциями «СКС текущий месяц» и «СКС следующий месяц». То есть в любой момент там записана или одна константа, или другая. В теории можно попытаться переписать одну на другую, что автор видимо и сделал. Но на разных социальных картах эти константы разные. Во вторых 16 байтах сектора метро хранится некая изменяемая константа и идентификатор проездного (4 байта), который меняется каждое 1е число месяца или при пополнении. Идентификатор всегда увеличивается на некое небольшое число. Возможно, это уникальный идентификатор проездного.
    В новых картах Mifare 4K действительно записаны паспортные данные. Также на картах обоих типов (1K, 4K) записаны дата рождения и ФИО.

    Mifare Ultralight:
    В проездном на 60 поездок есть 30 (или 32?) «выгораемых» бита: которые можно изменить только в одну сторону. Соответственно один бит меняется каждые 2 поездки, в теории так можно восстанавливать карту в предыдущее состояние. Помимо этих битов есть перезаписываемые области, в каком-то байте хранится количество оставшихся поездок.
    • 0
      А какие именно карты? СКС, СКУ, СКМО?
      А то есть несколько интересных дампов, могли бы обсудить.
      • +1
        Две социальных карты москвича-студента (1К и 4К) и несколько ультралайтов.
  • 0
    Спасибо за статью, интересно было почитать! У нас в городе только планируется введение Универсальных Электронных Карт, интересно будет покопаться с ними, статья даж как то вдохновила.) Хотя, мне кадется УЭК будет более похожа на банковскую с магнитной полосой.
    • –2
      Минусующий хоть бы прокоментировал за что минус. Детский сад.
  • +2
    Кстати, вот пример совершенно настоящего стоп-листа, который формируется для метро.
    Метро рассылает такое письмо в ВУЗы, участвующие в программе по льготным проездным (далеко не все ВУЗы Москвы, а только государственные и некоторые коммерческие), а ВУЗ отвечает, кто из этого списка отчислен или не учится. После чего метро блокирует эти карты.

    Таких строчек в этом примере на самом деле больше двух сотен. И это не самый крупный ВУЗ. Огромное количество «левака».
  • 0
    Реально ли использовать такие карты для авторизации в Windows?

    Что почитать на тему использования контактных и бесконтактных карт в Windows? Скажем TrueCrypt поддерживает чтение с карт, но как конкретно это сделать (какие нужны карты и считыватели) не совсем понятно.
  • 0
    Про УЭК или «Тройку» интересное что нибудь напишете?
    • 0
      К сожалению у меня нету ридера, который смог бы работать с ними, там карты другого стандарта, mifare plus если не ошибаюсь
  • 0
    Вообще, забавно читать, как <вроде как> высокооплачиваемые специалисты рассуждают о том, как сделать «левую» карту, чтобы ездить бесплатно в метро или на автобусе (:
    • 0
      Я сожалению не высокооплачиваемый специалист, мне 19 лет и я работаю менеджером в обычном ООО. А это так, только хобби :)
      • 0
        Стив Джобс тоже когда-то подобным занимался.
      • 0
        R0mjke, прошу прощения, если моя глупая шутка вас задела (:
        • 0
          Нет, нисколько)
  • 0
    R0mjke а РЖД-шные карты в руки не попадались? Интересно почитать про их устройство.
    • 0
      На них всё то же самое, информация о поездках записывается в 3 сектор)

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