Почему закрытый ключ нельзя хранить дословно или в виде простого текста на локальном компьютере?
Я читал это:
http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx
Первое предложение гласит: "Асимметричные закрытые ключи никогда не должны храниться дословно или в виде простого текста на локальном компьютере".
В чем проблема с этим? И как ключевой контейнер решает это.
Причина, по которой я спрашиваю, заключается в том, что я хочу создать пару асимметричных ключей. Приложение, которое я пишу, зашифровывает информацию, которую оно отправляет мне обратно, с помощью открытого ключа. Я думал о том, чтобы сохранить пару открытый / закрытый ключ в нашей системе контроля версий, чтобы она была сохранена. Разве я не должен этим заниматься? Если нет, то как хранить закрытый ключ, чтобы он мог быть надежно сохранен?
Благодарю. -Скотт
Обновление: "никогда" в цитируемом предложении действительно означает "никогда". Или это означает, что я не должен хранить ключи для управления исходным кодом, если я не готов рискнуть, что хакер потенциально может получить ключи из нашей системы контроля версий или из резервной копии, взятой из нее.
3 ответа
Да, "никогда" в цитируемом предложении действительно означает " никогда".
Если ключ хранится в виде открытого текста, любой, имеющий доступ к этому файлу, может прочитать или продублировать ваш ключ, а затем использовать его, чтобы выдать себя за вас. Если вы по какой-либо причине выводите этот файл на экран (ищите ключ, открываете неверный файл, редактируете другую информацию в файле и т. Д.), То любой, кто проходит мимо, может увидеть его, потенциально запомнить его и использовать для олицетворения. вы.
Закрытый ключ шифрования не является общим секретом. Если вы не оставите это в секрете, оно не сможет выполнять свою работу должным образом.
Распространенным решением является шифрование закрытых ключей в цепочке для ключей, например, с использованием некоторой схемы шифрования на основе пароля.
Закрытый ключ необходим для того, чтобы расшифровать биты, зашифрованные открытым ключом, и наоборот. Поскольку открытый ключ является открытым по определению, вы хотите сохранить его секретный аналог.
Особенно, когда криптография с открытым ключом используется для цифровых подписей, важно хранить секретный ключ в секрете. Возможность создавать цифровые подписи, которые можно проверить с помощью вашего открытого ключа, по существу доказывает, что тот, кто сделал подпись, имел доступ к вашему личному ключу.
Если вы можете гарантировать, что никто, кроме вас, или программного обеспечения, которому вы доверяете, не смогут получить доступ к файлам на вашем компьютере, вам не нужно шифровать свои закрытые ключи. Но это жесткие предположения.
Потому что злоумышленник может прочитать ваш ключ, если он / она завладеет вашими файлами. Не уверен, что делает контейнер ключей, но я предполагаю, что он шифрует ключи перед записью их в файл.