В группе безопасности моей компании мы обсуждаем, что является худшим из следующих вариантов управления закрытым ключом SSL.
Веб-серверу необходим доступ к закрытому ключу для операции шифрования. Этот файл должен быть защищен от несанкционированного доступа. В то же время сервер должен запускаться автоматически, без вмешательства человека (если он достаточно безопасен).
Мы обсуждаем три варианта:
Защитите ключ с помощью файловой системы.
Используйте ключ, защищенный паролем, и вводите ключ вручную при каждом перезапуске.
Используйте ключ, защищенный паролем, и сохраните ключ в файловой системе для автоматизации перезапуска.
Наши проблемы следующие:
При использовании опции 1 перезапуски выполняются автоматически, но компромисс может скопировать закрытый ключ и, поскольку он не защищен, может быть использован для расшифровки соединения или олицетворения наших серверов.
Вариант 2 кажется более безопасным, но он требует вмешательства человека, и системные администраторы обеспокоены, если это произойдет в нерабочее время. Кроме того, пароль должен быть предоставлен нескольким системным администраторам, и вы знаете, что общий секрет больше не является секретом.
Вариант 3 имеет лучшее из обоих предыдущих вариантов, но если кто-то имеет доступ к ключу, он также может иметь доступ к паролю :(, поэтому он не выглядит таким уж безопасным.
Как вы управляете безопасностью закрытых ключей ваших серверов? Есть ли другие (более безопасные) варианты?