От Иван
К Александр Н.  
Дата 04.01.2001 00:48:37
Рубрики Прочее;

Re (7): Спасибо Л.Тихонову за ссылку и я об этой карте говорил.  Читайте...

Моменты, на которые хотелось бы обратить внимание, выделены жирным
 
 
Описание транспортной карты
 
http://www.metro.ru/fare/newcard2-1.html
 
 
Благодаря Артемию Лебедеву и Алексу Пастору в нашем распоряжении появилось описание микросхем, применяемых в Московских метрошных бесконтактных карточках. Я взялся изложить его по-русски, чем и занимаюсь.
 
 
Итак, речь пойдет о карточках, применяемых в метро, а точнее — об интегральных схемах «MIFARE 1 S50». Сами микросхемы никак с метро не связаны и могут применяться для решения любых задач с бесконтактными ключевыми картами. Тем не менее, для простоты и ввиду причин совершенно очевидных я буду ссылаться на них, как на бесконтактные карты метро.
 
 
Сама карта содержит всего два элемента — собственно, микросхему и плоскую обмотку-антенну, используемую как для электропитания карты, так и для связи с хост-системой (турникетом). Наведенное турникетом в антенне напряжение достаточно велико для того, чтобы после выпрямления и стабилизации снабдить карту энергией, необходимой для обработки информации и посылки обратного сигнала. Работает радиосвязь на частоте 13.56 МГц и скорость связи достигает 106 КБод. При этом карта должна находиться на расстоянии никак не более 10 см от турникета. Как правило, для проведения классических операций с картой достаточно 0.1 секунды — за это время можно провести один-два десятка элементарных обменов информацией, таких, как считывание, запись и инкремент блока.
 
 
Что представляет собой карта с точки зрения программиста? Фактически, это просто один килобайт энергонезависимой памяти. Он делится на 16 секторов по 4 16-байтных блока в каждом. Блок — наименьшая адресуемая единица при работе с картой. Сектор — единица, с которой сопоставляются отдельные права доступа и ключи для проведения операций. Каждый сектор хранит собственную пару ключей, а права доступа указывают, какой доступ при указании какого ключа возможен.
 
 
Тонкость в том, что карта сама по себе многофункциональна и может поддерживать до 15 функций. Например, быть электронным кошельком, «билетом» в метро, пропуском в клуб, ключом для домофона и хранителем «пароля» от компьютера. Каждой функции выделяется сектор, в котором хранятся необходимые для нее данные, два персональных ключа и карта прав доступа. Карта определяет, что хост-система может делать с тем или иным блоком, и какой ключ для этого необходим. Например, при использовании карты в качестве электронного кошелька можно позволить снимать деньги с карты с помощью одного ключа, а класть с помощью другого, известного лишь банку.
 
 
Метро использует только секторы 0 и 15 карты. Нулевой сектор — специальный и в его нулевом блоке хранится уникальный идентификатор карты, который используется для того, чтобы отличать ее от других. В 15, по всей видимости, пишется специфическая для метрошной системы информация — к примеру, номер месяца для месячного проездного, число поездок для «счетного» проездного и т.п.
 
 
Итак, как же все это работает. Вы подходите к турникету и подносите карту к датчику. Передающая система датчика наводит в антенне карты электрический ток, который поступает в карту и снабжает ее энергией. Этот же ток несет в себе кодированную информацию запроса турникета к карте. Карта отвечает на него (через ту же антенну, используя накопленную энергию) идентификатором, который определяет протокол дальнейшего общения. По идентификатору турникет узнает тип карты и «разговаривает» с ней соответственно типу.
 
 
Далее идет считывание серийного номера карты. Если в этот момент в поле радиосистемы турникета оказалось более одной карты, происходит коллизия и считывание повторяется до тех пор, пока не будут чисто и без всяких коллизий считаны номера всех находящихся в пределах доступности карт. В частности, если в вашем кошельке две карты и лишь одна из них — метрошная, турникет сможет включить лишь ее и попросить остальные карты пока «помолчать». Общение будет происходить с конкретно этой картой.
 
 
Затем происходит выбор сектора карты, с которым турникет (или иное устройство для работы с бесконтактными картами) хочет обменяться информацией. Для данного сектора производится обмен шифровками, призванный убедить турникет и карту в том, что они — действительно те, за кого себя выдают. При этом используется способ «я тут дам тебе числецо, а ты его зашифруй, и ответ пришли мне. А я погляжу, так ли ты зашифровал, как положено». Эта проверка выполняется с обеих сторон, после чего все уже уверены в том, что они — это они. Включается шифорвание канала и турникет может, в соответствии с разрешенным ему его ключом доступом читать и модифицировать данные в карте.
 
 
Следует отметить, что карта, обладая уникальным неподделывабельным серийным номером уже на этом уровне является многофункциаональным ключом. Ведь для того, чтобы считать серийный номер карты не нужно знать никаких паролей! А значит, прописав номера «разрешенных» карт в замок можно сделать систему доступа на базе этих карт, попросту присоседившись к метро.
 
 
Пастор сообщил нам, присылая документы, что по его информации на базе этих карт уже разработан замок для домофона и система доступа к компьютеру. Так что на продвинутости московского метро уже можно делать деньги косвенным путем. :-)
 
 
Ссылка: http://www.metro.ru/fare/newcard2-1.html