18.11.2014 Views

Anais - Engenharia de Redes de Comunicação - UnB

Anais - Engenharia de Redes de Comunicação - UnB

Anais - Engenharia de Redes de Comunicação - UnB

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

pública do agente B. É também importante, como outro exemplo, que a linguagem <strong>de</strong><br />

especificação tenha meios para expressar os procedimentos <strong>de</strong> troca <strong>de</strong> mensagens: que<br />

se A envia uma mensagem cifrada para B, esta mensagem será em algum momento (futuro)<br />

recebida por B. É este nível <strong>de</strong> <strong>de</strong>talhamento, permitido ou não pela linguagem, que<br />

<strong>de</strong>sejamos analisar neste trabalho. Como estudo <strong>de</strong> caso, foi feita a especificação do protocolo<br />

<strong>de</strong> chaves públicas Needham-Schröe<strong>de</strong>r [Needham and Schröe<strong>de</strong>r 1978], <strong>de</strong>scrito<br />

na Seção 2, utilizando duas abordagens distintas.<br />

Na primeira abordagem é utilizada lógica modal, que é uma extensão da lógica<br />

clássica com alguns novos operadores. Nas lógicas aqui utilizadas, operadores temporais<br />

apreen<strong>de</strong>m os aspectos dinâmicos das trocas <strong>de</strong> mensagens; operadores epistêmicos <strong>de</strong>notam<br />

o conhecimento dos agentes envolvidos acerca dos aspectos da comunicação. Esta<br />

primeira formalização é apresentada resumidamente na Seção 3.<br />

A outra abordagem é baseada no uso <strong>de</strong> um verificador <strong>de</strong> mo<strong>de</strong>los. Como<br />

<strong>de</strong>finido em [Merz 2001], o termo verificação <strong>de</strong> mo<strong>de</strong>los correspon<strong>de</strong> a um coleção<br />

<strong>de</strong> técnicas para análise automática <strong>de</strong> sistemas reativos, ou seja, sistemas que recebem<br />

estímulos externos e realizam ações <strong>de</strong> acordo com estes. O SPIN [Ben-Ari 2008,<br />

Holzmann 2003] é um representante <strong>de</strong>ste grupo <strong>de</strong> ferramentas, possuindo uma linguagem<br />

específica para a <strong>de</strong>scrição dos mo<strong>de</strong>los, chamada PROMELA. Apresentamos<br />

a formalização do NSP na Seção 5.<br />

Observamos que este trabalho não visa <strong>de</strong>monstrar a incorreção do NSP, fato<br />

já <strong>de</strong>monstrado anteriormente [Lowe 1996]. Tão pouco visa apresentar mais uma<br />

formalização <strong>de</strong> tal protocolo, já vastamente estudado e <strong>de</strong>scrito em diferentes linguagens<br />

[NuSMV 2011, Burrows et al. 1990, SPIN 2011, Islam et al. 2006, Dixon et al. 2007,<br />

Samia et al. 2009]. Como já mencionado, o trabalho <strong>de</strong> especificação envolve o <strong>de</strong>talhamento<br />

dos aspectos <strong>de</strong> comunicação e nossa intenção é analisar características dos<br />

dois formalismos apontados que facilitem ou dificultem as tarefas <strong>de</strong> especificação e<br />

verificação. Esta análise, baseada no estudo <strong>de</strong> caso, é apresentada na Seção 7. Na Seção 8<br />

apresentamos nossas consi<strong>de</strong>rações finais.<br />

2. Protocolo <strong>de</strong> Chaves Públicas Needham-Schröe<strong>de</strong>r<br />

O protocolo <strong>de</strong> autenticação <strong>de</strong> chave pública <strong>de</strong>scrito em<br />

[Needham and Schröe<strong>de</strong>r 1978], conhecido pela sigla NSP, tem como finalida<strong>de</strong> estabelecer<br />

autenticação entre um agente A, que inicia o protocolo, e outro agente B. O<br />

protocolo completo consiste em sete mensagens: três que correspon<strong>de</strong>m ao estabelecimento<br />

da autenticação propriamente dita e quatro relativas à consulta ao servidor <strong>de</strong><br />

chaves públicas.<br />

A Tabela 1 apresenta esquematicamente as mensagens trocadas para a<br />

autenticação dos agentes envolvidos. A primeira coluna da tabela i<strong>de</strong>ntifica a mensagem;<br />

a segunda coluna apresenta o encaminhamento da mensagem; e a terceira coluna, seu<br />

conteúdo. Por exemplo, a primeira linha diz que a Mensagem 1, cujo conteúdo são as<br />

i<strong>de</strong>ntificações dos agentes A e B, é encaminhada pelo agente A ao servidor, S. Mensagens<br />

com o subscrito chave pub(Z) <strong>de</strong>notam que o conteúdo é cifrado com a chave<br />

pública do agente Z; analogamente, o subscrito chave priv(Z) <strong>de</strong>nota que o conteúdo é<br />

cifrado com a chave privada <strong>de</strong> Z.<br />

Ainda na Tabela 1, os nonces dos agentes são representados por N in<strong>de</strong>xado pelo<br />

321

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!