O apache pode usar um agente de chaves para armazenar chaves privadas para SSL?

4

Para o mod_ssl no apache funcionar, você precisa da sua chave privada RSA no servidor. Se a chave for protegida por frase-senha, você deverá inserir a senha toda vez que reiniciar o apache. Há SSLPassPhraseDialog , portanto, você pode armazenar a chave criptografada e fazer com que um programa passe a frase, mas isso não é mais seguro do que mantê-la descriptografada.

Eu estou querendo saber se o apache suporta, ou pode ser feito para suportar, usando um agente chave para operações que precisam da chave privada, muito parecido com como o ssh-agent do openssh funciona. Dessa forma, eu só preciso digitar a frase secreta para a chave sempre que o próprio servidor for reinicializado (supondo que o agente não morra de alguma forma durante as operações normais).

Eu percebo que a chave é armazenada na memória dentro do agente e obtida da memória, mas é difícil de fazer. Além disso, se o agente for realmente encaminhado pelo ssh de outro host e a chave estiver na memória, a obtenção da chave privada será impossível, se apenas o servidor da Web estiver comprometido.

Se a resposta for "não" no apache atualmente suportando isso, qual é a resposta "pode ser feito para suportar isso"? Não tenho certeza de como as operações-chave funcionam, e qual o nível de exposição necessário na chave privada, e imaginei que perguntaria antes de entrar no código para tentar hackear algo juntos.

    
por Corey Henderson 09.11.2011 / 02:07

1 resposta

2

A sua ideia é interessante à primeira vista, mas não é realmente relevante. Sua proposta apenas envia o problema de segurança para outro lugar.

Seu processo Apache2 terá que se comunicar com o "cache de chave privada" graças ao IPC ou API e este canal também deve ser protegido, ou então um invasor pode consultar o certificado facilmente.

Portanto, se você não tiver certeza de que a segurança do seu sistema de arquivos permitirá o certificado do servidor sem passphrase, esse mecanismo de cache não será mais seguro.

A propósito, existem apenas alguns motivos para reiniciar totalmente o Apache2 - como alterações na configuração SSL. Você deve preferir o comando apachectl graceful que não requer que o certificado seja recarregado e, portanto, você não será solicitado a inserir a senha novamente.

Outra ideia: se a segurança do seu servidor for bem monitorada graças ao IDS e ao verificador de integridade de arquivos e gerar um alerta caso seu sistema e seu certificado SSL tenham sido comprometidos, você poderá assumir o risco, contar com listas de revogação e deixe seu certificado sem proteção de frase secreta para facilitar sua vida.

    
por 22.11.2011 / 14:15