Успешная аутентификация Mifare DES, но невозможно сопоставить повернутый nonce считывателя после изменения ключа

Вопрос или проблема

Я успешно аутентифицировался с помощью DES и смог изменить ключ на своей карте. Ниже приведены детали:

Старый ключ: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Новый ключ: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

После успешной аутентификации с использованием 0x0A и изменения ключа, у меня возникли проблемы при попытке совместить циклический nonce считывателя с расшифрованным ответом после аутентификации с карты.

Вот поток данных:

Запрос данных: {длина = 7, байты = 0x901a0000010000}
Ответные данные: {длина = 10, байты = 0xace4f80c25bd82d891af}
Ответ: AC E4 F8 0C 25 BD 82 D8 91 AF
Извлеченный ответ: AC E4 F8 0C 25 BD 82 D8
Nonce карты (rndB): 5C AC 17 98 90 01 E5 12
Циклический nonce (rndBr): AC 17 98 90 01 E5 12 5C

Вот значения открытого текста и шифрованного текста для моего шага шифрования:

Открытый текст: FF 88 3B C1 EF 06 38 97 AC 17 98 90 01 E5 12 5C
Шифрованный текст: 64 B3 6E 44 C3 0E E7 79 98 AE 2F 3F A4 5F D8 D7 D5 3F FB D6 46 D1 0A BB

Вот что я отправляю на следующем шаге:

Запрос данных: {длина = 22, байты = 0x90af00001064b36e44c30ee77998ae2f3fa45fd8d700}
Ответные данные: {длина = 10, байты = 0xce9c95f4960ff4969100}
Ответ: CE 9C 95 F4 96 0F F4 96 91 00

Значения nonce, с которыми я работаю:

Nonce считывателя с карты (rndA2): 84 F4 6D E2 F5 1F E5 97
Исходный nonce A (rndA): FF 88 3B C1 EF 06 38 97

Ответ или решение

Проблема, с которой вы столкнулись, связана с синхронизацией между карточкой и считывателем после изменения ключа и успешной аутентификации. Давайте рассмотрим основные моменты, которые могут привести к ситуации, когда аутентификация с использованием DES проходит успешно, но не удается сопоставить вращённый нонс (nonce) считывателя с расшифрованным ответом от карточки.

Анализ проблемы

  1. Смена ключа: Вы упомянули, что сменили ключ с 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 на 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F. Эта операция должна быть выполнена корректно, однако стоит удостовериться, что вы правильно применили новый ключ для всех криптографических операций после её установки.

  2. Вращение на нонс: После аутентификации генерируется nonce с использованием значений с 카드 и считывателя. Обратите внимание на порядок, в котором вы обмениваетесь значениями. В вашем случае вращённый нонс (rndBr) был успешно извлечён, что является хорошим знаком.

  3. Значение и длина запросов и ответов: Убедитесь, что длина передаваемых данных соответствует указанным значениям. Вы указали, что первый запрос имел длину 7, а ответ длился 10 байтов. Это может создавать несоответствие, если считыватель не ожидает правильного количества байтов.

Возможные причины несовпадения

  • Неправильный порядок байтов: Возможно, вы неправильно обрабатываете порядок байтов при создании и расшифровке данных. Убедитесь, что все байты передаются в правильном порядке, соответствующем спецификациям Mifare.

  • Ошибка в расшифровке: Проверьте, что вы корректно применяете алгоритм DES с новым ключом к входным данным. Особенно обратите внимание на то, как вы формировали PlainText для шифрования. Он должен включать верные значения nonce, а не старые.

  • Некорректные данные для аутентификации: Проверьте, что данные, которые вы используете для аутентификации после смены ключа, корректны и соответствуют ожиданиям устройства.

Рекомендации по отладке

  1. Логгирование всех промежуточных значений: Введите ведение журнала всех промежуточных значений, которые вы используете в процессе аутентификации и при шифровании. Это поможет вам более детально понять, где происходит ошибка.

  2. Проверка всех переходов состояний: Убедитесь, что вы правильно переходите от одного состояния к другому, особенно после смены ключа. Каждое состояние должно сопровождаться корректным использованием текущего ключа.

  3. Тестирование с известными данными: Попробуйте получить известные рабочие значения для проверок, чтобы убедиться, что ваш процесс шифрования и расшифрования действительно работает, как ожидалось.

Заключение

Если вы выполните указанные шаги, это должно помочь выявить и устранить проблемы, связанные с несоответствием вращённого nonce и расшифрованного ответа. Правильная синхронизация между карточкой и считывателем, а также корректная работа алгоритмов шифрования являются ключом к успешной аутентификации. Если проблема всё ещё не решится, рассмотрите возможность выполнения серийного анализа всех передаваемых данных для более глубокого понимания проблемы.

Оцените материал
Добавить комментарий

Капча загружается...