У нас в групі безпеки моєї компанії обговорюється питання про те, що гірше наступних варіантів управління приватним ключем SSL.
Для операції шифрування веб-серверу потрібен доступ до приватного ключа. Цей файл повинен бути захищений від несанкціонованого доступу. При цьому сервер повинен запускатися автоматично, без втручання людини (якщо він достатньо безпечний).
Ми обговорюємо три варіанти:
Захистіть ключ за допомогою файлової системи.
Використовуйте захищений паролем ключ і введіть його вручну при кожному перезапуску.
Використовуйте захищений паролем ключ і зберігайте ключ у файловій системі для автоматизованого перезавантаження.
Наші проблеми:
З варіантом 1 перезавантаження автоматичні, але компроміс може скопіювати приватний ключ, і, як це не захищено, може використовуватися для децифірування зв'язку або видання себе за сервер.
Варіант 2 видається більш безпечним, але він потребує втручання людини, а сисадміни занепокоєні, якщо це станеться неробочим часом. Крім того, паролем слід ділитися декількома системними адміністраторами, і ви знаєте, що спільний секрет більше не є секретом.
Варіант 3 має найкращі з обох попередніх варіантів, але якщо хтось має доступ до ключа, він також може мати доступ до пароля :(, тому він взагалі не здається таким захищеним.
Як ви керуєте безпекою приватних ключів ваших серверів? Чи є інші (більш безпечні) варіанти?