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.

1. send(X, M, K): o agente X envia a mensagem M cifrada com a chave K;<br />

2. recv(X, M, K): o agente X recebe a mensagem M cifrada com a chave K;<br />

3. Msg(M): M é uma mensagem;<br />

4. chave priv(X)echave pub(X):<br />

5. val chave pub(X, V ): o valor da chave pública X é V ;<br />

6. val nonce(N X , V ): o valor do nonce N X é V ;<br />

7. contem(M 1 , M 2 ): a mensagem M 2 está contida em M 1 .<br />

Tabela 2. Tabela <strong>de</strong> predicados<br />

conhecimento dos agentes (Axiomas <strong>de</strong> Conhecimento); a comunicação entre os agentes<br />

e a maneira que o conhecimento é modificado com o tempo (Axiomas <strong>de</strong> Comunicação);<br />

e as condições iniciais do conteúdo das mensagens, chaves e nomes para uma situação específica<br />

(Axiomas <strong>de</strong> Caso). Todos os axiomas apresentados estão no escopo do operador<br />

, uma vez que caracterizam condições que <strong>de</strong>vem ser mantidas durante todo o protocolo.<br />

Nos trechos <strong>de</strong> especificação aqui apresentados, omitiremos o operador temporal.<br />

Como o interesse <strong>de</strong>ste trabalho está centrado na comparação entre abordagens,<br />

apresentaremos apenas alguns dos axiomas globais e <strong>de</strong> conhecimento. O conjunto completo<br />

<strong>de</strong> axiomas po<strong>de</strong> ser visto em [Vieira 2011]. Três dos cinco axiomas globais são<br />

apresentados na Tabela 3. Estes axiomas caracterizam as condições do protocolo relativas<br />

aos conteúdos das mensagens e chaves. Na Tabela 4 apresentamos três dos seis axiomas<br />

relacionados ao conhecimento básico dos agentes envolvidos no protocolo. Estes serão<br />

os axiomas que utilizaremos na análise apresentada à Seção 7.<br />

1. ∀X, Chave, M 1<br />

(send(X, M 1 , Chave) ⇒ ¬contem(M 1 , val chave priv(X)))<br />

Nenhum agente irá revelar sua chave privada a outros agentes<br />

2. ∀X, Y, V<br />

((val chave pub(X, V ) ∧ val chave pub(Y, V )) ⇒ X = Y )<br />

Nenhum par <strong>de</strong> agentes possui chaves públicas idênticas<br />

3. ∀X, Chave, M 2<br />

(send(X, M 2 , Chave) ∧ ∃Y (contem(M 2 , N Y ) ⇒ (Chave = chave pub Y )))<br />

Mensagens contendo nonces, estão cifradas pela chave pública do <strong>de</strong>stinatário<br />

Tabela 3. Axiomas globais<br />

1. start ⇒<br />

∀X(¬K X val chave pub(A, a) ∧ ¬K X val chave pub(B, b) ∧ ¬K X val chave pub(C, c))<br />

Nenhum agente sabe as chaves públicas dos outros agentes no início do protocolo<br />

2. ∀X, N, V (K X val nonce(N, V ) ⇒ ❣ K X val nonce(N, V ))<br />

Os agentes não esquecem os nonces que já conhecem<br />

3. ∀XK X val chave priv(S, s)<br />

Todos os agentes sabem as chave privada do servidor S<br />

Tabela 4. Axiomas <strong>de</strong> conhecimento<br />

5. SPIN e PROMELA<br />

O SPIN é um verificador <strong>de</strong> processos assíncronos que explora, usando força<br />

bruta, todos os possíveis estados que <strong>de</strong>screvem um sistema. PROMELA é a linguagem<br />

para especificação <strong>de</strong> sistemas concorrentes utilizada pelo SPIN [Holzmann 2003].<br />

324

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

Saved successfully!

Ooh no, something went wrong!