Как скопировать rfid метку
Перейти к содержимому

Как скопировать rfid метку

  • автор:

RFID запись.

Третий урок из цикла «Всё про RFID».
Сегодня мы продолжим изучать RFID считыватель на базе микросхемы RC522.
В первой части была теория, во второй мы сделали электронный rfid замок с доступом по карте или брелоку. Теперь настала очередь рассмотреть запись на карту.

Давайте представим, что мы некое предприятие и у нас есть группа сотрудников и нам надо выпустить именные карты для допуска этих сотрудников в офис.
В этом уроке мы научимся писать на карту свою фамилию и имя, номер офиса, а в следующем уроке добавим время прихода и ухода.

Более подробно про Запись на карты и возможности их применения можно прочитать здесь Запись на RFID-Карту и Брелок: Персонализация и Практическое Применение

Чтение и запись rfid меток не сложный процесс. Надо просто понять принцип и знать структуру rfid карты, а с модулем RFID RC522 и Ардуино – это вообще просто, так как большинство функций прописано в библиотеке MFRC522.h.
Rfid карта состоит из секторов и блоков, подробнее смотрите урок 1.

сектора и блоки

Сначала посмотрим, как подключить модуль считывания RC522 к Ардуино. Для тех, кто смотрел предыдущий урок и не поленился собрать свой замок мои поздравления. Напишите кто собрал замок.
Объяснять схему не буду, и так всё понятно. Если что не понятно пишите в комментариях.

подключение

Сначала посмотрим, что получилось, а потом рассмотрим скетч.

Сначала давайте посмотрим дамп карты. Для этого загружаем из скетч dumpinfo.

Прикладываем карту к считывателю и ждём пока не считаются все данные.
Нас интересуют сектора 1 и 2.

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

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

дамп-карты
Сначала запускаем Пример 1.
пример-1
Нас просят поднести карту для считывания.
Что же, давайте так и сделаем.
Дождёмся окончания.
Что мы здесь видим, точнее, увижу только я, так как у вас пока чистая карта и вы ничего не увидите, ну кроме НОМЕРА КАРТЫ.

  • В сектор 1 у меня записана ФАМИЛИЯ.
  • В секторе 2 ИМЯ
  • Третий сектор использовать нельзя, так как это трейлер.
  • А в четвёртом секторе НОМЕР КАБИНЕТА.

скетч

Давайте рассмотрим скетч.

Как подключен модуль rc522 я рассказывать не буду. Давайте сразу перейдём к считыванию секторов.
В самом начале мы должны проверить ключ карты и если он совпадает, то продолжаем работу.
По умолчанию для новой карты ключ равен FFFFFF.
Потом ждём пока не появится новая карта.
Выводим номер КАРТЫ в шестнадцатеричной системе. С этим всё понятно из предыдущего урока.
Код для вывода фамилии, имени и кабинета одинаков.
Меняется только номер блока. Поэтому я расскажу только про фамилию.

  • Создаём массив – буфер — для хранения значений.
  • Указываем номер блока.
  • Затем в статус загружаем разные значения.

Такие как — Ключ карты, номер блока, UID карты.
Если всё правильно то можно работать дальше, а если нет, то выскочит ошибка и скетч прекратит работу.
Дальше мы в цикле выводим все 16 байт из блока.

И так со всеми блоками, то есть с блоками 1, 2 и 4.
Со считыванием разобрались, теперь давайте разбираться с записью.

запись на карту

Загружаем скетч Пример 2.

Поднести карту.

ограничение

Кстати там есть ограничение на время ожидания ввода текста. Я установил 60 секунд.

Сначала вводим ФАМИЛИЮ и символ «решётка». Этот символ даёт знать, что ввод окончен и надо обработать текст. Нажимаем ENTER.
Затем вводим ИМЯ и снова вводим решётку и нажимаем ENTER.
Теперь вводим номер кабинета, решётку и ENTER.
И если после каждого ввода у вас не было ошибок и вы видите надпись УБЕРИТЕ КАРТУ, то значит всё прошло хорошо, и теперь можно перейти к ПРИМЕРУ 1 и считать ваши записи с карты.
Записывать на карту можно до 200 тыс. раз, так что можете тренироваться и не ограничивать себя.

Ну вот и всё. Всё работает. И как всегда в конце урока я прошу вас поставить лайк этому видео если оно вам понравилось. И жду ваших комментариев.
Следующее видео будет про копирование и клонирование карт.
И чем больше ваших положительных отзывов, тем быстрее оно выйдет.
До встречи в следующих уроках.
Как и обещал, хочу рассказать про русский шрифт. Если вы будете делать записи на латинице, то в каждом блоке вы можете сохранить до 16 символов. А вот если вы будете писать на кириллице, то всего лишь 8 букв.
Это потому, что для хранения будут использован формат Unicode , а он требует для хранения 2 байта.
Постскриптум.
Я ещё написал код для очистки блоков карт. Правда, это только набросок, но он вполне рабочий.

Копирование и клонирование RFID карт. Создание дубликатов.

Модуль RFID RC522 предоставляет возможность копирования и клонирования RFID-карточек и брелоков, а также создание дубликатов, открывая перед вами множество интересных применений.
В этой статье мы кратко рассмотрим, как подключить модуль RFID RC522 к платформе Arduino и подробно расскажем о преимуществах копирования RFID-карточек, а также о том, где и как это можно применить.

Подключение Модуля RFID RC522 к Arduino

Прежде чем приступить к копированию RFID-карточек, давайте рассмотрим, как подключить модуль RFID RC522 к платформе Arduino.
Этот модуль оснащен интерфейсом SPI (Serial Peripheral Interface), что делает его идеальным для взаимодействия с Arduino.

Вот как вы можете подключить модуль:

Питание:
Подключите контакты VCC и GND модуля к соответствующим пинам Arduino, чтобы обеспечить питание. Обычно используется напряжение 3,3 В.

SPI:
Подключите контакты SDA (Data), SCK (Clock), MOSI (Master Out Slave In) и MISO (Master In Slave Out) модуля к соответствующим пинам на Arduino. В случае Arduino Uno, это пины 10, 13, 11 и 12 соответственно.

RST:
Подключите контакты RST (сброс) к пину на Arduino. Например, вы можете подключить RST к пину 9.

Более подробно про подключение смотрите в специальной статье. подключение RFID RC522 к Arduino

подключение

После успешного подключения модуля RC522 к Arduino, вы будете готовы к копированию и клонированию RFID-карточек.

Преимущества Копирования RFID-Карточек

Теперь, когда модуль RC522 подключен, давайте разберемся, в чем заключаются преимущества копирования RFID-карточек:

Резервные Копии:
Один из наиболее очевидных примеров — создание резервных копий доступа. Если у вас есть RFID-карта, открывающая дверь в ваш офис, вы можете создать резервную копию, чтобы не остаться на работе, если потеряете оригинал.

Расширение Доступа:
Копирование RFID-карточек позволяет вам расширить доступ к определенным местам. Например, если у вас есть домашний брелок для системы безопасности, вы можете создать несколько копий для доверенных членов семьи. Таким образом, каждый член семьи сможет легко получить доступ к дому.

Удобство:
Копирование RFID-карточек гораздо удобнее, чем покупка дополнительных оригинальных карт. Это экономит ваше время и деньги. Вам не нужно заказывать новые карточки или брелоки у производителя, и вы можете сделать копии сами.

Совместимость:
Клонированные карточки обычно полностью совместимы с оригиналами и не вызывают проблем в системе доступа. Это означает, что скопированные карточки работают точно так же, как и оригиналы, и не вызывают подозрений.

Системы Безопасности:
В некоторых случаях, копирование RFID-карточек может быть полезным для тестирования собственных систем безопасности. Вы можете использовать копии для проверки, насколько надежно работает ваша система безопасности и насколько сложно взломать ее.

Создание Дубликатов RFID-Карточек

Чтобы создать дубликат RFID-карточки или брелока, вам понадобится модуль RFID RC522, подключенный к платформе Arduino который позволяет считывать и записывать данные с карточек.

Считывание Оригинала: Первым шагом является считывание данных с оригинальной RFID-карточки или брелока. Для этого необходимо поднести оригинал к модулю RFID RC522, чтобы считать уникальный идентификатор.

Запись на Копию: После того как данные считаны с оригинала, они могут быть записаны на пустую RFID-карточку. Процесс записи данных на копию довольно прост и требует всего нескольких команд. Все примеры абсолютно просты и их можно скачать по ссылкам внизу страницы.

Тестирование Копии: После создания копии вы можете протестировать ее, прикладывая ее к системе доступа и проверяя, работает ли она так же, как и оригинал.

Использование Копии: После успешного создания копии, вы можете использовать ее для доступа к системам безопасности, дверям, умным замкам и другим устройствам, для которых она предназначена.

Примеры Применения Копирования RFID-Карточек и Брелоков:

Умный Дом:
В системах умного дома RFID-карточки или брелоки могут использоваться для открытия дверей, управления системой безопасности, освещением, климатом и другими функциями. Создание дополнительных копий позволяет всем членам семьи иметь доступ к умному дому.

Офисы и Бизнес:
В офисах RFID-карточки используются для доступа к зданию, офисным помещениям и системам безопасности. Копирование карточек полезно для сотрудников, которые забыли или потеряли свои карточки.

Системы Безопасности:
Внутренние и внешние системы безопасности, такие как умные замки и видеонаблюдение, могут использовать RFID-карточки для авторизации доступа. Копии карточек могут быть использованы для дополнительных участников системы безопасности.

Гостиницы и Гостевые Дома:
В гостиницах и гостевых домах RFID-карточки используются для открытия номеров. Создание копий карточек позволяет гостям иметь доступ к разным номерах.

Парковочные системы:
RFID-карточки используются в системах автоматической оплаты парковки. Создание копий может быть удобно для разных водителей в семье.

Личное Использование:
Вы можете использовать копии RFID-карточек для доступа к вашей собственности, такой как гараж или хранилище. Это удобно и безопасно.

Гостевые Посетители:
Копии RFID-карточек могут быть предоставлены гостям, чтобы они имели доступ к вашему дому или офису на время их пребывания.

Заключение

Копирование RFID-карточек и брелоков с использованием модуля RFID RC522 дает вам больше гибкости и удобства в управлении вашими системами безопасности и доступа.
Если вы заинтересованы в применении этой технологии, обязательно ознакомьтесь с нашим примером и видео по ссылке Копирование КАРТ и создание дубликатов.
Начните сегодня и оцените все преимущества, которые копирование RFID-карточек может предоставить вам и вашей организации.

Как я RFID клонер делал

Здравствуйте, уважаемые хабро-жители. Я решил написать небольшую статью о том, как я RFID воевал. История в том, что я хотел написать себе небольшой клонер для RFID ключей и карт. Так же я думал сделать себе простой универсальный ключ для домофона/работы.

Кого заинтересовала данная тема – добро пожаловать под кат.

RFID – Radio Frequency IDentification, способ автоматической идентификации объектов, в котором посредством радиосигналов считываются или записываются данные, хранящиеся в так называемых транспондерах, или RFID-метках.

Сначала я решил собрать простенький концепт, а потом заказывать железочки для уменьшения схемы. Мой сетап был таковым:

  1. Arduino Mega в оформлении Keystudio
  2. RFID-RC522 в оформлении Keystudio

Для начала я решил всё собрать и посмотреть пример проекта, который работает с этим RFID модулем. Я выбрал дампер и решил посмотреть, что же лежит в ключе. Всё было собрано, подключено и я залил скетч в Arduino.

В помощь, тому кто хочет повторить по ссылке далее можете увидеть, как подключить к разным моделям Arduino.

Так выглядит всё в собранном виде.

image

Всё подключено, скетч залит, монитор COM порта открыт, и я решил поднести ключ. Что я вижу? А я вижу прекрасную белую пустоту. Окей, может быть что-то с ключом случилось. Подношу карту от работы – ничего. До меня доходит прекрасная мысль. Открываю на телефоне Apple Pay и подношу к ридеру и происходит чудо! Таким образом я понял, что дело не в том, что я подносил до этого. Я решил проверять и дальше. Когда я подносил банковские карты ридер тоже их считывал. Так же в комплекте с Arduino у меня лежал RFID-брелок и RFID-карта. И я подумал, что стоит приложить их тоже и посмотреть. Вот так они выглядят.

image

После того как я поднёс карту к ридеру – монитор COM-порта выдал мне следующие.

image

Пойдём дальше. Почему не читается мой ключи? И я ушёл в гуглинг. Гуглил-гуглил и нагуглил. К огромному сожалению информации было мало. Действительно мало. Но итог был такой. У нас применяется немного другой формат RFID-меток. Он называется EM-Marine. И для этого формата надо применять другой ридер – RDM6300.

Целью этой статейки является небольшая помощь тому, кто захочет пойти данной тропинкой.

Будет и продолжение. Как только ко мне приедет этот модуль я напишу продолжение и приложу код для копировальщика и универсального ключа.

Есть и другой вариант как это сделать без модуля. Был на Хабре пост о том, как это сделать с помощью только одного RFID-брелка.

Эта тема является очень интересной, но моей целью было сделать всё более красиво в плане внешнего вида. Так же будет ещё один пост описывающий стандарт EM-Marine.

Всем большое спасибо за прочтение. Хотелось бы провести небольшой дискурс в коментах.

Копировщик RFID-меток стандарта EM-Marin

Как известно, во многих системах доступа используются карты RFID стандарта EM-Marin с частотой 125 КГц. Не исключением стал и домофон моего дома. Одна проблема – неплохо бы научиться копировать такие карты, ибо ценники на их копирование не радуют. В сети, конечно, существует довольно много схем копировщиков (да и китайцы продают свои копировщики за копейки — правда, они часто при копировании ставят свой пароль на болванки), но почему бы не собрать свой собственный копировщик? Вот об этом и нижеприведённая статья.

Начинать разработку копировщика стоит с выяснения, а на что вообще можно скопировать такие метки? Почитав форумы, можно узнать, что наиболее распространёнными болванками для копирования являются T5577, T5557, EM4305.

Теперь нужна схема. Возьмём аналоговую часть такого копировщика у RECTO и подключим её к микроконтроллеру atmega8. Дополним преобразователем уровней для подключения к COM-порту на базе max232 (желающие могут использовать ST232 или ещё что, чтобы подключится по USB, но у меня на компьютере COM-порт есть, как есть и переходник USB-COM, так что у меня такой задачи не стояло).

Получится вот такая схема:

Что она из себя представляет? Сдвоенный эмиттерный повторитель, колебательный контур, детектор и RC-фильтры. За счёт того, что RC-фильтры имеют разные постоянные времени, сравнивая между собой уровни напряжения между каскадами можно выделять изменение сигнала RFID-метки. Данной задачей у нас будет заниматься встроенный в atmega8 компаратор. Генерацию 125 КГц сигнала у нас будет обеспечивать встроенный в atmega8 ШИМ-контроллер.

Комбинация RFID-метка – считыватель образуют трансформатор, где метка является вторичной обмоткой. Передача информации меткой производится путём изменения нагрузки вторичной обмотки. В результате в катушке считывателя (первичной обмотке) изменяется ток. Выделением этих импульсов тока и занимается приведённая выше аналоговая часть схемы. Колебательный контур нужно настроить на максимальное напряжение в контрольной точке, например, сматывая/наматывая витки катушки. Правда, говорят, лучше всё же напряжение немного меньше максимума — стабильнее работает. У меня в контрольной точке около 40 В.

Копируемая метка использует кодирование типа манчестер. Для того чтобы расшифровать данный код, достаточно по любому изменению фронта сигнала пропускать три четверти периода слота бита и по следующему за ним перепаду сигнала фиксировать значение бита, которое будет соответствовать значению сигнала после перепада. При декодировании стоит задать окно, в которое должен произойти перепад сигнала – не более половины периода слота бита.

Метод расшифровки манчестерского кодирования и код для этого я взял у Shads. Можно, конечно, было написать свой собственный, но я торопился запустить копировщик — хотелось убедиться, что схема рабочая и приём меток производится. Так этот фрагмент и остался в коде копировщика. Также оказалось, что у меня компаратор настроен инверсно, чем нужно коду декодирования. Изменил в коде. Итак, мы получили последовательности нулей и единиц. Как из них получить код карты?

А очень просто. Примем, что номер карты по нибблам имеет вид AB CD EF GH IJ. Карта выдаёт вот что:

1) Девять единиц в начале;
2) Ниббл A;
3) Чётность ниббла A (1 бит);
4) Ниббл B;
5) Чётность ниббла B (1 бит);

16) Ниббл I;
17) Чётность ниббла I (1 бит);
18) Ниббл J;
19) Чётность ниббла J (1 бит);
20) Ниббл чётности колонок для нибблов A B C D E F G H I J;
21) Бит 0.

Считываем все 64 бита, расшифровываем и получаем 40 бит кода карты. Логично, что если самому выдать такой код, замыкая катушку карты приложенной к считывателю, мы получим эмулятор карты. Но сейчас нас интересует не он.

Карту мы читать научились, а вот как передать данные карте? Для этого нужно просто включать или выключать частоту 125 КГц в соответствии с протоколом обмена с картой. На время “молчания” считывателя карта питается запасённой энергией.

Болванки T5557/T5577 полностью совместимы между собой по протоколам записи, однако, имеют немного разные минимальные и максимальные времена импульсов (к счастью, времена T5557 перекрываются с T5577). У EM4305 протокол записи иной.

Чтобы записать T5557 я воспользовался кодом BolshoyK. В таблице ниже указаны параметры сигналов для брелока T5557.

Запись начинается с сигнала StartGape – требуется отключить сигнал 125 КГц примерно на 300 мкс. Это сигнал карте, что сейчас ей начнут передавать данные. Дальше следует передать болванке информацию. Кодирование передаваемых данных – тот же манчестер.

Болванки T5557/T5577 и EM4305 многофункциональные и умеют разные виды модуляций, поддерживают пароли и ещё много чего. В каждой болванке на борту имеется набор блоков по 32 бита. Назначение этих блоков разное. В некоторых – выдаваемый код ключа (он занимает два блока). В других – конфигурация. В третьих – идентификатор производителя. Мы будем использовать ограниченный функционал, поэтому желающие разобраться, что значат все эти биты, могут заглянуть в документацию к болванкам (я приложил её к архиву).

Блоки собраны в две страницы (0 и 1).

В нулевой странице есть блок конфигурации с индексом 0. Его мы и будем задавать. Для T5557/T5577 у нас будут следующие конфигурационные байты: 0x00,0x14,0x80,0x40 в соответствии с таблицей из документации (красным я отметил выбранные единичными битами режимы):

Таким образом, у нас выбрано: частота передачи данных RF/64 (125 КГц/64), кодирование типа манчестер, выдача блоков до второго (в блоках 1 и 2 у нас будет располагаться код, выдаваемый картой). Перед записью следует отправить код операции (2 бита opcode) и один бит защёлки (lockbit). Коды операции 10b и 11b предшествуют записи данных для страниц 0 и 1 (младший бит задаёт номер страницы, старший — код записи страницы). У нас выдаётся 10b для кода операции (вся работа идёт с нулевой страницей) и 0b для бита защёлки. После передачи всех этих данных необходимо передать трёхбитный адрес записываемой страницы. Все передачи данных для T5557/T5577 ведутся от старшего бита к младшему.

Задав код карты в блоках 1 и 2 и конфигурацию в блоке 0 можно получить дубликат RFID-метки. Как видите, всё просто.

Следующий тип болванок – это EM4305. Вот разбираться с записью этой болванки мне пришлось самому. Она также состоит из блоков по 32 бита, но назначение их иное.

Кодирование передаваемых карте данных – по перепадам за интервал времени. Если перепад за интервал времени был, то это ноль, а если не было — единица. Конфигурационное слово хранится в 4 байте и для себя я определил его так: 0x5F,0x80,0x01,0x00 (кодирование манчестер, RF/64, выдача слова 6). В слова 5 и 6 я записываю код карты (те самые 64 бита, что выдаёт карта). EM4305 требует чтобы передача велась от младшего бита к старшему. Карта понимает, что с ней начинают обмен после выдачи ей комбинации импульсов:

  1. Отключаем поле на 48 мкс.
  2. Включаем поле на 96 мкс.
  3. Выключаем поле на 320 мкс.
  4. Включаем поле на 136 мкс.
  5. Отключаем поле до следующей команды.

  1. Шлём вышеуказанную последовательность импульсов.
  2. Шлём 0b.
  3. Передаём CC0-CC1 и их чётность P. (0101b для записи, см. таблицы ниже).
  4. Передаём адрес блока (см. таблицу), два дополняющих нуля и чётность адреса.
  5. Передаём данные блока (32 бита).

Формат команды

Коды команд

Формат адреса блока

Таким образом задаётся конфигурация болванки EM4305 и её код.

Собственно, ничего большего простому копировщику и не требуется.

Я сделал несколько вариантов копировщика с разными дисплеями. Например, вот копировщик с дисплеем 1602:

А вот видео работы копировщика на дисплее LPH9157-02:

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

В архиве все схемы, печатки, программы и документация на болванки. Есть версия для Arduino Nano (её нужно прошивать отдельно через программы для заливки сторонних прошивок).

Желающие могут открыть документацию на все эти болванки и реализовать поддержку паролей и иные режимы работы карт. Мне лично всё это было ненужно.

Отдельное большущее спасибо RECTO, BolshoyK и Shads — без вас я бы развлекался бы с разработкой довольно долго!

Спасибо за внимание.

P.S. Я не являюсь профессионалом в копировании ключей и в болванках, поэтому вполне мог в чём-то ошибиться. Однако, копировщик работает, и в нём ошибок пока никто не нашёл.

  • C
  • Программирование микроконтроллеров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *