Análise do impacto da certificação digital no desenvolvimento de aplicações Aluno: Fillipe Oliveira Lima Orientador: Domingos Sávio Alcântara Machado Agenda 1. 2. 3. 4. 5. 6. Introdução Criptografia Infra-estrutura de chaves públicas Certificação digital Análise do impacto da certificação digital no desenvolvimento de aplicações Conclusão 1 Introdução Milhares de transações são realizadas todos os dias na internet. A internet ainda possui muitas falhas de segurança Muitos serviços ainda não são disponibilizados, devido às vulnerabilidades 1 Introdução O que é certificação digital ? É uma tecnologia que provê mecanismos de segurança, capazes de garantir autenticidade, confidencialidade e integridade às informações eletrônicas. (Fonte: Instituto Nacional de Tecnologia da Informação) 2 Criptografia 2.1 2.2 2.3 2.4 Conceitos de criptografia Criptografia simétrica Criptografia assimétrica Criptografia híbrida 2.1 Conceitos de criptografia O que é criptografia ? Encriptar e descriptar Códigos Cifras Criptoanálise Algoritmos criptográficos DES, IDEA, RSA, SHA1, MD5, AES, RC5 e RC6. 2.1 Conceitos de criptografia Criptografia com chave 2.2 Criptografia simétrica Mesma chave para cifrar e decrifrar 2.3 Criptografia assimétrica Chaves decifrar relacionadas para cifrar e 2.4 Criptografia híbrida Criptografia dos dados e distribuição da chave 2.4 Criptografia híbrida Recebimento da chave e descriptografia dos dados 3 Infra-estrutura de chaves públicas 3.1 Conceitos de infra-estrutura de chaves públicas 3.2 Serviços oferecidos pela infraestrutura de chaves públicas 3.1 Conceitos de infra-estrutura de chaves públicas Ambiente com padrões de segurança definidos Serviços baseados na criptografia assimétrica Existe a mais de 20 anos ICP-Brasil 3.2 Serviços oferecidos pela infraestrutura de chaves públicas Integridade Autenticidade Identificação de usuários / máquinas Privacidade Assegura que as informações não foram alteradas Informações legíveis para pessoas autorizadas Disponibilidade Informações disponíveis no momento desejado 3.2 Serviços oferecidos pela infraestrutura de chaves públicas Assinatura digital - Geração 3.2 Serviços oferecidos pela infraestrutura de chaves públicas Assinatura digital - Validação 4 Certificação digital 4.1 Conceitos de certificação digital 4.2 Autoridade Certificadora (AC) 4.3 Autoridade Registradora (AR) 4.1 Conceitos de certificação digital A chave pública não pode ser distribuída sem algo que garanta sua integridade Uma entidade confiável deve garantir essa integridade 4.2 Autoridade Certificadora Emissão dos certificados Revogação dos certificados Distribuição dos certificados Gerenciamento dos certificados Fiscalização das AC e das AR 4.3 Autoridade Registradora Registrar o usuário Redução de custo Intermédio entre o usuário e a AC Verificação da solicitação 5 Análise do impacto da certificação digital no desenvolvimento de aplicações 5.1 Certificação digital em aplicações comerciais 5.2 Estudo de caso 5.3 Análise dos resultados 5.1 Certificação digital em aplicações comerciais Utilizando a assinatura digital 5.1 Certificação digital em aplicações comerciais Assinatura digital nos ambientes: Desktop Pode ser mais fácil WEB Mais complexo Soluções: Utilizar extensões disponíveis nos browsers Utilizar Applet Java 5.2 Estudo de caso Desenvolvimento de uma pequena parte de sistema de controle acadêmico Autenticação de usuário Cadastro / consulta de notas e faltas dos alunos 5.2 Estudo de caso Incorporação da certificação digital Login da aplicação Recursos do servidor de aplicação Via programação Cadastro de notas e faltas dos alunos Applet Java Aplicação J2EE Nova tabela para armazenar o XML 5.2 Estudo de caso Arquitetura da aplicação Assinatura / validação dos dados 5.2 Estudo de caso Arquitetura da aplicação Autenticação de usuários 5.2 Estudo de caso Ambiente de teste Certificado do tipo A3 (e-CPF) Oracle 10G PL/SQL Developer 5.1 J2EE (JDK 1.5) Jboss 4.0.4 (Tomcat 5.5) JBuilder 2006 (Versão 12) 5.2 Estudo de caso Estratégia de implementação Módulo de Autenticação Instalação do certificado de servidor Criação do repositório de certificados confiáveis Configuração do Jboss Módulo de assinatura digital Assinatura do Applet Java Duas configurações no html 5.2 Estudo de caso Demonstração 5.3 Análise dos resultados O impacto e o esforço da incorporação do código em ambiente WEB Impacto maior no cliente Esforço maior no servidor 5.3 Análise dos resultados Impacto e esforço: Aplicação x Base de dados Impacto muito pequeno na base de dados Esforço mínimo na base de dados 5.3 Análise dos resultados Impacto no desempenho Geração da assinatura digital: Validação da assinatura digital Não compromete o desempenho Autenticação Pode levar alguns segundos Rápida, exceto quando baixa a lista de certificados revogados Base de dados Não compromete o desempenho 5.3 Análise dos resultados Impactos gerais Dificuldade na escolha das bibliotecas Bom nível de conhecimento sobre ICP Bugs das bibliotecas Incompatibilidade entre os browsers Dificuldade na configuração dos servidores WEB Preocupação em manter o legado funcionando 6 Conclusão A certificação digital em aplicações comerciais está sendo ampliada Muitas empresas despertam para o potencial da certificação digital Custo um pouco elevado Espera-se os mesmos resultados para um ambiente de produção 6 Conclusão Esse trabalho foi o primeiro passo para o início do projeto de certificação digital na UNIT Auxiliar outras empresas no desenvolvimento de aplicações com certificação digital Trabalhos futuros Aplicações Desktop Outros servidores WEB (IIS e WebLogic) Outras plataformas de desenvolvimento WEB (.NET Framework) Principais referências bibliográficas ADAMS, Carlisle. LLOYD, Steve. Understanding Public-Key Infrastructure. Concepts, Standards, and Deployment Considerations. Indianapolis: New Riders Publishing, 1999. SILVA, Lino Sarlo da. Public Key Infrastructure – PKI. São Paulo: Novatec, 2004. VOLPI, Marlon Marcelo. Assinatura digital: Aspectos Técnicos, Práticos e Legais. Rio de Janeiro: Axcel Books, 2001. MORENO, Edward David. Criptografia em Software e Hardware. São Paulo: Novatec, 2005. TERADA, Routo. Segurança de dados, criptografia em redes de computador. São Paulo: Edgard Blucher Ltda, 2000. Principais referências bibliográficas Sun Microsystems – Java Cryptography Architecture . Disponível em: <http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.ht ml>. Acesso em 02 de novembro de 2006 CERTISIGN Certificador Digital S.A, Treinamento CERTISIGN – Desenvolvimento para JAVA. São Paulo: 2006. Apache Software Foundation – SSL Configuration HOW-TO. Disponível em: < http://tomcat.apache.org/tomcat-5.5-doc/sslhowto.html>. Acesso em 29 de outubro de 2006. PINHEIRO, Andréa. Correio brasiliense - Informática – Abocanhe o Leão . Disponível em: < http://www.iti.br/twiki/bin/view/Main/MidiaClip2006fev28A>. Acesso em 03 de dezembro de 2006. Dúvidas ? Agradecimentos À universidade Tiradentes À platéia presente Aos membros da banca e demais professores