@Mitchal

Какова организация работы и устройство карт Mifare?

Всем Привет! Есть несколько вопросов по картам Mifare.

1. В пустых картах в трейлере, Access Bits по умолчанию еще не записаны и нуждаются в записи?
2. Почему есть 3 бита доступа, задействованы 4 бита(6,7,8,9) в каждом трейлере для каждого сектора? И как тогда это понимать?
3. Шифрование Crypto-1используется при считывании(то есть данные в зашифрованном виде только передаются от карты к считывателю) или же данные записаны в карту в зашифрованном виде?
4. На сколько я понял, ключ А служит для прочтения информации, т.е. он задается 1 раз или можно его перезаписывать?
5. Ключ Б необходим если мы хотим запретить последующую запись/перезапись сектора?
6. В какой последовательности происходит работа с памятью при записи(например сначала задаются необходимые ключи, определяется уровень доступа через Access Bits и записываются необходимые пользовательские данные ? или в обратной последовательности)?

Заранее спасибо!
  • Вопрос задан
  • 2132 просмотра
Пригласить эксперта
Ответы на вопрос 1
Добрый день,

вам нужно прочитать спецификацию на эти карты: cache.nxp.com/documents/data_sheet/MF1S70YYX_V1.pdf
Далее буду отсылать к подпунктам этого документа.

по вопросам:
1. В пустых картах в трейлере, Access Bits по умолчанию еще не записаны и нуждаются в записи?
- записаны "транспортные" Access биты (п.п. 8.7.2-8.7.2 биты отмечены как "transport configuration")

2. Почему есть 3 бита доступа, задействованы 4 бита(6,7,8,9) в каждом трейлере для каждого сектора? И как тогда это понимать?
- здесь у вас ошибка: задействованы 4 Байта (6,7,8,9)
- для каждого сектора задается свой набор битов доступа
- для примера беру сектора с 3 блоками данных (0-31) + трейлер сектора
- 3 бита (С13-С23-С33 - (вторая цифра это индекс трейлера - он в секторе по адресу 3) п.п. 8.7.1 Table 6.) определяют порядок доступа к трейлеру сектора (п.п. 8.7.2)
- еще 3 бита для каждого блока данных (п.п. 8.7.3) : 3*3 = 9 бит
- итого 9 + 3 = 12 бит
- эти 12 бит дублируются в инвертированном (https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%80%D... виде (п.п. 8.7.1)
- итого получается: 12 + 12 = 24 бита = 3 Байта
- 3 Байта записываются в трейлер по адресам 6-7-8
- в Байт 9 можно записать все что угодно - он не содержит битов доступа

3. Шифрование Crypto-1используется при считывании(то есть данные в зашифрованном виде только передаются от карты к считывателю) или же данные записаны в карту в зашифрованном виде?
- криптоалгоритм используется для шифрования данных в радиоэфире - т.е. при приеме-передаче данных
- данные на карте хранятся в том виде в котором их туда записали

4. На сколько я понял, ключ А служит для прочтения информации, т.е. он задается 1 раз или можно его перезаписывать?
- Ключ А можно перезаписать если это позволяют биты доступа к трейлеру сектора (п.п. 8.7.2 Table 7. Access condition for KEY A)
- Ключ А может использоваться как для записи, так и для чтения - если это позволяют биты доступа к блокам данных (п.п. 8.7.3 Table 8. Access condition for read/write)

5. Ключ Б необходим если мы хотим запретить последующую запись/перезапись сектора?
- Ключ Б может также использоваться как для записи, так и для чтения если это позволяют биты доступа к блокам данных или трейлера сектора (п.п. 8.7.2-8.7.3)

6. В какой последовательности происходит работа с памятью при записи(например сначала задаются необходимые ключи, определяется уровень доступа через Access Bits и записываются необходимые пользовательские данные ? или в обратной последовательности)?
- неважно, оба варианта работоспособны

P.S.
Изучать работу смарт-карт довольно сложно без практики, мне в этом помог вот такой набор: www.smart-card.ru/sdk-smart-card-development-kit - в него входят образцы смарт-карт и считывателей + есть демо примеры - если у вас используется один из поддерживаемых считывателей - можете скачать демки прям с той же страницы - ссылка внизу описания.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы