2016-08-22 2 views
1

Я недавно использовал смарт-карту Mifare Classic 1k. Я использовал блок производителя (сектор 0, блок 0) для идентификации карты, так как UID карт Mifare Classic на самом деле не уникален.Mifare DESFire EV1 4k Производитель Блок

Мой сценарий приложения - это то, что я хочу прочитать идентификатор из смарт-карты и сравнить его с базой данных, в которой каждый пользователь имеет назначенный им смарт-карту. Таким образом, пользователь может войти в систему со своей картой.

Теперь мне нужно использовать новые карты Mifare DESFire EV1 4k. У этих карт также есть что-то вроде блока производителя или всего 7-байтового UID? Безопасно ли использовать этот UID для идентификации карты?

+0

В зависимости от того, что вы подразумеваете под «* ident *» ... Вы намерены определить, что ваша карта является одной конкретной карточкой из партии карт MIFARE Classic или MIFARE DESFire? Или вы намерены определить, является ли карта MIFARE Classic или MIFARE DESFire? –

+0

Также неясно, какую степень безопасности вы пытаетесь достичь. Там ** - ** карты, позволяющие писать эту информацию тоже ... – guidot

+0

Я пытаюсь написать программное обеспечение, которое считывает идентификатор с смарт-карты и сравнивается с базой данных, в которой каждый пользователь имеет назначенную ему смарт-карту. Таким образом, пользователь может войти в систему со своей картой. Когда я использовал классические карты Mifare, я использовал блок производителя как идентификатор, но теперь моя компания переключилась на карты Mifare DESFire. Я ищу что-то вроде серийного номера карты, поэтому я могу назначить карту пользователям. – Chrisser

ответ

2

Вы можете рассчитывать на 7-байтовый UID подлинный Карты MIFARE DESFire EV1 уникальны. Однако имейте в виду, что карты DESFire EV1 могут быть настроены на использование случайного 4-байтового UID. В этом случае UID генерируется случайным образом для каждой активации RF. 7-байтовый UID таких карт может быть получен только с помощью команды GetCardUID (код команды 0x51) после аутентификации.

Тем не менее, вы должны знать (в частности, с учетом вашего варианта использования), что UID можно легко клонировать и не подходит для аутентификации карт (или их пользователей). Смотрите также

Если вы хотите что-нибудь compareable производителю блока MIFARE Classic (то есть что-то, что раскрывает информацию о типе продукта и производственной партии), MIFARE Карты DESFire имеют команду GetVersion (код команды 0x60).

Наконец, обратите внимание, что блок изготовителя карты MIFARE Classic на самом деле не дает больше уникальности, чем UID самостоятельно. Причина этого в том, что первые 4 байта блока производителя являются самим UID. Следующий байт - контрольная сумма по UID (поэтому его значение одинаково для карт с одинаковым UID). Следующие 3 байта - это значения SAK и ATQA, которые обычно являются «88» и «0400» для всех (большинства?) Карт MIFARE Classic 1K. Оставшиеся байты определяют тип чипа (следовательно, идентичны для всех карточек того же типа) и производственной партии (следовательно, идентичны по меньшей мере для каждой партии).

Смежные вопросы