A principal idea da palestra é mostrar como podemos combinar aspectos teóricos e abstratos de ciências da computação, tais como logica de primeira ordem e provadores de teoremas na solução de problemas de segurança envolvendo protocolos criptográficos. O objetivo é mostrar alguns resultados de trabalhos produzidos no meu Ph.D. em Cambridge e trabalhos subsequentes feitos no LabSEC.
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
Métodos formais aplicados a segurança da informação
1. M´todos Formais Aplicados a Seguran¸a da
e c
Informa¸˜o
ca
Uma Pequena Introdu¸˜o
ca
Jean Everson Martina, Ph.D.
Laborat´rio de Seguran¸a em Computa¸˜o
o c ca
Universidade Federal de Santa Catarina
School of Computer Science
University of Hertfordshire
jean.martina@gmail.com
2012
2. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Sum´rio
a
Introdu¸˜o
ca
Um Pequeno Protocolo
Um Grandioso Ataque
Metodos Formais Aplicados a Seguran¸a
c
Resultados e Objetivos
3. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Introdu¸˜o
ca
Introdu¸˜o
ca
Um Pequeno Protocolo
Um Grandioso Ataque
Metodos Formais Aplicados a Seguran¸a
c
Resultados e Objetivos
4. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Introdu¸˜o
ca
Podemos Tornar as Rede Seguras atrav´s do uso da Criptografia?
e
• Objetivos:
• Autenticidade: Quem enviou?
• Sigilo: Quem pode receber?
• Amea¸as:
c
• Um atacante ativo
• Agentes descuidados ou comprometidos
• N˜o consideramos a for¸a dos algor´
a c ıtimos
5. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Nota¸˜o
ca
A, B Nome dos Agentes (Alice e Bob)
Na Numero aleat´rio escolhido por Alice (Nonce)
o
Ka Chave P´blica da Alice
u
{|X |}Ka Mensagem cifrada usando Ka
• Qualquer pessoa pode cifrar
• Somente Alice pode recuperar X
6. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Um Pequeno Protocolo
Introdu¸˜o
ca
Um Pequeno Protocolo
Um Grandioso Ataque
Metodos Formais Aplicados a Seguran¸a
c
Resultados e Objetivos
7. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O Protocolo Needham-Schroeder
Apresenta¸˜o
ca
1. A → B: {|Na , A|}Kb
Alice manda pra Bob um Nonce cifrado
2. B → A: {|Na , Nb |}Ka
Bob retorna para Alice o Nonce dela junto com o Nonce dele
3. A → B: {|Nb |}Kb
Alice Retorna pra Bob o Nonce dele
8. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O Protocolo Needham-Schroeder
Explica¸˜o
ca
1. A → B: {|Na , A|}Kb
Somente Alice conhece Na antes da Mensagem 1
Somente Bob pode decifrar a Mensagem 1
2. B → A: {|Na , Nb |}Ka
Somente Bob conhece Nb antes da Mensagem 2
Bob conhece Na porque ele pode decifrar
Somente Alice pode decifrar a Mensagem 2
3. A → B: {|Nb |}Kb
Alice conhece Nb porque ela pode decifrar
Somente Bob pode decifrar a Mensagem 3
Pra que a mensagem 3?
9. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O Protocolo Needham-Schroeder
Interpreta¸˜o
ca
1. A → B: {|Na , A|}Kb
Alice inicia a sess˜o, Na ´ o controle da sess˜o
a e a
A identidade de Alice (A) serve para Bob saber pra quem
cifrar a mensagem 2
2. B → A: {|Na , Nb |}Ka
Bom manda Na de volta para manter a sess˜o a
Bob Nb para poder autenticar Alice na mensagem 3
Ao receber a Mensagem 2 Alice sabe que s´ Bob poderia
o
te-la criado porque ela cont´m Na
e
3. A → B: {|Nb |}Kb
Alice ja autenticou Bob. Agora ela quer se autenticar para Bob
Ao receber a Mensagem 3 Bob sabe que so Alice poderia
te-la criado porque ela cont´m Nb
e
10. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O Protocolo Needham-Schroeder
Obten¸˜o dos Objetivos
ca
1. A → B: {|Na , A|}Kb
2. B → A: {|Na , Nb |}Ka
3. A → B: {|Nb |}Kb
• O Protocolo autentica Alice para Bob
• O Protocol autentica Bob para Alice
• Pelo uso de Nonces novos (fresh), obtemos a propriedade de
que a outra parte esta viva no protocolo
• Mas e ai? Isso ´ seguro?
e
11. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Um Grandioso Ataque
Introdu¸˜o
ca
Um Pequeno Protocolo
Um Grandioso Ataque
Metodos Formais Aplicados a Seguran¸a
c
Resultados e Objetivos
12. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Regras do Jogo
Modelo de amea¸a
c
• Charlie ´ um atacante muito poderoso.
e
• Ele pode:
• Interceptar qualquer coisa na rede
• Bloquear qualquer coisa na rede
• Repetir Mensagens
• Forjar mensagens como tudo que ele aprendeu monitorando a
rede
• Se comportar como um agente normal
• Ele n˜o pode:
a
• Quebrar algoritmos criptogr´ficos
a
• Adivinhar n´meros aleat´rios
u o
13. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O Protocolo Needham-Schroeder
O ataque de Gavin Lowe
1. A → C: {|Na , A|}Kc
1’. C(A) → B: {|Na , A|}Kb
2’. B → C(A): {|Na , Nb |}Ka
2. C → A: {|Na , Nb |}Ka
3. A → C: {|Nb |}Kc
3’. C → B: {|Nb |}Kb
• Bob acredita estar falando com Alice, quando na verdade est´
a
falando com Charlie.
• Charlie usa Alice como um or´culo para responder aos
a
desafios de Bob.
• Charlie pode usar Nb para provar para Bob que ele ´ Alice
e
14. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O ataque de Gavin Lowe
Fatos
• Gavin Lowe era um “mero”professor de teoria da computa¸˜o
ca
em Oxford
• Parece f´cil, mas levaram 15 anos para descubrir este ataque.
a
• O ataque funciona porque o modelo de amea¸a ´ mais forte.
c e
• Mas o ataque s´ foi descoberto atrav´s do uso de um m´todo
o e e
formal, neste caso um checador de modelos.
15. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Metodos Formais Aplicados a Seguran¸a
c
Introdu¸˜o
ca
Um Pequeno Protocolo
Um Grandioso Ataque
Metodos Formais Aplicados a Seguran¸a
c
Uma pequena revis˜o sobre L´gica
a o
Modelando um Protocolo
Modelo L´gico do Atacante
o
Resultados no Provador de Teoremas SPASS
Resultados e Objetivos
16. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Pequena Revis˜o de L´gica
a o
Antes de falar de m´todos formais vamos revisar um pouco de
e
l´gica matem´tica
o a
• L´gica Proposicional
o
• L´gica de Primeira Ordem (FOL)
o
17. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
L´gica Proposicional
o
´
• E o system l´gico maps basico. Ele estuda os arguments e sue
o
estrutura.
• Um argument ´ uma senten¸a declarative em lingua gem
e c
natural (ex. Portuguˆs)
e
• Por exemplo: “O ˆnibus est´ atrasado”
o a
• Foi descoberta por Arist´teles na Grecia Antiga.
o
• Cada Senten¸a recede um valor de V (verdadeiro) ou F
c
(falso).
• Existem regras bem definidas para extrair significado de
argumentos complexos. (Modus Ponens, Modus Tolens,
Nega¸˜o da Implica¸˜o entre outros).
ca ca
´ uma l´gica cl´ssica e f´cil de entender.
• E o a a
18. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Um exemplo de F´rmula em L´gica Proposicional
o o
Est´ chovendo.
a : P
Jane tem seu guarda-chuva consigo. : Q
Jane se molha. : R
(P ∧ ¬Q) → R, ¬R, P Q
ımbolos: ∧ – “e”; ∨ – “ou”; – “n˜o”; → – “implica”; ↔ –
• S´ a
“equivalente a”; – “prova”; and – “n˜o prova”.
a
19. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
L´gica de Primeira Ordem (FOL)
o
• Tamb´m conhecida como l´gica de predicados ou l´gica
e o o
quantificacional.
• Estende a expressividade da l´gica proposicional.
o
´ ıcil
• E dif´ expressar senten¸as como “alguma coisa ´ uo tˆm ...”
c e e
em L´gica Preposicional.
o
• A grande diferen¸a para com a L´gica Preposicional ´ a
c o e
existˆncia de quantificadores:
e
• ∃ (existe), and ∀ (para todos).
• Outros conceitos s˜o: predicados, vari´veis, fun¸˜es e
a a co
constantes.
• Essa l´gica ´ expressiva o suficiente para modelarmos
o e
protocolos
20. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Um exemplo de uma F´rmula FOL
o
S(x, y ) : x ´ filho de y (S ´ um predicado)
e e
B(x, y ) : x ´ irm˜o de y (B ´ um outro predicado)
e a e
f (x) : retorna o pai de x (f ´ uma fun¸˜o)
e ca
∀x[S(x, f (m) → B(x, m))]
(m ´ uma constante, e x ´ uma vari´vel)
e e a
Nossos protocolos podem ser modelados desta forma.
21. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Definindo os Predicados
• E (x): x ´ uma entidade (um agente) no protocolo.
e
• Stores(x, y ): o dado x ´ armazenado pela entidade y .
e
• Knows(x, y ): o dado x ´ conhecido pela entidade y .
e
• M(x): a mensagem x ´ enviada no protocolo.
e
22. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Definindo as Fun¸oes
c˜
• Agrupamento de mensagens:
• pair (x, y ); triple(x, y , z).
• Troca de mensagens:
• sent(x, y , z): o agente x envia ao agente y a mensagem z.
• Fun¸˜es de chave:
co
• krkey (x, y ): a chave privada x pertence ao agente y ;
• kukey (x, y ): a chave p´blica x pertence ao agente y ; e
u
• kp(x, y ): a chave privada x e a chave p´blica y formam um
u
par de chaves.
23. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Definindo as Fun¸oes
c˜
• Fun¸˜es de Nonce:
co
• nonce(x, y ): o nonce x ´ gerado pela entidade y .
e
• Primitivas criptogr´ficas:
a
• encr (x, y ): o dado x ´ cifrado usando a chave y ; e
e
• sign(x, y ): o dado x ´ assinado usando a chave y .
e
24. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Definindo as Constantes
• Agentes participantes do protocolo:
• a (Alice); b (Beto); c (Charlie).
• Chaves privadas e chaves p´blicas:
u
• kra; kua: chave privada e chave p´blica de Alice
u
• krb; kub: chave privada e chave p´blica de Beto
u
• krc; kuc: chave privada e chave p´blica de Charlie
u
• Nonces:
• na; nb; nc.
25. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Definindo a Base de Conhecimento Inicial
• O primeiro passo ´ definir o conhecimento pertencente a cada
e
agente. Por exemplo, parte do conhecimento inicial de Alice ´:
e
Exemplo
E (a)
Knows(kp(krkey (kra, a), kukey (kua, a)), a)
Knows(kukey (kub, b), a)
Knows(kukey (kuc, c), a)
Knows(nonce(na, a), a)
A mesma coisa se faz para os outros agentes Beto e Charlie
26. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Descrevendo o Protocolo
• Em seguida, modelamos cada passo da troca de mensagens.
Por exemplo, o primeiro passo ´ modelado da seguinte forma:
e
Exemplo
Knows(kukey (kua, a), a) ∧
Knows(kp(krkey (kra, a), kukey (kua, a)), a) ∧
Knows(kukey (kub, b), a) ∧
Knows(nonce(na, a), a)
→
M(sent(a, b, encr (pair (na, a), kub)) ∧
Stores(pair (na, b)a)
27. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Descrevendo o Protocolo
• O segundo passo:
Exemplo
∀x[Knows(kukey (kub, b), b) ∧
Knows(kp(krkey (krb, b), kukey (kub, b)), b) ∧
Knows(kukey (kua, a), b) ∧
Knows(nonce(nb, b), b) ∧
M(sent(x, b, encr (pair (na, a), kub))
→
M(sent(b, a, encr (pair (na, nb), kua)) ∧
Stores(pair (nb, a), b)]
28. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Descrevendo o Protocolo
• O terceiro passo:
Exemplo
∀x[
Stores(pair (na, b), a) ∧
M(sent(x, a, encr (pair (na, nb), kua))
→
M(sent(a, b, encr (nb), kub))]
29. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Modelo L´gico do Atacante
o
• O modelo do atacante adiciona alguns elementos l´gicos:
o
• A constante c que representa o pr´prio atacante;
o
• Os dados do atacante ao personificar um usu´rio v´lido no
a a
protocolo; e
• O predicado Im(x) que indica o conhecimento aprendido pelo
atacante pela manipula¸˜o das mensagens trocadas. Este
ca
predicado possui funcionamento idˆntico ao predicado M(x).
e
30. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Conhecimento Inicial
1. O atacante ´ uma entidade no protocolo e tem seus dados `
e a
sua pr´pria disposi¸˜o:
o ca
• E (c)
2. Conhece os dados p´blicos dos agentes leg´
u ıtimos:
• Knows(kukey (kua, a), c)
• Knows(kukey (kub, b), c)
3. Pode gravar todas as mensagens:
• ∀x, y , w [M(sent(x, y , w )) → Im(w )]
31. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Transforma¸oes de Mensagens
c˜
1. Pode decompor mensagens em peda¸os menores:
c
• ∀u, v [Im(pair (u, v )) → Im(u) ∧ Im(v )]
• ∀u, v , w [Im(triple(u, v , w )) → Im(u) ∧ Im(v ) ∧ Im(w )]
2. Pode fabricar mensagens a partir do conte´do aprendido:
u
• ∀u, v [Im(u) ∧ Im(v ) → Im(pair (u, v ))]
• ∀u, v , w [Im(u) ∧ Im(v ) ∧ Im(w ) → Im(triple(u, v , w ))]
3. Pode enviar mensagens falsas:
• ∀u, x, y [Im(u) ∧ E (x) ∧ E (y ) → M(sent(x, y , u))]
32. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Capacidades Criptogr´ficas
a
1. Qualquer coisa pode potencialmente ser uma chave:
• ∀u, v [Im(u) ∧ E (v ) → Knows(krkey (u, v ), c)]
• ∀u, v [Im(u) ∧ E (v ) → Knows(kukey (u, v ), c)]
2. Qualquer coisa pode potencialmente ser um nonce:
• ∀u, v [Im(u) ∧ E (v ) → Knows(nonce(u, v ), c)]
3. Gerar mensagens cifradas ou assinadas com as chaves
conhecidas:
• ∀u, v , x[Im(u) ∧ Knows(kukey (v , x), c) ∧ E (x) →
Im(encr (u, v ))]
• ∀u, v , x[Im(u)∧Knows(krkey (v , x), c)∧E (x) → Im(sign(u, v ))]
33. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Mais em Capacidades Criptogr´ficas
a
1. Decifrar mensagens com chaves conhecidas:
• ∀u, v , w , x[Im(encr (u, v )) ∧
Knows(kp(krkey (w , x), kukey (v , x)), c) ∧
E (x) → Im(u))]
2. Decifrar mensagens com nonces conhecidos:
• ∀u, v , w [Im(encr (u, v )) ∧ Knows(nonce(v , w ), c) ∧ E (w ) →
Im(u))]
3. Ter acesso ao conte´do das mensagens assinadas:
u
• ∀u, v [Im(sign(u, v )) → Im(u)]
34. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
O Provador de Teoremas SPASS
• A busca por provas pode ser feita manualmente, com papel e
caneta.
• Por´m, um modo mais conveniente (e pr´tico) ´ o uso de
e a e
provadores de teoremas como suporte ` obten¸˜o das provas.
a ca
• O provador de teoremas escolhido foi o SPASS.
• Lida com L´gica de Primeira Ordem.
o
• Prova por contradi¸˜o (nega¸˜o da conjectura).
ca ca
• Provador de prop´sito geral.
o
35. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Testando os Modelos L´gicos
o
• O teste de conjecturas sobre os modelos l´gicos criados,
o
permite a extra¸˜o de fatos sobre nosso protocolo.
ca
• Conjecturas s˜o afirma¸˜es que n˜o sabemos se s˜o
a co a a
verdadeiras ou falsas a partir dos axiomas (premissas).
• Por sua vez, fatos s˜o as afirma¸˜es extra´
a co ıdas a partir do teste
de conjecturas.
• O ataque de Lowe pode ser facilmente verificado nesta
especifica¸˜o formal
ca
36. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Resultados e Objetivos
Introdu¸˜o
ca
Um Pequeno Protocolo
Um Grandioso Ataque
Metodos Formais Aplicados a Seguran¸a
c
Resultados e Objetivos
37. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Resultados at´ agora no LabSEC
e
• Verifica¸˜o dos protocolos da Nota Fiscal Eletrˆnica usando
ca o
FOL
• Verifica¸˜o de Protocolos de Autentica¸˜o Biom´trica usando
ca ca e
FOL
• Verifica¸˜o de Protocolos de Multicast usando HOL
ca
38. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Objetivos
• Desenvolver uma comunidade de m´todos formais para a
e
seguran¸a
c
• Dar mais garantias aos protocolos amplamente usados
• Formar pessoas capacitadas na arte:
• Alta empregabildade: Intel, Arm, Nvidia, Microsoft, etc usam
as mesmas t´cnicas para outros problemas.
e
39. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Projetos Futuros
• Atacar protocolos usando t´cnicas mais elaboradas em l´gicas
e o
com mais expressividade (HOL)
• Gerar m´todos de verifica¸˜o formal de itera¸˜o humana com
e ca ca
protocolos
40. Introdu¸˜o
ca Um Pequeno Protocolo Um Grandioso Ataque Metodos Formais Aplicados a Seguran¸a
c Resultados e Objetivos
Agradecimentos
• Eduardo dos Santos, M.Sc. pela grande ajuda na confec¸˜o
ca
dos slides e na execu¸˜o de experimentos.
ca