Как правильно сделать управление с закрытым ключом

Посмотрите этот вопрос, , Как Вы встраиваете двоичные данные в XML? Вместо того, чтобы преобразовать байт [] в Строку, затем продвигая в XML где-нибудь, преобразуйте байт [] к Строке через кодирование BASE64 (некоторые библиотеки XML имеют тип, чтобы сделать это для Вас). BASE64 декодируют, как только Вы возвращаете Строку от XML.

Использование http://commons.apache.org/codec/

Вы данные могут становиться испорченными из-за всех видов странных ограничений набора символов и присутствия non-priting символов. w/BASE64 палки.

48
задан Community 23 May 2017 в 12:00
поделиться

2 ответа

Мне знакома боль, которую вы переживаете. Мы изо всех сил пытались обновить старую систему EFT в соответствии с PCI. Управление ключами было определенно (с моей точки зрения программного обеспечения) самой сложной частью.

Думаю, я также наткнулся на Рекомендации NIST по управлению ключами , опубликованные Мартином, и был невероятно разочарован отсутствием конкретные примеры.

ANSI X9.17 - Управление ключами финансовых учреждений , вероятно, наиболее соответствует вашим потребностям с PCI-DSS. Однако удачи в чтении, документ представляет собой огромную коллекцию TLA, которую, как я знаю, мне очень трудно было прочитать. (X9.17 обновляется ежегодно, а последняя версия сейчас: NIST SP 800-57 Pt. 1 Rev. 4 )

Когда разочарование превратилось в отчаяние, я наткнулся на The Electronic Money Mill , вымышленную историю с большим количеством относящихся к делу технических ссылок. Глава 17 обсуждает X9.17 и может помочь с пониманием.

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

Моя реализация заключалась в том, чтобы приложение Key Server работало в окне Windows. Это приложение требовало ввода двух отдельных «главных ключей сервера ключей», прежде чем его можно было использовать. Эти ключи будут известны только администраторам сервера ключей. Эти ключи объединяются вместе для генерации главного ключа, который хранится только в защищенной памяти во время работы приложения. Затем приложение может автоматически генерировать криптографически стойкие ключи шифрования ключей, которые хранятся в зашифрованном виде с использованием главного ключа.

Приложения, которым необходимо шифрование, будут запрашивать ключ шифрования ключей с сервера ключей. KEK используется приложением для шифрования / дешифрования ключа шифрования данных, который может безопасно храниться вместе с данными приложения.

Удачи. Надеюсь, вам это тоже показалось интересным!

Затем приложение может автоматически генерировать криптографически стойкие ключи шифрования ключей, которые хранятся в зашифрованном виде с использованием главного ключа.

Приложения, которым необходимо шифрование, будут запрашивать ключ шифрования ключей с сервера ключей. KEK используется приложением для шифрования / дешифрования ключа шифрования данных, который может безопасно храниться вместе с данными приложения.

Удачи. Надеюсь, вам это тоже показалось интересным!

Затем приложение может автоматически генерировать криптографически стойкие ключи шифрования ключей, которые хранятся в зашифрованном виде с использованием главного ключа.

Приложения, которым требуется шифрование, будут запрашивать ключ шифрования ключей с сервера ключей. KEK используется приложением для шифрования / дешифрования ключа шифрования данных, который может безопасно храниться вместе с данными приложения.

Удачи. Надеюсь, вам это тоже покажется интересным!

35
ответ дан 26 November 2019 в 19:04
поделиться

Вы видели NIST SP 800-57 , Рекомендации по управлению ключами?

7
ответ дан 26 November 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: