Onde as empresas normalmente armazenam certificados SSL para uso futuro?

26

Recentemente, compramos um certificado SSL curinga para nosso domínio. Convertemos todas as certs em um keystore Java, mas agora estamos nos perguntando onde devemos armazená-las para uso posterior.

As pessoas usam o controle de origem como o BitBucket para esses tipos de arquivos ou apenas geram toda vez que é necessário, ou algo mais?

Estamos nos perguntando se há uma solução padrão ou alguma "prática recomendada" para armazenar esses certificados para uso futuro.

AmericanKryptonite
fonte
Faça backup deles criptografados na sua solução de backup tradicional. Não armazene as chaves privadas não criptografadas com nenhum provedor externo. Normalmente, incluo o problema e as datas de validade no meu certificado e nome de arquivo de chave para diferenciação.
Andrew Domaszek

Respostas:

22

Existem várias soluções:

Uma avenida é um cofre de chaves específico, um dispositivo baseado em hardware, um módulo de segurança de hardware ou um equivalente baseado em software.

Outra é simplesmente revogar a chave antiga e gerar um novo par de chaves pública / privada quando a situação surgir. Isso muda um pouco o problema de manter a segurança da chave e proteger o nome de usuário / senha da conta com o provedor de certificado e seus procedimentos para reemitir. A vantagem é que a maioria das organizações já possui uma solução privilegiada de gerenciamento de contas, por exemplo, 1 2

Existem várias maneiras de armazenamento off-line, desde a impressão de uma cópia impressa do par de chaves público e privado, incluindo a senha (mas que será uma cadela a restaurar), até simplesmente armazená-las em mídias digitais classificadas para armazenamento prolongado. .

Lugares realmente ruins são o GitHub, sua equipe WiKi ou um compartilhamento de rede (e você entendeu).

Atualização 2015/4/29: Keywhiz também parece uma abordagem interessante.

HBruijn
fonte
Estou curioso, o que você quer dizer com "equivalente baseado em software" para o HSM?
Atualmente, alguns fornecedores de dispositivos de hardware vendem seus dispositivos também na forma de dispositivo virtual, uma VM. Também existem coisas como o cofre de chaves Oracle e o SoftHSM de código aberto, para citar alguns.
HBruijn
Então, basicamente, que permite transformar um computador padrão em um HSM ...
1
"mas isso será uma cadela para restaurar" -> Este fez o meu dia! Brincadeiras à parte, você deve criptografá-lo antes de salvar.
Ismael Miguel
Por definição, você expõe sua chave pública a todos. Não há razão para criptografar isso. Mas isso também não é motivo para ser desleixado. A segurança é principalmente para a chave privada, que normalmente deve ser realmente criptografada / protegida por senha. Você deve ter o mínimo de cópias possível disso.
HBruijn
21

Não, os certificados SSL não entram no controle de origem, pelo menos não na parte da chave privada.

Trate-os como se fosse uma senha. Na verdade, as nossas são armazenadas exatamente da mesma maneira que nossas senhas - no KeePass. Permite anexar arquivos e é criptografado.

Conceder
fonte
3

Se você colocar a chave privada no controle de origem, qualquer pessoa que tenha acesso a ela poderá se passar por seu servidor. Se o seu servidor da Web não estiver usando o PFS (perfeito sigilo de encaminhamento), também será possível descriptografar qualquer tráfego SSL capturado com ferramentas de código aberto comumente disponíveis, como o Wireshark.

Você pode proteger a chave criptografando-a com DES ou AES com uma senha usando o OpenSSL. O OpenSSL está disponível para Linux, OSX e Windows.

O OpenSSL também pode remover a senha quando uma senha é inconveniente (por exemplo, em um servidor da Web que é iniciado automaticamente, mas não suporta a entrada automática de senhas).

Adicionando uma senha usando a criptografia AES (mais segura que o DES): -

openssl rsa -aes256 -in private.key -out encrypted.private.key

Removendo uma senha (você será solicitado a senha): -

openssl rsa -in encrypted.private.key -out decrypted.private.key
Complicado
fonte
1
Se você está fazendo as coisas corretamente , em seguida, mesmo a exposição da chave privada não deve levar ao comprometimento do tráfego passado, embora certamente iria fazer MITM'ing, a fim de tráfego futuro compromisso muito mais fácil.
a CVn
Oi @ Michael, Em teoria, mas infelizmente consegui descriptografar muitas capturas do Apache e do IIS, então só posso assumir que o PFS está desativado por padrão. Até muitas VPNs IPSEC estão desativadas.
Tricky
Por padrão, o PFS não está muito desligado, pois não é suportado por muitos conjuntos de cifras. Teste o servidor SSL Labs algum tempo; indica quais pacotes de criptografia suportam o FS. Obviamente, desabilitar todos os conjuntos de cifras que não sejam FS provavelmente deixará muitos clientes de fora, porque eles não suportam os conjuntos de cifras FS. Dar tratamento preferencial aos conjuntos FS deve funcionar, no entanto (mas eu aconselho fortemente a não pedir manualmente conjuntos de códigos, a menos que você saiba o que está fazendo e os pontos fortes e fracos deles).
um CVn
Obrigado pela recomendação no SSL Labs @Michael. Infelizmente, meus servidores não têm acesso à Internet, mas eu brinquei com cifras ativadas e, como você sugere, o PFS parece ser suportado apenas por algumas cifras. O PFS realmente me impede de decodificar traços de pacotes. Vou atualizar minha resposta de acordo.
Tricky
1

Outra opção, depois de ler sobre o KeyWhiz, foi o Vashi da HashiCorp. Não é apenas um gerenciador de senhas, mas uma loja Secrets, acredito que seja semelhante ao KeyWhiz. Está escrito no GO, e o cliente também funciona como servidor e se conecta a vários métodos de autenticação e back-end. O Vault também é de código aberto, com a opção Enterprise.

Como as Chaves e Certificados SSL são apenas arquivos de texto, você pode codificá-los com base64 e salvá-los como uma sequência no Vault, ou mesmo apenas com o texto no Vault. Não existe uma WebUI ou GUI, é toda a linha de comando ou orientada a scripts e possui uma API da web estável e muito boa para inicializar.

  1. https://www.vaultproject.io/
  2. https://github.com/hashicorp/vault
Pred
fonte
0

Eu recomendaria procurar um HSM offline (como um token de criptografia de hardware ou um CAC) para armazenar a chave privada e o certificado. Isso não apenas protege a chave privada contra comprometimentos acidentais, mas também fornece algumas descargas criptográficas básicas.

Se você tiver mais ativos criptográficos para gerenciar, recomendo procurar um software de Gerenciamento de Chaves e Certificados Corporativos, que pode automatizar renovações, acompanhar o ciclo de vida, automatizar o provisionamento para terminais, etc. CLOB em um banco de dados.

DTK
fonte
Por que os votos negativos? Não reclamando; curioso sobre o que há de errado com esta resposta.
Matt
Não sei por que foi votado. Os HSMs são projetados especificamente para armazenamento seguro de chaves e criptografia de alta velocidade. Só posso adivinhar que está relacionado à despesa ou à administração mais complexa. Todos os principais bancos usam HSMs para operações importantes em transações como Chip & Pin.
Tricky