Existem duas formas de se obter um certificado digital: A primeira é comprando um de uma empresa como a verisign, a outra forma é fazendo seus próprios certificados.
Neste artigo veremos as vantagens e desvantagens de cada um dos meios e como usar o OpenSSL para criar a sua própria entidade certificadora.
Adquirir um certificado tem a vantagem de ser a forma mais simples de se obter um certificado. Tem como vantagem, também, o fato de que o certificado é aceito automaticamente pela maioria dos navegadores e programas de e-mail, o que evita complicação. Se o objetivo é garantir a sua identidade para desconhecidos (como, por exemplo, no uso de um site de internet), esta é a melhor opção. A desvantagem é que há um custo envolvido.
Criar a própria autoridade certificadora é uma forma barata de se obter certificados, e é ideal quando a autenticação e criptografia serão usadas para proteger recursos de sua empresa, aonde você tem o controle sobre aonde estes certificados serão usados. Por exemplo, eu posso fazer minha própria autoridade certificadora e emitir certificados que autentiquem redes VPN da minha empresa – crio um certificado para a matriz, um para a filial, e informo aos servidores que devem confiar na autoridade certificadora criada por mim. Assim como posso emitir certificados que autentiquem o login de meus funcionários.
É possível, também, usar estes certificados para “serviços externos”: Nada impede de assinar digitalmente os e-mails enviados pela empresa usando certificados emitidos pela sua própria autoridade certificadora, porém todos estes e-mails serão considerados como suspeitos de fraude pelo software de e-mail pois eles não reconhecerão o certificado como válido. O mesmo vale para sites seguros (https): Eu posso usar certificados emitidos por mim mesmo para meu site, porém meu certificado não será validado automaticamente. Isto pode ser resolvido de forma simples – basta disponibilizar o certificado da autoridade certificadora e pedir para que os usuários instalem este certificado – porém há uma grande chance do usuário simplesmente não ler a mensagem, e ao receber o erro, ler a palavra “vitima de fraude”, fechar a janela e passar, desesperadamente, o antivírus no pc! ehehehehe.
Criar um certificado digital usando OpenSSL é uma tarefa complexa: Primeiramente devemos criar um arquivo de configuração que determina diversas opções do certificado, depois é necessário criar um certificado auto-assinado para servir de Raiz da entidade certificadora, e só então começar a emitir certificados. É possível personalizar todas as opções do certificado, porém este é um longo trabalho. Pretendo, futuramente, criar um passo a passo sobre este processo, mas, por enquanto, vamos seguir o caminho fácil:
Existem diversas aplicações que facilitam a nossa vida, uma delas é o tinyca, que é apenas uma interface grafica para a entidade certificadora do OpenSSL, e pode ser encontrado no repositório do ubuntu ( execute apt-get install tinyca para instalar). Após instalar, execute-a, e a primeira que aparecerá pedirá informações sobre a nova autoridade certificadora. Para criar é simples: Preencha os dados da futura entidade certificadora, e clique em OK.
A próxima tela permite ajustar opções avançadas da autoridade. Deixe com os valores padrão e de OK novamente.
E pronto. A autoridade certificadora está criada. O próximo passo é criar alguns certificados digitais. É possível fazer isto de duas formas: A primeira forma é usar o próprio tinyCA para gerar as chaves, a requisição de certificado e o certificado em si. A segunda forma consiste em gerar as chaves e a requisição em outro computador, e usar o tinyCA para emitir o certificado.
A vantagem da primeira forma é que, além de ser prática a geração, permite que uma copia da chave privada fique armazenada na própria autoridade certificadora, e esta copia pode ser usada para recuperar a chave privada caso ela seja perdida (como se fosse um backup da chave). A desvantagem é que, a pessoa que tem acesso à autoridade certificadora pode agir maliciosamente e assinar digitalmente, criptografar e descriptografar dados de terceiros. E a desvantagem maior ainda, é que a chave privada precisa ser transmitida para o local de destino – e neste trajeto ela pode ser comprometida.
A segunda forma tem, como desvantagem, a ausência de um backup da chave (ou seja: Perdeu a chave, perdeu todos os dados criptografados com ela), porém, tem como vantagem o fato da chave privada nunca sair do local de origem – impossibilitando o comprometimento da chave. Por exemplo, alguns SmartCards são capazes de gerar a chave privada internamente e emitir a requisição de certificado, para posterior assinatura da entidade, sendo assim, a chave privada nunca deixa o SmartCard, tornando impossivel o “vazamento” desta chave.
Para criar uma chave privada e uma solicitação de certificado no tinyCA, vá para a aba “Requests”, clique com o botão direito em qualquer parte da janela e escolha New Request.
Em seguida preencha os dados da requisição
após clicar em OK, o pedido ja estará feito. Agora é necessário assinar o pedido. Selecione-o na lista de Requests, clique com o botao direito e em seguida, Sign Request.
Aparecerá a opçao de “Sign Request (Server)” ou “Sign Request (Client)”. Se a opção client for escolhida, o certificado poderá assinar e criptografar emails, se a opção server for escolhida, ele poderá ser usado para servidor de sites seguros (https).
Após isto, é necessário exportar os certificados.
O primeiro certificado a ser exportado é o certificado raiz da autoridade certificadora (CA) – este certificado precisa ser instalado em todos os computadores que irão trabalhar com os certificados emitidos por esta autoridade.
Clique na aba CA e em seguida no botão Export CA. Salve o arquivo em um diretório de sua escolha. Existem 3 formatos de exportação: PEM, DER e TXT.
PEM e DER são parecidos. A diferença é que o PEM codifica o certificado usando o padrão base64 (usa somente caracteres imprimíveis) e adiciona um cabeçalho e um rodapé que marcam o inicio e fim dos dados do certificado. DER exporta os mesmos dados do PEM porém em formato binário, sem este cabeçalho. O conteúdo é o mesmo, muda só a codificação.
TXT exporta o arquivo em um formato que humanos podem ler.
O arquivo em formato PEM pode ser importado pelo windows, basta renomear ele para que tenha a extensão .CER e começar a distribuição. O arquivo em formato DER também pode ser importado pelo windows. Como a extensão padrão do tinyCA para arquivo DER é .der, nao é necessário renomear.
Como criamos um certificado para e-mail, precisamos exportar-lo. Como a chave privada foi gerada pela autoridade certificadora, também é necessário exportar-la. Para isto basta ir na aba Certificates, selecionar o certificado e clicar em Export.
Novamente, há vários formatos. Como o nosso objetivo é gerar um arquivo que deve ser aberto somente pelo proprietário da chave/certificado, o recomendado para este caso é o PKCS#12. Ele é capaz de armazenar a chave publica, a privada, o certificado da CA além de criptografar toda estas informações. Repare que na opção PKCS#12 ele ja informa que será exportado o certificado e a chave (Certificate and key).
Uma vez que as opções estejam selecionadas, clique em Save.
A próxima janela terá 3 campos a serem preenchidos:
Key Password, que é a senha que protege a chave privada (definida durante a criação da mesma).
Export Password, que é a senha que protegerá todo este arquivo. Defina-a agora.
Friendly name, como o próprio nome diz, é um nome que facilite a identificação do certificado, por exemplo, “Certificado do fulano”.
Se a opção Without Passphrase estiver com yes, o arquivo não será criptografada.
E a opção Add CA Certificate to PKCS#12 structure adiciona o certificado da autoridade ao arquivo. Se estiver como “no”, o certificado da autoridade deverá ser encaminhado em separado. Por padrão, a extensão deste arquivo é .p12, também reconhecida pelo windows.
Clique em OK, e pronto, seu arquivo estará salvo.
O ultimo passo consiste em importar todos estes certificados no cliente.
O certificado da autoridade certificadora deve ser facilmente obtido por todas as pessoas que o desejarem. Distribuia no site de sua empresa, em um local facilmente identificável pelo usuário.
Já o segundo arquivo que geramos, o PKCS#12, deve ser enviado somente para o dono do certificado, pois ele também contém a chave privada.
Para instalar estes certificados no windows é simples:
Copie ambos os arquivos do certificado, não esqueça de renomear o que tem a extensão .pem para .cer !
De um clique duplo no arquivo correspondente ao certificado da autoridade certificadora, aparecerá uma janela que traz dados do certificado a ser importado:
Observe que este certificado contém dados da nossa autoridade, além da informação de que ele não é confiável. Isto deve-se ao fato de que este é um certificado auto-assinado, ou seja, a chave privada dele assina os dados dele mesmo.
Como não existe outro certificado que garanta a veracidade destas informações, cabe ao usuário informar ao sistema que este certificado é confiável.
Todo certificado raiz tem sua confiança explicitamente definida pelo usuário, e isso inclui os certificados marcados como confiáveis que acompanham o windows (ou linux…) – a diferença é que a microsoft (ou o responsável pela distribuição linux) já os definiram como confiável previamente.
Atente aos campos Issued (emitido para) to e Issued By (emitido por), que possuem os mesmos valores – isto é porque é um certificado auto -assinado.
Na aba detalhes, há mais informações, como chave publica, numeros de série, versão, etc.
E em Certification Path, é exibida toda a hierarquia de autoridades que validam este certificado.
Para instalar este certificado clique em “Install Certificate” na aba geral.
O assistente aparecerá, e ai é só clicar em avançar, avançar, finalizar, e responder SIM ao alerta de segurança:
Ao clicar em SIM, você estará informando ao windows que este certificado é confiavel, e automaticamente todos os certificados assinados por esta autoridade serão confiaveis.
Abra novamente o arquivo do certificado, e observe que ele passou a ser um certificado de uma autoridade certificadora confiavel:
Isso conclui a instalação do certificado da autoridade certificadora no sistema. Todos os certificados assinados por ela serão considerados como confiaveis.
O arquivo no formato PKCS#12 (com extensão .p12) que contém o certificado e chave privada, que pode ser usado para assinar digitalmente e-mails, deve ser instalado no computador do proprietário do e-mail certificado.
Basta dar um clique duplo que o mesmo assistente aparecerá. Quando o assistente questionar pela senha, use a senha definida no campo “senha de exportação” no tinyCA
A primeira opção “Enable strong private key protection” não descritografará a chave privada, o que causará o questionamento desta senha cada vez que ela precisar ser usada.
A segunda opção permite a futura exportação desta chave, permitindo levar-las para outro computador ou fazer backup.
Vamos analizar o certificado instalado:
Observe que, desta vez, os campos Issued to (Emitido para) e Issued by (Emitido por) possuem valores diferentes:
Isto deve-se ao fato deste certificado, emitido para “Meu nome” estar assinado por “Certificado raiz da autoridade certificadora”.
Observe que agora há uma hierarquia: O certificado do fulano (lembra que eu coloquei este nome como nome amigavel?) está abaixo do certificado raiz.
O outlook express tem integração automatica com o sistema de certificados do windows. Ao enviar um e-mail usando este software, baste clicar na opçao de assinatura digital, e automaticamente o email será enviado assinado:
Quando o email for recebido, o destinatário saberá que ele foi assinado digitalmente e que a mensagem nao foi adulterada – ele só precisará ter instalado o certificado da autoridade certificadora, caso contrario receberá um alerta de certificado inválido.
Peço desculpas pelas imagens serem todas em ingles: É que meus sistema operacionais são só em ingles (questão de gosto).
Retirado de: https://segurancainformacao.wordpress.com/2008/12/22/criando-uma-autoridade-certificadora-e-certificados-digitais/
Em: 31/01/2018
Adquirir um certificado tem a vantagem de ser a forma mais simples de se obter um certificado. Tem como vantagem, também, o fato de que o certificado é aceito automaticamente pela maioria dos navegadores e programas de e-mail, o que evita complicação. Se o objetivo é garantir a sua identidade para desconhecidos (como, por exemplo, no uso de um site de internet), esta é a melhor opção. A desvantagem é que há um custo envolvido.
Criar a própria autoridade certificadora é uma forma barata de se obter certificados, e é ideal quando a autenticação e criptografia serão usadas para proteger recursos de sua empresa, aonde você tem o controle sobre aonde estes certificados serão usados. Por exemplo, eu posso fazer minha própria autoridade certificadora e emitir certificados que autentiquem redes VPN da minha empresa – crio um certificado para a matriz, um para a filial, e informo aos servidores que devem confiar na autoridade certificadora criada por mim. Assim como posso emitir certificados que autentiquem o login de meus funcionários.
É possível, também, usar estes certificados para “serviços externos”: Nada impede de assinar digitalmente os e-mails enviados pela empresa usando certificados emitidos pela sua própria autoridade certificadora, porém todos estes e-mails serão considerados como suspeitos de fraude pelo software de e-mail pois eles não reconhecerão o certificado como válido. O mesmo vale para sites seguros (https): Eu posso usar certificados emitidos por mim mesmo para meu site, porém meu certificado não será validado automaticamente. Isto pode ser resolvido de forma simples – basta disponibilizar o certificado da autoridade certificadora e pedir para que os usuários instalem este certificado – porém há uma grande chance do usuário simplesmente não ler a mensagem, e ao receber o erro, ler a palavra “vitima de fraude”, fechar a janela e passar, desesperadamente, o antivírus no pc! ehehehehe.
Criar um certificado digital usando OpenSSL é uma tarefa complexa: Primeiramente devemos criar um arquivo de configuração que determina diversas opções do certificado, depois é necessário criar um certificado auto-assinado para servir de Raiz da entidade certificadora, e só então começar a emitir certificados. É possível personalizar todas as opções do certificado, porém este é um longo trabalho. Pretendo, futuramente, criar um passo a passo sobre este processo, mas, por enquanto, vamos seguir o caminho fácil:
Existem diversas aplicações que facilitam a nossa vida, uma delas é o tinyca, que é apenas uma interface grafica para a entidade certificadora do OpenSSL, e pode ser encontrado no repositório do ubuntu ( execute apt-get install tinyca para instalar). Após instalar, execute-a, e a primeira que aparecerá pedirá informações sobre a nova autoridade certificadora. Para criar é simples: Preencha os dados da futura entidade certificadora, e clique em OK.
A vantagem da primeira forma é que, além de ser prática a geração, permite que uma copia da chave privada fique armazenada na própria autoridade certificadora, e esta copia pode ser usada para recuperar a chave privada caso ela seja perdida (como se fosse um backup da chave). A desvantagem é que, a pessoa que tem acesso à autoridade certificadora pode agir maliciosamente e assinar digitalmente, criptografar e descriptografar dados de terceiros. E a desvantagem maior ainda, é que a chave privada precisa ser transmitida para o local de destino – e neste trajeto ela pode ser comprometida.
A segunda forma tem, como desvantagem, a ausência de um backup da chave (ou seja: Perdeu a chave, perdeu todos os dados criptografados com ela), porém, tem como vantagem o fato da chave privada nunca sair do local de origem – impossibilitando o comprometimento da chave. Por exemplo, alguns SmartCards são capazes de gerar a chave privada internamente e emitir a requisição de certificado, para posterior assinatura da entidade, sendo assim, a chave privada nunca deixa o SmartCard, tornando impossivel o “vazamento” desta chave.
Para criar uma chave privada e uma solicitação de certificado no tinyCA, vá para a aba “Requests”, clique com o botão direito em qualquer parte da janela e escolha New Request.
Aparecerá a opçao de “Sign Request (Server)” ou “Sign Request (Client)”. Se a opção client for escolhida, o certificado poderá assinar e criptografar emails, se a opção server for escolhida, ele poderá ser usado para servidor de sites seguros (https).
Após isto, é necessário exportar os certificados.
O primeiro certificado a ser exportado é o certificado raiz da autoridade certificadora (CA) – este certificado precisa ser instalado em todos os computadores que irão trabalhar com os certificados emitidos por esta autoridade.
Clique na aba CA e em seguida no botão Export CA. Salve o arquivo em um diretório de sua escolha. Existem 3 formatos de exportação: PEM, DER e TXT.
PEM e DER são parecidos. A diferença é que o PEM codifica o certificado usando o padrão base64 (usa somente caracteres imprimíveis) e adiciona um cabeçalho e um rodapé que marcam o inicio e fim dos dados do certificado. DER exporta os mesmos dados do PEM porém em formato binário, sem este cabeçalho. O conteúdo é o mesmo, muda só a codificação.
TXT exporta o arquivo em um formato que humanos podem ler.
O arquivo em formato PEM pode ser importado pelo windows, basta renomear ele para que tenha a extensão .CER e começar a distribuição. O arquivo em formato DER também pode ser importado pelo windows. Como a extensão padrão do tinyCA para arquivo DER é .der, nao é necessário renomear.
Como criamos um certificado para e-mail, precisamos exportar-lo. Como a chave privada foi gerada pela autoridade certificadora, também é necessário exportar-la. Para isto basta ir na aba Certificates, selecionar o certificado e clicar em Export.
Novamente, há vários formatos. Como o nosso objetivo é gerar um arquivo que deve ser aberto somente pelo proprietário da chave/certificado, o recomendado para este caso é o PKCS#12. Ele é capaz de armazenar a chave publica, a privada, o certificado da CA além de criptografar toda estas informações. Repare que na opção PKCS#12 ele ja informa que será exportado o certificado e a chave (Certificate and key).
A próxima janela terá 3 campos a serem preenchidos:
Export Password, que é a senha que protegerá todo este arquivo. Defina-a agora.
Friendly name, como o próprio nome diz, é um nome que facilite a identificação do certificado, por exemplo, “Certificado do fulano”.
Se a opção Without Passphrase estiver com yes, o arquivo não será criptografada.
E a opção Add CA Certificate to PKCS#12 structure adiciona o certificado da autoridade ao arquivo. Se estiver como “no”, o certificado da autoridade deverá ser encaminhado em separado. Por padrão, a extensão deste arquivo é .p12, também reconhecida pelo windows.
Clique em OK, e pronto, seu arquivo estará salvo.
O ultimo passo consiste em importar todos estes certificados no cliente.
O certificado da autoridade certificadora deve ser facilmente obtido por todas as pessoas que o desejarem. Distribuia no site de sua empresa, em um local facilmente identificável pelo usuário.
Já o segundo arquivo que geramos, o PKCS#12, deve ser enviado somente para o dono do certificado, pois ele também contém a chave privada.
Para instalar estes certificados no windows é simples:
Copie ambos os arquivos do certificado, não esqueça de renomear o que tem a extensão .pem para .cer !
Observe que este certificado contém dados da nossa autoridade, além da informação de que ele não é confiável. Isto deve-se ao fato de que este é um certificado auto-assinado, ou seja, a chave privada dele assina os dados dele mesmo.
Como não existe outro certificado que garanta a veracidade destas informações, cabe ao usuário informar ao sistema que este certificado é confiável.
Todo certificado raiz tem sua confiança explicitamente definida pelo usuário, e isso inclui os certificados marcados como confiáveis que acompanham o windows (ou linux…) – a diferença é que a microsoft (ou o responsável pela distribuição linux) já os definiram como confiável previamente.
Na aba detalhes, há mais informações, como chave publica, numeros de série, versão, etc.
O assistente aparecerá, e ai é só clicar em avançar, avançar, finalizar, e responder SIM ao alerta de segurança:
Abra novamente o arquivo do certificado, e observe que ele passou a ser um certificado de uma autoridade certificadora confiavel:
Isso conclui a instalação do certificado da autoridade certificadora no sistema. Todos os certificados assinados por ela serão considerados como confiaveis.
O arquivo no formato PKCS#12 (com extensão .p12) que contém o certificado e chave privada, que pode ser usado para assinar digitalmente e-mails, deve ser instalado no computador do proprietário do e-mail certificado.
Basta dar um clique duplo que o mesmo assistente aparecerá. Quando o assistente questionar pela senha, use a senha definida no campo “senha de exportação” no tinyCA
A segunda opção permite a futura exportação desta chave, permitindo levar-las para outro computador ou fazer backup.
Vamos analizar o certificado instalado:
Observe que, desta vez, os campos Issued to (Emitido para) e Issued by (Emitido por) possuem valores diferentes:
Isto deve-se ao fato deste certificado, emitido para “Meu nome” estar assinado por “Certificado raiz da autoridade certificadora”.
O outlook express tem integração automatica com o sistema de certificados do windows. Ao enviar um e-mail usando este software, baste clicar na opçao de assinatura digital, e automaticamente o email será enviado assinado:
Peço desculpas pelas imagens serem todas em ingles: É que meus sistema operacionais são só em ingles (questão de gosto).
Em: 31/01/2018
Anúncios
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.