Ви не увійшли.
Сторінки 1
Добрый день. Есть такой модуль https://arduino.ua/prod649-rfid-modyl-r … ya-arduino
Хочу сделать на его основе систему доступа. В интернетах вычитал что не рекомендуется делать идентификацию по UID, т.к. карту могут незаметно и легко скопировать. Рекомендуют использовать информацию записанную в защищенные паролем сектора, но никто конкретно не говорит как это сделать. Может кто-то подсказать как и куда записать эту информацию, каким образом формируется пароль - выдумывается из головы или он уже записан с завода на карте (тогда какой смысл в этом пароле если его тоже можно считать?), где этот пароль хранится. В общем если кто-то знает, дайте пожалуйста ссылку где об этом почитать(желательно с примерами) или приведите кусок кода в котором расписано как это делать
Неактивний
ID карты изменить нельзя. Этот номер прописывается изготовителем. Изменить можно только пользовательскую область памяти. В библиотеках к RFID модулям есть примеры работы с пользовательской областью памяти.
Неактивний
ID карты изменить нельзя. Этот номер прописывается изготовителем.
Мне и не надо его менять. Хотя если верить тем же интернетам существуют карты у которых можно переписать UID/
Изменить можно только пользовательскую область памяти. В библиотеках к RFID модулям есть примеры работы с пользовательской областью памяти.
Вот я и хочу узнать как это делать. В примерах не совсем понимаю как записать свои данные, закрыть их паролем и потом считать только зная этот пароль.
Опять же из примеров я понял что пароль идет тоже с завода 0хFF? Можно его изменить на свой?
Неактивний
В общем если правильно понял примеры записи/чтения - есть два ключа. Ключ А= 0хFF записан производителем и не меняется. Ключ В - можно менять, но так и не понял как.
renoshnik, я тут нашел вашу тему Система контроля работы охраны где вы пишете что
Единственный вариант это сделать дубликаты... но на этот случай тоже есть вариант защиты...
Не подскажете на конкретном примере как защититься от дублирования?
Неактивний
renoshnik, я тут нашел вашу тему Система контроля работы охраны где вы пишете что
renoshnik пише:Единственный вариант это сделать дубликаты... но на этот случай тоже есть вариант защиты...
Не подскажете на конкретном примере как защититься от дублирования?
Как вариант менять жетоны на точках обхода не уведомляя охранников.
Неактивний
Организация памяти карточек/брелков в Данном случае Mifare
Сектор Блок Порядковый номер блока Функция
0 0 0 UID и информация завода-изготовителя чипа
0 1 1 Данные
0 2 2 Данные
0 3 3 Sector Trailer (Ключ A, условие доступа, Ключ B)
... ... ... ...
15 0 60 Данные
15 1 61 Данные
15 2 62 Данные
15 3 63 Sector Trailer (Ключ A, условие доступа, Ключ B)
-----------------------------------------------------------------------------
Важным являеться сектор Trailer. В нем храняться ключи и условия доступа. Например по ключу А можно читать, по ключу B можно писать, а точнее
Имеется четыре режима доступа к каждому сектору (к трем блокам данных и к блоку Sector Trailer). При этом каждый блок имеет свое значение трех битов доступа. Задавая значения битов доступа можно определить «назначение» каждого блока данных (block mode):
- блок для записи/чтения и по какому ключу (по Ключу А или В, или по обоим ключам);
- блок для хранения условных единиц (электронный кошелек) или блок для записи/чтения данных;
- закрытый (недоступный) блок.
С завода все ключи равны 0xFF FF FF FF FF FF FF. я в своей системе например сделал правила.
для все секторов данных читаем по ключу A, пишем по ключу B
Для сектора trailer пишем и читаем только по ключу B
Для того чтобы "инициализировать" карточку. Нужно записать trailer сектор. С новыми паролями А и В. и условиями доступа.
Trailer Сектор пишеться теми же правилами. пароли с завода 0xFF... После этого можно с помощью пароля B писать любые данные в сектора данных. например собственный UID.
Далее для доступа и чтения данных нам нужен пароль A. Тут и обратите внимание что знание пароля A поможет только прочитать карточку, но не перезаписать , и не прочитать пароль B. Соотв. например эту часть кода можно куда то отдать и т.п.
Собственно вопрос тут не аппаратный, а алгоритмический
Ну соотв. карточку теоретически невозможно скопировать. Почему теоретически, да потому что встречал на просторах различные Brutte Force...
Организация памяти карточек/брелков в Данном случае Mifare
15 3 63 Sector Trailer (Ключ A, условие доступа, Ключ B)
-----------------------------------------------------------------------------
Важным являеться сектор Trailer. В нем храняться ключи и условия доступа. Например по ключу А можно читать, по ключу B можно писатьС завода все ключи равны 0xFF FF FF FF FF FF FF. я в своей системе например сделал правила.
для все секторов данных читаем по ключу A, пишем по ключу B
Для сектора trailer пишем и читаем только по ключу B
Я тут наткнулся на такую информацию по памяти карт
У меня же , когда я считываю дамп с карты картина такая
00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF
т.е. получается ключ А =0х00 ключ В=0хFF. И в примерах из библиотеки значит используется ключ В?
Не могли бы вы показать конкретный пример как изменить ключ и сделать доступным чтение только по этому ключу? Боюсь экспериментами запороть карту. Они конечно стоят копейки, но в нашей местности не продаются, доставка самой карты обойдется слишком дорого. Может позже куплю у китайцев вместе с другими заказами килограмм брелков для опытов .
Неактивний
Смотри полную спецификацию например здесь
https://www.nxp.com/docs/en/data-sheet/MF1S70YYX_V1.pdf
Раздел 8.7.1
Обрати внимание, что ключ A никогда не читается. Т.е. всегда возвращается 00 00.... Т.е. если карта с завода то ключ A равен FF FF FF
Т.е. в твоем случае все логично и правильно
Соответственно можешь смело писать сектор. Я могу дать пример, но ввиду моего проекта, у меня writer реализован на .NET CORE, можно использовать например под windows desktop
Вот есть онлайн калькулятор http://calc.gmss.ru/Mifare1k/
Карточку ты можешь "испортить" только если выберешь комбинацию Write - > never (соотв. после этого) блок больше нельзя записать
Сторінки 1