Как сохранить закрытые ключи в защищенной памяти - PullRequest
3 голосов
/ 10 сентября 2011

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

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

Другой вариант Iмысль об использовании OpenSSL памяти BIO.Из того, что я понял, он защищает данные внутри себя (я понятия не имею, как он это делает, но вот что я слышал).

Как вы думаете, что лучше?Есть ли лучшие варианты?Спасибо!: -)

ps Я использую нативный C ++ и OpenSSL.

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

По определению вы ищете средства Безопасность через мрак . В этом случае пользователь имеет больше контроля над устройством, чем вы. В какой-то момент секрет должен существовать в виде простого текста, и злоумышленник (пользователь) может подключить отладчик и просмотреть это значение. Никогда не будет решения этой проблемы, это не то, что можно сделать безопасным.

0 голосов
/ 10 сентября 2011

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

Как кто-то предложил, у вас обычно есть какое-то другое устройство с поддержкой памяти, которое хранит ключ во время его использования. Поскольку это внешнее устройство, которое не сопоставлено с памятью процесса, ключ подкачки или дампа не получит. Есть дешевые и дорогие варианты. Один из них, который я использовал, - это nCipher HSM (Hardware Security Module), который выполняет все операции на борту. Ваш ключ разблокирован в памяти HSM, но все криптографические операции выполняются на устройстве. У них даже есть возможность поместить скомпилированный код в HSM для работы в безопасной среде. Это, однако, довольно дорого.

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