Почему закрытый ключ нельзя хранить дословно или в виде простого текста на локальном компьютере? - PullRequest
5 голосов
/ 15 июня 2009

Я читал это:

http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx

Первое предложение гласит: «Асимметричные закрытые ключи никогда не должны храниться дословно или в виде простого текста на локальном компьютере».

В чем проблема с этим? И как ее решает ключевой контейнер.

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

Спасибо. -Скотт

Обновление: Действительно ли "никогда" в цитируемом предложении действительно означает никогда. Или это означает, что я не должен хранить ключи для управления исходным кодом, если я не готов рискнуть, что хакер может получить ключи из нашей системы контроля версий или из резервной копии, взятой из нее.

Ответы [ 3 ]

4 голосов
/ 15 июня 2009

Да, "никогда" в цитируемом предложении действительно означает никогда .

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

Закрытый криптографический ключ не является общим секретом. Если вы не оставите его в секрете, он не сможет правильно выполнять свою работу.

3 голосов
/ 15 июня 2009

Распространенным решением является шифрование закрытых ключей в цепочке ключей, например используя некоторую схему шифрования на основе пароля.

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

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

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

2 голосов
/ 15 июня 2009

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

...