Вопрос или проблема
Я нов в DUKPT, поэтому не совсем понимаю DUKPT и HSM. В данный момент я пытаюсь расшифровать данные (номер PAN) с терминала.
На данный момент, когда я получаю KSN и зашифрованные данные, я понимаю, что мне нужно найти ключ шифрования. Из моего HSM я могу получить IPEK на основе (KSN, BDK). Но здесь возникает путаница, основываясь на статьях, которые я читал, и документации поставщика терминала, ключ шифрования будет одним из будущих ключей.
- Как мне узнать, какой будущий ключ терминал использует в качестве ключа шифрования?
- Как HSM может создать будущие ключи из IPEK?
Как только я получу правильные будущие ключи, я смогу извлечь вариант ключа данных и выполнить расшифровку в моем HSM. Я всего лишь застрял с этими двумя вопросами.
Любое объяснение было бы крайне полезно.
Мне не нужно получать будущие ключи. У меня уже есть BDK и KSN, мне нужно преобразовать его в формат 20 при вызове команды шифрования/расшифровки. Функция автоматически извлечет подходящий ключ из BDK для операций шифрования и расшифровки.
Ответ или решение
Дукпот (DUKPT) — это метод управления ключами, который используется для защиты конфиденциальной информации, такой как номера карт, в процессе их передачи и хранения. Он основан на использовании базового ключа (BDK) и ключа последовательности (KSN), чтобы производить новые ключи, известные как будущие ключи (Future Keys).
Ответ на ваши вопросы:
-
Как узнать, какой будущий ключ использует терминал в качестве ключа шифрования?
Для определения будущего ключа, который использует терминал, необходимо учитывать KSN. KSN содержит информацию о том, сколько раз генерация ключей уже происходила. Будущий ключ (или ключ на текущий момент) может быть рассчитан на основе KSN и базового ключа (BDK). В DUKPT каждый новый ключ создается таким образом, что он становится производным от BDK с учетом значения KSN. Обычно это делается следующим образом:
- Используйте KSN для извлечения номера текущего ключа.
- Вычислите ключ с помощью вашего HSM (аппаратного модуля безопасности) или программного обеспечения, которое поддерживает DUKPT. В большинстве случаев вы можете просто вызвать функцию, которая автоматически производит необходимые ключи на основе вашего BDK и KSN.
-
Как HSM создает будущие ключи из IPEK?
IPEK (Initial Pin Encryption Key) в DUKPT представляет собой базовый ключ, который после инициализации (и после генерации ключей с использованием KSN) преобразуется в будущие ключи. Для создания будущих ключей из IPEK, HSM использует алгоритм DUKPT, который включает:
- Извлечение номера ключа из KSN.
- Использование IPEK и алгоритма преобразования для генерации текущего (будущего) ключа. Это может быть выполнено с помощью функции HSM, которая восприимчива к параметрам, таким как IPEK и KSN.
Важно помнить, что вашим HSM должен быть предоставлен доступ к процессам, касающимся DUKPT, чтобы корректно интерпретировать и использовать необходимые данные.
Заключение
Используя BDK и KSN, вы можете получить нужные будущие ключи, необходимые для расшифровки данных. Убедитесь, что используете функции вашего HSM, которые поддерживают DUKPT, чтобы автоматизировать процесс извлечения ключей и дешифровки данных (например, номера карт).
Если у вас остались конкретные вопросы о вашем программном или аппаратном обеспечении, рекомендую обратиться к документации или службе поддержки поставщика вашего HSM для более детальной информации.