Importa onde os arquivos CSR e chave para certificação SSL são gerados?

17

Eu tenho que criar um CSR para um certificado SSL curinga. Algumas perguntas frequentes de provedores de SSL dizem que eu deveria gerar o arquivo CSR na máquina onde eu quero instalar o certificado? Meu entendimento é que não importa onde eu gero o CSR ou o arquivo de chave, desde que eu mova os arquivos para o local certo mais tarde.

Então, minha pergunta é: importa onde o CSR e os arquivos de chave para a certificação SSL são gerados?

    
por Jan Deinhard 19.03.2014 / 09:10

2 respostas

21

Seu entendimento está correto. Todas as outras coisas sendo iguais, não importa; mas há rugas.

Uma vantagem de gerá-los no servidor em questão é minimizar a chance de a chave ser comprometida em trânsito. Contanto que você use uma máquina segura para gerá-los e um método seguro (imune a ataques MITM) para movê-los para o servidor, você escapará disso. Não se esqueça de apagá-los com segurança no sistema de geração, a menos que você pretenda deliberadamente manter cópias e esteja seguro de acordo.

Uma vantagem para gerar em uma máquina separada: geralmente, essa será sua área de trabalho. O pool de entropia em uma máquina desktop é quase sempre mais profundo do que em um servidor autônomo, porque a área de trabalho possui uma grande fonte de aleatoriedade conectada através dos cabos de teclado e mouse (ou seja, você!). A escassez de entropia pode fazer com que a geração de chaves demore muito tempo ou fazer com que use a saída /dev/urandom PRNG, dependendo de quão paranóica é a ferramenta geradora, e isso pode levar a chaves mais fracas; máquinas desktop tendem a não ter esse problema.

Edições posteriores : de acordo com uma discussão em outro lugar , que está linkada aqui, dois pontos foram levantados . Em primeiro lugar, você poderia ir para uma casa a meio caminho gerando a entropia na sua área de trabalho com, por exemplo, dd if=/dev/random bs=1k count=10 of=/tmp/entropy.dat , copiando essa para o servidor remoto e alimentando-a processo de geração de chaves diretamente ou pelo aprofundamento do pool de entropia do servidor remoto. Eu ainda não encontrei uma maneira de fazer o primeiro, e fazer este último geralmente requer privilégio, que - se o canal entre você e o servidor remoto não é seguro, que é o ponto de toda a objeção - também é inseguro.

Em segundo lugar, o estimável mjg59 levanta a questão dos módulos de segurança de hardware - isto é, dispositivos nos quais você coloca, ou dentro dos quais você criar, chaves privadas, e que, em seguida, executa operações-chave sem nunca deixar a chave para fora. Esse é um ponto excelente, mas fora do escopo desta questão.

Mas o resultado mais geral do tópico - que você deve ter um modelo de ameaça preciso e escolher suas respostas de maneira apropriada - é bom. Meu modelo de ameaça é que meus canais de comunicação são seguros, mas meus endpoints estão sob ataque inteligente. Isso significa que gerarei keypairs SSL entropicamente strongs e os distribuirão. Se acontecer de o meu modelo ser impreciso e os meus comunicados se mostrarem vulneráveis, imediatamente saberei que todos os meus pares de chaves SSL estão comprometidos. Se o seu modelo de ameaça for diferente, você deve adaptar suas práticas de acordo.

    
por 19.03.2014 / 09:19
7

Isso é um pouco importante.

Se você gerá-los em uma outra máquina, as chaves estarão vulneráveis na máquina geradora e, em seguida, no servidor. Se você usa uma máquina infectada para gerá-los, alguns vírus podem roubar as chaves, mesmo antes de serem movidos para o servidor seguro.

Se você gerá-los em um servidor seguro e apenas mover o CSR / cert, as chances de alguém / algo obter a chave privada é menor do que no primeiro caso, já que a chave privada está localizada em apenas uma máquina.

    
por 19.03.2014 / 09:15