3

Click here to load reader

Unidade7 roteiro

Embed Size (px)

Citation preview

Page 1: Unidade7 roteiro

Curso Técnico de Manutenção e Suporte em InformáticaSegurança da Informação

Prof. Leandro AlmeidaCertificação Digital – Criando uma Autoridade Certificadora

OBS: Este roteiro foi gentilmente cedido pelo Professor Dênio Mariz.

1. Preparativos iniciaisUsaremos a ferramenta OpenSSL para gerar um par de chaves pública e privada e para

gerar um certificado digital para uma Autoridade Certificadora. Após isso iremos assinar requisições de certificados de clientes.

Para instalar o OpenSSL:

# apt­get install openssl

Vamos configurar o ambiente para nossa CA:

# cd /opt# mkdir CA# cd CA# mkdir newcerts private# echo '01' > serial# touch index.txt

Devemos criar fazer o download do arquivo openssl.cnf do site do professor com o comando:

#   wget   http://dl.dropbox.com/u/22560647/iDEZ/CTMSI/Seguran%C3%A7a%20da%20Informa%C3%A7%C3%A3o/openssl.cnf

2. Criando um par de chavesPara criar a chave privada digite:

# openssl genrsa ­des3 ­out private/CA.key 1024

As opções indicam o seguinte:

Page 2: Unidade7 roteiro

-genrsa indica ao OpenSSL que voce quer gerar um par de chaves-des3 indica que a chave privada deve ser criptografada. Vai pedir uma password e vaicifrar o arquivo que contém a chave privada com o algoritmo 3DES (-aes128 usaria o algoritmo AES).-out indica onde salvar a chave privada1024 indica o número de bits da chave gerada

Você pode verificar a chave criada com o comando:

# openssl rsa ­text ­in private/CA.key | more

Agora vamos gerar a chave pública com o comando:

# openssl rsa –in private/CA.key –pubout –out CA.pub

3. Criando um certificado raizPara criar um certificado raiz, use o comando:

#   openssl   req   ­new   ­x509   –key   private/CA.key   ­extensions v3_ca ­out CA_RAIZ.pem ­days 3650

As opções são as seguintes:-new -x509 pede para criar um novo certificado no formato X.509-extensions v3_ca indica extensão necessária para criar um certificado raiz-days 3650 indica a validade do certificado (10 anos)-out indica o nome do arquivo que conterá o certificado

Você pode vizualizar o certificado com o comando:

# openssl x509 ­in CA_RAIZ.pem ­noout ­text | more

4. Criando um pedido de assinatura de certificado(Certificate Signing Request – CSR)Um Pedido de Assinatura de Certificado (CSR) é um conjunto de informações de um

cliente que são enviados para um Certificate Authority (CA) para serem assinadas, ou seja, para queseja criado um certificado para esse cliente.

Aqui, faremos o papel do cliente solicitante e também do certificador. Ou seja, geraremos um CSR e depois nós mesmo assinaremos. Normalmente, um cliente não é também um certificador e, nesses casos, ele enviaria o CSR para um certificador e receberia o certificado.

Assuma que somos um cliente e queremos criar um certificado para um site na web. Então vamos criar um pedido de assinatura de um certificado (CSR) para o sitewww.SEUNOME.com.br com o comando:

#   openssl   req   ­new   ­nodes   ­out   www.SEUNOME.csr   –keyout www.SEUNOME.key

O arquivo www.SEUNOME.csr contém o CSR que deve ser enviado para o Certificador.

Page 3: Unidade7 roteiro

O arquivo www.SEUNOME.key contém a chave privada do cliente e deve ser mantida em segredo pelo cliente.

5. Criando um certificado a partir de um CSR(ou assinando um certificado)Agora assuma que somos a autoridade certificadora e que recebemos o CSR do cliente

(gerado no item anterior). Vamos criar o certificado para o cliente solicitante(www.SEUNOME.com.br) com o comando:

# openssl ca –out www.SEUNOME.pem –keyfile private/CA.key –cert CA_Raiz.pem –config openssl.cnf –infiles www.SEUNOME.csr

As opções são as seguintes:ca subcomando do openssl para geração de certificados-out o nome do certificado a ser gerado-keyfile indica o arquivo contendo a chave privada do certificador-cert indica o arquivo contendo o certificado raiz do certificador-config indica o nome do arquivo de configuração (com outras opções e defaults)-infiles os arquivos contendo os CSR a serem assinados

6. Testando o certificadoVamos simular um servidor WWW usando o OpenSSL. Ele ficará escutando na porta

4433 uma conexão e estabelecerá uma conexão SSL quando um browser contactá-lo. Para isso, digite o comando:

#   openssl   s_server   –cert   www.SEUNOME.pem   –www   –key www.SEUNOME.key

Agora abra um browser na mesma máquina e acesse o seguinte URL: https://localhost:4433 . Voce pode acessar de um browser em outra máquina, usando a URL https://IP:4433, onde IP é o endereço IP do host que está rodando o openssl s_server.