1 / 34

Rodrigo Borges Nogueira

Rodrigo Borges Nogueira Mestrando em Informática - Universidade de Brasília Orientador : Maurício Ayala Rincón Co-orientador : Anderson Nascimento Métodos Formais Aplicados à Verificação de Protocolos Criptográficos. Quarto Seminário Informal (mas Formal!) do Grupo de Teoria da Computação.

huy
Download Presentation

Rodrigo Borges Nogueira

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rodrigo Borges Nogueira Mestrando em Informática - Universidade de BrasíliaOrientador: Maurício Ayala RincónCo-orientador: Anderson Nascimento Métodos Formais Aplicados à Verificação de Protocolos Criptográficos Quarto Seminário Informal (mas Formal!) do Grupo de Teoria da Computação

  2. Bank Hospital Building Systems on Open Networks Security Proof !!! 2 M. Backes, B. Pfitzmann, M. Waidner, Zurich, 2003-2004 Cryptography! Confidence? Attackers? E-Government

  3. Crypto-Toolbox Prob[ Attack ]  … DL(gx) Fact(p*q) Encryption Hashfunction Signature Proof Key establishment Cryptography: The Details 3 M. Backes, B. Pfitzmann, M. Waidner, Zurich, 2003-2004

  4. O que é Segurança? (Informalmente) • Segurança baseia-se em prover garantias [1] • Autenticação • Sigilo • Não-repúdio • Não-interferência • Atomicidade • Imparcialidade/Justiça (Fairness) • Equação de Nemeth:Segurança α 1/Conveniência [2] [1] Aldrin John D’Souza. Formal Analysis of Cryptographic Protocols. [2] Pedro Rezende. Apostila de aula.

  5. Protocolos Criptográficos [3] • Para protocolos em geral: • Participantes conhecem passos do protocolo • Participantes concordam em segui-lo • Não possui ambiguidades – passos bem definidos • Deve ser completo – uma ação para cada situação possível • Protocolos criptográficos: • Possuem requisitos de segurança • Não deve ser possível fazer/aprender mais do que o esperado por um participante. [3] Bruce Schneider - Applied Cryptography – Second Edition

  6. Métodos Formais e Protocolos Criptográficos? • Durante algum tempo: protocolos desenvolvidos sobre ciclos de descobertas de falhas. [4] • Por que provar matematicamente requisitos de segurança? • Protocolo de autenticação Needham-Schroeder (1978) [5] • Dezessete anos “seguro” • Lowe descobriu ataque man-in-the-middle no protocolo • Falha em protocolo contido no projeto do padrão CCITT X.509. Meadows. [4] M. Backes. Cryptographically Sound Analysis of Security Protocols [5]Gavin Lowe. Breaking and Fixing the Needham-Schroeder public-key protocol using FDR

  7. Métodos Formais e Protocolos Criptográficos? • Man-in-the-middle no protocolo de autenticação Woo-Lam (1992) [1] • “whenever a responder finishes execution of the protocol, the initiator of the protocol is in fact the principal claimed in the initial message” • A Lesson on Authentication Protocol Design - Woo, Lam (1994) • Ataque multi-protocolo – Cremers em Verification of Multi-Protocol Attacks (2004) [6] • De 30 protocolos da literatura, 23 são vulneráveis • SET [12]: algumas fracas garantias (2006). • Violação de expectativas do proprietário do cartão de crédito. [6] Cremers. Verification of Multi-Protocol Attacks [12] Verifying the SET Purchase Protocols. G. BELLA, F. MASSACCI and L . C. PAULSON. Feb, 2006.

  8. Notação • {m}K: m encriptada com chave K. • pkU, pkU-1: par de chaves públicas de participante U. • nU : nonce criado por U. • Z : Adversário. Z(A) : Z personifica A. • KAB: Chave secreta compartilhada entre participantes A e B. • A  B : Participante A envia mensagem para participante B. • U : Identificador do usuário U.

  9. O Protocolo de Woo-Lam [1] • Autenticação • Usuários compartilham chaves com servidor • A  B : A • B  A : nB • A  B : {nB}KAS • B  S : {A,{nB}KAS}KBS • S  B : {nB}KBS Correção informal do protocolo

  10. Quebrando o Protocolo de Woo-Lam [1] • Z inicia duas sessões concorrentes • Personifica A em uma das sessões • Informação de uma sessão é utilizada na outra • Z prova a B que é A.

  11. Quebrando o Protocolo de Woo-Lam [1] 1.Z(A)  B : A 1’.Z  B : Z 2.B  Z(A) : nB 2’.B  Z : n’B 3.Z(A)  B : {nB}KZS 3’.Z  B : {nB}KZS 4.B  S : {A, {nB}KZS}KBS 4’.B  S : {Z, {nB}KZS}KBS 5.S  B : {n’’B}KBS 5’.S  B : {nB}KBS

  12. O Protocolo de Needham-Schroeder (1978) [7] • A  B : {nA, A}pkB • B  A : {nA, nB}pkA • A  B : {nB}pkB [7] C. J. F. Cremers, S. Mauw & E. P. de Vink. Formal Methods for Security Protocols: Three Examples of the Black-Box Approach.

  13. Quebrando o Protocolo Needham-Schroeder [7] • A  Z : {nA, A}pkZ • Z(A)  B : {nA, A}pkB • B  Z(A) : {nA, nB}pkA • Z  A : {nA, nB}pkA • A  Z : {nB}pkZ • Z(A)  B : {nB}pkB ??? E se: ??? • A é um indivíduo honesto • Z é um comerciante on-line embusteiro • B é o banco de A

  14. Correção do Protocolo Needham-Schroeder [5] • Lowe descobriu o ataque utilizando o model checker failures divergence refinement (1995) (FDR) • Correção proposta: • B  A : {nA, nB, B}pkA • Lowe provou que protocolo Needham-Schroeder-Lowe era seguro. • Primeiros 2 artigos de Lowe causaram grande interesse na área de criptografia formal.

  15. Abordagens da verificação formal [Meadows, 1992] –Tipo I • Modelagem e verificação de protocolos por ferramentas de propósito geral. Ex: Autômato não-determinístico [8] [8] Aviel D. Rubin, Peter Honeyman. Formal Methods for the Analysis of Authentication Protocols. 1993.

  16. Abordagens da verificação formal – Tipo II • Tipo II – Sistemas especialistas provêm: • Avaliação de diferentes cenários. • Construção de modelos para contínuo refinamento. • Diferentes formas de interação com os modelos. • Modelagens que respondem a questões do tipo “E se...”. • Testes de possíveis modificações dos protocolos. • Interrogator: Visão do protocolo como uma coleção de processos comunicantes. [8] • Provador de Blanchet: Games representados em um process calculus inspirado principalmente pelo pi-calculus. [9] Bruno Blanchet. A Computationally Sound Mechanized Prover for Security Protocols. 2006.

  17. Abordagens da verificação formal – Tipo III • Tipo III – Desenvolvimento de lógicas para análise de conhecimento e/ou confiança • Lógica BAN: regras de inferência para modelar a confiança em um protocolo • Algumas extensões: lógica GNY, lógica de Mao e Boyd • Exemplos de regras BAN [7]:

  18. Abordagens da verificação formal – Tipo IV • Tipo IV – Modelos formais baseados em álgebra de termos. • Modelo Dolev-Yao [10]: Dolev e Yao definiram algumas classes de protocolos. • Protocolos cascata: Usuários podem aplicar operações Enc-Dec em diversas camadas para construir mensagens. • Modelo de Merritt [8]: Generalizações sobre o modelo Dolev-Yao, permitindo modelar diversos sistemas criptográficos. [10] D. Dolev and A. Yao. On the security of public-key protocols.

  19. Trabalho de Mestrado • Criar metodologia de análise de protocolos criptográficos utilizando PVS. • Provar modelo de segurança Dolev-Yao no PVS. • Especificar um protocolo atual e relevante em PVS. • Definir algumas primitivas criptográficas para o modelo Dolev-Yao através de teorias.

  20. Por que PVS? • Experiência do Grupo de Teoria da Computação com PVS. • Robustez do sistema: resultados importantes publicados • Provas de algoritmos complexos de tolerância a falhas. • Erros encontrados em μ-processador pipelined comercial contendo aprox. 500.000 transistores na verificação do microcódigo. • Alguns resultados publicados na área de verificação formal de protocolos criptográficos utilizando PVS.

  21. Modelo Dolev-Yao para Protocolos em Cascata [10] • Modelo formal • Sintaxe do protocolo. • Regras de inferência que o adversário utiliza para descobrir o texto claro. • Protocolos em cascata para dois participantes. • Participantes aplicam apenas operadores Enc-Dec a mensagens. Exemplo: • A  B : EB(M) • B  A : (DB(EA(M))

  22. Modelo Dolev-Yao para Protocolos em Cascata [10] Modelo do Adversário • Lê todo o tráfego de rede. • Altera e destrói mensagens. • Cria novas mensagens. • Faz qualquer coisa que um usuário honesto é capaz de fazer. • Conhecimento de termos para iniciar conversa. • Limitado pelas primitivas criptográficas • M em EX(M) só é obtida conhecendo-se DX.

  23. Modelo Dolev-Yao para Protocolos em Cascata [10] Notação para o modelo Dolev-Yao • Usuário Utem par de operadores EU e DU. • Aplicação de operadores a uma mensagem M: EU(M) , DU(M) • Representação de η1(η2(η3(...(M)...))) como η1η2η3...M, onde ηi é um operador. • γ : redução deγ através da eliminação de pares de operadores complementares.x : usuárioExDx = DxEx = 1

  24. Modelo Dolev-Yao para Protocolos em Cascata [10] • Seja X e Y participantes distintos • Definição 1:αi(X,Y) Є {EX, EY, DX} e βj(X,Y) Є {EX, EY, DY} |1≤i≤t e 1≤j≤t’, onde t’=t ou t’=t-1 e t+t’ é o número de passos entre X e Y que o protocolo executa. Exemplo: • X  Y : α1(X,Y)M = EXM = M’ • Y  X : β1(X,Y)M’ = EY EYEXM = M’’ • X  Y : α2(X,Y)M’’ = DXEY EYEXM = M’’’ • Y  X : β2(X,Y)M’’’ = DYEXDXEY EYEXM

  25. Modelo Dolev-Yao para Protocolos em Cascata [10] • Definição 2:Seja a especificação de protocolo em cascata: {αi(X,Y), βj(X,Y) | 1≤i≤t e 1≤j≤t’}, define-se: N1(X,Y) = α1(X,Y) N2j(X,Y) = βj(X,Y) N2j-1(X,Y) (1≤j≤t’) N2i+1(X,Y) = αi+1(X,Y) N2i(X,Y) (1≤i≤t) X deseja enviar mensagem M a Y. As mensagens trocadas sãoNi(X,Y) M, onde i = 1,2,...,t+t’

  26. Modelo Dolev-Yao para Protocolos em Cascata [10] • Definição 3:Seja Σ1(Z) = E U {DZ},Σ2 = {αi(A,B) | para todo A ≠ B e i ≥ 2},Σ3 = {βi(A,B) | para todo A ≠ B e i ≥ 1} Z pode agregar a uma mensagem M :γЄ (Σ1(Z) U Σ2 U Σ3) • Σ2: Z intercepta a (i-1)-ésima mensagem M de B para A, destruindo-a. Z  A : M’ A  Z|B : αi(A,B)M’ • Σ3: Z(A) B : M’ B  Z(A) : βi(A,B)M’

  27. Modelo Dolev-Yao para Protocolos em Cascata [10] • O protocolo é inseguro se existe algumγЄ (Σ1(Z) U Σ2 U Σ3) tal que γNi(X,Y) = λ

  28. Modelo Dolev-Yao para Protocolos em Cascata [10] • Definição informal da função lt:Para αi(X,Y) = EX EXEY, temos lt(αi(X,Y)) = {EX,EY} • Teorema (segurança do protocolo em cascata) • Um protocolo cascata entre 2 participantes X e Y é seguro se e somente se: 1) lt(α1(X,Y)) ∩ {EX, EY} ≠ Ǿ 2) O protocolo é balanceado

  29. Operações de chaves públicas do modelo Dolev-Yao em PVS x : usuárioExDx = DxEx = 1 cancellation1 : AXIOMFORALL l, n, x:(n < (length(l)+(-1)) ANDnth(l,n) = E*x ANDnth(l,(n+1)) = D*x) IMPLIESl = excludenth(excludenth(l,n),n) cancellation2... excludenth(l, (n:below[length(l)])):RECURSIVE list[op] = IF n = 0 THEN cdr(l) ELSEappend(cons(car(l),null), excludenth(cdr(l), n+(-1))) ENDIF MEASURElength(l)

  30. Prova de Lema em PVS opsCancel1 : LEMMAcons(E*x,cons(D*y,cons(E*y,cons(D*x,null)))) = null FORALL (x, y: user): cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))) = null (skeep) cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))) = null (lemma cancellation2) FORALL (l, n, x):(n < (length(l) + (-1)) AND nth(l, n) = D*x ANDnth(l, (n + 1)) = E*x) IMPLIES l = excludenth(excludenth(l, n), n) (inst -1 "cons(E*x, cons(D*y, cons(E*y, cons(D*x, null))))" "1" "y")

  31. Prova de Lema em PVS (1 < (length(cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))))+ (-1)) AND nth(cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))), 1) = D*y AND nth(cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))), (1 + 1)) = E*y) IMPLIEScons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))) = excludenth(excludenth(cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))), 1), 1) (repeat (expand length)) (repeat(expand nth)) (repeat(expand excludenth)) (repeat(expand append)) cons(E*x, cons(D*y, cons(E*y, cons(D*x, null)))) = cons(E*x, cons(D*x, null)) (lemma cancellation1("l" "cons(E * x, cons(D * x, null))" "n" "0" "x" "x")) expande termos...

  32. Próximos passos • Provar teorema de especificação de segurança segundo Dolev-Yao. • Considerar adversário mais poderosos [13]. [13] J. Herzog. A computational interpretation of Dolev-Yao adversaries. Jun, 2005.

  33. Conclusões • Modelo Dolev-Yao é adequado para modelagem de protocolos em provadores automáticos. • Provas automáticas reduzem muito a probabilidade de erros. • Na literatura, maioria prova contra ataques conhecidos. • Difícil obter um modelo de segurança abrangente. • Poucos automatizaram provas no modelo Dolev-Yao. • Modelo mais poderoso do que parecia

  34. FIM

More Related