Segurança na Webtele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca3.pdf · Title: Segurança na Web...
Transcript of Segurança na Webtele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca3.pdf · Title: Segurança na Web...
1
Certificados digitaisCertificados digitais
Certificados X.509Autoridade Certificadora (CA)PKI
2
Certificados DigitaisCertificados Digitais
Introdução• Muitos protocolos de criptografia usam
criptografia com chave pública, e necessitam de uma Infraestrutura de Chave Pública (PKI - Public Key Infraestructure)
• Um PKI é formado por um conjunto de Autoridades Certificadoras (CA - Certificate Authorities), que fornecem e invalidam certificados para usuários e outros CAs.
• Há muitas possibilidades de organização dos CAs (árvore hierárquica ou malha de CAs)
3
Gerência de Certificados DigitaisGerência de Certificados Digitais
Introdução• O termo certificado foi cunhado por Kohfelder,
significando um registro assinado digitalmente, contendo um nome de usuário e sua chave pública.– Assim assume-se que o propósito é vincular um
nome a uma chave pública
• Com este pressuposto, muitos PKIs foram criados com base em serviços de diretórios, tais como aqueles baseados na norma X.500 do ITU-T.
4
Gerência de Certificados DigitaisGerência de Certificados Digitais
Introdução
Não há uma padronização para a construçao de PKIs, e o IETF designou dois grupos de trabalho para estudar o problema:
– PKI X.509 WG (PKIX) recebeu a tarefa de propor uma PKI para Internet baseada no serviço X.509 do ITU-T (conforma figura ao lado).
– Simple PKI WG (SPKI) recebeu a tarefa de criar uma estrutura de certificação o mais simples possível.
5
Certificados digitaisCertificados digitais
Certificados X.509Servem para identificação de entidades, e distribuição de suas chaves públicas
– Entidades podem ser pessoas, organizações, softwares, computadores
Emitidos por organizações confiáveis– As aplicações que se amparam em certificados
digitais para autenticação devem verificar a validade do emissor dos certificados.
Atualmente o padrão está na versão 3– Esta versão apenas acrescenta campos à versão
2, que faz o mesmo em relação à versão 1.
6
Certificados digitaisCertificados digitais
Certificados X.509Subject: quem é identificado pelo certificado
Emissor: quem emitiu o certificado
Validade: até quando o certificado vale
Assinatura: feita pelo emissor (hash encriptado)
Chave pública: a chave de quem é identificado pelo certificado
7
Certificados digitaisCertificados digitais
Certificados X.509Subject formado por várias informações
O paísC
O estadoS
A localização da unidade organizacional (ex: a cidade)
L
A unidade organizacionalOU
A organizaçãoO
Common Name: um identificador para a entidade (ex: email, nome DNS do site)
CN
DescriçãoCampo
8
Certificados digitaisCertificados digitais
Certificados X.509
9
Certificados digitaisCertificados digitais
Certificados X.509
10
Certificados digitaisCertificados digitais
Autoridade certificadora (CA)Emissor de certificados
– Fundamental para estabelecer confiança entre uma comunidade de usuários
– Um CA assina certificados, de forma a atestar suas validades
– Se usuários confiam em um CA, então confiam em todos os certificados por ele emitidos
– CA pode ser público ou privado• CA público é reconhecido mundialmente• CA privado é reconhecido apenas dentro de uma
organização (emitem certificados estritamente para seus usuários)
11
Certificados digitaisCertificados digitais
Autoridade certificadora (CA)
12
Certificados digitaisCertificados digitais
Autoridade certificadora (CA)CA é identificado também por um certificado
– Certificados de CAs são auto-assinados– A chave pública do certificado CA verifica sua
própria assinatura– A verificação da assinatura não fornece
confiabilidade ao certificado• Qualquer um pode forjar um certificado CA
– Softwares que identificam entidades através de certificados possuem lista de CAs pre-catalogados
• Há possibilidade de catalogar novos CAs
13
Certificados digitaisCertificados digitais
Autoridade certificadora (CA)
14
Certificados digitaisCertificados digitais
Autoridade certificadora (CA)
15
Certificados digitaisCertificados digitais
Hierarquias de CAsHierarquias de certificados permitem delegar a emissão de certificados a outros CAs subordinados
– Se o número de certificados é grande, ter só um CA engargala o processo de certificação
– O CA do topo se chama CA raiz– Clientes precisam confiar somente no CA raiz
16
Certificados digitaisCertificados digitais
Hierarquias de CAs
17
Certificados digitaisCertificados digitais
Revogação de certificados (CRLs)Há a necessidade de revogar (invalidar) certificados
– Certificados podem ter sido emitidos com erros, ou terem as chaves privadas roubadas
– CAs mantêm listas de revogação de certificados (CRL)
– CRLs são listas de certificados emitidos pelo CA, e que não são mais válidos
– É responsabilidade dos clientes a verificação das CRLs
• Não há ainda mecanismos consolidados para sua verificação
• Portanto, não há ainda uma maneira prática de revogar certificados
18
Certificados digitaisCertificados digitais
Revogação de certificados Formato de um nodo deuma CRL
19
Certificados digitais - OpensslCertificados digitais - Openssl
Gerar certificado CA raiz:openssl req -x509 -new -newkey rsa:1024 -keyout ca.key -out ca.crt -extensions v3_ca -config c:\openssl\openssl.cnf -CAcreateserial
Gerar um Certificate Sign Request (CSR):openssl req -new -newkey rsa:1024 -keyout cert.key -sha1 -out cert.csr -config c:\openssl\openssl.cnf
Assinar CSR:openssl x509 -req -CA ca.crt -CAkey ca.key -in cert.csr -addtrust serverAuth -out cert.crt -days 365
20
Certificados digitais - OpensslCertificados digitais - Openssl
Gerar um CA secundário a partir de CSR:openssl x509 -req -CA ca.crt -CAkey ca.key -in ca2.csr -out cert.crt -days 365 -extfile c:\openssl\ca.cnf
Obs: em c:\openssl\ca.cnf deve haver uma extensão para habilitar o uso do certificado como CA:
basicConstraints=CA:TRUE
# PKIX recommendations harmless if included in all
# certificates.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
21
Certificados digitais - OpensslCertificados digitais - Openssl
Mostrar o conteúdo de um certificado:openssl x509 -in certificado.crt -text
Converter para formato PEM:openssl x509 -in cert.crt -out cert.pem -outform PEM
Converter para format PKCS12:openssl pkcs12 -export -in cert.pem -inkey cert.key -out cert.p12