ICP ou PKI  <ul><li>ICP  (Infra-estrutura de chaves públicas) ou  PKI  (Public key Infrastructure):  </li></ul><ul><ul><ul...
ICP ou PKI  <ul><li>AC  (Autoridade Certificadora) </li></ul><ul><ul><li>Pública </li></ul></ul><ul><ul><ul><li>Emite cert...
ICP ou PKI  <ul><li>X.509 </li></ul><ul><ul><li>Formato mais aceito para certificados, introduzido em 1988; </li></ul></ul...
ICP ou PKI  <ul><li>Certificate Revocation List (CRL) </li></ul><ul><ul><ul><li>Um grande problema para as CA's; </li></ul...
ICP ou PKI  <ul><li>Online Certificate Status Protocol (OCSP) </li></ul><ul><ul><li>RFC 2560 </li></ul></ul><ul><ul><li>Um...
ICP ou PKI  <ul><li>Tipos de Certificados </li></ul><ul><ul><li>Pessoais </li></ul></ul><ul><ul><ul><li>Conhecidos como Cl...
OpenSSL – Criando uma AC <ul><li>A - Configurações iniciais </li></ul><ul><ul><li>1) Definir o diretório raíz para a CA </...
OpenSSL – Criando uma AC <ul><li>A - Configurações iniciais </li></ul><ul><ul><li>4) Criar o arquivo que irá armazenar o n...
OpenSSL – Criando uma AC <ul><li>A - Configurações iniciais </li></ul><ul><ul><li>7) Informar a localização do arquivo de ...
OpenSSL – Criando uma AC <ul><li>B - Certificado Raíz para a AC </li></ul><ul><ul><li>1) Gerar um certificado raíz auto as...
OpenSSL – Criando uma AC <ul><li>C – Emitindo Certificados </li></ul><ul><ul><li>1) Requisitar um certificado da AC </li><...
OpenSSL – Criando uma AC <ul><li>C – Emitindo Certificados </li></ul><ul><ul><li>2) Visualizar o Certificado Requisitado <...
OpenSSL – Criando uma AC <ul><li>C – Emitindo Certificados </li></ul><ul><ul><li>3) Validar o certificado para uso </li></...
OpenSSL – Criando uma AC <ul><li>D - Criptografando um arquivo  </li></ul><ul><ul><li>1) Criptografando um arquivo com o C...
OpenSSL – Criando uma AC <ul><li>D - Criptografando um arquivo  </li></ul><ul><ul><li>2) Descriptografando um arquivo com ...
OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital  </li></ul><ul><ul><li>1) Assinando um arquivo com o Certificado v...
OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital  </li></ul><ul><ul><li>2) Criptografando o arquivo assinado </li><...
OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital  </li></ul><ul><ul><li>3) Descriptografando o arquivo </li></ul></...
OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital  </li></ul><ul><ul><li>4) Verificando a assinatura </li></ul></ul>...
OpenSSL – Criando uma AC <ul><li>F - Revogação de Certificados </li></ul><ul><ul><li>1) Revogando o certificado </li></ul>...
OpenSSL – Criando uma AC <ul><li>F - Revogação de Certificados </li></ul><ul><ul><li>2) Visualizar o banco de dados da AC ...
OpenSSL – Criando uma AC <ul><li>F – Revogação de Certificados </li></ul><ul><ul><li>4) Emitir a CRL (Lista de Certificado...
Trabalho  <ul><li>Elliptic Curve Cryptography </li></ul><ul><ul><ul><ul><li>Implementing Elliptic Curve Cryptography, by M...
Trabalho  <ul><li>Medida Provisória sobre ICP-Brasil </li></ul><ul><li>CA com LDAP </li></ul><ul><li>Cyrus SASL </li></ul>...
Upcoming SlideShare
Loading in …5
×

Certificação Digital - Aula2 Exercícios

3,996 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,996
On SlideShare
0
From Embeds
0
Number of Embeds
301
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Certificação Digital - Aula2 Exercícios

  1. 1. ICP ou PKI <ul><li>ICP (Infra-estrutura de chaves públicas) ou PKI (Public key Infrastructure): </li></ul><ul><ul><ul><li>É uma fonte confiável para obtenção de chaves públicas; </li></ul></ul></ul><ul><ul><ul><li>Garante a autenticidade de uma pessoa física ou jurídica; </li></ul></ul></ul><ul><li>Certificados </li></ul><ul><ul><ul><li>Principal elemento de uma ICP </li></ul></ul></ul><ul><ul><ul><ul><li>Contém a chave pública de uma pessoa física ou jurídica e a chave privada da autoridade certificadora; </li></ul></ul></ul></ul><ul><ul><ul><li>É valido por um período definido </li></ul></ul></ul>
  2. 2. ICP ou PKI <ul><li>AC (Autoridade Certificadora) </li></ul><ul><ul><li>Pública </li></ul></ul><ul><ul><ul><li>Emite certificados que podem ser obtidos publicamente; </li></ul></ul></ul><ul><ul><ul><li>Ex: VeriSign, Thawte, Certsign etc. </li></ul></ul></ul><ul><ul><li>Privada </li></ul></ul><ul><ul><ul><li>Emite certificados no âmbito de uma organização; </li></ul></ul></ul>
  3. 3. ICP ou PKI <ul><li>X.509 </li></ul><ul><ul><li>Formato mais aceito para certificados, introduzido em 1988; </li></ul></ul><ul><ul><li>Última revisão em 1996 x.509v3 </li></ul></ul><ul><ul><ul><li>X.509v1, x.509v2, x509v3 </li></ul></ul></ul><ul><ul><ul><li>v3 houve a padronização de 14 campos adicionais </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: Uso da Chave, Restrições de uso etc... </li></ul></ul></ul></ul>
  4. 4. ICP ou PKI <ul><li>Certificate Revocation List (CRL) </li></ul><ul><ul><ul><li>Um grande problema para as CA's; </li></ul></ul></ul><ul><ul><ul><li>É disponibilizada através de um arquivo para download; </li></ul></ul></ul><ul><ul><ul><li>Há muita latência no cliente em relação a verificação dos certificados revogados; </li></ul></ul></ul><ul><ul><ul><li>Solução mais comum </li></ul></ul></ul><ul><ul><ul><ul><li>Fragmentar o arquivo por faixas de seriais de certificados; </li></ul></ul></ul></ul><ul><ul><ul><li>Há muitas soluções para a distribuição de CRL </li></ul></ul></ul><ul><ul><ul><ul><li>Repositório em LDAP é o mais utilizado; </li></ul></ul></ul></ul>
  5. 5. ICP ou PKI <ul><li>Online Certificate Status Protocol (OCSP) </li></ul><ul><ul><li>RFC 2560 </li></ul></ul><ul><ul><li>Uma aplicação que utiliza OCSP passa para o servidor o serial do certificado; </li></ul></ul><ul><ul><ul><li>Respostas do servidor </li></ul></ul></ul><ul><ul><ul><ul><li>Good, Revoked, Unknown; </li></ul></ul></ul></ul><ul><ul><ul><li>Vulnerabilidades </li></ul></ul></ul><ul><ul><ul><ul><li>Ataque de DOS (denial of service); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Interceptação de mensagens de retorno do servidor; </li></ul></ul></ul></ul>
  6. 6. ICP ou PKI <ul><li>Tipos de Certificados </li></ul><ul><ul><li>Pessoais </li></ul></ul><ul><ul><ul><li>Conhecidos como Class1 Digital ID; </li></ul></ul></ul><ul><ul><ul><ul><li>http://www.verisign.com/ </li></ul></ul></ul></ul><ul><ul><ul><li>Mais baratos; </li></ul></ul></ul><ul><ul><ul><li>Limitados para a segurança de email; </li></ul></ul></ul><ul><ul><li>Assinatura de Código </li></ul></ul><ul><ul><ul><li>Utilizado por vendedores de software; </li></ul></ul></ul><ul><ul><li>Web Site </li></ul></ul><ul><ul><ul><li>Certificados de Servidores; </li></ul></ul></ul>
  7. 7. OpenSSL – Criando uma AC <ul><li>A - Configurações iniciais </li></ul><ul><ul><li>1) Definir o diretório raíz para a CA </li></ul></ul><ul><ul><ul><li>$ mkdir /home/usuario/exemploca </li></ul></ul></ul><ul><ul><ul><li>$ cd /home/usuario/exemploca </li></ul></ul></ul><ul><ul><li>2) Criar os diretórios que vão armazenar os certificados e a chave privada da CA </li></ul></ul><ul><ul><ul><li>$ mkdir certs private newcerts crl </li></ul></ul></ul><ul><ul><li>3) Proteger a chave privada da CA </li></ul></ul><ul><ul><ul><li>$ chmod g-rwx,o-rwx private </li></ul></ul></ul>
  8. 8. OpenSSL – Criando uma AC <ul><li>A - Configurações iniciais </li></ul><ul><ul><li>4) Criar o arquivo que irá armazenar o número serial dos certificados da CA </li></ul></ul><ul><ul><ul><li>$ echo '01' > serial </li></ul></ul></ul><ul><ul><li>5) Criar o arquivo que irá armazenar a cadeia de certificados </li></ul></ul><ul><ul><ul><li>$ touch index.txt </li></ul></ul></ul><ul><ul><li>6) Criando o arquivo de configuração da AC </li></ul></ul><ul><ul><ul><li>$ copiar o arquivo openssl.cnf Alterar o caminho para a pasta raíz da AC </li></ul></ul></ul>
  9. 9. OpenSSL – Criando uma AC <ul><li>A - Configurações iniciais </li></ul><ul><ul><li>7) Informar a localização do arquivo de configuração para o OpenSSL </li></ul></ul><ul><ul><ul><li>$OPENSSL_CONF=/home/leandro/projetos_openssl/exemploca/openssl.cnf </li></ul></ul></ul><ul><ul><ul><li>$ export OPENSSL_CONF </li></ul></ul></ul>
  10. 10. OpenSSL – Criando uma AC <ul><li>B - Certificado Raíz para a AC </li></ul><ul><ul><li>1) Gerar um certificado raíz auto assinado </li></ul></ul><ul><ul><ul><li>$ openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: Gera um Certificado no padrão x509, e ainda gera uma chave privada de 2048 bits para a AC (./private/cakey.pem) utilizando o algoritmo RSA. É recomendado no mínimo uma chave de 2048 bits para a chave da AC. O certificado auto assinado será armazenado no arquivo cacert.pem no formato PEM. </li></ul></ul></ul></ul><ul><ul><li>2) Exibir os detalhes do Certificado gerado </li></ul></ul><ul><ul><ul><li>$ openssl x509 -in cacert.pem -text -noout </li></ul></ul></ul>
  11. 11. OpenSSL – Criando uma AC <ul><li>C – Emitindo Certificados </li></ul><ul><ul><li>1) Requisitar um certificado da AC </li></ul></ul><ul><ul><ul><li>$ openssl req -newkey rsa:2048 -keyout testkey.pem -keyform PEM -out testreq.pem </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: testreq.pem => contém o certificado requisitado; testkey.pem => contém a chave privada; A chave pública correspondente é armazenada no certificado. A primeira frase secreta (PEM pass phrase) solicitada é usada para criptografar a chave privada. A segunda frase secreta (challenge password) solicitada é armazenada no certificado requisitado e é ignorada pelo OpenSSL. Algumas CA's fazem uso desta frase secreta. </li></ul></ul></ul></ul>
  12. 12. OpenSSL – Criando uma AC <ul><li>C – Emitindo Certificados </li></ul><ul><ul><li>2) Visualizar o Certificado Requisitado </li></ul></ul><ul><ul><ul><li>$ openssl req -in testreq.pem -text -noout </li></ul></ul></ul>
  13. 13. OpenSSL – Criando uma AC <ul><li>C – Emitindo Certificados </li></ul><ul><ul><li>3) Validar o certificado para uso </li></ul></ul><ul><ul><ul><li>$ openssl ca -in testreq.pem </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: Será solicitado a frase secreta da chave privada da AC (cakey.pem) para assinar o certificado solicitado. Uma confirmação de assinatura do certificado será solicitada. Também será solicitado uma confirmação de validação do certificado na AC. Após a confirmação será gerado um serial único para o certificado na AC (serial) e o banco de dados de certificados será atualizado (index.txt). O novo certificado será armazenado no diretório que está definido na variável (new_certs_dir) do arquivo openssl.cnf </li></ul></ul></ul></ul>
  14. 14. OpenSSL – Criando uma AC <ul><li>D - Criptografando um arquivo </li></ul><ul><ul><li>1) Criptografando um arquivo com o Certificado validado </li></ul></ul><ul><ul><ul><li>Criar o arquivo emailOriginal.txt com alguma informação. </li></ul></ul></ul><ul><ul><ul><li>$ openssl smime -encrypt -in emailOriginal.txt -des3 -out emailEncriptado.txt newcerts/01.pem </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: Obtém a chave pública do certificado X.509 (01.pem) para criptografar o conteúdo do arquivo (emailOriginal.txt) com o algoritmo 3DES. O resultado criptografado é armazenado no arquivo (emailEncriptado.txt). </li></ul></ul></ul></ul>
  15. 15. OpenSSL – Criando uma AC <ul><li>D - Criptografando um arquivo </li></ul><ul><ul><li>2) Descriptografando um arquivo com o Certificado validado </li></ul></ul><ul><ul><ul><li>$ openssl smime -decrypt -in emailEncriptado.txt -recip newcerts/01.pem -inkey testkey.pem -out emailDecriptado.txt </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: Obtém a chave pública do certificado X.509 (01.pem), verifica a congruência com a chave privada (testkey.pem). Sendo as chaves congruentes, descriptografa a mensagem S/MIME do arquivo emailEncriptado.txt utilizando a chave privada. O arquivo descriptografado é armazenado no arquivo emailDecriptado.txt. </li></ul></ul></ul></ul>
  16. 16. OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital </li></ul><ul><ul><li>1) Assinando um arquivo com o Certificado validado </li></ul></ul><ul><ul><ul><li>$ openssl smime -sign -in emailOriginal.txt -text -out emailAssinado.sgn -signer newcerts/01.pem -inkey testkey.pem -certfile newcerts/01.pem </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: A assinatura do certificado é obtida do arquivo (01.pem), e o conteúdo do arquivo (emailOriginal.txt) será assinado com a chave privada testkey.pem. O certificado será incluido na mensagem S/MIME . O arquivo assinado será armazenado em emailAssinado.sgn. </li></ul></ul></ul></ul>
  17. 17. OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital </li></ul><ul><ul><li>2) Criptografando o arquivo assinado </li></ul></ul><ul><ul><ul><li>$ openssl smime -encrypt -in emailAssinado.sgn -out emailAssinadoEncriptado.sgn -des3 newcerts/01.pem </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: O arquivo assinado (emailAssinado.txt) será criptografado com o algoritmo 3DES, utilizando ainda, a chave pública do usuário que é proprietário do certificado (01.pem). </li></ul></ul></ul></ul>
  18. 18. OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital </li></ul><ul><ul><li>3) Descriptografando o arquivo </li></ul></ul><ul><ul><ul><li>$ openssl smime -decrypt -in emailAssinadoEncriptado.sgn -recip newcerts/01.pem -inkey testkey.pem -out emailAssinadoDecriptado.sgn </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: O arquivo criptografado (emailAssinadoEncriptado.txt) será descriptografado com a chave privada do usuário (testkey.pem). O arquivo descriptografado e assinado será armazenado em emailAssinadoDecriptado.sgn </li></ul></ul></ul></ul>
  19. 19. OpenSSL – Criando uma AC <ul><li>E – Assinatura Digital </li></ul><ul><ul><li>4) Verificando a assinatura </li></ul></ul><ul><ul><ul><li>Desafio !!!!!!! </li></ul></ul></ul><ul><ul><ul><li>Verificar a assinatura do arquivo emailAssinadoDecriptado.sgn com o framework OpenSSL na linha de comando. </li></ul></ul></ul><ul><ul><ul><li>Enviar a solução para: </li></ul></ul></ul><ul><ul><ul><ul><li>[email_address] </li></ul></ul></ul></ul>
  20. 20. OpenSSL – Criando uma AC <ul><li>F - Revogação de Certificados </li></ul><ul><ul><li>1) Revogando o certificado </li></ul></ul><ul><ul><ul><li>$ openssl ca -revoke newcerts/01.pem </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: Será solicitado a senha secreta para a chave privada da AC, isso por questões de segurança, para verificar se o certificado que será revogado foi emitido pela AC, ou seja, se a assinatura do certificado é equivalente a chave privada da AC. O banco de dados da AC (index.txt) será atualizado informando que o certificado de número serial 01 foi revogado, isso através da letra (R) na linha referente ao certificado 01. </li></ul></ul></ul></ul>
  21. 21. OpenSSL – Criando uma AC <ul><li>F - Revogação de Certificados </li></ul><ul><ul><li>2) Visualizar o banco de dados da AC e observar que o certificado 01 foi Revogado; </li></ul></ul><ul><ul><ul><li>$ cat index.txt </li></ul></ul></ul><ul><ul><li>3) Vizualizar o certificado e observar as informações de data e hora referentes a validade do certificado; </li></ul></ul><ul><ul><ul><li>$ openssl x509 -in newcerts/01.pem -text -noout </li></ul></ul></ul>
  22. 22. OpenSSL – Criando uma AC <ul><li>F – Revogação de Certificados </li></ul><ul><ul><li>4) Emitir a CRL (Lista de Certificados Revogados) </li></ul></ul><ul><ul><ul><li>$ openssl ca -gencrl -out crl/lista.crl </li></ul></ul></ul><ul><ul><ul><ul><li>Descrição: Será solicitado a senha secreta da chave privada da AC para que a lista de certificados revogados (lista.crl) seja assinada. Com isso é garantido a autenticidade da CRL emitida pela AC. </li></ul></ul></ul></ul><ul><ul><li>5) Visualizar a CRL </li></ul></ul><ul><ul><ul><li>$ openssl crl -in crl/lista.crl -text -noout </li></ul></ul></ul>
  23. 23. Trabalho <ul><li>Elliptic Curve Cryptography </li></ul><ul><ul><ul><ul><li>Implementing Elliptic Curve Cryptography, by Michael Rosing (Manning) </li></ul></ul></ul></ul><ul><li>OCSP (Online Certificate Status Protocol) </li></ul><ul><ul><ul><ul><li>RFC 2560 </li></ul></ul></ul></ul><ul><li>Diffie Hellman </li></ul><ul><ul><ul><ul><li>RFC 2631 </li></ul></ul></ul></ul><ul><li>CA - X.509v3 </li></ul>
  24. 24. Trabalho <ul><li>Medida Provisória sobre ICP-Brasil </li></ul><ul><li>CA com LDAP </li></ul><ul><li>Cyrus SASL </li></ul><ul><li>MIT Kerberos V </li></ul>

×