Como mantenho a chave SSL do nosso site confidencial?


12

Quero manter nossa chave SSL do nosso site confidencial. Ele é armazenado em 2 pen drives, um em um cofre e outro que eu mantenho seguro. E então eu sou o único que o aplica ao servidor da web para que ele seja totalmente seguro.

Exceto...

No IIS, pelo menos, você pode exportar a chave. Portanto, quem é administrador pode obter uma cópia da chave. Existe alguma maneira de contornar isso? Ou, por definição, todos os administradores têm acesso total a todas as chaves?

Atualização: Eu tenho administradores de sistemas nos quais confio plenamente. O que levou a isso foi um deles sair (eles tiveram uma hora de viagem para a nossa empresa, uma viagem de 5 minutos para a nova). Embora eu confie neste indivíduo, assim como desativamos a conta do Active Directory quando alguém sai, achei que deveríamos ter uma maneira de garantir que ele não retenha a capacidade de usar nosso SSL.

E o que me pareceu mais fácil é se eu sou o único que a possui. Nosso certificado expira em janeiro, então era hora de mudar a prática, se pudéssemos. Com base nas respostas, parece que não podemos.

Portanto, isso leva a uma nova pergunta - quando alguém que tem acesso ao certificado sai, é prática padrão obter um novo certificado e revogar o existente. Ou se a pessoa que saiu é confiável, continuamos com o certificado que possuímos?


5
Mesmo que o servidor que você usa não tenha permitido exportá-lo, ele ainda precisa estar na memória e pode ser extraído. A única opção que vejo é usar um módulo de criptografia de hardware, como um cartão inteligente, ser apenas três com a chave, mas qualquer pessoa com acesso físico à máquina pode roubá-lo. Você ainda pode revogá-lo se for roubado.
user2313067

27
Se você não pode confiar em seus administradores, você tem um problema de RH.
Michael Hampton

5
Por que você copiou a chave para essas mídias USB? A chave secreta usada com SSL não precisa estar em outros lugares além do servidor em que é usada. (É claro que pode ser incluído nas cópias de backup do servidor, mas é menos importante fazer backup dessa chave do que os outros dados no servidor, pois você sempre pode gerar uma nova chave secreta e assiná-la como você fez com o antigo).)
kasperd

Não sou especialista nesta área, mas não existem módulos de criptografia de hardware que contêm uma chave que permanece dentro deles e apenas as solicitações de assinatura entram e as assinaturas saem? Soldar ou colar um no servidor pode ser a solução.
Matega

Respostas:


26

Uma pessoa com acesso administrativo (ou mesmo físico) a um servidor poderá extrair a chave privada. Seja exportando, cheirando a memória ou outros truques desse tipo.

Seus administradores têm acesso às chaves privadas dos seus servidores web. Aceite isso como fato e resolva isso. Se seus administradores de sistemas não forem confiáveis, você poderá precisar de administradores de sistemas melhores ou pelo menos menos administradores de sistemas com acesso aos servidores da web. Se é uma questão de paranóia de segurança de gerenciamento, pode haver um problema mais profundo em relação à capacidade de confiar em um administrador de sistemas.

Isso não quer dizer que você deve permitir que todos tenham acesso à chave privada. Sempre deve haver uma necessidade de acesso antes que o acesso seja concedido. Com isso em mente, você tomará medidas extremas para garantir que um administrador de sistema com controle total de um site não exporte a chave privada, mas ainda possa manipular o próprio site de várias maneiras quase não rastreáveis? Voltamos a confiar aqui e acho que esse é o núcleo do problema que precisa ser resolvido.


2
+1 em "Seus administradores têm acesso às chaves privadas dos seus servidores da Web. Aceite isso como fato e contorne-o". Perguntas com o efeito "Como impeço as pessoas com direitos de administrador de executar o X?" indica um problema mais profundo para mim. Muito desconfiado ou muito negligente em conceder direitos de administrador.
Brandon

2
Eu atualizei com o porquê eu perguntei. Não é uma preocupação com os administradores de sistemas, é um desejo de seguir as melhores práticas.
David Thielen

11

Ao importar a chave, você tem a opção de marcá-la como não exportável. Isso impedirá que você use o IIS ou o certificado MMC para exportá-lo. Pelo menos, torna um pouco mais difícil.

No entanto, se eles tiverem uma conta de administrador na máquina ou tiverem acesso físico a ela - ainda poderão obter a chave por outros meios.



0

É aqui que uma "autoridade de certificação intermediária" pode ajudar.

A "CA raiz" neste exemplo abaixo é de propriedade de uma empresa SSL e não você.

Você não tem controle direto das chaves criadas pela CA raiz; portanto, se uma chave assinada pela CA raiz for comprometida, você precisará examiná-las para revogá-la.

Mas:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key for site

Se você colocar outra autoridade de certificação no meio e o seu certificado SSL adquirido assinar seu próprio certificado de autoridade de certificação, em vez de assinar diretamente seu certificado de servidor, você poderá manter o controle dos certificados de servidor abaixo e emitir certificados de revogação ou fazer o que mais, se as coisas abaixo dele estiverem comprometidas .

Você mantém a chave privada da CA intermediária e os administradores não precisam vê-la.

Você também pode fazer isso:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key 1 for site
   +-Server Key 2 for site 
   +-Server Key 3 for site

Você pode se preparar para o comprometimento e gerar certificados antecipadamente, para poder alternar rapidamente no caso de uma chave individual ser revogada. Os administradores não recebem chaves para 2 ou 3 até o comprometimento de 1. Você pode colocar um aviso em seu site sobre esse esquema, e isso também comunicaria aos administradores que você está pronto em caso de comprometimento e negócios engraçados. final não destruirá seu site.


1
Isso não causaria avisos de SSL para usuários de uma CA não confiável?
precisa

1
Acho que isso só funcionaria bem se você pudesse instalar a CA como um certificado confiável no navegador do usuário, como em uma configuração da intranet corporativa. Eu sabia que algo estava errado com o meu esquema brilhante. :(
LawrenceC

0

Existem muitos artigos que sugerem armazenar as chaves privadas em algum lugar que não seja o servidor, mas essas chaves particulares são para certificados de assinatura de código . Imagine que você possui as chaves em um computador offline ao qual apenas você tem acesso, algum software é gravado, você obtém a chave privada do servidor offline, assina o código e não precisa da chave privada novamente até precisar assinar alguns código novamente.

A melhor solução sempre foi e continuará armazenando sua chave offline. Como você faz isso depende de você (existem alguns métodos), lembre-se de mantê-lo bem guardado em um escritório seguro ou em algum lugar que não seja fácil para alguém embolsar.

Leia mais em: https://www.thesslstore.com/blog/heres-what-happens-when-your-private-key-gets-compromised/

Por outro lado, os certificados SSL são para sites que habilitam a comunicação HTTPS: A chave privada é necessária durante todo e qualquer aperto de mão pelo servidor da web. Portanto, armazená-lo offline não funcionará.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.