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

    Добрый день,

    вам нужно прочитать спецификацию на эти карты: 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 - в него входят образцы смарт-карт и считывателей + есть демо примеры - если у вас используется один из поддерживаемых считывателей - можете скачать демки прям с той же страницы - ссылка внизу описания.
    Ответ написан
    1 комментарий