Назад | Перейти на главную страницу

Может ли apache использовать ключевой агент для хранения закрытых ключей для SSL?

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

Мне интересно, поддерживает ли apache или может ли он поддерживаться, используя ключевой агент для операций, требующих закрытого ключа, так же, как как ssh-agent для openssh работает. Таким образом, мне нужно только вводить парольную фразу для ключа всякий раз, когда сам сервер перезагружается (при условии, что агент каким-то образом не умирает во время нормальной работы).

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

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

Ваша идея на первый взгляд интересна, но не совсем актуальна. Ваше предложение только выдвигает проблему безопасности в другом месте.

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

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

Кстати, есть всего несколько причин для полного перезапуска Apache2 - например, изменения конфигурации SSL. Вы должны предпочесть apachectl graceful команда, которая не требует перезагрузки сертификата, и поэтому вам больше не нужно вводить кодовую фразу.

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