2014-11-08 6 views
1

Кому-нибудь удалось получить взаимную аутентификацию с помощью сверхлегкой C-карты, использующей этот чип? Я понимаю процедуру аутентификации, но смотрю на набор команд в руководстве по чипам и пробую несколько вещей, которые я не думаю, что это действительно возможно, но подумал, что я опубликую здесь, прежде чем отказаться от набора микросхем и вернуться к использованию кодировщика CJS для проверкиPN532 MiFare Ultralight C Взаимная аутентификация

заранее спасибо

ответ

0

Да, можно выполнить взаимную аутентификацию с Mifare Ultralight C. Используйте следующую процедуру:

ШАГ 1: Передать команду аутентификации начало. (1A 00) на карточку

ШАГ 2: Карта генерирует 8-байтовое случайное число RndB. Это случайное число DES/3DES, зашифрованное диверсифицированным ключом, обозначаемое ek (RndB), и затем передается на терминал.

STEP 3 Терминал выполняет дешифровку DES/3DES на полученном ek (RndB) и, таким образом, извлекает RndB. RndB затем поворачивается налево на 8 бит (первый байт перемещается в конец RndB), что дает RndB '. Теперь сам терминал генерирует 8-байтовое случайное число RndA. Этот RndA объединяется с RndB 'и расшифровывается с использованием DES/3DES (дешифрование двух блоков осуществляется цепью с использованием режима отправки Cipher Block Chaining (CBC)). Этот токен dk (RndA + RndB ') отправляется на карту.

ШАГ 4: Карточка запускает шифрование DES/3DES на принятом токене и, таким образом, получает RndA + RndB '. Теперь карта может проверять отправленный RndB ', сравнивая его с RndB', полученным вращением исходного RndB, оставленным 8 битами внутри. Успешная проверка подтверждает карточку, что карта и терминал имеют тот же секрет (ключ). Если проверка завершается с ошибкой, карта останавливает процедуру аутентификации и возвращает сообщение об ошибке. Поскольку карта также получила случайное число RndA, сгенерированное терминалом, оно может выполнить поворот левой операции на 8 бит на RndA, чтобы получить RndA ', который зашифрован снова, в результате чего ek (RndA'). Этот токен отправляется на терминал.

ШАГ 5: Терминала работает дешифрование DES/3DES на полученных Ках (RndA») и таким образом получает RndA» для сравнения с терминалом-внутренне повернут RndA». Если сравнение не выполняется, терминал выходит из процедуры и может остановить карточку.

ШАГ 6: карта устанавливает состояние аутентификации как «Заверенная»

Какая часть дала вам проблемы?

+0

Спасибо за ответ, я прочитал где-то еще, что это было возможно и разрешило его после нескольких часов и часов проверки кода, когда я понял, что я установил количество байтов в одном из моих прочитанных ответов на неправильное значение, поэтому уходил данные в буфере. Простая ошибка, которая приводит к гигантской головной боли. – watersa8