Márcio Moreira, Rogério Mendes & Flamaryon Guerin

Slides:



Advertisements
Apresentações semelhantes
Alex Coletta Rafael Curi
Advertisements

André Oliveira Castro Marcelo Siqueira Pereira Filho
Criptografia Assimétrica
Sistemas da Informação e Tecnologia Prof. Luciel Henrique de Oliveira Tecnologias e Ferramentas para Garantir a segurança Trabalho 6 – Adriano Montico.
Tecnologias e Ferramentas para Garantir a Segurança
REVISÃO BIBLIOGRÁFICA
Interoperabilidade de hardware e software
II SEMINÁRIO REGISTRAL CIVIL - CERTIFICAÇÃO DIGITAL- CURITIBA, JUNHO DE 2010.
Dornélio Mori Ney Bermudes
Funções de hash unidirecionais
Uma introdução à criptografia com curvas elípticas
Java Cryptography Architecture (JCA)
Sistemas Seguros 2.2 Distribuição de Chaves
Certificação Digital.
A → B : k * M ( k = fator de ocultação )
Funções Criptográficas de Hash
Criptografia de Chave Pública
Função Hash e Autenticação em Redes de Computadores
KERBEROS Redes de Computadores I
Public Key Infrastructure PKI
Prof. João Nunes de Souza FACOM UFU
Interface Básica para um Servidor Universal
Faculdade de engenharia química Gestão estratégica da produção Sistemas de Informação e tecnologia Trabalho 6 Tecnologias e Ferramentas para Garantir a.
TRABALHO 6: Tecnologias e Ferramentas para Garantir a Segurança
Hash HTTPS SSL Certificados.
Secure Sockets Layer (SSL) e Transport Layer Security (TLS)
DigiSign A solução mais segura para proteção de direitos autorais digitais na publicação e distribuição de e-books.
Company LOGO Criptografia de dados em PHP.
CERTIFICADO DIGITAL Portaria nº 268/2013 MTE.
1. Introdução; 2. Inicialização da aplicação; 3. Gerando as Chaves do RSA; 4. Criptografando mensagens; 5. Descriptografando mensagens; 6. Conclusões.
Documentos Digitais Aula 9.
7: Segurança de Redes1 Capítulo 7: Segurança de Redes Fundamentos: r o que é segurança? r criptografia r autenticação r integridade de mensagens r distribuição.
Segurança Ênfase em Comércio Eletrônico. Objetivo Apresentar os principais conceitos envolvendo criptografia,Assinatura digital e Certificação digital.
Assinaturas digitais.
PKI – Public key infrastructure Infra-estrutura de Chaves Públicas Trabalho de Redes de Computadores II Nome: Délio Silva Nunes.
LUCAS DE ANDRADE VINICIUS BERNARDINO DA SILVA
SIT – T9 Tecnologias e Ferramentas para Garantir a Segurança
SIT – T9 Tecnologias e Ferramentas para Garantir a Segurança Marcio Luiz Angeli.
Gerenciamento de chaves públicas
Sistema de Informação e Tecnologia Trabalho 09 – Tecnologias e Ferramentas para Garantir a Segurança Gestão Estratégica de Produção Marcel Fernando de.
LUIZ DANIEL DE AZEVEDO BORGES Trabalho 9. Pesquisar sobre o modelo de certificação digital estabelecido pelo governo, através da ICP-Brasil (sistema de.
Desafios Tecnológicos da NFe
Exercício 3 Função de hash Assinatura digital
Sistemas Seguros Criptografia Simétrica e Assimétrica
Paulo Roberto Lopes de Souza Robson Cechini Santos
CURSO GESTÃO ESTRATÉGICA DA PRODUÇÃO SISTEMAS DE INFORMAÇÃO E TECNOLOGIA RAFAEL F P BRIARD TRABALHO 9.
SPED – Sistema Publico de Escrituração Digital
PGP – Pretty Good Privacy Privacidade Bastante Boa
Seminário Criptografia
Alunos: Felipe Marcelino da Silva Jean Bruno Souto Villete.
Exercício 2 Função resumo (hash) Assinatura digital
Key confirmation and adaptive corruptions in the protocol security logic (Chave de confirmação e Corrupções Adaptativas em um protocolo de segurança lógica)
Procuração Eletrônica Como outorgá-la na Receita Federal do Brasil.
Autenticação de Mensagens
Segurança de Redes de Computadores Prof. Paulo Fernando da Silva.
3. Criptografia Assimétrica
Segurança de Redes de Computadores Prof. Paulo Fernando da Silva Faculdades SENAC Florianópolis Pós-Graduação em Segurança da Informação.
Criptografia Assimétrica e Autenticação de Mensagens
Segurança de Redes de Computadores
Aluno: Fillipe Oliveira Lima
Segurança de Redes de Computadores Prof. Paulo Fernando da Silva.
Projeto de Criptografia Jorge Ferraz (jfof) Marcus Vinicius (mvgs)
CADASTRO NACIONAL DE PESSOA JURÍDICA – CNPJ
Universidade Estadual de Campinas Gestão estratégica da Produção Trabalho 6: Tecnologias e Ferramentas para Garantir a Segurança Cláudio José de Sousa.
Talita Amaral. Introdução Atualmente, há outras formas para comprovar a autenticidade de documentos expressar concordância com determinados procedimentos,
5 – Distribuição de chaves
1 Assinatura Digital Msc. Adilson Eduardo Guelfi Msc. Frank Meylan Laboratório de Sistemas Integráveis Escola Politécnica da.
SISTEMAS OPERACIONAIS
Conceituação de Assinatura e Certificação Digital
Segurança de Rede Prof. Sales Filho Pretty Good Privace - PGP.
Transcrição da apresentação:

Márcio Moreira, Rogério Mendes & Flamaryon Guerin marcio.moreira@uniminas.br , rogerio@websec.com.br & flamaryon@uniminas.br 6º CONTECSI - 3 a 5 de Junho de 2009 – USP – São Paulo – Brasil Algoritmo de Assinatura Digital por Curvas Elípticas ECDSA (Elliptic Curve Digital Signature Algorithm)

Agenda Introdução ECDSA Aplicações Implementação Java Conclusões

Introdução A segurança é cada vez mais necessária: A necessidade de assinar digitalmente documentos vem crescendo significativamente As assinaturas digitais devem fornecer: Autenticidade: Garantir que o documento é autêntico Não repúdio: O autor não pode negar a assinatura Integridade: O documento assinado não pode ser alterado

Tipos de algoritmos de assinatura Origem Destino Diretos: O processo de assinatura envolvem somente a origem e o destino. Normalmente utilizam algoritmos de criptografia simétricos. Em caso de disputas, uma terceira parte precisa ter acesso à mensagem, à assinatura e à chave privada para fazer as verificações. Arbitrados: O documento assinado é enviado a um árbitro que checa as três características fundamentais da assinatura digital e envia o documento assinado ao destino. Os métodos de criptografia normalmente envolvidos neste tipo de processo é o de chave pública. Origem Árbitro Destino

chave privada da Maria  Assinatura digital Assinando uma mensagem: Hash = resumo(texto plano) Assinatura = cifra(hash, chave privada emissor) Mensagem = texto plano + assinatura Máquina da Maria chave privada da Maria  Assinatura Digital Hash Função Hash Algoritmo de cifrar texto plano Mensagem

Verificando uma assinatura digital Hash1 = resumo (texto plano) Hash2 = decifra(assinatura, chave pública emissor) Máquina do João texto plano Assinatura Digital Função Hash Algoritmo de decifrar chave pública da Maria Hash1 Hash2 Comparação

Agenda Introdução ECDSA Aplicações Implementação Java Conclusões

ECDSA Porque curvas elípticas? Consegue-se o mesmo nível de segurança do RSA com no mínimo 1/6 do esforço computacional Algumas curvas: Método Princípio Operações RSA Logaritmo * & / de números ECDSA Curvas Elípticas + & - de pontos

DSA x ECDSA Fase Algoritmo DSA Algoritmo ECDSA Geração das chaves Escolha p, q, x e q | p - 1, 1  x < q. Escolha h  Zp* e calcule: g = h(p-1)/q mod p até que g  1. y = gx mod p Chave pública: (p, q, g, y) Chave privada: x Escolha E sobre Zp, Escolha d, 1  d < n. Escolha G  E(Zp) de ordem n. Q = d G Chave pública: (E, n, G, Q) Chave privada: d Assinatura Escolha k, 1  k < q. Calcule: r = (gk mod p) mod q s = k-1( h(m) + xr) mod q (r, s) é a assinatura de m. Escolha k, 1  k < n. Calcule: k G = (x1, y1) e r = x1 mod n s = k-1( h(m) + dr) mod n Checagem da Assinatura w = s-1 mod q u1 = h(m)w mod q u2 = rw mod q v = (gu1 yu2 mod p) mod q Se v = r então (r, s) está ok. w = s-1 mod n u1 = h(m)w mod n u2 = rw mod n u1 G + u2 Q = (x2, y2), v = x2 mod n

Vantagens do ECDSA Utiliza chaves menores. Utiliza soma ao invés de multiplicações. Utiliza multiplicações (soma cumulativa) ao invés de exponenciações. É mais eficiente em termos de tempo de resposta. Consome menos espaço de armazenamento. É adequado para equipamentos com poucos recursos de hardware disponíveis.

Ataques ao ECDSA Padrões: Específicos: Conclusão: Ataques contra as curvas elípticas e contra o problema dos logaritmos discretos que sustentam criptosistemas baseados nestas curvas. Ataques à função hash utilizada (SHA-1). Outros tipos de ataques. Específicos: Aplicação da força bruta para quebrar Q = d G. Fatoração da ordem do grupo finito (n) em torno de G: redução da complexidade da fatoração de n utilizando o teorema chinês do resto. Curvas definidas sobre grupos finitos pequenos. Conclusão: O importante é que, com os parâmetros propostos pela ANSI X9.62, uma máquina com 330 mil processadores precisaria de 32 dias para quebrar um ECC. Assim, o ECDSA é recomendado pelo NIST como um dos algoritmos mais seguros de assinatura digital. Fonte: NIST, http://csrc.nist.gov/groups/ST/toolkit/digital_signatures.html e www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/1051_ecdsa.pdf

Agenda Introdução ECDSA Aplicações Implementação Java Conclusões

Aplicações do ECDSA Assinatura irrefutável de e-mails. Assinatura de pedidos em comércio eletrônico. Identificação de sites, comprovando a autenticidade do endereço. Acompanhamento e aditamento de processos judiciais ou administrativos. Recepção do Diário Oficial Eletrônico da União. Viabilizar a apresentação de projetos de lei diretamente pelos cidadãos.

Aplicações do ECDSA Assinatura do Imposto de Renda e outros serviços da Receita Federal. Enviar e receber documentos eletrônicos para cartórios. Permitir transações seguras entre instituições financeiras, como por exemplo o SPB – Sistema de Pagamentos Brasileiro, em uso desde 2002. Assinatura eletrônica de documentos em geral, em substituição ao enorme número de senhas que as pessoas passaram a ter que criar e gerir com o uso cada vez mais crescente da informática e dos problemas decorrentes de segurança.

Agenda Introdução ECDSA Aplicações Implementação Java Conclusões

Implementação Java Biblioteca: java.security Provider: Bouncy Castle (www.bouncycastle.org) 1. Entrar no site http://www.bouncycastle.org/latest_releases.html e baixar o arquivo: bcprov-jdk15-133.jar ou mais recente. 2. Copiar este arquivo para as pastas: C:\Arquivos de programas\Java\jdk<r>\jre\lib C:\Arquivos de programas\Java\jre<r>\lib Onde: <r> = release = por exemplo: 1.5.0_07 3. Na seqüência de providers dos arquivos: C:\Arquivos de programas\Java\jdk<r>\jre\lib\security\java.security C:\Arquivos de programas\Java\jre<r>\lib\security\java.security Acrescentar a linha: security.provider.<n>=org.bouncycastle.jce.provider.BouncyCastleProvider Onde: <n> = número do último provider instalado + 1

Bibliotecas Bibliotecas: Parametrização da curva: 4. Instalar a biblioteca bcprov-jdk15-133 apontando para este arquivo numa das pastas do item 2. Bibliotecas: import java.security.*; import org.bouncycastle.crypto.params.ECPublicKeyParameters; import org.bouncycastle.jce.ECNamedCurveTable; import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec; Parametrização da curva: ECNamedCurveParameterSpec ECCparam = ECNamedCurveTable.getParameterSpec("prime192v2");

Geração de chaves Geração das chaves: KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ECDSA", "BC"); keyGen.initialize(ECCparam); keyPair = keyGen.generateKeyPair(); PublicKey pubKey = keyPair.getPublic(); PrivateKey prvKey = keyPair.getPrivate(); Publicação das chaves como string: jTACPrivada.setText(prvKey.toString()); jTACPublica.setText(pubKey.toString());

Assinando e verificando um texto Assinatura: Signature ecdsa = Signature.getInstance("ECDSA", "BC"); ecdsa.initSign(prvKey); ecdsa.update(m.getBytes()); byte[] sig = ecdsa.sign(); jTFAssinatura.setText(sig.toString()); Verificação da assinatura: ecdsa.initVerify(pubKey); boolean sigok = ecdsa.verify(sig);

Tela da aplicação

Agenda Introdução ECDSA Aplicações Implementação Java Conclusões

Conclusões As curvas elípticas vêm ganhando cada vez mais espaço no mundo dos sistemas criptográficos: Isto se deve à eficiência oferecida por elas em relação aos métodos tradicionais utilizados nos sistemas criptográficos. O ECDSA pode ser utilizado com segurança como um método de assinatura digital, pois ele foi reconhecido por todas as instituições mais importantes de padronização e recomendação de padrões do mundo.

Contribuições do trabalho O trabalho nos permitiu: Fazer uma revisão teórica do conceito de assinatura digital, das curvas elípticas, dos algoritmos DSA e ECDSA. Ver quão prática e simples é a implementação de métodos complexos quando utilizamos uma biblioteca reconhecidamente de boa qualidade e segura. Acreditamos que o trabalho cumpriu seu propósito de trazer conceitos abstratos da criptografia para um ambiente concreto e prático.

Referências João N. Souza, Márcio A. R. Moreira e Ilmério R. Silva, A Multi-User Key and Data Exchange Protocol to Manage a Secure Database, SBBD 2002 - XVII Simpósio Brasileiro de Banco de Dados, este artigo está disponível para download em: http://200.146.233.98/empresa/marcio/2002_10_sbbd.pdf W. Stallings, Cryptography and Network Security: Principles and Practice, Prentice Hall, 1999. Elliptic Curve, http://mathworld.wolfram.com/EllipticCurve.html D. Johnson e A. Menezes, The Elliptic Curve Digital Signature Algorithm (ECDSA), http://citeseer.ist.psu.edu/cache/papers/cs/8755/http:zSzzSzcacr.math.uwaterloo.cazSz~ajmenezezSzpublicationszSzecdsa.pdf/johnson99elliptic.pdf Don Johnson, Alfred Menezes e Scott Vanstone, The Elliptic Curve Digital Signature Algorithm (ECDSA), Certicom Corporation, 2001, disponível em http://www.certicom.com/index.php?action=forms,login2&mode=do&next_aid=27&qual=2&

Obrigado! Dúvidas? Disponível em: www.geocities.com/marciomoreira Márcio Moreira, Rogério Mendes & Flamaryon Guerin marcio.moreira@uniminas.br , rogerio@websec.com.br & flamaryon@uniminas.br 6º CONTECSI - 3 a 5 de Junho de 2009 – USP – São Paulo – Brasil Algoritmo de Assinatura Digital por Curvas Elípticas ECDSA (Elliptic Curve Digital Signature Algorithm)