Pull to refresh

Comments 84

UFO just landed and posted this here
Ну конечно, Вы абсолютно правы! :)
UFO just landed and posted this here
Уже 2-е апреля =)
Логично предположить что Копия о количествах поездки хранится на сервере?
скорее всего сделано для того чтобы если пропала связь с сервером человек всё равно мог пройти по информации на карте.
или я ошибаюсь?
Если предположить, что информация о каждой карте хранится на сервере и если есть связь, то проверять валидность по базе, то получается мало того, что скорость соединения практически нулевая (в плане задержки), так и доступ к базе осуществляется почти мгновенно (если судить по тому, как быстро турникет пропускает после поднесения карточки). А база то должна быть ооочень большой…
А если я не прав, то очень хотелось бы узнать, как можно достичь такой бешеной скорости ответа от удаленной базы данных!
очевидно же. Каждый турникет должен регулярно (раз в 20 минут, например) сливать себе на жесткий диск дамп базы по актуальным карточкам с центрального сервера
:)))
хм… допустим в базе хранится 1 миллион карточек, размер памяти карты 1кб (но всю карту хранить скорее всего не надо, допустим только 128б храним), получается дамп базы размером 122мб. Вроде цифра и не большая, но трудно представить, что метрополитен будет раскошеливаться на поддержание такой инфраструктуры (как минимум в разы увеличивается стоимость самого турникета, сервера с базой данных, канал до каждого турникета). Все-таки проще хранить инфу только на самой карте, учитывая ее «надежность»:)
В то же время, у меня однажды накрылся проездной (инфа перестала с него считываться) — в итоге мне его восстановили (выдали новый за 30руб.) с предыдущей информацией. Видимо, все-таки существует некая база данных с учетом всех поездок.
Эх, написал бы кто статью, о инфраструктуре метро:) Особенно интересует их система видео-наблюдения (огромное количество камер везде понаставлено, причем часть из них IP камеры, часть PTZ (видимо ведется какое то постоянное наблюдение), как организовано хранение информации).
>>>Особенно интересует их система видео-наблюдения
За вами уже выехали…
Не знаю как в Киеве, а у нас, в Новосибирске, на сколько я знаю, на каждой станции есть кэш-сервер для турникетов, котоырй периодически обновляется. Турникеты на станциях «онлайн» только с ним.
Так же есть защита от пополнения карт, так как сервер знает, сколько поездок и когда было приобетено, и если по данным базы поездок было куплено вчера 10, использовано вчера 5 и сегодня осталось еще 60 — карта блокируется, а у тетеньки на КПП срабатывает сигнализация.
Студенты из НГТУ пару лет назад получили доступ к единой транспортной карте и накинули на нее немного денег. На скольок мне известно, воспользоваться они не смогли.

Вопроса в инфраструктуре и скоростях связи нет, так как Новосибирский метрополитен является одним из двух игроков «рынка городской магистральной канализации», именно по метрополитену проложена бОльшая часть магистральных линий связи Новосибирска, один метро-мост через Обь чего стоит, в качестве «кабельканала». Второй игрок — РЖД, но ему «внутригород» мало интересен.
А если сделать копию карты и одновременно ей на двух станциях воспользоваться — что будет? :)
А собственно говоря — почему?
Во-первых, мы выяснили, что турникеты подключены только к «своему» серверу на станции, а уже только эти сервера иногда синхронятся с центральным.
Во-вторых, «одновременно» тут нафиг надо — по «одновременности» как раз можно легко вычислить хак. Лучше так: 2 идентичных карты у разных людей срабатывают в разное время. В итоге сервер №1 снимает с карты №1 поездку и сервер №2 снимает с карты №2 поездку. Было, к примеру, по 15, а стало по 14. Потом оба сервера синхронятся друг с другом (или с центром), сообщая, что мол вот карта, на ней 14 поездок. Информация не противоречива — откуда 15 суток?
Это нужно хитро попадать в промежуток синхронизации, что нереально, иначе все тяряет смысл.
это при условии, что такая схема сработает.
А если они записывают, как действие, например, уменьшить количество поездок на 1, и потом отсылают эти данные на главный сервер. С двух локальных серверов придут данные, что мол два раза минус одна поездка. Выйдет осталось 13 поездок. Выгода такой ситуации лишь в том, если поездок осталось мало, и тогда есть возможность уйти в минус.
А вдруг там переполнение будет :)
можно получить UINT_MAX поездок. Хватит надолго.
Знаю, как это в Москве происходит. Купил у спекулянта карточку, чтобы в очереди не стоять. Потом оказалось, что это не спекулянт, а жулик. Он предупредил, что карточка на 10 поездок, но потратить их надо быстро. Прошли мы втроём по этой карточке без проблем. А на следующий день, уже на другой станции, турникет запищал, и на карточке отпечаталось «СТОП-ЛИСТ». Уже потом разглядывал карточку внимательно, и оказалось, что она тоньше и на просвет видны её кишки (оригинальные карточки делаются из довольно толстого картона).
По видимому, мошенники купили карточку и скопировали её на дешёвые болванки, а может и просто сгенерировали. Система в реальном времени ничего не проверяет, она просто записывает серийные номера карточек и остаток их баланса. С небольшим лагом эти данные агрегируются, находятся левые карты, и их номера помещаются в стоп-лист, который рассылается по всем станциям. Доступ к локальному стоп-листу в реальном времени имеют все турникеты.
Не очень понятно, как на карточке могло что-то отпечататься. Сейчас бесконтактные карты, их никуда не суют, только подносят. Или надпись «СТОП-ЛИСТ» появилась на самом турникете?
Слушайте, и правда. Я соврал немного, прошу простить. Турникет запищал, и я пошёл к жёлтому терминалу на стене, чтобы проверить, что с картой. И вот уже на нём написалось «Стоп-лист».
Для того, чтобы обслуживать турникеты в реалтайме необходимы быстрые надежные каналы связи между ними и сервером статистики, что дорого в нашем-вашем государстве ))

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

>>>А записывать-то, записывать как?
Обычно карты можно записать тем же, чем и читал.
Необязательно делать глобальную быструю сеть.
Харьковский метрополитен, например, имеет по одному «серверу» на станцию. Сервера синхронизируют свое состояние раз в день (ночью) между центральным сервером. Если были какие-то проблемы или несоответствия по карточке — то она блокируется, в момент синхронизации, на всех станциях.

Также каждый тип карты (обычная, пенсионная, студенческая, с нулем на балансе и т.п.) заставляет пищать автомат по-особенному (а в новых — и RGB диоды разным цветом) — на что очень живо реагируют менты, которые дежурят возле автоматов.
Да и сам автомат по-умолчанию «не пропустит» карту если будет какой-то сбой. У меня так много раз списывало денег, а не пускало — тогда работники метрополитена забирают карту, проверяют транзакции, извиняются и пропускают мимо турникетов :)

Так что с «исправленной» картой в харьковском метрополитене ходить, в лучшем случае, один день получится.
В Киеве карты появились раньше — сомневаюсь что Харьков с нуля разрабатывал систему. Поэтому в Киеве должно быть что-то подобное.
Ок, а если скопировать месячный проездной?
В Харькове нет месячных проездных, но даже если его скопировать — думаете сложно вычислить если один проездной засветится в течении 20 минут в другом конце города?
Нужно тогда контролировать, чтобы один номер не светился одновременно (около 20 минут например) на нескольких станциях. Если с одной копией и разными «маршрутами на работу» это можно сделать и объяснить при необходимости (курьерская работа например), то при большЕм кол-ве копий аномалия выявится быстро.
Понятно, что выявить аномалию не проблема, но я сомневаюсь что сервер занимается таким анализом. Уверен, что если я ради эксперимента быстро-быстро объеду несколько станций метро на своей машине, и с перерывом в пару минут буду проводить проездным на разных станциях, то ничего с ним не случится.
Но это лимит в рамках одной станции, наверное?
Я знаю ребят которые разрабатывали харьковские карты и насколько я знаю они там появился раньше чем в Киеве + (тут на 100% не уверен) по моему они всё же сами всю систему писали…
Ага, так вот почему, когда у кого-то рядом турникет более высоким звуком пропищал — то у меня живо интересовались типом карточки, дотошно проверяя нет ли у меня другой кроме той, которую я им показал.
Мне кажется, что не хранятся, а если и хранятся, то никак не влияют на работу карт.

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

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

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

статью не читай @ сразу отвечай
>В таком случае нужно подойти с чеком об оплате к кассирше и она самостоятельно прошьет карту

Не знаю о каких терминалах говорите вы, но те терминалы, в которых я пополняю свою карту, чеков об оплате не печатают
Может и без чека. Но суть та же, мне кассир объясняла что в случае если терминал не сработал, она делает это вручную.
Помню в 2000-м году считывал данные с таксофонных карт (с чипами которые были, выглядят как сим карты). Там после программирования карты подавалось напряжение и перегорала дорожка, и обновить карту было нельзя в нее вписывались только нули по мере израсходования баланса карты, когда все превращалось в нуль карта становилась непригодной к дальнейшему использованию. На базе pic16f84 (исключительно в ознакомительных целях) был собирался эмулятор в который записывался дамп карты (например номиналом 50 единиц), при приближении к нулю автоматом сбрасывался в 50 единиц. Важно что если снять дамп израсходованной карты и записать на место единиц времени какое-либо значение то карта не работала (очевидно, что она отправляет запрос на блокировку только в момент полного обнуления)

1. Вот карта на 1000 единиц. Осталось 998. Номер 1000013039. Годна до 31.12.99
E9, 30, FF, 01, F7, 3F, 59, DC
00, 01, 7F, 0F, 3F, FF, 68, 6B
2. Потом по этой карте позвонили. Осталось 6 единиц.
E9, 30, FF, 01, F7, 3F, 59, DC
00, 00, 00, 00, 3F, FF, 68, 6B
3. Наконец, она закончилась.
E9, 30, FF, 01, F7, 3F, 59, DC
00, 00, 00, 00, 00, FF, 68, 6B
В 2000-м году, для того, чтобы позвонить на местном телеграфе по такому аппарату мы поступали просто.
Заходили за будку с аппаратом и перекидывали висящие от него сопли к соседней будке, где стоял обычный телефонный аппарат с дисковым набором.
Вся защита ломалась за 1 минуту :)
Случаем, нету информации о Московском метро?
Там используется MIFARE 1 S50. Честно говоря, не знаю разницы, но погуглив — информации по ним очень мало.
Есть некоторая информация по билетам, пишите, если интересно
Мы делали совй считыватель под разные RFID карты, MIFARE в частности.
На картах метро тренировались.
Читается без проблем. Подробнее что там и куда пишется не было повода разбираться.
Кстати, если кому-то интересно, на xda-developers есть тема по активации на Nexus S эмулятора подобных карт (NFC Card Emulation enabled).
Эх… Когда-то, когда учился ещё в школе читал таксофонные карточки ISO-7816-2.
Было интересно исследовать дампы и выяснять принципы кодирования серийных номеров карт, количество оставшихся кредитов. Заморочки с записью на них (ограничение на запись только меньшего значения, но вроде была лазейка записать единицу на пустой карте).
Как все скучно сейчас стало — ридер, библиотека для считывания… Никакого фана, все уже преподнесено на тарелочке с голубой каемочкой, азжевано и в рот положено…
Никто не мешает вам сесть и повторить все исследования защиты этих карт самому. Just for fun
Не, опять же нет того, особенного фана, когда знаешь, что никто тебе в этом не поможет. А тут — всегда есть «подушка безопасности». Если не получится, можно подсмотреть :)

В общем, «когда я был маленьким, ходил в школу 30 километров пешком в мороз» ©

:)
Может стоит с себя начать? Вы свои посты читали? Там есть, что-то кроме новостных копипаст?
Правильно. Если нет аргументов, надо попытаться обосрать оппонента.

В 2002-2003-м мы исследовали iButton при помощи ноутбука, двух проводов и паскалевсокй программы, слушающей LPT-порт. Безо всяких спецификаций и ридеров. В какой-то момент там даже плеер и soundforge участвовали.

А сейчас — ридеры, библиотеки… Скучно…

В 2002-2003-м мы исследовали...

Можно линк на пост?
Тогда Хабра не было :)

ЗЫ. Поражают люди, которые невинное замечание превращают в личную обиду и вендетту.
Тогда Хабра не было :)

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

ЗЫ. Поражают люди, которые невинное замечание превращают в личную обиду и вендетту.

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

Выше и ниже есть еще люди, которые говорят о том, как они тоже таким занимались безо всяких ссылок. И? Этим обычно занимаются студенты, у которых много времени и мало денег (ну или мало на все, кроме пива). На каждое такое «исследование» писать по статье?

> Нет. Я лишь вам указал на то, что если что-то не устраивает сделайте лучше. Обосрать каждый может.

«Обосрать» появилось только в вашем воспаленном мозгу. Или на забре каждое сообщение надо обязательно сопровождать тэгами «сарказм», «шутка» и т.п., чтобы всякая школота с атрофированным чувством юмора и завышенным ЧСВ могла понять, где можно смеяться, а где нельзя? *смайлик, недоуменно пожимающий плечами*
> при этом у вас ни одного поста схожего по сложности нет.

ага, ага.

1. критерии сложности приведете?
2. Решил все же зайти к вам в профиль. А ну да, критик. Сам ничего не сделал, но других критикует. На каком основании?
UFO just landed and posted this here
Тогда у нас не было интернета, чтобы их скачать :) В какой-то момент до спецификаций уже добрались, но тогда они нам понадобились только чтобы какие-то хитрые биты распознать. ПОтому что к тому моменту уже все знали :)

Эх, ту бы энергию, да в мирное русло…
а номер карты находится в перезаписываемой памяти?
В карте два номера: заводской и внутренний метрополитеновский (который напечатан на карте):
— внутренний метрополитеновский лежит в обычной перезаписываемой памяти [0x46:0x4E]
— заводской нельзя перезаписать, но в китайских клонах карты и этот блок перезаписываемый
Как бы клона сделать и в телефон затолкать, чтоб с карточкой не морочиться
А как вы потом ее пополнять будете? Ведь в терминале пополнения слот именно для карточки, телефон туда не запихнуть =)
деньги не на карте я так понимаю хранятся, а на серверах, поэтому пополнять можно оригинальную карту тогда…
Из топика следует, что деньги (а точнее, количество поездок) хранятся как раз на памяти карты в зашифрованном виде.
А как вы потом ее пополнять будете? Ведь в терминале пополнения слот именно для карточки, телефон туда не запихнуть =)

А пополнять будем, клонируя к себе на телефон карточки соседей по вагону. Такой себе проездной-вампир получится :)
Наклей наклейку mifare и пропиши всю необходимую инфу :)
UFO just landed and posted this here
UFO just landed and posted this here
Речь, я так понимаю, идёт о карточке «с количеством поездок». С ней, выходит, нет блокировки на 15 минут после использования на этой станции?
UFO just landed and posted this here
Это объясняется обыкновенной скупостью. Некоторые лучше будут постоянно стоять в очереди за жетонами, чем один раз заплатят 7 грн за бесконтактную карточку.
Если честно, я не покупаю карточку только потому, что редко езжу на метро. А так же — потому, что для оформления карты требуют очень много непонятной информации, идентифицирующей личность. К приватности я отношусь не параноидально, но представить, что где-то еще, помимо метро, могут считывать эту карту как раз могу — моя вторая работа связана с системами контроля доступа и видеонаблюдения. Дальнобойных считывателей, работающих с пассивными картами, в продаже хватает. А их радиус действия достигает метров.
В Киеве для оформления карты нужно только 7 грн и больше ничего. К тому же, если вам карта больше не нужна, вы можете ее вернуть и вам вернут 7 грн, если карточка в рабочем состоянии. То есть, вы ее фактически берете бесплатно под залог.
В Питере, если с тех пор ничего не поменялось, помимо залога за карту, просили еще и паспорт.
Недавно ввели ещё и трёхмесячный «срок годности» для карт, в течении которых её можно обменять…
Я вот на метро езжу только на учебу, которая у меня 3 раза в году (учусь заочно), бывает по делам иногда, но это буквально 1-2 поездки в месяц. Мне проще купить жетоны в автомате, на лесной и петровке очередей к 10грн автоматам я не видел, максимум это 1-2 человека утром, которые за 1-2 минуты покупают жетоны и уходят. Так что не понимаю при чем здесь скупость вообще? Я, например, потеряв жетон, нисколько не огорчусь, да и имея в кармане несколько жетонов всегда смогу доехать домой, а вот если потеряю карточку, или еще хуже, у меня украдут ее вместе с портмоне и деньгами, уже домой будет проблематично добраться, а жетон такая вещь, что на крайняк и в обычном транспорте проконает, ну или продать на станции метрополитена можно. А при потере карточки это дополнительный геморрой и неудобства.
UFO just landed and posted this here
UFO just landed and posted this here
В киевском метро есть 2 типа карточек — пополняемые на количество поездок и пополняемые проездные на месяц/пол месяца. Копирование вторых сулит бОльшие перспективы.
UFO just landed and posted this here
У СБ, «метелящей в подсобке» таки да — будут проблемы с законом.
UFO just landed and posted this here
Такой формат даты используется в ДОС (или, скорее в FAT) для даты/времени создания/модификация файла.
Очередной замечательный пример того, что Security through obscurity — зло. То Филипс/NXP изобретают «страшно стойкий», и от того страшно секретный алгоритм CRYPTO1 для своих Mifare, то Visa и MC для своих EMV-карт вместо нормальной асимметричной криптографии придумывают какое-то «чОрное колдунство» с симметричными шифрами.

Наступит ли день, когда все «спецы» поймут, что единственным секретом в криптосистеме должны быть только КЛЮЧИ?! А алгоритм и реализация должны быть открыты! Пускай даже защищены патентами/лицензиями, но ОТ-КРЫ-ТЫ!

Возвращаясь к теме Киевского Метро: если у вас есть другие (не киевские) карточки MifareClassic — можете проверить, используют ли по-прежнему в Киеве дешёвые (и еще более дырявые) китайские клоны Mifare, как обнаружил в своем исследовании карт Mifare Николя Куртуа еще в 2009-м

We have found that for certain MiFareClassic 1K cards, for example those used in the mass transit system in Kiev, Ukraine the card replays NACK with probability 1 instead of about 1/256.


It appears, that, following (Roel, 2009), these weaker cards are unlicensed clones of MiFare Classic. For example we have ordered some Fudan Microelectronics FM11RF08 cards from China and verified that these cards also reply with probability 1.


Бесконтактные карты в киевском метро начали вводить в 2007 году

Надеюсь не забыли купить лицензию у Гаева?
Sign up to leave a comment.

Articles

Change theme settings