Trabalho de Segurança Padrões de Certificados e Autoridades Certificadoras Equipe: Cassiano C. Casagrande Rodrigo Pereira Certificação Digital O que é um certificado digital? Um certificado digital nada mais é do que um arquivo que certifica que uma entidade é ela mesma no campo digital, ou seja, certifica o usuário que àquela pessoa a quem se refere é ela mesma ou que é o serviço no qual é descrito. Acesso a Diretórios Criptogradia de redes sem fio (Wireless ou Wi-Fi) Ao implantar redes sem fio, é necessário criptografar os dados para evitar que os mesmos sejam recebidos por um terceiro não autorizado. Criptografar e/ou assinar digitalmente e-mails Uso em VPNs VPNs requerem o uso de certificados para serem implantadas. Implantação de sites seguros e privativos Assinatura digital Mecanismo que pode garantir que uma mensagem assinada só pode ter sido gerada com informações privadas do signatário. O mecanismo de assinatura digital deve: Assegurar que o receptor possa verificar a identidade declarada pelo transmissor (assinatura); Assegurar que o transmissor não possa mais tarde negar a autoria da mensagem (verificação). Autenticação Usuários e elementos devem mostrar credenciais para comprovar sua identidade; Possível através de digital certificates e outros documentos assinados. Autoridade Certificadora (CA) Distribuição de certificados; Emissão de assinatura de novos certificados; Renegociação Revogação de certificados; de certificados. Autenticação de chaves públicas Certificados Para emitir o certificado, a CA pode exigir que o usuário prove sua identidade através de documentação apropriada; Uma vez comprovada a identidade do usuário, ele fornece sua chave pública à CA que gera e assina o certificado; Autenticação de chaves públicas Certificados Um certificado atesta a veracidade de uma chave pública; O certificado é uma chave pública assinada por uma Autoridade de Certificação (CA) que atesta a autenticidade daquela chave pública como pertencente a uma determinada pessoa; Um dos padrões de certificado usualmente utilizados é definido pela norma ITU-T X.509 Padrões de Certificados e Autoridades Certificadoras Com o objetivo de estabelecer uma estrutura de certificados, ciclo de vida, disponibilização de informações estruturadas em larga escala levou o órgão ITU-T aos padrões de hierarquia dos protocolos da família X.500. Possibilidade de localizar, recuperar, inserir e remover qualquer tipo de informação de forma estruturada e distribuída, conhecido como serviço de diretórios. Padrões de Certificados e Autoridades Certificadoras Definição em forma de RFC – Request for Coments, ou Requisição de Mudanças. IETC(Internet Engineering Task Force). Documento que descreve os padrões de cada protocolo da internet previamente a serem considerados padrões de fato. Ex: RFC 791 – IP RFC 793 – TCP RFC 2616 – HTTP Padrões de certificados e Autoridades - RFC 3280 e 3279 Certificado X.509 Um certificado X.509 contém as seguintes informações: Versão: Identifica a versão do formato do certificado; Numero de serie: numero seqüencial único para cada certificado emitido por uma CA. Identificador: algoritmo usado para assinar o certificado (Ex.RSA) Nome do emissor: nome da CA Certificado X.509 Período de validade: data de inicio e data de termino da validade Nome do sujeito: Nome da entidade cuja a chave pública foi assinada Informações da chave pública: algoritmo, parâmetros e atributos da chave pública propriamente dita. Assinatura Digital: Assinatura gerada usando a chave pública da CA sobre as informações acima. Certificado X.509 PKIX Foram desenvolvidos para prover segurança ao padrão X.500. Estes padrões possuem dois formatos de certificados: Certificados: gerar a associação da entidade-fim (no original, End Entity) com a respectiva chave pública; Certificados de revogação: é bem semelhante à entidade fim e serve para divulgar uma lista dos certificados que foram revogados. PKIX X.509v1: tinha um número restrito limitado de campos nesta forma de utilização; além disso, alguns problemas de segurança foram identificados no padrão. Foi o adotado pelo padrão PEM (Privacy Enhanced Mail) em 1993. X.509v2: Após a revisão da primeira versão, nesta versão foram adicionados novos campos de acordo com a figura abaixo com o objetivo de possibilitar a reutilização de nomes iguais em diferentes certificados digitais. X.509v3: Foi implementado devido a ineficiência encontrada nas versões anteriores quanto a implementação do PEM. Desta forma na atual versão, de junho de 1997, foram adicionados campos de extensão, o que torna o certificado mais flexível e com uma expansão na utilização muito maior. ASN.1 - Abstract Syntax Notation One Utilizada sistematicamente para especificar objetos nos mais variados standards, incluindo os criptográficos. O ASN1 que introduz a definição de Object Identifieres (OIDs) e torna possível a comunicação da semântica da informação entre sistemas distintos. ASN.1 As recomendações da linha X.500 definem que todas as informações a serem armazenadas são primeiramente descritas segundo uma sintaxe padronizada chamada Abstract Syntax Notation One (ASN1). As formas mais usuais de codificação do ASN.1 são: DER (Distinguished Encoding Rules) BER (Basic Encoding Rules). PKCS - Public-Key Cryptography Standards É o conjunto de especificações criadas para padronizar os formatos e operações de criptografia. Existem vários padrões para os diversos algoritmos que serão mostrados a seguir. PKCS PKCS#1 RSA Encryption Standard - Especificação de padrão de dados para o protocolo RSA, incluindo o padrão para criptografia e assinatura digital RSA e padrão para estocagem de chaves públicas e privadas. PKCS# 3 Diffie-Hellman Key Agreement Standard – Este padrão descreve o método para implementação de chaves no Diffie-Hellman, cujo objetivo deste padrão é fornecer protocolos para estabelecimento de conexões seguras. PKCS#5 Password-Based Encryption Standard - Especificação de um padrão para proteção de dados para ser usar a criptografia baseada em senha com o DES. PKCS PKCS#7 Cryptographic Message Syntax Standard – Este padrão descreve um sintaxe geral para os dados serem criptografados e aplicados em assinaturas digitais e mensagens digitais. Tomando como base a RFC 2630. È utilizado para prover mensagens seguras em S/MIME. PKCS#8 Private-Key Information Syntax Standard – Especificação de um padrão para estocagem de chaves privadas, incluindo a vantagem de criptografá-las com PKCS#5. PKCS#10 Certification Request Syntax Standard - Especificação de um padrão para codificar requisições de certificados, incluindo o nome da pessoa que requisita o certificado e sua chave pública. PKCS PKCS #11 Cryptographic Token Interface Standard – Este padrão descreve a interface de programação chamada “Cryptoki" utilizada para operações criptográficas em hardwares: tokens, smart cards.É quão popular utilizar o PKCS#11 para prover o suporte aos tokens como oNetscape as aplicações de SSL e S/MIME. PKCS #12 Personal Information Exchange Syntax Standard – Este padrão define o formato para armazenamento e transporte de chaves privadas, certificados, entre outros. PKCS #13 Elliptic Curve Cryptography Standard – Padronização de algoritmos de criptografia baseado em curvas elípticas incluindo o formato, a geração de validação de chaves, assinaturas digitais, etc. PKCS #15 Cryptographic Token Information Format Standard – É o padrão que define o uso da tecnologia de criptografia baseada em tokens.