MiFare - разница между UID и серийным номером карты MiFare

Мне нужно прочитать серийный номер карты MiFare с помощью WinSCard. Я могу прочитать UID 7B с карты MiFare.

Путаница в том, что я не знаю, совпадают ли UID и серийный номер карты MiFare?!!

Я погуглил проблему, но смог добиться лишь частичного успеха. Я также нашел вопрос в stackoverflow, но это не помогло .

Я нашел документ NXP в Интернете, в котором говорится, что UID и серийный номер отличаются. (на странице №3, строка №5)

Есть приложение OmniKey, которое считывает серийный номер карты и тоже возвращает только UID.

В документации NXP указано UID ‹> Серийный номер, а другое стандартное приложение OmniKey возвращает UID как серийный номер.

Я начал рвать на себе волосы по этому вопросу. Я был бы очень признателен, если бы кто-нибудь мог помочь.


person jparthj    schedule 12.07.2013    source источник
comment
Метки MiFare не имеют читаемого серийного номера. У них есть только UID. Причина, по которой вы запутались, заключается в том, что не все знают, что такое UID, но все знают, что такое серийный номер. Поэтому UID часто ошибочно называют серийными номерами. NXP пытается прояснить это, но добавляет еще больше путаницы, подразумевая существование серийного номера. Между прочим, документ от NXP ужасно вводит в заблуждение.   -  person Nils Pipenbrinck    schedule 12.07.2013
comment
Таким образом, единственный читаемый уникальный идентификатор - это этот UID? Я мог прочитать UID с помощью WinSCard. А если серийные номера не читаются, какой смысл их давать? #Просто любопытно :-)   -  person jparthj    schedule 12.07.2013
comment
Полная цитата из этого документа: UID — это не «серийный номер», а уникальный идентификатор. Нет рекомендации, как превратить массив байтов в целое число. Они указывают, что преобразование этого в число не является чем-то, что они определяют, и может быть выполнено разными способами (например, с прямым порядком байтов или с прямым порядком байтов).   -  person Eric    schedule 04.08.2016


Ответы (3)


Каждая смарт-карта содержит встроенный чип с уникальным постоянным идентификационным номером (UID), который прошивается в процессе производства. Этот UID часто называют серийным номером карты (CSN). Серийный номер карты не зашифрован, и любой считыватель, совместимый с ISO, может прочитать серийный номер карты.

Редактировать 1:

Серийный номер карты Mifare — это уникальный идентификатор, определенный в стандарте ISO 14443-3A. В стандарте определено 3 типа UID: одинарный (4 байта), двойной (7 байтов) и тройной (10 байтов). Только в первых версиях карты Mifare UID составлял 4 байта, но теперь он перешел на 7 байтов.

EDIT 2: Это может быть вам полезно...

What is the difference between a 4 byte UID and a 4 byte ID?

4-байтовый UID — это идентификатор, присвоенный производителем карты с использованием контролируемой базы данных. Эта база данных гарантирует, что один и тот же идентификатор не будет использоваться дважды. Напротив, 4-байтовый идентификатор является идентификатором, который может быть назначен более чем одному бесконтактному чипу в течение всего времени производства продукта, так что более одной карты с одинаковым идентификатором могут быть развернуты в одной конкретной бесконтактной системе.

person vikky    schedule 12.07.2013
comment
Да я знаю это. Но в официальном документе NXP говорится, что UID и серийный номер — это две разные вещи. Так что только я запутался. - person jparthj; 12.07.2013
comment
Я уже посетил ссылку, которую вы упомянули в ответе. Но ссылка не содержит ответа для UID = Serial Number? :-( - person jparthj; 12.07.2013
comment
UID удостоверения личности страны имеют одинаковый номер для всех карт? например, я проверяю две разные идентификационные карты и получаю одинаковый номер 6f648407. - person Maximiliano Cesán; 31.08.2018

Различие в этом случае происходит из-за того, что «серийный номер» подразумевает, что номера представляют собой серию, поэтому они присваиваются последовательно.

Карты MIFARE имеют уникальные идентификационные номера (или сокращенно UID), которые генерируются внутренним правилом, которое не обязательно является последовательным. Это означает, что если вы видите карту с UID 01020304050607, это не значит, что на данный момент выпущено как минимум столько же карт.

Если вы когда-нибудь увидите, как кто-то ссылается на серийный номер карты, на самом деле он имеет в виду UID.

Единственная последняя путаница может возникнуть из-за того, что карты MIFARE могут быть настроены на возврат случайных идентификаторов во время активации. Если это так, вы будете получать разные «UID» каждый раз, когда активируете карту. В этом случае вам нужно прочитать данные, содержащиеся в блоке 0 (для чего вам нужно будет знать ключ к сектору 0), чтобы получить реальный UID карты.

person Eduardo    schedule 03.02.2015
comment
Спасибо за ваши усилия, мой вопрос все еще стоит :( - person jparthj; 04.02.2015

Для карт DesFire:

  1. UID аналогичен MAC-адресу Ethernet. Он назначается производителем чипа из базы данных. Все, кто создает заявки на карту, имеют доступ к UID.
  2. Серийный номер карты зависит от приложения, загруженного на карту. Доступ к нему может получить только это приложение с помощью ключа шифрования. Если на карту загружено несколько приложений (маловероятно, но возможно), то у каждого может быть свой CSN.
person drlolly    schedule 09.04.2019