Упаковка Конфигурация Схемы Шифрования - Надеюсь, используя только OpenSSL - PullRequest
2 голосов
/ 01 ноября 2010

У меня есть реализованная схема шифрования, составляющие компоненты: симметричный шифр и его режим цепочки, а также алгоритм HMAC жестко запрограммированы в двоичном виде.Кроме того, параметры алгоритмов (ключ HMAC, симметричный ключ IVEC) определяются в двоичных файлах, по одному на каждый параметр.

Я бы хотел указать выбор алгоритмов и режимов, а также их параметрыв одном файле.Нужен ли мне собственный формат или это возможно при использовании существующей инфраструктуры OpenSSL?Если есть инфраструктура, кто-то может предоставить некоторые ссылки.

ps, я знаю код разбора файла конфигурации и код PEM / x.509 в OpenSSL.Однако все, что построено из этого, не будет сплоченным.

1 Ответ

0 голосов
/ 07 января 2012

Я бы хотел уточнить выбор алгоритмов и режимов, а также их параметры в одном файле

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

Симметричный шифр и его режим цепочки, а также алгоритм HMAC жестко запрограммирован в двоичном коде.

Сначала я посмотрю в режим аутентифицированного шифрования - EAX, CCM или GCM. Я полагаю, что OpenSSL имеет только CCM на данный момент (или это GCM?). Если вы не можете использовать режим аутентифицированного шифрования, перейдите к Encrypt-Then-Authenticate (т. Е. Шифруйте, а затем аутентифицируйте зашифрованный текст с помощью HMAC или CMAC), что звучит так, как будто вы делаете.

Дополнительно, параметры алгоритмов (ключ HMAC, симметричный ключ симметричный IVEC)

HMAC (и CMAC) - это хорошо. Не используйте CBC-MAC, поскольку он страдает недостатками в сообщениях переменной длины.

симметричный ключ [в двоичном файле]

Ммм ...

симметричный IVEC

IV считаются общедоступными параметрами. Выберите случайный IV для сообщения и отправьте его вместе с текстом шифра. Убедитесь, что MAC и зашифрованный текст и IV для обнаружения подделки.

Нужен ли мне собственный формат или это возможно при использовании существующей инфраструктуры OpenSSL

Посмотрите на BIO s для ввода / вывода. Кодировка зависит от вас. Вы можете записывать необработанные байты, можете кодировать их с помощью {16 | 32 | 64}, вы можете кодировать и сохранять их в XML или сохранять как пары имя / значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...