17
Certificado Digital Joel Hartmann Junior Curso de Especialização em Redes e Segurança de Sistemas Pontifícia Universidade Católica do Paraná Curitiba, novembro de 2009 1 – Introdução Certificado Digital é um conjunto de técnicas e processos que provem mais segurança às transações e comunicações eletrônicas, sua utilização proporciona: Privacidade: Garantia de que as informações trocadas nas transações eletrônicas não serão lidas por terceiros. Integridade: Garantia de que as informações trocadas nas transações eletrônicas não foram alteradas desde que foram assinadas. Autenticidade: Garantia de identidade da origem e destino da transação. Assinatura Digital: Assinatura eletrônica baseada em métodos criptográficos que é gerada a partir de um conjunto de regras e que atribui ao documento a possibilidade de confirmar, com segurança, sua integridade e a identificação do autor do documento eletrônico. Não Repúdio: É a garantia de que somente o titular do Certificado Digital poderia ter realizado determinada transação, impedindo que os integrantes de uma transação venham a contestar ou negar uma transação após sua realização. Esse conceito de segurança da informação envolve não só os aspectos tecnológicos, mas também uma metodologia de controle e autorizações que varia de acordo com as necessidades e organização da autoridade máxima certificadora. Com esse procedimento, é possível assinar e autenticar documentos pelo computador, de qualquer local do mundo, via internet. Utilizando a certificação digital, é possível evitar que dados sejam adulterados nas comunicações realizadas via internet. Também é possível saber, com certeza, quem foi o autor de uma transação ou de uma mensagem, ou ainda, manter dados confidenciais protegidos contra a leitura por pessoas não autorizadas. A maioria dos esquemas de assinaturas digitais envolve, além do emissor e do receptor, duas outras entidades, nomeadas tipicamente de: Autoridade Certificadora (AC) e Autoridade de Registro (AR), presentes em suas responsabilidades está a tarefa de garantir que uma assinatura realmente pertença a um usuário, impedindo atos mal intencionados por parte de outras pessoas, sendo assim qualquer conteúdo eletrônico que foi assinado digitalmente tem garantia de autenticidade e respaldo jurídico. Com a certificação digital podemos garantir o conteúdo de uma mensagem, sua autoria e a data que foi assinada. Além disso a certificação digital pode ser usada também como: Garantia de sigilo e privacidade de sites; Controle de acessos e aplicativos; Assinaturas de formulários; Garantia de sigilo e privacidade de email; 1

Certificado Digital - ppgia.pucpr.brjamhour/RSS/TCCRSS08A/Joel Hartmann... · Uma ferramenta muito interessante e largamente utilizada é o OPENSSL utilizado para ... (“Aperto de

Embed Size (px)

Citation preview

Certificado Digital

Joel Hartmann Junior

Curso de Especialização em Redes e Segurança de Sistemas

Pontifícia Universidade Católica do Paraná

Curitiba, novembro de 2009

1 – Introdução

Certificado Digital é um conjunto de técnicas e processos que provem mais segurança às transações e comunicações eletrônicas, sua utilização proporciona:

Privacidade: Garantia de que as informações trocadas nas transações eletrônicas não serão lidas por terceiros.

Integridade: Garantia de que as informações trocadas nas transações eletrônicas não foram alteradas desde que foram assinadas.

Autenticidade: Garantia de identidade da origem e destino da transação.Assinatura Digital: Assinatura eletrônica baseada em métodos criptográficos que é gerada

a partir de um conjunto de regras e que atribui ao documento a possibilidade de confirmar, com segurança, sua integridade e a identificação do autor do documento eletrônico.

Não Repúdio: É a garantia de que somente o titular do Certificado Digital poderia ter realizado determinada transação, impedindo que os integrantes de uma transação venham a contestar ou negar uma transação após sua realização.

Esse conceito de segurança da informação envolve não só os aspectos tecnológicos, mas também uma metodologia de controle e autorizações que varia de acordo com as necessidades e organização da autoridade máxima certificadora. Com esse procedimento, é possível assinar e autenticar documentos pelo computador, de qualquer local do mundo, via internet.

Utilizando a certificação digital, é possível evitar que dados sejam adulterados nas comunicações realizadas via internet. Também é possível saber, com certeza, quem foi o autor de uma transação ou de uma mensagem, ou ainda, manter dados confidenciais protegidos contra a leitura por pessoas não autorizadas.

A maioria dos esquemas de assinaturas digitais envolve, além do emissor e do receptor, duas outras entidades, nomeadas tipicamente de: Autoridade Certificadora (AC) e Autoridade de Registro (AR), presentes em suas responsabilidades está a tarefa de garantir que uma assinatura realmente pertença a um usuário, impedindo atos mal intencionados por parte de outras pessoas, sendo assim qualquer conteúdo eletrônico que foi assinado digitalmente tem garantia de autenticidade e respaldo jurídico.

Com a certificação digital podemos garantir o conteúdo de uma mensagem, sua autoria e a data que foi assinada. Além disso a certificação digital pode ser usada também como:

• Garantia de sigilo e privacidade de sites;• Controle de acessos e aplicativos;• Assinaturas de formulários;• Garantia de sigilo e privacidade de email;

1

• Identificação do remetente;• Assinaturas de mensagens impossibilitando o repúdio.O papel de uma AR (Autoridade de Registro) é requisitar a emissão de certificados digitais

de uma AC (Autoridade Certificadora), podendo também uma AR ser uma AC e vise-versa.No Brasil a infra-estrutura de Chaves Públicas (ICP-Brasil) é o orgão gestor, que tem como

principal função definir um conjunto de técnicas, práticas e procedimentos a serem adotados pelas entidades a fim de estabelecer um sistema de certificação digital baseado em chaves públicas. A infra-estrutura de chaves públicas do Brasil, definida pela medida provisória nº 2.200-2, de 24 de agosto de 2001, é denominada Infra-Estrutura de Chaves Públicas Brasileira, ou ICP-Brasil, e a autoridade certificadora raiz é o Instituto Nacional de Tecnologia de Informação (ITI).

Com a certificação digital presente de maneira marcante no cotidiano da sociedade, ferramentas de criptografia e criação de chaves estão se tornando fortes opções para usuários domésticos e corporativos, mesmo uma simples troca de email pode ser realizada fazendo uso de chaves criptografadas e não necessariamente emitidas por uma AC (Autoridade Certificadora), existem ferramentas para criação de certificados digitais em meio “standard alone” utilizando-se de uma estrutura conhecida como PKI-Public Key Infrastructure (infraestrutura de chaves públicas), embora não tenham o respaldo jurídico de uma AC (Autoridade Certificadora) tornam-se meios relativamente seguros de baixo custo e rápidos para elevar o nível de segurança nas atividades cotidianas.

Uma ferramenta muito interessante e largamente utilizada é o OPENSSL utilizado para gerar e gerenciar certificados digitais, de código fonte aberto baseado nos protocolos SSL e TLS, mantido por comunidades de desenvolvedores espalhados pela internet, o OPENSSL está disponível para a maioria dos sistemas do tipo Unix, incluindo Linux, Mac OS X, BSD e Windows. Outra ferramenta importante o OpenSSH é utilizado para implementar segurança e autenticação através de chaves de criptografia., pode-se utilizar uma chave de criptografia com 1024 ou 2048 bits, esse método utiliza-se de criptografia assimétrica trabalhando com um par de chaves, a pública e a privada.

Outra ferramenta que podemos citar é o Microsoft Certificate Services, onde a empresa pode montar a sua própria infraestrutura de certificados digitais, sem depender de uma autoridade certificadora externa.

2

2 - Descrição detalhada do problema

As transações on-line e presenciais tem como ponto diferencial mais significativo a obrigatoriedade da presença física e a troca de documentos de identificação.

A problemática nas transações on-line é como ter garantia que as partes identificadas são realmente quem diz ser? Essa questão já rendeu milhares de fraudes lesando consumidores e lojas virtuais.

A técnica adotada pelas instituições bancárias é a realização de um cadastro prévio de forma presencial exigindo documentos para realização da identificação, somente após esse contato são liberadas as informações para acesso on-line. Essa técnica embora tenha um melhor nível de segurança é parcialmente limitada pois exige a presença das partes no processo de obtenção das credenciais para o acesso, o que nem sempre é possível, podemos citar como exemplo lojas on-line que realizam operações comerciais sem nenhum tipo de encontro físico com seus clientes, a identificação é realizada de forma direta, solicitando ao cliente dados que supostamente apenas ele deveria saber, como dado finalizador de transações comerciais comumente exigido é o número do cartão de crédito.

Embora essas técnicas de identificação representem inicialmente um bom nível de segurança, já estão ultrapassadas, brechas nos esquema de segurança e vulnerabilidades são cada vez mais evidentes nesse modelo de negócio.

O mesmo ocorre em ambientes internos da corporação, na maioria das vezes ignorado pelos administradores por se tratar de um “domínio geograficamente sob sua ação” não levando em conta que acessos a servidores, páginas intranet, email internos e troca de dados entre aplicativos ocorrem em sua maioria na forma de “texto puro”.

Outra problemática comum é a implementação da tecnologia sem o devido treinamento e capacitação da equipe que administra a solução e especialmente atentar para a capacitação dos colaboradores que farão uso da tecnologia. Sem essa mudança cultural, que deve partir dos administradores, a aplicabilidade da tecnologia no seu cotidiano não exibirá resultados significativos quanto a Segurança da Informação, que é o principal objetivo da solução. A falta dessa iniciativa e a não mudança cultural da corporação pode transformar projetos importantes em desperdício financeiro, perda de competitividade e na própria falta de segurança.

Para exemplificar a fragilidade da comunicação web sem mecanismos de segurança, vamos explorar uma troca de informações entre o Browser (Internet Explorer) e o servidor HTTP (Apache), montamos um ambiente com 3 máquinas virtuais, na intenção de capturar pacotes com auxilio do Sniffer Wireshark comprovando que informações trafegadas em ambiente web podem ser facilmente interceptadas;1 - Usuário (Windows XP)2 – Servidor Web Apache (Ubuntu 9.40)3 - Invasor com Wireshark (Windows XP)

Figura 1: Esquema de máquinas virtuais

3

Figura 2 : Estação 2 - Servidor Web Ubuntu 9.40 – Apache

Usuário realizando autenticação em página Web.

Figura 3: Estação 1 – Windows XP

Estação do invasor rodando captura de pacotes com Wireshark, já de posse da senha utilizada pelo usuário na página web.

4

Figura 4: Estação 3 - Invasor – Windows XP

Sem dificuldades a senha do usuário é interceptada.Outro exemplo de interceptação de dados são as mensagens de correio eletrônico, sem a

devida segurança podem ser capturadas, lidas e alteradas sem maiores dificuldades, um dos objetivos mais visados pelo atacante é obter dos usuários seu logon e senha, permitindo assim , o acesso ao servidor.

Seguindo a problemática do email, uma pessoa pode se passar por outra (email falso), se não existir mecanismos de identificação e verificação mais elaborados, uma ordem em um email falso pode ser seguida, prejudicando a empresa com informações não reais.

Como os problemas de acessos a informações de servidor podem ser contornados com configuração bem planejada e mecanismos de segurança, como Firewalls, então, o objetivo dos invasores passa a ser a captura de informações que os usuários utilizam para se autenticar. Com o ambiente do servidor bem protegido, as informações ficarão mais vulneráveis no ambiente do cliente.

Ataques de negação de serviço (Denial of Service (DOS)), Spoofing (disfarçar a posição de que o ataque origina.) e Sequence Number, durante o momento conhecido como hand-shake (“Aperto de mão” que é o processo pelo qual duas máquinas afirmam uma a outra que a reconheceu e está pronta para iniciar a comunicação), quando uma máquina tenta estabelecer comunicação com outra, a requerente envia uma mensagem SYN (synchronize) para a máquina servidora. A máquina servidora devolve uma resposta SYN/ACK (acknowledgement-reconhecimento) e um número sequencial (PSN) para sinalizar a aceitação da conexão. Então para efetivar a conexão, a máquina requerente finalmente envia uma mensagem ACK para o servidor. Depois desse diálogo entre as máquinas, a conexão TCP/IP está estabelecida. O ataque DoS consiste em iniciar várias conexões e não responder ao último ACK do hand-shake, fazendo com que a máquina para qual a conexão foi

5

requisitada fique com um número muito grande de conexões em estado pendente.O ataque DoS também é utilizado como apoio a ataque combinados de spoofing e

sequence number, que também se utilizam do hand-shake TCP/IP para tomar conexões de forma mal intencionada. A ideia básica desse tipo de investida é aplicar um ataque DoS sobre uma máquina que esteja requerendo uma conexão com uma terceira máquina. O atacante então assume o papel da máquina anulada e se apodera da conexão durante certo tempo, enquanto o DoS não for detectado e corrigido.

Outro risco à segurança de TI são os Cavalos de Tróia, diferente de vírus, pois costumam apresentar-se como códigos executáveis que tem a proposta de realizar tarefas especificas para quem os recebe. Comumente circulam por email, propõem-se a realizar tarefas como servir de proteção de tela, atualizar software, gerar números seriais e cracks para a prática da pirataria de softwares. Normalmente esses programas até realizam as tarefas propostas, entretanto além disso executam tarefas obscuras, que variam entre corromper dados, sistemas operacionais, explorar brechas de segurança e enviar informações para o criador do Cavalo de Troia (credenciais de rede, bancos, cartão de crédito, entre outros).

Sem o uso de criptografia não é possível garantir segurança à informação que transita pela Internet e até mesmo na rede corporativa, especialmente quando os canais de comunicação usados são inseguros. Mesmo que o meio de comunicação seja inviolável, o que não acontece na maioria dos casos, o conceito de integridade e autenticação são características essenciais para segurança de muitas aplicações.

6

3 - Descrição das soluções disponíveis

3.1 Criptografia Simétrica

Baseada na simetria de chaves, ou seja, a mesma chave usada para criptografar será usada para descriptografar. Essa chave, denominada chave privada, é trocada entre o emissor e o receptor, através de uma comunicação segura, mas ainda assim apresenta alguns problemas:

• A mesma chave ser usada para cada par, emissor e receptor, se o número de pares for grande, será necessário um grande número de chaves.

• A criptografia simétrica não garante a identidade de quem enviou ou recebeu a mensagem.

Alguns exemplos de algorítimos simétricos:• Data Encryption Standard (DES) - 56 bits• Triple Data Encryption Standard (3DES) - 112 bits• Blowfish - até 448 bits• Twofish - 128, 192 ou 256 bits• Advanced Encryption Standard (AES) - 128, 192 ou 256 bits.

3.2 Criptografia Assimétrica

Surgiu para contornar os problemas da criptografia simétrica, através de algoritmos que utilizam chave pública e privada. Pode-se utilizar qualquer das chaves para criptografar a mensagem, entretanto só a chave inversa pode ser usada para descriptografar. Os algoritmos que implementam a chave pública e privada, exploram propriedades específicas dos números primos e a dificuldade de fatorá-los mesmo em equipamentos rápidos. O RSA (Rivest Shamir Adleman), composto por chaves de 512, 768, 1024 e 2048 bits é a base da maioria das aplicações de criptografia assimétrica.

3.3 Função Hashing

A função Hashing tem como objetivo garantir a integridade da mensagem recebida e tornar o deciframento da mesma mais rápida, visto que, a criptografia assimétrica embora muito eficiente na cifragem da mensagem, é muito lenta no deciframento da mesma. Apesar disso, a função hashing não criptografa a mensagem. A função Hashing quando aplicada ao conteúdo de uma mensagem, gera um resumo chamado código hash.

Como exemplo de algoritmos hash, podemos citar o Message Digest 5 (MD5), retorna um resumo de 128 bits, o Secure Hash Algorithm 1 (SHA-1) retorna um resumo de 160 bits, enquanto o Secure Hash Algorithm 2 (SHA-2) retorna um resumo que pode ter 256, 384 e 512 bits.

A Função Hashing utilizada de forma isolada na transmissão de uma mensagem, pode não garantir a integridade, pois um intruso pode violar a mensagem, calcular e substituir o código Hash. Este problema é resolvido unindo a criptografia assimétrica com os benefícios da função Hashing em um único processo chamado Assinatura Digital.

O valor hash geralmente é formado por 16 bytes (no caso do MD-2, MD-4 e MD- 5) ou 20 bytes (no caso do SHA-1), mas pode se estender, embora não passe de 512 bytes.

As características de uma função Hash são:• O valor de entrada da função possui qualquer tamanho• O valor de saída da função possui tamanho fixo• H(x) é relativamente fácil de ser computado, para qualquer valor de x• H(x) é uma função “one-way”

7

• H(x) é livre de colisãoUma função Hash é dita “one-way” pois uma vez obtido o valor Hash h para uma string x,

é computacionalmente impossível fazer o processo inverso, ou seja, encontrar um valor x tal que H(x) = h.

Diz-se ainda que H(x) é livre de colisão, significando que as funções Hash devem garantir uma probabilidade mínima de que duas strings diferentes acabem por resultar no mesmo valor Hash. Qualquer alteração na string original que deu origem ao identificador digital, mesmo que de um único bit, acabará por gerar uma alteração significativa no valor Hash final.

Com isso, o emissor usa sua chave privada e a chave pública do receptor para assinar digitalmente o documento. Se este sofrer qualquer alteração, por menor que seja, seu valor Hash será diferente. Como consequência, o receptor receberá um documento inválido, já que sua chave só conseguirá trabalhar com o arquivo e com o valor Hash original.

3.4 Assinatura Digital

A assinatura digital utiliza a criptografia assimétrica, pois utiliza um par de chaves, uma pública e outra privada. A chave privada é usada para assinar o documento, enquanto a pública verifica a assinatura. Em termos práticos, todos os algoritmos de criptografia assimétrica podem ser utilizados para assinatura digital, porém o padrão adotado pelo mercado foi o RSA.

Para assinar um documento e manter em segredo evitando que outros usuários o possam ler, é necessário não só assinatura digital, mas também a sua criptografia utilizando a chave pública do destinatário.

A partir de um documento e sua assinatura digital, pode-se facilmente verificar sua autenticidade e integridade. Primeiro utiliza-se a mesma função Hashing aplicada ao documento na origem, obtendo assim o Hash do documento, depois decifra a assinatura digital com a chave pública do remetente, que deve produzir o mesmo Hash gerado anteriormente. Com os valores Hash sendo iguais é possível afirmar que o documento não foi modificado após sua a assinatura, do contrário, o documento ou a assinatura digital sofreram alterações.

3.5 Certificação Digital

Certificados podem ser emitidos para uma série de funções, como autenticação de usuário na Internet, autenticação de um servidor Web, autenticação de usuários na rede, autenticação em correio eletrônico, IPSec para utilização com o protocolo Transaction Layer Security (TLS), transações financeiras, entrega de declarações oficiais e até assinatura em programas desenvolvidos.

Um certificado digital associa a identidade de uma pessoa ou processo, a um par de chaves criptográficas, uma pública e outra privada, que usadas em conjunto comprovam a identidade. O certificado digital é um arquivo assinado eletronicamente por uma e Autoridade Certificadora (AC).

O conteúdo e a autenticidade de um certificado emitido por uma autoridade certificadora, pode ser examinado por qualquer entidade que conheça a chave pública da AC. O certificado digital é protegido pela assinatura digital do emissor. No certificado existem 6 campos obrigatórios, número serial, algoritmo de assinatura, o emissor, validade, chave pública, assunto e 4 campos opcionais, número da versão, dois identificadores e extensão.

A recomendação mais utilizada para emissão de certificados digitais é a X.509v3, descrita na RFC 2459.

O X.509 é padrão que especifica o formato dos certificados digitais, amarrando firmemente um nome a uma chave pública, permitindo autenticação forte. Faz parte das séries X.500 de recomendações para uma estrutura de diretório global, baseada em nomes distintos para localização.

8

Na ICP-Brasil utilizam-se certificados no padrão X509 V3.O X.509 é um formato padrão para documentos eletrônicos destinados ao transporte de

chaves públicas tituladas. A versão 3 da recomendação X.509 definiu um conjunto de campos extras e a

possibilidade da atribuição de novos valores para um certificado. Estas informações estão armazenadas em campos denominados de extensões. Uma extensão é formada por três partes:

• extnID: é um código identificador da extensão, definido através de um identificador de objeto (OID).

• critical: é um campo booleano que indica se a extensão é crítica ou não. Este campo é opcional. A sua ausência indica que a extensão não é crítica. Quando sua extensão for crítica, as aplicações que a utilizarem deverão reconhecê-la.

• extnValue: este campo armazena efetivamente o valor da extensão. Extensões definidas pela recomendação X.509v3. As extensões de certificado permitem à Autoridade Certificadora (AC) incluir informações não suportadas pelos campos básicos de um certificado.

Qualquer organização pode definir extensões privadas requeridas em negócios particulares. Porém, muitos requisitos podem ser satisfeitos com a extensão padrão. Extensões padrão são suportadas por softwares comerciais. Elas permitem também interoperabilidade e um custo menor do que o uso das extensões privadas.

Como citado anteriormente, o Brasil conta com uma Infra-estrutura de Chaves Públicas (ICP-Brasil) ou, Public Key Infrastructure (PKI), são um conjunto de políticas, técnicas e procedimentos para que a certificação digital tenha amparo legal e forneça benefícios reais.

A ICP-Brasil trabalha com uma hierarquia onde a AC-Raiz, isto é, a instituição que gera as chaves das ACs e que regulamenta as atividades de cada uma, é o Instituto Nacional de Tecnologia da Informação (ITI). A ICP-Brasil tem as seguintes ACs credenciadas:

- Serpro;- Caixa Econômica Federal;- Serasa;- Receita Federal;- Certisign;- Imprensa Oficial;- AC-JUS (Autoridade Certificadora da Justiça);- ACPR (Autoridade Certificadora da Presidência da República).Essas instituições devem ser procuradas por quem deseja obter certificado digital

legalmente reconhecido no Brasil. Cada uma dessas entidades pode ter critérios diferentes para a emissão de certificados, o que inclusive resulta em preços diferentes, portanto, o interessado deve saber qual AC é mais adequada às suas atividades.

A ICP-Brasil oferece duas categorias de certificados digitais: A e S, sendo que cada uma se divide em quatro tipos: A1, A2, A3 e A4; S1, S2, S3 e S4. A categoria A é direcionada para fins de identificação e autenticação, enquanto que o tipo S é direcionado a atividades sigilosas.

A1 e S1: geração das chaves realizada por software com tamanho mínimo de 1024 bits.armazenamento em dispositivo como HD, CD, DVD, validade máxima de um ano.A2 e S2: geração das chaves realizada por software com tamanho mínimo de 1024 bits.Armazenamento em cartão inteligente smartcards ou tokens com validade de até dois anos.A3 e S3: geração das chaves é feita por hardware, chaves de tamanho mínimo de 1024 bits

armazenamento em cartão inteligente ou token validade de até de três anos.A4 e S4: geração das chaves é feita por hardware chaves de tamanho mínimo de 2048 bits

armazenamento em cartão inteligente ou token validade de até de três anos.Os certificados A1 e A3 são os mais utilizados, sendo que o primeiro é geralmente

armazenado no computador do solicitante, enquanto que o segundo é guardado em cartões inteligentes ou tokens protegidos por senha.

9

A palavra “certificação digital” no Brasil remete a duas importantes iniciativas: o e-CPF e o e-CNPJ. O primeiro é, essencialmente, um certificado digital direcionado a pessoas físicas, sendo uma espécie de extensão do CPF, enquanto que o segundo é um certificado digital que se destina a empresas ou entidades, de igual forma, sendo um tipo de extensão do CNPJ.

Ao adquirir um e-CPF, uma pessoa tem acesso pela internet a diversos serviços da Receita Federal, muitos dos quais até então disponíveis apenas em postos de atendimento da instituição. É possível, por exemplo, transmitir declarações de imposto de renda de maneira mais segura, consultar detalhes das declarações, pesquisar situação fiscal, corrigir erros de pagamentos, entre outros. No caso do e-CNPJ, os benefícios são semelhantes.

3.6 Autoridade de Registro

Uma AR (Autoridade de Registro) provê uma interface entre um usuário e uma AC (Autoridade Certificadora). Ela é responsável por conferir as informações do usuário e enviar a requisição do certificado para a AC. A qualidade do processo de conferência das informações determina o nível de confiança que deve ser atribuído ao certificado.

A AC deve, obrigatoriamente, confiar na AR, pois a AC emitirá o certificado digital sem nenhuma verificação adicional. A confiança é necessária para garantir o funcionamento de todas as etapas do processo. Dependendo da política de certificação adotada em uma ICP, o grau de verificações executadas na AR pode variar.

3.7 Autoridade Certificadora

A AC é responsável pela geração, renovação, revogação de certificados digitais e emissão da LCR (lista de certificados revogados), além das regras de publicação dos certificados digitais e LCR.

Uma autoridade certificadora pode ser uma empresa, organização ou indivíduo, público ou privado. A AC recebe a requisição de certificado digital, assinada pela AR, confere a assinatura digital da AR e emite o certificado digital para o usuário final. A política de funcionamento de uma Autoridade Certificadora, determinando quais os tipos de certificados digitais que ela está apta a emitir, é designada em um documento intitulado DPC (Declaração de Práticas de Certificação).

3.8 Ferramentas Corporativas para Criação de Certificados.

SSL é o protocolo mais usado para implementar criptografia na Internet (Wan) e intranet (Lan) . Podemos defini-lo como uma camada intermediária entre as camadas de transporte e de aplicação.

10

HTTP TELNET FTP

SECURE SOCKETS LAYER

TRANSPORT CONTROL PROTOCOL

INTERNET PROTOCOL

Ainda que esse protocolo seja mais usado em servidores web, ele também pode ser usado para encriptar os seguintes protocolos:

• NNTP (Net News Transfer Protocol).• LDAP (Lightweight Directory Access Protocol ).• IMAP (Interactive Message Access Protocol).• POP (Post Office Protocol).• FTP (File Transfer Protocol).Devido a sua infra- estrutura de chaves, à encriptação e às checagens que faz usando um

Hash da mensagem, esse protocolo provê confidencialidade, autenticidade e integridade.

3.8.1 Record Protocol

Responsável por encapsular as mensagens que serão enviadas para a camada TCP, e desencapsulá-la no seu destinatário e antes de entregar a mensagem para a camada superior. Em seu cabeçalho é identificado o protocolo de nível superior corresponde à mensagem, além do identificador de sua versão e do tamanho de seu corpo, é feita a criptografia simétrica do SSL, e a compressão da mensagem.

3.8.2 Protocolo de Handshake

Responsável por: Identificar a sessão: trata-se de uma sequencia de bytes escolhida pelo servidor para

identificar uma sessão ativa ou uma sessão re-iniciável.Método de compressão: define qual método de compressão que será utilizado antes da

criptografia dos dados. Cipher Spec: especifica qual o algoritmo de criptografia vai ser utilizado.Chave Mestre: chave secreta de 48 bytes que será compartilhada entre o cliente e o

servidorIs Resumable: A sessão pode ser utilizada para iniciar novas conexões.

3.8.3 Protocolo de troca de algoritmo

Indica que as duas partes podem passar a usar a chave simétrica e o algoritmo de Hash, sem depender das chaves assimétricas.

3.8.4 Protocolo de Alertas

Responsável por reportar os erros que ocorrem durante a conexão, podendo ser: • Recebimento de uma mensagem inesperada (Unexpected_message).• Hash não confere (Bad_record_mac).• O tamanho da mensagem após a descompressão excede o limite

(Decompression_failure).• Problema de segurança durante o Handshake (Handshake_failure).• Algum parâmetro do Handshake não confere (Illegal_parameter).

Alerta de aviso:Já os alertas de aviso informam coisas como a invalidez do certificado (expirado,

revogado, desconhecido).

11

3.8.5 Algoritmos

Algoritmos usados em conexões SSL:• DES• DSA• MD5• RC2• RC4• RSA• SHA-1• SKIPJACK• Triple-DES

3.8.6 Procedimento

• São enviados para o servidor a versão do protocolo SSL e configurações do algoritmo que o cliente usa, e informações necessárias ao servidor para que a conexão SSL seja estabelecida.

• O servidor responde com a versão do protocolo SSL e configurações do algoritmo que ele usa, o servidor envia seu certificado autenticando, e caso necessário solicita um certificado do cliente.

• A partir das informações recebidas, o cliente tenta autenticar o servidor; se for bem sucedido, segue para o passo seguinte, caso contrário, envia uma mensagem de erro para o servidor e informa que a conexão não pôde ser criada.

• O cliente, usando os dados trocados, com a auxilio do servidor, cria um segredo temporário, a encripta com a chave pública obtida do certificado do servidor.

• Se a autenticação do cliente também foi requisitada, seu certificado é enviado junto a outros dados extras, encriptando esse conteúdo com a chave secreta temporária.

• Caso da autenticação do cliente ter sido requisitada pelo servidor, este tentará o validar, de modo análogo à autenticação do servidor. Caso bem sucedido, o servidor usa sua chave privada para decriptar o segredo temporário, e depois segue uma série de passos que são igualmente seguidos pelo cliente para gerar o segredo a ser usado.

• Tanto o cliente, quanto o servidor usam o segredo para gerar as chaves simétricas a serem usadas na sessão. Com essas chaves, os dois participantes encriptarão e decriptarão as informações transmitidas durante a sessão SSL.

• É enviado pelo cliente uma mensagem ao servidor informando que as novas mensagens serão encriptadas com a chave secreta. Logo em seguida, ele envia uma mensagem indicando o fim de sua parte do Handshake.

• O servidor, então, envia uma mensagem ao cliente informando que as novas mensagens serão encriptadas com a chave secreta. Ele envia uma mensagem indicando o fim de sua parte do Handshake.

• O Handshake foi finalizado, cliente e servidor trocam mensagens usando a chave simétrica para garantir a segurança.

3.8.7 Transmissão

Feito o Handshake, a transmissão de dados pode ser iniciada. Nessa fase, a criptografia é feita a partir da chave secreta. A camada do SSL recebe da camada superior a mensagem que se deseja transmitir, encripta a mesma usando a chave simétrica e repassa a mensagem para a camada

12

inferior.

3.8.8 Implementações

Alguma das implementações abertas do SSL:• OpenSSL.• GnuTLS.• SSLeay.

3.8.9 Apache e SSL

O SSL esteve disponível por muitos anos no software Linux comercial como o Stronghold, um servidor Web comercial baseado no Apache. Contudo devido a algumas restrições de patentes e de exportação nos Estados Unidos, não houve nenhuma versão aberta do SSL para Linux até o surgimento do OpenSSL, uma colaboração da comunidade aberta para desenvolvimento do SSL comercial, da TLS (Transport Layer Security) e de pacotes completos de bibliotecas de criptografia de uso geral. O OpenSSL é baseado na biblioteca SSLeay, desenvolvida por Eric. A Young e Tim J. Hudson. A licença do pacote permite que seja usado livremente para fins comerciais ou não.

A implementação do Apache com OpenSSL, capacita um servidor web a fornecer por padrão criptografia baseada no protocolo SSL, utilizando o OpenSSL e SSLeay, com a implementação de SSL no servidor Web, ataques como o simulado na figura 4 não teria sucesso.

O protocolo SSL garante a segurança demandada pelas mais diversas aplicações, tais como bancos e web sites. Seus mecanismos de negociação segura de chave simétrica pelo uso de chaves assimétricas garante que o problema das chaves simétricas (interceptação da chave secreta) não ocorrerá, ao mesmo tempo que mantém o baixo custo dos processos de encriptação e decriptação durante a sessão.

Essas qualidades justificam a larga adoção do protocolo no mundo todo, a qual pode ser verificada nos milhares de sites web que fazem uso dessa tecnologia para garantir a segurança dos usuários.

3. 8.10 HTTPS

É um protocolo com um conjunto de regras e códigos e uma camada de segurança que torna a navegação na mais segura, diferente do HTTP, que não dispõe do mesmo nível de segurança a navegação.

O HTTPS estabelece um dialogo entre os navegadores e os servidores da seguinte forma: os navegadores mandam mensagens para os servidores e as mesmas são criptografadas, com isso se agrega um alto nível de segurança entre a comunicação cliente servidor.

3.8.11 Protocolo SSH

O protocolo SSH possui duas versões, a versão 1 e a versão 2, ambas suportadas pelo OpenSSH.

3.8.11.1 Protocolo SSH Versão 1

Na versão 1 do protocolo SSH, cada máquina possui uma chave RSA específica usada para identificar o servidor.

Quando o SSHD inicia gera uma chave RSA do servidor que é recriada a cada hora e permanece sempre residente em memória.

13

Quando um cliente se conecta, o SSHD responde com sua chave pública e chaves do servidor. O cliente SSH compara a chave RSA com seu banco de dados para verificar se não foi modificada. Estando tudo certo, o cliente gera um número aleatório de 256 bits, o encripta usando ambas as chaves (host e servidor) e envia ao servidor. Ambos os lados então, usam esse número aleatório como uma chave de sessão para cifrar a transferência de dados.

O restante da sessão é criptografado usando um método de cifragem de dados convencional como 3DES.

3.8.11.2 Protocolo SSH Versão 2

A versão 2 funciona de forma semelhante a primeira. Cada máquina possui uma chave RSA/DSA especifica usada para identificação. A diferença é que quando o SSHD inicia, ele não gera uma chave de servidor. A segurança é oferecida através da concordância de uso de uma chave. Esta concordância resulta em uma sessão com chave compartilhada. O restante da sessão é encriptada usando um algoritmo, como 3DES, CAST128, Arcfour, AES.

O cliente é quem seleciona o algoritmo de criptografia que será usado entre os oferecidos pelo servidor. A versão também possui integridade de sessão feita através de um código de autenticação de mensagem criptográfica. Oferece também um método de autenticação de chaves públicas, além do convencional, usando senhas.

3.8.11.3 Chaves de Criptografia

Uma das funcionalidades do Open SSH é implementar segurança e autenticação por meio de chaves criptográficas, esse método utiliza criptografia assimétrica (RSA ou das) que trabalha com um par de chaves, a pública e a privada. Outra funcionalidade importante do OpenSSH é proteger uma conexão com serviços que não suportam encriptação, sendo possível criar túneis seguros ligando uma das portas da máquina à porta do servidor onde o serviço está ativo.

3.8.12 PGP

Um padrão aberto de criptografia criado por Phil Zimmermann em 1991. O documento que oficializa o padrão é a RFC2440. Existem diversos softwares compatíveis com esse padrão, dentre eles o PGP que é comercializado pela PGP Corporation e o GnuPG, que trata-se de uma distribuição gratuita.

O PGP traz uma abordagem de “teia de confiança” para o problema de autenticação de chaves públicas. Sua estrutura é descentralizada e se caracteriza pela inexistência de uma Autoridade Certificadora, em vez disso, a cada participante é dado o poder de assinar a chave pública dos outros participantes que ele conhece.

A teia de confiança é formada da seguinte forma, se A confia em B e B assinou a chave pública de C, então A confia que a chave pública de C é verdadeira, mesmo sem conhecer C, e dessa forma continua recursivamente.

Um ponto fundamental a se tratar é que todos os participantes têm a responsabilidade pela teia de confiança, caso os participantes assinem irresponsavelmente as chaves sem ter a certeza de que elas realmente pertencem ao suposto proprietário, a teia de confiança enfraquece.

O padrão OpenPGP aparentemente se mostra mais flexível do que o modelo X.509, talvez menos pelo padrão em si do que pelo fato de que os principais softwares que seguem o OpenPGP estão mais voltados para o usuário final, os softwares deste padrão, uma vez instalados, são totalmente funcionais e facilmente operáveis por um usuário.

O PGP, sigla para Pretty Good Privacy, é um software de criptografia que combina as melhores técnicas para "embaralhar" dados. Primeiro, o dado a ser criptografado é comprimido, a

14

compressão economiza espaço em disco, tempo de transmissão e já é, por si só, uma forma de criptografia, podendo ainda dificultar a ação de programas anti-criptografia que buscam por padrões em dados criptografados afim de decifrá-los.

3.8.12.1 Processo de Descriptografia do PGP

O processo de descriptografia funciona de maneira inversa. O receptor decriptografa os dados da segunda fase com sua chave privada, o PGP então utiliza a chave de sessão para descriptografar os dados da primeira fase, restando apenas a descompactação, após estes processos, os dados estão prontos para serem utilizados.

15

4 – Conclusão

Pode-se dizer que essa estrutura de provedores de serviços de certificação digital é similar a dos institutos estaduais de identificação, competentes que são, no âmbito da respectiva unidade da federação, para a emissão de documentos públicos que asseguram a identidade e assinatura de um determinado indivíduo, e que são reconhecidos como válidos em todo o território nacional.

O uso de certificados digitais deve ser levado em conta para o aumento de segurança tanto no ambiente interno (rede local), quanto em meio externo (transações web), infelizmente, até mesmo os sistemas de criptografia mais sofisticados podem, eventualmente, ser comprometidos, pela variedade de ataques aos quais os mesmos estão sujeitos (Ataques de força bruta, Criptoanálise,Texto cifrado puro, Texto claro conhecido, entre outros), é fundamental aliar o uso de certificados digitais a procedimentos e praticas de segurança. Politicas de segurança devem ser estabelecidas e usuários conscientizados e devidamente preparados para atuar com essas ferramentes, técnicas e metodologias, apenas com esse conjunto trabalhando de formar sincronizada podemos atingir resultados que elevam o nível de segurança e agregar vantagens competitivas.

16

5 – Bibliografia

Web

http://br-linux.org/tutoriais/002209.htmlAcessado em 15/08/2009http://www.iti.br/Acessado em 15/08/2008http://www.inf.ufsc.br/~schalata/seg/hash.htmAcessado em 15/08/2009http://www.openssl.org/Acessado em 30/08/2009http://www.pafis.shh.fi/~mathje02/isac/ws1/Acessado em 30/08/2009INFO Wester, Assinatura Digital. http://www.infowester.com/assincertdigital.phpAcessado em 04/10/2009INFO Wester, Criptografia.http://www.infowester.com/criptografia.phpAcessado em 04/10/2009Clube do Hardwarehttp://www.clubedohardware.com.br/artigos/667/Acessado em 04/10/2009Edson's Home Page.http://www.lsi.usp.br/~elima/seguranca_cripto.htmlAcessado em 12/10/2009http://www.gta.ufrj.br/grad/01_2/tls/toc2.htmAcessado em 12/10/2009http://www.ecommerce.org.br/Artigos/assinatura_digital.htmAcessado em 12/10/2009Planalto Federalhttps://www.planalto.gov.br/ccivil_03/MPV/Antigas_2001/2200-2.htmAcessado em 17/10/2009Quaresma, P. Códigos e Criptografia<http://www.mat.uc.pt/~pedro/lectivos/CodigosCriptografia/apontamentos223a229.pdf>.Acessado em 17/10/2009http://www.openssl.org/Acessado em 02/11/2009

Livros

Volpi, Marlon Marcelo. Assinatura Digital – Aspecto Técnicos, Praticos e Legais, 1ª Edição, editora Axcel Books.

Cordeiro, Luiz Gustavo. Certificação Digital – Conceitos e Aplicações. Modelos Brasileiro e Australiano, 1ª Edição, Editora Ciência Moderna Ltda.

17