Немножко виртуального дигга...

Тема в разделе "Разговорник", создана пользователем gluckmaker, 6 авг 2007.

  1. Однажды я заснул крепким алкогольным сном, положив метрошный "Ультралайт" под подушку. И вот что мне приснилось:
    Код:
    0000	04 a4 60 48 c9 b4 02 80-ff 48 00 00 00 00 00 00
    0010	41 87 60 03 de 79 84 15-9a 1b c0 00 15 9b 00 00
    0020	15 9b 0f 00 00 00 00 00-91 e6 56 7d 00 00 00 00
    0030	15 9b 0f 00 00 00 00 00-91 e6 56 7d 00 00 00 00
    
    смеще-
    ние	длина	описание
    00	9	серийный номер чипа и контрольный байт
    09	1	зарезервировано производителем
    0a	2	lock-биты (не используется)
    0c	4	однократно программируемая область (не используется)
    10	2	всегда 41 87
    12	1	чаще всего 60, но бывает 50 или 70
    13	4	номер билета, смещён на 4 разряда влево, в младшей незначащей 
    		тетраде всегда 4
    17	2	Дата1 - такая же, как Дата1 или на 1 день раньше - дата выпуска 
    		билета?
    19	3	всегда 1b c0 00
    1c	2	Дата2 - дата продажи билета
    20	2	Дата3 - дата первого прохода. На новом билете - такая же, как 
    		Дата2
    		Все даты - число дней с 1 января 1992 года.
    22	1	на разных картах - 0, 0b, 0c, и т.п. до 1f
    23	1	на новых билетах - 40, на использованных - 00
    24	1	число оставшихся поездок
    25	2	всегда 00 00
    27	1	на всех билетах 00. Но на одном попалось 01.
    28	4	какая-то контрольная сумма? На всех картах разное. На 
    		какой-либо вариант LRC не похоже, и с CRC32 разных частей 
    		буфера с разными полиномами тоже не совпадает.
    2с	4	всегда 00 00 00 00
    TODO: записать весь жЫзненный цикл карты.
    Нижние 2 строки (секции 8-11 и 12-15 - байты 20-2f и 30-3f соответственно) 
    всегда совпадают.
    
    Если интересно - опишу подробнее. Если нет - ну, отстойник - он и есть отстойник.
     
  2. Если неошибаюсь то это спрограммированая в одной программе карта спелео пещерки.
     
  3. ??? ??? ??? Я, конечно, дико извиняюсь, но эта пещерка имеет несколько техногенное происхождение... Метро называется.
     
  4. Ну я особо то нерасматривал =))) Просто в каком то посте обсуждали программку для проектирования спелео пещерок--там был похожий листинг.
     
  5. ды это он сграбил внутренности карточки.

    слуш, а ты не делал эмулятор этой байды? впринципе думаю вечную карту сделать несложно
     
  6. Есть несколько гадостей.
    1) Первые 8 байт - уникальный номер чипа. Не перешивается. Соответственно, если он контролируется, то, по крайней мере, из серийной карточки ничего вечного сделать нельзя. Хотя, с другой стороны, карточки эти берутся в неограниченном количестве в любой урне :D Другое следствие из этого - невозможность стандартными средствами сделать 2 одинаковых билета (из серийных карт).
    2) В своё время в RU.PHREAKS утверждалось, что у магнитных билетов была такая система: каждую ночь данные о проходах собирались со всех турникетов и обрабатывались на предмет поиска всяких странностей, как то проходы по одному проездному через короткое время в разных концах города, проезд по кончившемуся билету, проезд по билету, который никогда не продавался и т.п. Билеты со странностями попадали в стоп-лист и аннулировались при попытке прохода. Если такая же система действует и для этих карт, то ездить по левой карте можно не более 1 дня.
    3) Пока нет никаких мыслей, как считается контрольная сумма.

    Эмулятор меток RFID ISO 14443 есть тут: http://www.openpcd.org/openpicc.0.html . Карты Mifare Ultralight не используют шифрование (в отличие от Mifare Classic - типа Карты студента или Социальной карты москвича), поэтому их можно эмулировать.
     
  7. gluckmaker, заинтересовал.

    1)ты собирал RFID-reader по схеме отсюда http://www.openpcd.org ?
    2) если купить безлимитный полный на месяц и считать - получается можно будет делать его копии...
     
  8. А нельзя как-нибудь read-only проставить на карточке ::) Проблема с левыми номерами и проходами в разных концах города заодно решится...
     
  9. Domovoy, мне кажется можно собрать эмулятор карты и с ним делать что угодно..... ::)
     
  10. Ну так a-la read-only решает все проблемы - номер, контрольная сумма и т.д... Купил карту на 10 поездок, сделал правильную копию на эмулятор и месяц езди анлимитед...
     
  11. а в прессе насколько я помню все хвастались
    "карты UltraLight лучше и надёжнее, патамушта в них применяется ващекрутое шифрование...."

    что-то не вяжется. :-\
    надо пробовать.
     
  12. 1) нет, ридер я купил готовый. Мне интересно поиграться ещё и с Mifare Classic, а их никакие "open" ридеры не поддерживают - протокол закрытый.
    2) безлимитные проездные ("транспортные карты" на 90 дней, "карты студента" и т.п.) - это Classic. См. выше. Разве что метрополитен поставил на них какие-то легко угадываемые ключи шифрования. Что вряд ли.
    3) readonly поставить можно (байты 0a и 0b отвечают за блокировку записи в различные секции), но не поможет. Попробуй билет слишком быстро приложить и убрать от турникета - поездку съест, но не пустит.
    4) "Ultralight лучше и надёжнее" тем, что пассажиру гораздо труднее его повредить при нормальном использовании. Ну и скопировать его с помощью двух головок от магнитофона и какой-то матери труднее. Как-никак, за цену ридера + цену деталей для того эмулятора, ссылку на который я кидал выше, на метро можно ездить несколько месяцев. Причём особо не экономя поездки. "Ващекрутое шифрование" применяется на Классиках - причём настолько ващекрутое, что Филипс даже алгоритм этого шифрования явить миру не хочет. Стесняется, наверно. Ох, чуйствую, через несколько лет какая-нибудь группа заинтересованных товарищей из какого-нибудь MITа ради прикола допрёт до того, как оно устроено - и...

    Блин, атч0т, чтоли, забацать... С фотками и цитатами из документации... :cool:
     
  13. В продолжение темы скажу следующее:
    1) Первые 3 тетрады (полтора байта) из того, что я выше назвал контрольной суммой (4 байта по смещению 28), обозначают станцию (или даже турникет - ещё не понял), на которой садились в последний раз. На ранее неиспользованных картах - 000. Остальное - таки да, содержит контрольную сумму. А вот сколько там её - не такой простой вопрос: по крайней мере, стандартных 20-битных алгоритмов КС, вроде, не бывает.
    2) В контрольном суммировании принимают участие все байты билета, включая завершающие нули (и, естественно, включая неперепрошиваемый номер чипа). При изменении любого байта терминал ругается на "ПЛОХОЙ БИЛЕТ". Правда, я всегда делал так, чтобы последние две строки дублировались - что будет в противном случае, не проверял (предполагаю, скорее всего, выберет правильную копию и зальёт её на место неправильной - своего рода anti-tearing mechanism).
    3) Билеты "со странностями" (например, если билет кончился, а потом на нём вдруг снова каким-то чудом появились поездки ::) ) блокируются на следующий день после проявления этих странностей. Терминал говорит "АННУЛИРОВАН". Таким образом, если залить в проезженный билет дамп от его же нового, ездить можно будет только 1 день. Точнее, конечно, ездить будет нельзя, т.к. "Подделка проездных документов преследуется по закону"(С) :-X Это подтверждает старинную легенду о том, что ведётся база по проходам, и по ночам Красные Шапочки садятся в круг и обсчитывают её на предмет подобных чудес.
    4) Байт 27 иногда выставляется в 01, и при следующем проходе возвращается обратно (на моей карте на 10 поездок это случилось 1 раз)... Зачем - не понятно.
     

Поделиться этой страницей