ст. Кормышев Р.У.
Харьковский
национальный университет радиоэлектроники
ПРИНЦИП РАБОТЫ БЕСКОНТАКТНЫХ КАРТ МЕТРОПОЛИТЕНА
Рассматриваются карточки, применяеме в метро, а точнее - их
интегральные схемы "MIFARE 1 S50". Сами схемы связаны не только с метро и могут
применяться для решения любых задач с бесконтактными ключевыми картами. Тем не
менее, для простоты и ввиду причин совершенно очевидных я буду ссылаться на
них, как на бесконтактные карты метро.
Сама карта
содержит всего два элемента: микросхему и плоскую обмотку-антенну, используемую
как для электропитания карты, так и для связи с хост-системой (турникетом).
Наведенное турникетом в антенне напряжение достаточно велико для того, чтобы
после выпрямления и стабилизации снабдить карту энергией, необходимой для
обработки информации и посылки обратного сигнала. Работает радиосвязь на
частоте 13.56 МГц и скорость связи достигает 106 КБод. При этом карта должна
находиться на расстоянии никак не более 10 см от турникета. Как правило, для
проведения классических операций с картой достаточно 0.1 секунды - за это время
можно провести один-два десятка элементарных обменов информацией, таких как
считывание, запись и инкремент блока.
Что представляет
собой карта с точки зрения программиста? Фактически, это просто один килобайт
энергонезависимой памяти. Он делится на 16 секторов по 4 16-байтных блока в
каждом. Блок - наименьшая адресуемая единица при работе с картой. Сектор -
единица, с которой сопоставляются отдельные права доступа и ключи для
проведения операций. Каждый сектор хранит собственную пару ключей, а права
доступа указывают, какой доступ при указании какого ключа возможен.
Карта сама по
себе многофункциональна и может поддерживать до 15 функций. Например, быть
электронным кошельком, "билетом" в метро, пропуском в клуб, ключом
для домофона и хранителем "пароля" от компьютера. Каждой функции
выделяется сектор, в котором хранятся необходимые для нее данные, два
персональных ключа и карта прав доступа. Карта определяет, что хост-система
может делать с тем или иным блоком, и какой ключ для этого необходим. Например,
при использовании карты в качестве электронного кошелька можно позволить
снимать деньги с карты с помощью одного ключа, а класть с помощью другого,
известного лишь банку.
Метро использует
только секторы 0 и 15 карты. Нулевой сектор - специальный и в его нулевом блоке
хранится уникальный идентификатор карты, который используется для того, чтобы
отличать ее от других. В 15 пишется специфическая для системы метро информация - к примеру, номер месяца для месячного
проездного, число поездок для "счетного" проездного и т.п.
Итак, как же все
это работает. Вы подходите к турникету и подносите карту к датчику. Передающая
система датчика наводит в антенне карты электрический ток, который поступает в
карту и снабжает ее энергией. Этот же ток несет в себе кодированную информацию
запроса турникета к карте. Карта отвечает на него (через ту же антенну,
используя накопленную энергию) идентификатором, который определяет протокол
дальнейшего общения. По идентификатору турникет узнает тип карты.
Далее идет
считывание серийного номера карты. Если в этот момент в поле радиосистемы
турникета оказалось более одной карты, происходит коллизия и считывание повторяется
до тех пор, пока не будут чисто и без всяких коллизий считаны номера всех
находящихся в пределах доступности карт. В частности, если в вашем кошельке две
карты и лишь одна из них - метро, турникет сможет включить лишь ее, игнорируя
другие карты. Обмен информацией будет происходить конкретно с этой картой.
Затем происходит
выбор сектора карты, с которым турникет (или иное устройство для работы с
бесконтактными картами) хочет обменяться информацией. Для данного сектора
производится обмен шифровками, призванный убедить турникет и карту в том, что
они - действительно те, за кого себя выдают. При этом используется способ
"я тут дам тебе число, а ты его зашифруй, и ответ пришли мне. А я погляжу,
так ли ты зашифровал, как положено". Эта проверка выполняется с обеих
сторон, после чего все уже уверены в том, что они - это они. Включается
шифрование канала и турникет может, в соответствии с разрешенным ему его ключом
доступом читать и модифицировать данные в карте.
Следует отметить,
что карта, обладая уникальным серийным
номером, уже на этом уровне является многофункциональным ключом. Ведь для того,
чтобы считать серийный номер карты не нужно знать никаких паролей! А значит,
прописав номера "разрешенных" карт в замок можно сделать систему
доступа на базе этих карт, попросту присоседившись к метро.
Для управления картой метрополитена в “домашних условиях” необходимо
использовать специальный Cardreader на базе чипа MIFARE 1 S50. Настольное устройство
чтения/записи бесконтактных карт и меток стандартов MIFARE®, FeliCa,
NFC - ACR122 представляет собой многофункциональный считыватель
бесконтактных карт, поддерживающий бесконтактные микропроцессорные карты, отвечающие
стандарту ISO14443 A/B (MIFARE®, MIFARE® Ultralight C, JCOP30 и др.),.ISO/IEC18092..(NFC), FeliCa.
Устройство может быть интегрировано в создаваемые или уже существующие системы,
использующие бесконтактные карты и метки MIFARE®, FeliCa, NFC, такие
как: системы контроля доступа, платежные терминалы, пункты продажи и проката.
При пополнении счета
на бесконтактной карте очищается определенный блок памяти в секторе карты,
который был заполнен в процессе прохода через турникет. Размер очищенной памяти зависит от
пополняемой суммы.
С помощью Cardreader есть возможность самостоятельно очистить память на карте.