Quero manter a confidencialidade da chave SSL do nosso site. Está armazenado em 2 pendrives, um em um cofre e outro que guardo em segurança. E então sou o único que o aplica ao servidor web para que fique totalmente seguro.
Exceto...
Pelo menos no IIS, você pode exportar a chave. Portanto, qualquer pessoa que seja 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: tenho administradores de sistema em quem confio totalmente. O que levou a isso foi a demissão de um deles (eles tinham uma hora de viagem para nossa empresa, 5 minutos de viagem para a nova). Embora eu confie neste indivíduo, assim como desativamos sua conta do Active Directory quando alguém sai, pensei que deveríamos ter uma maneira de garantir que eles não retivessem a capacidade de usar nosso SSL.
E o que me pareceu mais fácil é se eu sou o único que tem. Nosso certificado expira em janeiro, então esta era a 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 temos?
Uma pessoa com acesso administrativo (ou mesmo físico) a um servidor poderá extrair a chave privada. Seja por meio de exportação, detecção de memória ou outros truques semelhantes.
Seus administradores têm acesso às chaves privadas de seus servidores web. Aceite isso como fato e contorne isso. Se seus administradores de sistema não forem confiáveis, talvez você precise de administradores de sistema melhores ou, pelo menos, de menos administradores de sistema com acesso aos servidores da web. Se for 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 sistema.
Isso não quer dizer que você deva 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 possa exportar a chave privada, mas ainda possa manipular o próprio site de várias maneiras quase indetectáveis? Voltamos a confiar aqui e acho que esse é o cerne do problema que precisa ser resolvido.
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, eles ainda poderão obter a chave por outros meios.
É aqui que uma "CA intermediária" pode ajudar.
A "CA raiz" neste exemplo abaixo pertence a uma empresa SSL e não a você.
Você não tem controle direto das chaves criadas pela CA raiz, portanto, se uma chave assinada pela CA raiz for comprometida, você terá que passar por elas para revogá-la.
Mas:
Se você colocar outra CA no meio e fazer com que o certificado SSL comprado assine seu próprio certificado CA em vez de assinar diretamente o certificado do servidor, você poderá manter o controle dos certificados do servidor abaixo e emitir certificados de revogação ou fazer qualquer outra coisa se as coisas abaixo estiverem comprometidas .
Você mantém a chave privada da CA intermediária para si mesmo e os administradores não precisam vê-la.
Você também pode fazer isso:
Você pode se preparar para o comprometimento e gerar certificados com antecedência, para poder alternar rapidamente no caso de uma chave individual ser revogada. Os administradores não obtêm 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 seus administradores que você está pronto no caso de um comprometimento e que negócio engraçado em seu end não destruirá seu site.
Existem muitos artigos que sugerem armazenar as chaves privadas em algum lugar diferente do servidor, mas essas chaves privadas são para certificados de assinatura de código . Imagine que você tem as chaves em um computador off-line ao qual só você tem acesso, algum software é gravado, você obtém a chave privada do servidor off-line, assina o código e não precisa da chave privada novamente até precisar assinar algum código novamente.
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 permitem a comunicação HTTPS: a chave privada é necessária durante todo e qualquer handshake do servidor da web. Portanto, armazená-lo offline não funcionará.