Rafael Alcantara de PaulaSSL e Certificado Digital
Belo Horizonte, 31 de Janeiro de 2012
Índice1 Conceitos2 Fluxos3 Exemplos4 Apendice
ConceitosCriptografia
• Dados trafegados só são visíveis para as pontas que estão se comunicando.
• Caso o trafego seja interceptado; dado não pode ser lido.• Método para garantir : Criptografia.
Comunicação Segura – Principais Conceitos
Confidencialidade
• Garantia da “identidade” de quem esta enviando o dado.• Necessário identificar quando outro “finge” ser a origem.• Método para garantir : Certificado e Assinatura.
Confiabilidade
• Processo que converte um texto legível em ilegível de forma que possa ser convertido novamente para o formato original apenas pelas partes autorizadas.
• Utiliza métodos matemáticos com chaves.
Criptografia e Chaves
Criptografia
• Utiliza a mesma chave para criptografar e descriptografar o texto.
• Chave deve ser combinada entre as partes e mantida em sigilo.
Chave Simétrica
• Duas chaves : uma publica e uma privada.• A publica é distribuída para quem quiser enviar dados para este host.• A privada é mantida em sigilo.• O criptografado pela chave publica só pode ser descriptografado pela
privada.• O criptografado pela chave privada só pode ser descriptografado pela
chave publica.
Criptografia e Chaves
Chaves Assimétricas
• Hash de um documento; criptografado com uma chave privada.• Para validar a autenticidade do documento:
• Descriptografar a assinatura com a chave publica.• Gerar hash do mesmo documento.• Comparar os dois.
Assinatura Digital
ConceitosCertificado Digital
• Documento digital que certifica a autencidade de uma chave publica vinculada a um host.
• Precisa ser “assinado” por uma Entidade confiável do client.• Possui prazo de validade.
Certificado Digital
O que é
• Entidade confiável que gera e assina um certificado.• Assinatura é gerada com sua chave privada.• Chave publica da entidade é distribuída junto com softwares
básicos ou pode ser instalada.• A chave publica da CA é utilizada para validar um Certificado.
Certificate Authority
• Certificado de um host: 2 Anos• Certificado de CA: 10 a 20 Anos ( 10 é mais comum )
Expiração
• Identificação do certificado.• Chave publica do Host.• Validade do certificado.• Certificate Autority que assina o certificado.• Assinatura: Baseada na identificação do certificado e na chave
publica.
Certificado digital
Conteúdo
• Utilizada quanto o Server necessita certificar a identidade do Client.
• Troca da chave simétrica é feita utilizando uma combinação das chaves dos dois.
• Client criptografa a chave usando a sua chave privada e depois a publica do server.
• Geralmente utilizada como forma de autorização. Somente os clients em cujos certificados o server confia podem acessar o serviço.
Certificado digital
Certificação Mutua
FluxosAssinatura do Certificado
Assinatura do Certificado
1. Servidor gera a Solicitação de Certificado ( CSR ).
1. Info do certificado
2. Chave publica do Servidor.
2. CA assina Certificado utilizando a CSR e sua chave Privada.
3. Chave publica da CA é distribuída para os Clients.
4. Durante tentativa de acesso o server envia o seu certificado contendo a chave publica do server.
5. Client utiliza a chave publica da CA para validar a chave publica.
6. Se for validada; o client gera uma chave simétrica para a conexão ssl e criptografa com a chave publica do server para envia-lo.
Assinatura do Certificado
FluxosHandShake SSL
HandShake SSL
HandShake SSL com certificação Mutua
FluxosValidação do Certificado
Validação do Certificado
Exemplos
• CSR gerada em qualquer server com as informações do host.• Certificado deve ser gerado\assinado por uma entidade certificadora
internacional.• Certificado e chave privada são instalados no ponto que faz o SSL
(Appliance ou servidor).• Todos os browsers de desktop que possuírem a chave publica da CA
irão confiar no acesso.
Exemplos
Sites internet
• CSR gerada em qualquer server com as informações do host.• Certificado deve ser gerado\assinado pela CA interna.• Certificado e chave privada são instalados no ponto que faz o SSL
(Appliance ou servidor).• Certificado publico da CA interna deve ser instalado em todas as
maquinas da rede.
Sites intranet
Exemplos
• CSR gerada em qualquer server com as informações do host.• Certificado deve ser gerado\assinado pela CA interna.• Certificado e chave privada são instalados no ponto que faz o SSL
(appliance ou servidor).• Certificado publico da CA interna deve ser importado na plataforma
que faz acesso a aplicação segura .• Opcionalmente: aplicação que acessa o serviço pode ser configurada
para confiar no certificado.
Serviço interno – Acessado por outra aplicação.
Certificado gerado e assinado utilizando openssl
CSRopenssl req -new -days 730 -out rafael.dominio.req -keyout rafael.dominio.pem
• Comando irá gerar uma solicitação de certificado com validade de 2 anos(da solicitação).
• Será solicitado o preenchimento das informações do certificado.• Chave privada sera gravada no keyfile ( rafael.dominio.pem )
Certificadoopenssl ca -days 730 -keyfile /CAMINHOKEYSTORE/cakey.pem -cert /CAMINHOCHAVECA/cacert.pem -in rafael.dominio.req -out rafael.dominio.crt
• Gera o certificado com validade de 2 Anos ( rafael.dominio.crt )• Utiliza a chave privada da CA ( cakey.pem ) para assinar.• Recebe a CSR como entrada
Apendice
Apêndice
• Certificado é publico e entregue a todos que acessarem o serviço. É preciso assegurar que quem esta enviando o certificado é a pessoa que realmente deu origem.
• Envio da chave simétrica é feito utilizando a chave publica. Somente quem possuir a chave privada conseguirá lê-la.
• Utilizando a chave vinculada ao Certificado somente o dono da chave privada ira conseguir finalizar o handshake.
• Host pertence a assinatura para certificar que este é o host vinculado ao par de chaves.
Porque a assinatura deve ser baseada na chave publica + host
Apêndice
• Não é assinado por nenhuma entidade externa.• Nos dados do certificado consta o próprio host como CA.• Assinatura é validada com a mesma chave publica enviada.• Certificado não é validado e o client deve optar por aceitar.
Certificado Auto Assinado
• Repositório de chaves. Arquivo, geralmente protegido por senha, que contem a base de chaves de um servidor ou client.
• Contem as chaves privadas.• Aplicações java geralmente carregam as chaves a partir de algum
keystore. • O keytool ( distribuído com a JDK ) gera a chave num keystore
KeyStore
• Keystore contendo chaves publicas de hosts em que um client confia
TrustStore
Apêndice
• Protocolo• Todo o protocolo, inclusive os cabeçalhos, é criptografado• Protocolo criptografado é todo inserido no Payload da camada
superior.• Precisa ser descriptografado e recriptografado a cada ponto de
junção do protocolo.• Ex: https. todo o protocolo é criptografado, caso o pacote TCP
seja interceptado o payload é todo "ilegivel“• Mensagem
• Apenas o payload é criptografado.• Toda informação do protocolo é legível.• Não necessita de reempacotamento em junções do protocolo.• Ex: campos de senha ( apenas parte da mensagem ), get de
arquivo criptografado via FTP
Níveis de Criptografia
Apêndice
Níveis de Criptografia
Top Related