Транспортная карта «Тройка» появилась около десяти лет назад, и с тех пор её выпустили более чем в 50 миллионах экземпляров. Мы заглянем внутрь карты и посмотрим, что там, как это работает и как ещё можно использовать «Тройку», кроме как для общественного транспорта.
Что такое карта «Тройка» и что она делает
«Тройка» — карта, с помощью которой можно оплатить проезд в общественном транспорте Москвы и в некоторых других городах. Для этого нужно поднести её к терминалу бесконтактной оплаты, а затем за пару секунд происходит такое:
- Внутри карты — антенна, как в банковской карте для бесконтактной оплаты.
- Когда антенна попадает в поле действия терминала, начинается обмен данными между картой и терминалом.
- Карта передаёт терминалу информацию о балансе или подключённом абонементе.
- Терминал аутентифицирует карту: проверяет её подлинность и что денег на балансе достаточно, чтобы оплатить проезд.
- После успешной аутентификации карты терминал генерирует код авторизации.
- Код авторизации записывается на карту, потом с баланса карты списываются деньги (или не списываются, если это абонемент, например на месяц).
- Терминал сообщает, что оплата проезда прошла успешно, дверь терминала открывается.
Всё это возможно благодаря тому, что внутри «Тройки» находится миниатюрный компьютер, который хранит данные, может передавать их и получать новые со скоростью до 106 Кбит/сек.
Что внутри карты
Снаружи «Тройка» выглядит как обычная пластиковая карточка, но внутри неё содержится много технических компонентов:
- микрочип, или микросхема;
- RFID-метка (Radio Frequency IDentification) — устройство для автоматического распознавания объектов с помощью радиочастот;
- батарея, которая питает компоненты карты, чтобы она могла хранить данные;
- антенна для приёма и передачи сигналов от считывающих устройств и терминалов оплаты.
Кто-то в интернете провёл такой опыт: растворил пластик «Тройки» чтобы посмотреть, как выглядит антенна и где находятся микросхемы. Миниатюрный элемент внутри антенны — это и есть тот самый компьютер, который хранит и обрабатывает все данные на карте:
В первые годы выпуска «Тройки» содержали микрочипы семейства MIFARE Plus производства компании NXP Semiconductors (Нидерланды). У этих микрочипов объём памяти 2 или 4 килобайта, этого хватает для того, чтобы у карты было до 100 тысяч циклов чтения записей, а данные хранились до пяти лет.
Сейчас внутри «Троек» микросхемы MIK1KMCM производства российской компании «Микрон». Характеристики этих чипов аналогичны MIFARE Plus.
С этого года в «Тройках» будут работать новые чипы российского производства, NE501CD. У них 8-битная архитектура, 5 килобайт памяти, они поддерживают до 500 тысяч циклов чтения записей и могут хранить информацию до 10 лет. Помимо этого, такие микрочипы поддерживают шифрование данных. Это сделает «Тройку» безопаснее: нельзя будет подделать её и восстановить историю использования.
Все эти чипы работают с частотой 13,56 МГц, дальность считывания — до 10 см.
На карте «Тройка» хранятся такие данные:
- номер;
- срок действия;
- баланс средств;
- информация об уже совершённых транзакциях (время, стоимость и тип билета);
- данные о пользователе, если он предоставил эту информацию (Ф. И. О., номер телефона и адрес электронной почты).
Как «Тройка» отличает абонемент на месяц от разовой поездки
Софт в «Тройке» позволяет хранить много дополнительных данных, в том числе информацию о том, подключён ли на ней абонемент и до какого числа он действует.
Если мы просто пополним баланс «Тройки», то он запишется в переменную баланса — и деньги будут списываться каждый раз при проходе через турникет. А если мы подключим абонемент, то данные о нём запишутся в другую переменную — терминал увидит, что действует абонемент, и не будет списывать лишнюю сумму.
Самое интересное, что эти две переменные действуют независимо друг от друга: можно закинуть на баланс какую-то сумму, а потом подключить ещё и абонемент. В этом случае система отдаёт приоритет переменной с данными об абонементе — и отправляет именно её. А когда срок действия абонемента закончится, «Тройка» очистит эту переменную и будет отправлять на терминал информацию из переменной с балансом.
Что ещё могут такие карты
Поскольку внутри «Тройки» есть RFID-метка, карта может хранить данные не только для оплаты проезда, но и другие билеты, проход по которым работает по тому же принципу. Это могут быть билеты в парки, музеи, театры и так далее. Посещение по «Тройке» уже поддерживают многие организации, например Московский зоопарк, так что билет не нужно записывать на карту самостоятельно.
Но записать на карту данные для прохода можно и вручную. Если система управления доступом работает с помощью радиочастотной идентификации, то на «Тройку» можно записать, например, офисный пропуск, абонемент в спортзал или бассейн и так далее.
А как ещё можно запрограммировать «Тройку»
Теоретически, так как это просто чип с антенной, его можно запрограммировать как угодно:
- сделать из «Тройки» пропуск в офис;
- использовать её как автосигнализацию, прикладывая карту к идентификатору в машине;
- написать скрипт, который будет что-то рассчитывать всё время, пока карта находится в зоне действия поля;
- использовать её как флешку для бэкапов контактов (или чего-то другого, что занимает мало памяти);
- записать туда данные своего криптокошелька и делиться ими, поднося карту к телефону.
Но если у вас действительно есть такие задачи, лучше купить пустую NFC или RFID-карту с более мощным процессором и расширенной памятью.