340 likes | 430 Views
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.
E N D
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
Bank Hospital Building Systems on Open Networks Security Proof !!! 2 M. Backes, B. Pfitzmann, M. Waidner, Zurich, 2003-2004 Cryptography! Confidence? Attackers? E-Government
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
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.
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
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
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.
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.
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
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.
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
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.
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
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.
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.
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.
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]:
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.
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.
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.
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))
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.
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
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
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’
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’
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) = λ
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
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)
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")
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...
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.
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