ACR1222L FF 82 Ошибка загрузки ключей аутентификации с ошибкой операции 63 00

Я использую устройство чтения смарт-карт ACR1222L NFC с картами Mifare Plus (уровень безопасности 0 на данный момент; ключи производителя по умолчанию A и B). Я пробовал несколько команд для загрузки ключа аутентификации в считыватель:

FF 82 00 00 06 FF FF FF FF FF FF
FF 82 00 01 06 FF FF FF FF FF FF
FF 82 20 00 06 FF FF FF FF FF FF
FF 82 00 00 06 A0 A1 A2 A3 A4 A5
FF 82 00 00 06 D3 F7 D3 F7 D3 F7
... and others ...

Все они возвращают статус ошибки:

63 00 (Operation Failed)

Что могло быть не так? Я долго и широко искал подсказку, но многие другие вопросы касаются неудачной аутентификации или неудачного чтения после успешной загрузки ключа аутентификации с помощью одной из вышеперечисленных команд, и они часто основаны на другом устройстве ( ACR122U).

Заметил, что ридер даже не реагирует на команду при отсутствии карты. Должна ли карта присутствовать на считывателе, чтобы он загружал ключ аутентификации?


person ADTC    schedule 26.08.2015    source источник
comment
Карточка должна быть при себе для любых операций с ней. Reader - это просто тупой аппаратный уровень, который не выполняет никакой логики, не загружает и не хранит ничего внутри. Он просто ретранслирует связь между хостом и устройством (картой), применяя некоторые ограничения (считыватель). Вы должны следить за состоянием считывающего устройства, чтобы убедиться, что карта присутствует. Но в вашем случае очень странно, что ридер не возвращает код ошибки, который должен! В большинстве случаев это должно быть ICC_MUTE.   -  person Alex    schedule 27.08.2015
comment
@Alex Когда карты нет, я обычно получаю код ошибки 6 от собственного метода на основе Jacspcsc, который пытается передать команду считывателю (вероятно, указывая на сбой передачи). От самого читателя ответа нет. Когда карта присутствует, я получаю код ошибки 0 от этого метода (указывающий на успешную передачу команды). Ответ самого ридера находится в отдельном массиве byte.   -  person ADTC    schedule 28.08.2015
comment
AFAIK вы не должны загружать ключ на этом уровне безопасности. Если ваша карта находится на уровне безопасности 0, вам, вероятно, понадобится команда write perso для загрузки вашего ключа на карту.   -  person Xaqq    schedule 01.09.2015


Ответы (2)


Чтобы иметь возможность использовать такие команды, как «Загрузить ключ аутентификации», «Аутентификация (блока)», «Чтение», «Запись», «Обновление» и т. Д., Карта должна иметь уровень безопасности 1 или выше. .

Существуют определенные команды для перемещения карты с уровня безопасности 0 на уровень безопасности 1 путем загрузки в карту нескольких соответствующих ключей. Чтобы получить эти команды, обратитесь в ACS, поскольку они не документированы публично.

(Дополнительная информация)

person ADTC    schedule 02.09.2015
comment
У меня точно такая же проблема. Есть ли шанс, что вы могли бы поделиться этими командами? (Ссылка "дополнительная информация" не работает) - person user3050534; 03.05.2017
comment
Мне очень жаль, что у меня больше нет доступа к информации (это было для старого проекта). Он также защищен авторским правом и не является общедоступным. Я предлагаю вам или вашей компании обратиться в службу поддержки ACS напрямую, чтобы получить документацию в рамках вашей платной поддержки. Я думаю, что ссылка на дополнительную информацию не содержала этих команд. Просто там была дополнительная теоретическая информация. - person ADTC; 06.05.2017

Пожалуйста, попробуйте команду-

 0xFF 0x82 0x00 0x60 [key length] [ key value]

or

0xFF 0x82 0x00 0x61 [key length] [ key value]

Где 0x60 для использования ключа типа A и 0x61 для ключа типа B.

person Arjun    schedule 27.08.2015
comment
Пробовал FF 82 00 60 06 FF FF FF FF FF FF и _2 _... все еще получается 63 00. - person ADTC; 28.08.2015
comment
Я понял, что вы запутались с устаревшей версией команды аутентификации (FF 88 00 [block number] [key type] [key number]). Речь идет о команде Загрузить ключ аутентификации (FF 82 ...). - person ADTC; 28.08.2015