Проблемы безопасности при принятии паролей против автоматической генерации пароля - PullRequest
1 голос
/ 01 января 2011

Я занимаюсь разработкой консольного приложения. Это приложение создает самозаверяющий сертификат и устанавливает его в хранилище сертификатов текущего компьютера. Шаги включают в себя: -

  1. Создать сертификат
  2. Создать файл pfx
  3. Установить файл pfx

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

Какие проблемы безопасности связаны с обоими сценариями?

Спасибо за все ответы. Срок действия пароля - только до тех пор, пока не будет создан файл pfx. Программа удаляет файл pfx после установки его в хранилище сертификатов Windows. Я полагаю, что в таком случае принятие пароля от пользователя не обеспечит никаких преимуществ по сравнению с автоматическим созданием пароля.

Я бы хотел еще добавить к этому вопросу.

Как только пароль станет доступен программе, как вы защитите этот пароль на весь срок его службы? Я использую .net и прочитал о безопасных строк в .net. Но безопасная строка должна быть построена из строки, которая не решает проблему.

фрагмент кода выглядит как

string password = AutoGenerateOrGetPassword (); GenerateCertificateAndInstall (пароль);

Как защитить пароль, который хранится в памяти при его жизни?

Ответы [ 2 ]

1 голос
/ 01 января 2011

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

Однако использование автоматически сгенерированного пароля гарантирует вам определенный уровень сложности пароля - это снижает вероятность атаки методом перебора.

Использование данного пароля будет означать, что кто-то (физически) знаетпароль.Вы не будете знать, насколько сложным будет введенный пользователем пароль.Предоставление пароля «AAAA», вероятно, будет менее безопасным, чем пароль, которому присваивается «W0R! $% 3D».

Собираетесь ли вы показать автоматически сгенерированный пароль, если это будет сделано автоматически?

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

0 голосов
/ 01 января 2011

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

Если pfx-файл должен быть заархивирован или перенесен по электронной почте / usbstick, я предпочитаю вариант «принимать пароли от пользователя», так как предоставляется форма ввода дляпароль плюс реализация некоторой логики, чтобы убедиться, что пароль достаточно силен, проще, чем организовать, чтобы пользователь получил свой pfx-файл и соответствующий пароль по двум независимым каналам.Отправка пароля pfx + в одном письме так же безопасна, как и отсутствие пароля вообще.

...