Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

YK1
2021-01-11 13:40:31

Смотри полную спецификацию например здесь
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 (соотв. после этого) блок больше нельзя записать

MiFar
2021-01-04 19:25:45
YK1 пише:

Организация памяти карточек/брелков в Данном случае Mifare

15    3    63    Sector Trailer (Ключ A, условие доступа, Ключ B)
-----------------------------------------------------------------------------
Важным являеться сектор Trailer. В нем храняться ключи и условия доступа. Например по ключу А можно читать, по ключу B можно писать

С завода все ключи равны 0xFF FF FF FF FF FF FF.    я в своей системе например сделал правила. 
для все секторов данных читаем по ключу A, пишем по ключу B
Для сектора trailer пишем и читаем только по ключу B

Я тут наткнулся на такую информацию по памяти карт
m.jpg

У меня же , когда я считываю дамп с карты картина такая
00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF
т.е. получается ключ А =0х00 ключ В=0хFF. И в примерах из библиотеки значит используется ключ В?
Не могли бы вы показать конкретный пример как изменить ключ и сделать доступным чтение только по этому ключу? Боюсь экспериментами запороть карту. Они конечно стоят копейки, но в нашей местности не продаются, доставка самой карты обойдется слишком дорого. Может позже куплю у китайцев вместе с другими заказами килограмм брелков для опытов smile .

YK1
2021-01-04 14:48:00

Организация памяти карточек/брелков в Данном случае 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...

renoshnik
2021-01-03 23:26:02
MiFar пише:

renoshnik, я тут нашел вашу тему Система контроля работы охраны где вы пишете что

renoshnik пише:

Единственный вариант это сделать дубликаты...  но на этот случай тоже есть вариант защиты...  smile

Не подскажете на конкретном примере как защититься от дублирования?

Как вариант менять жетоны на точках обхода не уведомляя охранников.  smile

MiFar
2021-01-03 19:53:48

В общем если правильно понял примеры записи/чтения - есть два ключа. Ключ А= 0хFF записан производителем и не меняется. Ключ В - можно менять, но так и не понял как.

renoshnik, я тут нашел вашу тему Система контроля работы охраны где вы пишете что

renoshnik пише:

Единственный вариант это сделать дубликаты...  но на этот случай тоже есть вариант защиты...  smile

Не подскажете на конкретном примере как защититься от дублирования?

MiFar
2021-01-03 17:45:34
renoshnik пише:

ID карты изменить нельзя. Этот номер прописывается изготовителем.

Мне и не надо его менять. Хотя если верить тем же интернетам существуют карты у которых можно переписать UID/

renoshnik пише:

Изменить можно только пользовательскую область памяти. В библиотеках к RFID модулям есть примеры работы с пользовательской областью памяти.

Вот я и хочу узнать как это делать. В примерах не совсем понимаю как записать свои данные, закрыть их паролем и потом считать только зная этот пароль.
Опять же из примеров я понял что пароль идет тоже с завода 0хFF? Можно его изменить на свой?

renoshnik
2021-01-03 16:27:08

ID карты изменить нельзя. Этот номер прописывается изготовителем. Изменить можно только пользовательскую область памяти. В библиотеках к RFID модулям есть примеры работы с пользовательской областью памяти.

MiFar
2021-01-03 13:39:19

Добрый день. Есть такой модуль https://arduino.ua/prod649-rfid-modyl-r … ya-arduino
Хочу сделать на его основе систему доступа. В интернетах вычитал что не рекомендуется делать идентификацию по UID, т.к. карту могут незаметно и легко скопировать. Рекомендуют использовать информацию записанную в защищенные паролем сектора, но никто конкретно не говорит как это сделать. Может кто-то подсказать как и куда записать эту информацию, каким образом формируется пароль - выдумывается из головы или он уже записан с завода на карте (тогда какой смысл в этом пароле если его тоже можно считать?), где этот пароль хранится. В общем если кто-то знает, дайте пожалуйста ссылку где об этом почитать(желательно с примерами) или приведите кусок кода в котором расписано как это делать

Підвал форуму