Вот для такого замечательного случая, когда возникает необходимость клонировать карту Mifare, предназначена программа c2rw — Copy to RW-card. Вообще-то клонирование направо и налево делается с помощью libnfc; c2rw не использует libnfc, но тоже позволяет создать клоны карт (включая UID) Mifare Ultralight, Mifare Classic и Mifare Plus 🙂 Для полного клонирования, включая UID, следует использовать специальные карты, так называемые карты Mifare Zero (RW-карты), по названию перезаписываемого сектора 0. В секторе 0 хранится UID карты, а также ATQA и SAK, которые отвечают за опознавание типа карты. Исходники софта открыты, скачать его можно здесь (для Windows).
Архив рубрики: Бесконтактные карты
‘Космическая’ дверь на ридере бесконтактных карт RD-03AB и Arduino
Практически во всех фильмах про наше недалёкое будущее есть двери, которые открываются с помощью всяких там карт, и при этом на дисплее-терминале этой двери крутится какая-то неведомая ерунда, которая при контакте с неверным пропуском выводит кроваво-красную угрожающую надпись ‘Access denied’, а если хакеры были успешными — что-нибудь вида ‘Access granted’.
А не сделать ли подобие такого ‘космического’ терминала на Arduino? А почему бы и нет 🙂 Для создания этого девайса был использован ридер бесконтактных карт RD-03AB, китайская плата Arduino Uno и плата расширения TFT + SD-Card от mcufriend.com, купленные за $12 на алиэкспрессе. В принципе, для демонстрации работы ридера достаточно только самой платы Arduino Uno, но с индикатором красивее 🙂 Пропуск-непропуск карты было решено сделать простейшим образом: на SD-карте хранятся bmp-изображения лиц людей, которым принадлежат пропуска, а имя bmp-файла соответствует UID карты владельца. Если файл с соответствующим UID-ом есть на карте — дверь открываем, нет — не открываем. Всё просто 🙂
Читать далее ‘Космическая’ дверь на ридере бесконтактных карт RD-03AB и Arduino
Ридер бесконтактных карт RD-03AB и libusb-1.0
Опыт использования ридеров RD-03AB в embedded системах (например, OpenWrt) показал, что погоня создателей системы за обновлениями ядра до добра не доводит: видимо, при каждом новом обновлении ядра приходится клепать такое адское количество патчей, чтобы система показывала признаки жизни, что руки до драйверов у людей просто не доходят. Именно по этой причине драйвер hidraw в последних OpenWrt работает через пень-колоду, если вообще соизволит запуститься, хотя с работой ридеров под linux на PC никаких проблем нет 🙂
В связи с этим положением дел, для ридеров RD-03AB появилась новая ветка API V1.5, работающая с USB через функции библиотеки libusb-1.0. Теперь для работы с ридером доступны 3 версии API: для Windows через функции HID-устройств, для linux через системный драйвер hidraw и новая ветка для linux через функции библиотеки libusb-1.0. Функции libusb устойчиво работают на embedded системах даже тогда, когда hidraw полностью неработоспособен.
Ридер бесконтактных карт RD-03AB и Linux
Ридер RD-03AB под Linux работает ещё лучше, чем под Windows 🙂 Разумеется, речь идёт про скорость обмена через USB HID интерфейс: в лине нет ограничения трафика USB HID устройств, по крайней мере такого ограничения нет в Ubuntu-клонах и OpenWrt. При работе через tty-устройства, ридер под Linux и Windows ведёт себя одинаково.
Linux создал устройство hidraw4 для ридера RD-03AB
Скачать исходники софта можно здесь. Ридер не требует дополнительной установки каких-либо драйверов: система подхватывает его как hidraw-устройство. Однако, если ридер инсталлирован в многопользовательскую систему, система даст доступ к нему только root-у. Если нет желания запускать весь софт ридера через sudo, то следует добавить правило создания драйвера, в котором указывается разрешение использовать устройство всем пользователям: для этого следует скопировать из каталога INSTALL файл 90-ccr_rd0xab.rules в каталог /etc/udev/rules.d , перезапустить udev с помощью /etc/init.d/udev restart и переподключить ридер (если он уже был подключен).
В системе OpenWrt перед сборкой проекта следует проверить установки buildroot (команда make menuconfig, далее Kernel modules > USB Support > kmod-usb-hid).
Необычный анализ карт Mifare
Известно, что карты Mifare выпускают различные производители. И, вроде бы, эти карты работают одинаково, несмотря на то, что различные производители по-разному шли к своей цели. Неужели у карт нет никаких различий?
Для сравнения было взято 12 разных типов карт (на самом деле больше, но не суть). Среди этих карт были не только специально купленные карты, но и старые и новые билеты метро, социальная карта, карты «Тройка», карта «Стрелка», билеты Ultralight — вобщем всё, что под руку попало 🙂 И анализ дал очень интересные результаты.
SCC: запись, чтение и замена UID в картах Mifare — это просто!
Удобных утилит для работы с бесконтактными картами Mifare под Windows — раз-два и обчёлся. SCC (Simple Card Console) — одна из удобных утилит для работы с бесконтактными картами Mifare. SCC была переписана для ридеров RD-03AB V2.0. Помимо чтения и записи обычных карт Mifare, SCC поддерживает карты семейства Mifare Plus и Mifare Zero, а также позволяет запросто изменить UID на этих картах. Полезные фичи — чтение ATS и определение типа карты (в том числе и RW-свойств). Исходники софта открыты.
Читать далее SCC: запись, чтение и замена UID в картах Mifare — это просто!
mfoc для ридера RD-03AB
В связи с полной сменой API на V2.0 для ридеров RD-03AB, часто задают вопросы, типа, как переделать mfoc и т.п., что мол горе-горькое в том, что ридер не поддерживается официально libnfc, и т.д. и т.п.. Не переживайте: libnfc — это «тупиковая ветвь эволюции», которую губит попытка объять необъятное. libnfc сложен в понимании даже на уровне примеров, и что-то делать на нём не так просто, даже когда находишься в теме, ИМХО. Поэтому, отсутствие официальной поддержки libnfc для RD-03AB скорее фича, чем трабл, тем более, что ридер работает как под Windows, так и под Linux без драйверов.
На самом деле, никакой проблемы при переносе кода mfoc — нет, ниже приводится пример для Windows. Все исходники традиционно открыты 🙂
Читать далее mfoc для ридера RD-03AB