Your SlideShare is downloading. ×
Métodos formais aplicados a segurança da informação
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Métodos formais aplicados a segurança da informação

592
views

Published on

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 …

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.

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
592
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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