Ответы пользователя по тегу Mifare
  • Какова организация работы и устройство карт 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 комментарий
  • Можно ли записать на карту Mifare электронную подпись?

    Задачу можно разделить на несколько вопросов:
    1) сколько памяти доступно для хранения подписи?
    - не вдаваясь в подробности:
    -- Mifare UL - 48 Байт
    -- Mifare ULC - 148 Байт
    -- Mifare Classic 1K / Mifare Plus 1K - 752 Байт
    -- Mifare Plus 2K - 1520 Байт
    -- Mifare Classic 4K / Mifare Plus 4K - 3440 Байт
    -- Mifare DESFire - 2KБ/4КБ/8КБ (не считал)
    Таким образом хранить пару ключей получится не на любой карте семейства MIFARE. Если брать пару ключей длиной 2048, то можно понять что потребуется минимум 512 Байт для их хранения.

    2) как организовать хранение ЭП в памяти чипа?
    - Здесь каждый может придумать свой велосипед со своим блекджеком.

    3) каким middleware пользоваться?
    - Мне на текущий момент не известны готовые решения (точнее они есть, но не пользуются большой популярностью), поэтому я предполагаю довольно серьезную разработку такого middleware. Наиболее легким путем мне кажется прикручивание OpenSSL к разрабатываемому ПО.

    4) насколько удобна разрабатываемая система?
    - С точки зрения обычного пользователя - такая система позволит подписывать файлы с помощью бесконтактного способа - поднес карту и подписал (вроде бы все...), но это является и минусом, т.к. на рабочем месте постоянно требуется наличие бесконтактного считывателя. Конечно можно использовать USB Stick считыватели (например такие: http://www.smart-card.ru/_catalog/cat_3/?action=fi..., но их стоимость сравнима со стоимостью обычных токенов, используемых для ЭП (ESMART Token, eToken, ruToken и других готовых решений)

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