270 likes | 407 Views
Belo Horizonte, 31 de Janeiro de 2012. Rafael Alcantara de Paula. SSL e Certificado Digital. Índice. Conceitos Fluxos Exemplos Apendice. Conceitos. Criptografia. Comunicação Segura – Principais Conceitos. Confidencialidade.
E N D
Belo Horizonte, 31 de Janeirode 2012 Rafael Alcantara de Paula SSL e Certificado Digital
Índice • Conceitos • Fluxos • Exemplos • Apendice
Conceitos Criptografia
Comunicação Segura – Principais Conceitos Confidencialidade • 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. Confiabilidade • 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.
Criptografia e Chaves Criptografia • 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. Chave Simétrica • Utiliza a mesma chave para criptografar e descriptografar o texto. • Chave deve ser combinada entre as partes e mantida em sigilo.
Criptografia e Chaves Chaves Assimétricas • 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. Assinatura Digital • 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.
Conceitos Certificado Digital
Certificado Digital O que é • 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. CertificateAuthority • 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. Expiração • Certificado de um host: 2 Anos • Certificado de CA: 10 a 20 Anos ( 10 é mais comum )
Certificado digital Conteúdo • Identificação do certificado. • Chave publica do Host. • Validade do certificado. • CertificateAutority que assina o certificado. • Assinatura: Baseada na identificação do certificado e na chave publica.
Certificado digital Certificação Mutua • 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.
Fluxos Assinatura do Certificado
Assinatura do Certificado • Servidor gera a Solicitação de Certificado ( CSR ). • Info do certificado • Chave publica do Servidor. • CA assina Certificado utilizando a CSR e sua chave Privada. • Chave publica da CA é distribuída para os Clients. • Durante tentativa de acesso o server envia o seu certificado contendo a chave publica do server. • Client utiliza a chave publica da CA para validar a chave publica. • 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.
Fluxos HandShake SSL
Fluxos Validação do Certificado
Exemplos Sites internet • 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. Sites intranet • 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.
Exemplos Serviço interno – Acessado por outra aplicação. • 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 (applianceou 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.
Certificado gerado e assinado utilizando openssl CSR • opensslreq -new -days 730 -out rafael.dominio.req-keyoutrafael.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 ) Certificado • opensslca -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
Apêndice Porque a assinatura deve ser baseada na chave publica + host • 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.
Apêndice Certificado Auto Assinado • 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. KeyStore • 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 TrustStore • Keystore contendo chaves publicas de hosts em que um client confia
Apêndice Níveis de Criptografia • 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 reempacotamentoem junções do protocolo. • Ex: campos de senha ( apenas parte da mensagem ), get de arquivo criptografado via FTP
Apêndice Níveis de Criptografia