Como gerar chaves para clientes enquanto mantém o ca.key safe

1

Estou configurando um pequeno serviço vpn para 10 - 100 expatriados, para que eles possam acessar sites normalmente bloqueados. Eu gostaria que eles pudessem se inscrever através do meu site, que após o pagamento o site irá gerar seu client.cert, client.key e client.conf e talvez um tp.key e será entregue em algum lugar seguro, ainda a ser decidido, método.

O problema é gerar esses eu preciso ter o ca.crt e ca.key para entregar. O ca.key deve ser mantido em um local ultra-seguro. Mantê-lo no meu servidor da Web parece estar causando problemas. Já que outros grandes provedores de VPN parecem ser capazes de gerar chaves instantaneamente, como eles estão fazendo isso enquanto mantêm a chave em um lugar seguro - ou não estão?

Por fim, eu estava pensando que talvez devesse manter o servidor openvpn e o site de inscrição em servidores diferentes - isso é necessário?

    
por adam 06.10.2009 / 13:06

2 respostas

3

Eu gerencio alguns serviços de PKI, então esse é um problema familiar.

Sempre que possível, armazenamos as chaves CA em uma máquina autônoma. Isso é interno à rede da nossa empresa e hospeda serviços limitados, se houver algum. Os processos de solicitação e assinatura são abstraídos uns dos outros por meio de um protocolo simples e um pouco de pressionamento manual do botão. Com o tempo, as soluções que usamos se encaixam em dois campos:

  • Algo tão simples quanto um POST HTTPS que envia o CSR a um recurso interno, solicita uma senha e retorna os dados do CRT.

  • APIs unidirecionais sob medida e um pouco mais sofisticadas para extrair solicitações e empurrar os certificados de volta. O que na verdade consiste em uma tríade de sistemas, cada qual dividida para executar uma parte muito específica do ciclo de vida da PKI - ponto de coleta do usuário final, gerenciamento de licenças e assinatura.

Francamente, eu não aconselharia seguir este último, a menos que você tenha muito tempo ou um bom business case. Você poderia replicar algo como o primeiro. Alternativamente, como diz womble , você pode achar que seu escopo não garante isso; se você estiver confiante sobre o seu serviço na web e decidir que os danos não seriam muito difundidos.

Uma dessas razões que o dano não seria tão disseminado é que o seu plano atual inclui a criação de chaves privadas do cliente você mesmo. Isso sugere que, caso o servidor da Web seja comprometido, mesmo sem a chave CA presente, alguém terá acesso a certificados de cliente válidos e chaves privadas associadas com acesso aos seus serviços de qualquer maneira. O que pode muito bem preceder a segurança da sua CA. O ideal é que os clientes criem e sejam responsáveis por suas próprias chaves privadas.

    
por 06.10.2009 / 16:38
2

suspeito de que as grandes autoridades de certificação que fornecem certificados SSL "instantâneos" provavelmente dependem de uma pessoa de suporte de baixa remuneração 24 horas por dia, ou (mais provavelmente) apenas colocando a chave de autoridade de certificação em uma máquina com conectividade e permitindo apenas um protocolo muito simples para solicitar a geração de certificados.

Dado que, no seu caso, você está gerando um certificado que é válido apenas para o seu site, e você tem um número relativamente pequeno de certificados para reemissão caso o pior ocorra, eu ficaria inclinado a deixar o certificado CA no servidor Web (se você tiver certeza de que a segurança do seu sistema é strong) ou se tiver uma segunda máquina bem protegida (nenhum serviço executando diferente de SSH para fornecer o comando de assinatura de chaves ao servidor da Web) se você Não tenho tanta certeza sobre a segurança do servidor da Web.

    
por 06.10.2009 / 14:04