1 Assinatura Digital Msc. Adilson Eduardo Guelfi Msc. Frank Meylan {guelfi,meylan}@lsi.usp.br Laboratório de Sistemas Integráveis Escola Politécnica da USP 2 Agenda Assinatura Digital Esquemas 3 Assinatura Digital 4 Assinatura Digital É necessária?? Sim, para proteger as duas partes comunicantes (transmissor e receptor), uma contra a outra (falsificação e repudiação); Uma assinatura digital deve possuir as seguintes propriedades: Ela deve ser capaz de verificar o autor, a data e o instante da assinatura; Ela deve ser capaz de autenticar o conteúdo no instante da assinatura; Deve ser possível verificar a assinatura digital por uma terceira parte, com o objetivo de solucionar eventuais disputas; 5 Assinatura Digital Uma assinatura digital autentica o autor e a mensagem evitar a falsificação e a repudiação Serviços oferecidos Integridade Autenticação Não Repudiação Confidencialidade (opcional) 6 Assinatura Digital Requisitos que devem ser atendidos por uma assinatura digital: A assinatura deve estar em formato binário e depender da mensagem que está sendo assinada; A assinatura deve usar alguma informação específica ao transmissor, para prevenir a falsificação e a repudiação; Deve ser relativamente fácil de produzir a assinatura digital; Deve ser relativamente fácil de reconhecer e verificar a assinatura digital; 7 Assinatura Digital Requisitos de uma assinatura digital (cont.): Deve ser computacionalmente inviável falsificar uma assinatura digital: Construindo uma nova mensagem para uma assinatura digital existente; Construindo uma assinatura digital falsa para uma dada mensagem; Deve ser viável reter uma cópia da assinatura digital para armazenamento; Neste ponto, podemos perceber a importância da introdução de uma função hash segura para o esquema de assinatura digital. 8 Assinatura Digital Assinatura digital direta: Envolve somente as partes comunicantes (fonte e destino). Neste caso, uma assinatura digital poderia ser formada pela criptografia, com a chave privada do transmissor, do código hash da mensagem original; Confidencialidade pode ser fornecida opcionalmente, criptografando a mensagem original mais sua respectiva assinatura digital, ou com a chave pública do receptor (esquema de criptografia de chave pública) ou com uma chave secreta compartilhada (esquema de criptografia convencional); 9 Assinatura Digital Exemplo de um esquema de assinatura digital direta utilizando criptografia de chave pública (RSA, por exemplo); M Kpri_a H E M A E Kpub_b D M H Comparação Kpri_b Ek[M||Ekpri_a[H(M)]] D Kpub_a Ekpri_a[H(M)] Mensagem e assinatura são transmitidas de maneira criptografada. O receptor produz o código hash da mensagem recebida e compara com o obtido pela decriptografia da assinatura recebida. Se os dois correspondem, a assinatura é aceita como válida. 10 Assinatura Digital Tal esquema possui uma fraqueza: sua validade depende da segurança da chave privada do transmissor. Se a chave privada for perdida ou roubada, o transmissor poderia repudiar a transmissão de uma mensagem particular; 11 Assinatura Digital Assinatura digital arbitrada: Soluciona os problemas associados ao esquema de assinatura digital direta; Uso de um árbitro; Cada mensagem assinada de um transmissor X para um receptor Y deve primeiro passar pelo árbitro, o qual submete a mensagem e sua respectiva assinatura a um conjunto de testes para verificar sua origem e conteúdo. Se validada, a mensagem é então datada e enviada ao receptor Y. Desta forma, X não poderia repudiar a mensagem M; X e Y devem ter um alto grau de confiança no árbitro e em seus mecanismos de validação. 12 Assinatura Digital (a) Criptografia Convencional, Árbitro Observa a Mensagem Ekxa[IDx||H(M)] = Criptografia do identificador de X e hash da mensagem utilizando a chave de sessão compartilhada entre X e A (transmissor e árbitro, respectivamente); Ekay[ ] = Criptografia com a chave de sessão compartilhada entre A e Y (árbitro e receptor, respectivamente); H(Ekxy[ ]) = Código Hash; M M = Mensagem 13 Assinatura Digital (a) Criptografia Convencional, Árbitro Observa a Mensagem Árbitro A Emissor X Receptor Y (1) X A: M || Ekxa[IDx || H(M)] (2) A Y: Ekay[IDx || M || Ekxa[IDx || H(M)] || T] 14 Assinatura Digital (b) Criptografia Convencional, Árbitro Não Observa a Mensagem Ekxy[M] = Criptografia da Mensagem M com a chave de sessão compartilhada entre X e Y (transmissor e receptor, respectivamente); Ekxa[ ] = Criptografia com a chave de sessão compartilhada entre X e A (transmissor e árbitro, respectivamente); Ekay[ ] = Criptografia com a chave de sessão compartilhada entre A e Y (árbitro e receptor, respectivamente); H(Ekxy[ ]) = Código Hash; 15 Assinatura Digital Árbitro A Emissor X Receptor Y (1) X A: IDx || Ekxy[M] || Ekxa[IDx || H(Ekxy[M])] (2) A Y: Ekay[IDx || Ekxy[M] || Ekxa[IDx || H(Ekxy[M])] || T] 16 Assinatura Digital (c) Criptografia de Chave Pública, Árbitro Não Observa a Mensagem Criptografia com a chave pública Y Criptografia com a chave privada X Criptografia com a chave privada A 17 Assinatura Digital Árbitro A Emissor X Receptor Y (1) X A: IDx || Ekpriv_x[IDx || Ekpub_y(Ekpriv_x[M])] (2) A Y: Ekpriv_a[IDx || Ekpub_y(Ekpriv_x[M])] || T] 18 Bibliografia 19 Bibliografia Livro Criptography and Network Security - Principles and Practice - Second Edition Willian Stallings Prentice Hall 1998