Segurança em Redes Ad Hoc - Universidade Federal do Paraná

Transcrição

Segurança em Redes Ad Hoc - Universidade Federal do Paraná
Minicurso
1
Segurança em Redes Ad Hoc
Angelo Bannack1
Eduardo da Silva1
Aldri Luiz Santos1
Michele Nogueira Lima2
Luiz Carlos Pessoa Albini1
1 NR2/LARSIS
– Departamento de Informática – Universidade Federal do Paraná
Caixa Postal 19081 – 81.531-980 – Curitiba – PR – Brasil
2 Laboratoire
d’informatique de Paris 6 – Université Pierre et Marie Curie
104, Avenue du Président Kennedy – 75016 – Paris – França
{bannack,eduardos,aldri,albini}@inf.ufpr.br, [email protected]
Abstract
Ad Hoc networks are networks without any infrastructure or centralized entity to control
their activities. All the functionalities of such networks, such as routing and key management, must be performed by the units of the network themselves in a self-organised way.
Hovewer, due to these characteristics, ad hoc networks are vulnerable to passive and active attacks. Thus, it is necessary to develop protocols which consider the presence of
attackers and are resistant to them. This tutorial presents the main security schemes for
ad hoc networks in three critical areas: key management, routing and lack of cooperation.
For each area, the main protocols existent nowadays as well as their limitations are also
presented and detailed.
Resumo
Redes ad hoc são redes sem nenhuma infra-estrutura ou entidade centralizadora para
controlar as suas atividades. Todas as atividades destas redes, como o roteamento e o
gerenciamento da rede, devem ser realizadas pelas próprias unidades da rede de uma
forma auto-organizada. Entretanto, devido a estas características, as redes ad hoc são
vulneráveis a ataques passivos e ativos. Assim, é necessário desenvolver protocolos que
considerem a presença de atacantes na rede e sejam resistentes a estes ataques. Este
minicurso apresenta as principais soluções de segurança para redes ad hoc em três áreas
críticas: o gerenciamento de chaves, o roteamento e a falta de cooperação das unidades.
Para cada uma destas áreas, são apresentados e detalhados os principais protocolos
existentes atualmente, bem como as suas limitações.
1. Introdução
As redes sem fio datam do início da década de 70, quando as universidades das
ilhas do Havaí montaram uma rede utilizando microondas para se interligarem, a chamada
ALOHAnet [Abramson 1985]. Entretanto, foram nos últimos anos que as redes sem fio
se difundiram e ganharam atenção. A principal vantagem dessas redes para o usuário é a
mobilidade. Utilizando redes sem fio, os usuários podem se mover livremente sem perder
a conexão com a rede.
As redes sem fio podem ser divididas em dois grupos: com infra-estrutura e sem
infra-estrutura. As redes sem fio com infra-estrutura são caracterizadas pela presença de
estações-base. Essas estações-base são conhecidas nas Redes Locais Sem Fio (WLANS
– Wireless Local Area Networks) como pontos de acesso (APs – Access Points). Todas as
comunicações efetuadas na rede devem passar pela estação-base. Assim, se uma unidade
a quer mandar uma mensagem para uma unidade b, a unidade a manda a mensagem para
a estação-base, que por sua vez, manda a mensagem para a unidade b. Todas as unidades
de rede devem estar dentro do raio de alcance da estação-base.
As redes sem fio sem infra-estrutura são mais comumente chamadas de redes ad
hoc. Elas são geralmente formadas de modo dinamico como um sistema autônomo, por
unidades móveis (nós) que se comunicam através de enlaces sem fio. Esses nós se comunicam diretamente uns com os outros, não existindo uma estação-base na rede, ou nenhum
outro tipo de unidade centralizadora. Cada nó deve ser capaz de se comunicar com os nós
que estão dentro do raio de alcance da sua antena. Devido ao raio de alcance limitado
das transmissões via rádio, as redes ad hoc são normalmente multi-saltos e os próprios
nós devem agir como roteadores das mensagens dos outros nós. Por fim, as redes ad hoc
herdam todos as características das redes sem fio infra-estruturadas e acrescentam mais
algumas específicas, tais como [Chlamtac et al. 2003]:
1. autonomia: as redes ad hoc não dependem de nenhuma autoridade ou administração externa. Os nós operam através de transmissões par-a-par distribuídas;
2. sem infra-estrutura: a rede não possui nenhuma infra-estrutura: Tudo deve ser
realizado de forma distribuída;
3. roteamento multi-salto: cada nó deve agir como roteador para as mensagens dos
outros nós, para permitir a troca de mensagens entre as unidades;
4. mobilidade: cada nó pode se mover independente e aleatoriamente. A topologia
da rede é dinâmica e pode ser alterada de forma rápida e imprevisível;
5. energia: para permitir a mobilidade, os dispositivos devem ser alimentados por
baterias.
Além disso, diversos protocolos das redes com fio para as camadas de enlace, rede
e transporte simplesmente não funcionam quando aplicados a redes ad hoc, por exemplo:
(i) na camada de enlace, o Protocolo de Acesso ao Meio com Detecção de Portadora e
com Detecção de Colisão (CSMA/CD – Carrier Sense Multiple Access with Collision
Detection) não pode ser empregado; (ii) na camada de rede, os protocolos de roteamento
das redes com fio não funcionam; (iii) na camada de transporte, o Protocolo de Controle
de Transmissão (TCP – Transmission Control Protocol) não pode ser empregado, pois os
seus controles de fluxo e congestionamento são extremamente danosos à rede.
Entretanto, os piores são os problemas relacionados à segurança. As redes ad hoc
incorporam todos os problemas de segurança das redes com fio e ainda possuem diversos
outros problemas exclusivos do ambiente sem fio. Alguns desses novos problemas nem
ao menos têm solução, como será visto adiante. Os serviços de segurança fornecidos
pela rede podem ser divididos em seis categorias: confidencialidade, disponibilidade,
integridade, não-repúdio, autenticidade e controle de acesso [Stallings 2006].
1. confidencialidade: consiste em garantir que um intruso não possa compreender os
dados que ele capturar na rede;
2. disponibilidade: garantia de que os usuários legítimos tenham acesso aos dados
confidenciais após serem autenticados;
3. integridade: garantia de que os dados não foram alterados entre a origem e o destino. Geralmente, são utilizadas técnicas de validação dos dados para garantir que
esses não foram alterados, como a verificação de integridade com somas de verificação (checksums) ou as assinaturas digitais;
4. não-repúdio ou irretratabilidade: significa que um usuário não pode negar que
uma dada mensagem tenha sido enviada por ele, caso ele seja o emissor da mensagem. Essa garantia geralmente é realizada com a utilização de assinaturas digitais,
onde um documento assinado por determinado usuário não pode ser repudiado mais
tarde;
5. autenticidade: garantia que os demais usuários possuem sobre a identidade desse
usuário e das mensagens emitidas por ele;
6. controle de acesso: impede o uso não autorizado de algum recurso da rede.
As redes ad hoc são vulneráveis a diversos tipos de ataques passivos e ativos.
Como nessas redes, as operações básicas são desempenhadas pelos próprios nós. Diferente das redes tradicionais (com ou sem cabos), é importante que um grande nível
de confiabilidade e segurança seja garantido [Michiardi and Molva 2003]. Fornecer segurança é algo essencial nas redes ad hoc para que possam ser realizadas as operações
básicas, como encaminhamento de pacotes.
Uma forma de garantir a segurança do relacionamento entre dois nós é por meio
de uma entidade central de autenticação. É muito comum nas redes tradicionais, ou
até mesmo nas redes ad hoc militares, a existência de uma autoridade confiável para
gerenciar a rede. Esses ambientes são chamados, geralmente, de ambientes “gerenciados” [Molva and Michiardi 2003]. Nas redes ad hoc móveis (MANETs – Mobile Ad Hoc
Networks), a segurança torna-se um desafio ainda maior, pois não é possível a criação de
um ambiente gerenciado, principalmente devido à mobilidade dos nós. Por isso, a confiabilidade da execução correta das operações deve ser delegada aos nós participantes da
rede, que podem não executar as suas funções de forma justa e correta.
Como não existe nenhuma garantia de confiança entre os nós, os mecanismos
tradicionais baseados em autenticação e controle de acesso não funcionam corretamente
nestas redes. Por isso, novas soluções de segurança específicas para as redes ad hoc
precisam ser desenvolvidas. Tais soluções devem considerar, ao menos, o gerenciamento
de chaves para suportar os mecanismos criptográficos, o roteamento seguro e o incentivo
à cooperação. Estes são os tópicos que serão discutidos neste minicurso, apresentando os
principais protocolos e algoritmos existentes, bem como as suas limitações.
2. Redes sem fio Locais – WLANs – 802.11 – Wi-Fi
O padrão 802.11 é, atualmente, a tecnologia mais madura para comunicações locais sem fio, conhecidas como Redes Locais Sem Fio ou WLANs. O padrão define dois
modos de operação para as WLANs: com infra-estrutura e sem infra-estrutura (ou ad
hoc). Todas as placas de rede do padrão 802.11 podem ser configuradas em um dos dois
modos de operação, mas nunca nos dois ao mesmo tempo. Conseqüentemente, quando
uma placa está configurada para funcionar com infra-estrutura, ela vai sempre se comunicar com um ponto de acesso e nunca com uma outra unidade diretamente. Por outro lado,
se a placa estiver configurada para funcionar como ad hoc, ela vai sempre se comunicar
diretamente com outras unidades e nunca com um ponto de acesso.
O meio físico utilizado pelo 802.11 é o ar e as transmissões são realizadas por
ondas de rádio. A freqüência, a velocidade e a codificação dependem do padrão utilizado.
A Tabela 1 exemplifica alguns desses padrões.
Tabela 1. Características dos Padrões do 802.11
Padrão
802.11a
802.11b
802.11g
802.11n
Freqüência
5.2 GHz
2.4 GHz
2.4 GHz
2.4 e 5 GHz
Velocidade
54 Mbps
11 Mbps
54 Mbps
248 Mbps
Como as redes sem fio utilizam um meio de comunicação compartilhado (o ar), a
probabilidade de colisões é muito alta e não é possível se utilizar o protocolo CSMA/CD.
A limitação do raio de transmissão também causa mais alguns problemas, como o problema do terminal oculto e o do terminal exposto.
A Figura 1 ilustra o problema do terminal oculto: se dois nós, a e c, quiserem
transmitir dados para o nó b, eles transmitirão e causarão uma colisão. Isso ocorre porque
o nó a não consegue detectar a transmissão do nó c e vice-versa.
A Figura 2 ilustra o problema do terminal exposto: se o nó a está enviando dados
para o nó b e o nó c quiser enviar algo para o nó d, a transmissão do nó c precisa ser
atrasada para não colidir com os dados que o nó b está recebendo. No entanto, o nó c
não consegue detectar que o nó b está recebendo algo do nó a, visto que ele não escuta as
transmissões desse nó.
Uma solução possível para esses problemas é o uso do Protocolo de Acesso ao
a
b
c
Figura 1. Problema do Terminal Oculto
a
b
c
d
Figura 2. Problema do Terminal Exposto
Meio com Detecção de Portadora e com Prevenção de Colisão (CSMA/CA – Carrier
Sense Multiple Access with Collision Avoidance). O funcionamento do CSMA/CA é o
seguinte [IEEE 1997]:
1. quando uma estação deseja transmitir, ela precisa escutar o canal para verificar se o
mesmo está livre. Para isso, ela escuta o canal por um determinado tempo, chamado
Espaçamento Interquadros Distribuído (DIFS – Distributed Inter-Frame Space);
2. se o canal ficar livre durante todo o DIFS, a estação pode transmitir. Caso contrário,
ela escolhe um valor aleatório de backoff exponencial e, após esse tempo, a estação
tenta transmitir novamente;
3. se o canal está livre, a estação manda uma mensagem de Pedido-Para-Enviar (RTS
– Request-to-Send) em broadcast para todos os seus vizinhos, mas endereçado ao
destino da mensagem de dados;
4. quando uma unidade recebe um RTS endereçado a ela e não houver nenhuma outra
estação transmitindo no seu raio de alcance, ela envia uma mensagem de LimpoPara-Enviar (CTS – Clear-to-Send) em broadcast para todos os seus vizinhos, mas
endereçado à origem do RTS;
5. quando uma estação recebe um RTS ou um CTS não endereçado a ela, ela sabe que
alguém vai efetuar uma transmissão e deve ficar calada;
6. quando uma estação recebe um CTS endereçado a ela, essa estação pode iniciar a
transmissão dos dados.
O CSMA/CA faz com que todas as estações na área de cobertura do transmissor e
do receptor da mensagem de dados fiquem quietas para evitar colisões. Entretanto, ele não
evita todas as colisões: com as unidades se movimentando aleatoriamente, duas unidades
que estão transmitindo simultaneamente podem entrar uma na área de cobertura da outra,
gerando uma colisão.
A Figura 3 ilustra o funcionamento do CSMA/CA. Na Figura 3 (1), o nó a manda
um RTS, endereçado ao nó b, em broadcast para todos os seus vizinhos. Os nós b, d,
e, f e g recebem o RTS. Assim, todos os nós sabem que o a está tentando mandar uma
mensagem ao b, e não devem transmitir. O nó b é o único que responde a mensagem
(Figura 3 (2)), mandando um CTS endereçado para o nó a. Todos os seus vizinhos, com
exceção do nó a, devem ficar quietos. Quando o nó a recebe o CTS, ele pode iniciar o
envio dos seus dados (Figura 3 (2)).
f
h
g
a
b
f
c
h
g
a
b
c
RTS
CTS
d
e
d
e
2. b manda CTS (endereçado a a) em broadcast
1. a manda RTS (endereçado a b) em broadcast
f
h
g
a
b
c
Dados
d
e
3. a manda dados para b
Figura 3. Funcionamento do CSMA/CA
2.1. Segurança em redes locais sem fio infra-estruturadas
As WLANs possuem dois problemas básicos de segurança. Primeiro, por utilizar
uma comunicação por ondas de rádio omnidirecional, qualquer atacante pode escutar o
que está sendo transmitido nessas redes. Segundo, para que um nó se conecte à rede, não
é obrigatório que ele tenha acesso físico ao AP e, dessa forma, um atacante pode tentar
utilizar os serviços fornecidos pela rede sem autorização [Buttyán and Hubaux 2007].
Para amenizar as vulnerabilidades naturais dessas redes, são necessários mecanis-
mos de segurança para proteger a comunicação e a troca de informações. É necessário que
os dados trafegados estejam cifrados, o que impede a leitura não autorizada das informações e, se possível, que o acesso à rede seja autenticado, impedindo que os usuários não
autorizados utilizem os recursos da rede. Os dois principais protocolos para a segurança
das WLANs são o WEP (Wired Equivalent Protocol) e o WPA (Wi-Fi Protected Access),
que são discutidos a seguir.
2.1.1. O protocolo WEP
O objetivo dos desenvolvedores do WEP era fornecer o mesmo grau de segurança
aos usuários que utilizam as rede com cabos, como a rede Ethernet [Chandra 2005]. O
principal objetivo do WEP é fornecer a confidencialidade dos dados, ou seja, prevenir
que os dados trafegados no enlace sem fio sejam capturados e lidos com sucesso por um
atacante [Earle 2006].
Com a utilização do WEP, os dados trafegados entre o AP e o usuário sem fio são
cifrados, porém os mesmos dados são transportados em seu formato original quando são
enviados para a rede com cabos. O protocolo WEP é baseado no algoritmo de cifração
RC41 . O algoritmo de cifração é aplicado aos dados de cada quadro e também ao campo
de Verificação de Redundância Cíclica (CRC – Cyclic Redundancy Check).
O WEP é disponibilizado com duas características de cifração. A primeira possui
uma chave de cifração de dados de 40 bits e um vetor de inicialização de 24 bits, o que
totaliza uma chave de 64 bits. A segunda possui uma chave de cifração de dados de 108
bits com um vetor de inicialização de 24 bits, totalizando 128 bits. Um esquema genérico
da cifração dos dados utilizando o WEP é apresentado na Figura 4.
VI
Chave compartilhada
(Key ID I)
RC4
Chave de fluxo RC4
VI /
Key ID
Dados
Texto cifrado
XOR
Texto cifrado
Algoritmo de
verificação de
integridade
ICV
Figura 4. Esquema genérico do padrão de cifração WEP
O protocolo WEP não fornece nenhum mecanismo de estabelecimento de chaves
aos seus usuários. A segurança da rede é confiada em chaves pré-compartilhadas entre os
1 RC4
- Ron’s Code versão 4: recebe o nome de seu criado Ron Rivest
usuários móveis. Como o protocolo não especifica como essas chaves são estabelecidas,
assume-se um acordo “fora da banda”, sendo que a troca dessas chaves é realizada por
um segundo canal confiável de dados. A ausência de um mecanismo de gerenciamento
de chaves gera múltiplos problemas, entre eles [Chandra 2005]:
1. as chaves são configuradas manualmente nas estações e/ou AP que desejam formar
um Conjunto de Serviço Básico (BSS –Basic Service Set) e, com isso, a rede está
sujeita a erros de configuração manual das chaves;
2. como as chaves precisam ser manuseadas pelos usuários das redes, elas não podem
ser muito “fortes”, pois seriam difíceis de serem memorizadas e, portanto, são fáceis
de ser descobertas ou quebradas;
3. como geralmente é configurada uma única chave para todas as estações e APs, essas
chaves ficam mais susceptíveis a ser comprometidas.
O WEP prevê um mecanismo de autenticação opcional chamado Autenticação
com Chave Compartilhada (SKA – Shared Key Authentication). Nesse caso, as estações
da rede são divididas em dois grupos: as que possuem permissão para acesso à rede e as
demais estações. Quando uma estação a deseja acessar a rede, ela envia um pedido de
autenticação ao AP. A fase de autenticação pode ser descrita da seguinte forma:
1. ao receber esse pedido, o AP envia uma resposta de autenticação para a estação
de origem contento um texto-desafio (challenge). Esse desafio é um número de
128 bytes gerado aleatoriamente usando a chave pré-compartilhada e um vetor de
inicialização aleatório;
2. quando a estação a recebe esse número aleatório, o desafio, ela cifra esse texto
usando o WEP, gerando uma resposta ao desafio;
3. a estação a envia esse desafio cifrado ao AP juntamente com o vetor de inicialização
utilizado para cifrá-lo;
4. o AP faz a comparação da mensagem decifrada e o desafio e, caso esteja correto, a
estação é autorizada a utilizar a rede.
Dessa forma, o AP garante que a estação conhece a chave compartilhada, embora
não consiga identificar a estação.
Um dos maiores problemas do WEP é que ele não especifica nenhum protocolo
de estabelecimento de chaves e confia no conceito de pré-compartilhamento de chaves
secretas, que deveriam ser estabelecidas por um mecanismo “fora da banda”.
2.1.2. Os Protocolos WPA e WPA2
Para resolver os problemas de segurança do WEP e sugerir um novo padrão
de segurança para as WLANs, foi criado um grupo de trabalho do IEEE chamado
802.11i [IEEE 2004b]. Esse grupo propôs a utilização do Padrão de Cifração Avançado
(AES – Advanced Encryption Standard) [Daemen and Rijmen 2002] como mecanismo de
cifração padrão. Porém, por falta de compatibilidade com o hardware em utilização no
mercado, houve uma pressão dos maiores fabricantes dos dispositivos de redes sem fio locais (membros da Wi-Fi alliance) para a criação de um modelo compatível com o WEP, ao
menos nas necessidades de hardware. Com isso, foi adotado o Protocolo de Integridade de
Chave Temporal (TKIP – Temporal Key Integrated Protocol) como padrão de segurança,
gerando o protocolo para segurança de redes sem fio locais conhecido como WPA. Esse
é um padrão transitório entre o WEP e o padrão 802.11i. O padrão 802.11i é geralmente
chamado de WPA2, por ser um avanço do WPA. A principal diferença entre o WPA e
o WPA2 é que o primeiro utiliza o TKIP como mecanismo para fornecer integridade e
confidencialidade das informações, enquanto o segundo utiliza o AES [Chandra 2005].
Uma das grandes contribuições do grupo de trabalho IEEE 802.11i foi perceber
que as redes 802.11 estavam sendo utilizadas em dois ambientes distintos: o ambiente
doméstico e o empresarial. Esses ambientes possuem necessidades de segurança diferentes e também diferentes capacidades de fornecer tal segurança [Chandra 2005]. Como
resultado dessa análise, o WPA suporta dois métodos de autenticação e gerenciamento
de chaves. O primeiro mecanismo de autenticação, voltado ao ambiente empresarial,
utiliza o Protocolo de Autenticação Extensível (EAP – Extensible Authentication Protocol) [Aboba et al. 2004], o padrão IEEE 802.1x [IEEE 2004a] e uma infra-estrutura com
um servidor de autenticação, como o RADIUS (Remote Authentication Dial In User Service) [Rigney et al. 2000]. Esse é um mecanismo que fornece um bom nível de segurança
com um baixo nível de administração dos sistemas finais. O segundo mecanismo, voltado para o ambiente doméstico, é mais simples e não utiliza servidores de autenticação.
Essa solução usa chaves pré-compartilhadas, que devem ser configuradas em todos os
dispositivos sem fio, inclusive no AP.
Protocolo de Integridade de Chave Temporal – TKIP
O TKIP foi uma solução temporária para resolver os problemas de reutilização de
chaves do WEP e tornou-se parte do padrão WPA e IEEE 802.11i. A cifração TKIP é
realizada em duas fases [Earle 2006]:
1. na primeira fase, é gerada uma chave de sessão de uma chave temporal, um Contador de Seqüência Temporal (TSC – Temporal Sequence Counter) e o endereço
MAC do transmissor. A chave temporal é composta por um valor de 128 bits. O
TSC é composto pelo endereço de origem, endereço de destino, prioridade e os
dados. Quando essa fase é finalizada, um valor chamado TTAK é criado, que é
utilizado na segunda fase como uma chave WEP baseada em sessão;
2. na segunda fase, o TTAK e o vetor de inicialização são utilizados para produzir uma
chave de cifração dos dados, similar ao processo do WEP. No TKIP, o espaço do
vetor de inicialização é estendido, se comparado ao WEP, permitindo 24 bits adicionais. Os primeiros 24 bits são preenchidos pelos 24 bits do TTAK e os próximos
24 bits são preenchidos com uma porção não utilizada do TSC.
Isso torna o TKIP mais seguro do que o WEP, pois a chave utiliza um valor diferente dependendo das partes comunicantes.
Padrão de Cifração Avançado - AES
O AES é um cifrador de bloco adotado como padrão de criptografia pelo Instituto
Nacional de Padrões e Tecnologias do Estados Unidos (NIST – National Institute of Standards and Technologies). Atualmente, ele é o algoritmo mais popular para criptografia
de chave simétrica. O AES tem um tamanho de bloco fixo de 128 bits e uma chave com
tamanho de 128, 192 ou 256 bits. Ele foi desenvolvido para ser resistente contra todos os
ataques conhecidos e ter um alto desempenho em uma grande variedade de plataformas
[Stallings 2006].
Existem diversas maneiras de se utilizar o AES. A forma escolhida pelo padrão
802.11i foi aplicar o AES com o Protocolo CBC-MAC Modo Contador (CCMP – Counter
Mode CBC-MAC Protocol), no qual a entrada do algoritmo de cifração é um XOR do
bloco de texto plano com o bloco de texto cifrado anterior. Isso garante que qualquer
alteração no bloco de texto cifrado altera a saída decifrada do último bloco, e assim, todo
o restante será alterado. Para produzir o primeiro bloco de texto cifrado, um vetor de
inicialização passa por um XOR com o primeiro bloco de texto plano. Esse vetor de
inicialização precisa ser conhecido pelo emissor e pelo receptor.
No WPA2, o vetor de inicialização é criado pela concatenação dos seguintes valores: uma flag (que possui um valor fixo 01011001), a prioridade (reservado para uso
futuro), o endereço MAC de origem, o número do pacote e o tamanho dos dados. O
campo de “número do pacote” é enviado no cabeçalho CCMP. Como somente a parte
de dados é cifrada e não o cabeçalho CCMP, o receptor é capaz de calcular o vetor de
inicialização.
3. Ataques a redes ad hoc
Os ataques às redes ad hoc podem ser classificados em dois grupos: passivos e ativos. Um ataque é considerado ativo quando o atacante interage com a rede, enviando, por
exemplo, mensagens falsas que afetam o comportamento da rede. Já nos ataques passivos,
o atacante não interage com a rede, ficando apenas ouvindo ou capturando os dados que
estão sendo trafegados [Michiardi and Molva 2003, Anjum and Mouchtaris 2007]. Os
nós que executam ataques ativos são chamados, geralmente, de nós maliciosos e possuem como objetivo principal a degradação da rede, comprometendo as suas atividades
normais.
A Tabela 2 apresenta os principais tipos de ataques que são realizados contra as
redes ad hoc. Esses ataques foram classificados conforme a camada da pilha de protocolos que freqüentemente agem. No entanto, devido às suas características, alguns
desses ataques podem atuar em mais de uma camada. Alguns desses ataques não são
exclusivos das redes ad hoc, mas herdados das redes sem fio em geral. Por exemplo,
os ataques de ruído, exaustão e colisão (Tabela 2) são comuns em qualquer tipo de comunicação sem fio. Já os ataques contra os serviço da camada de rede são específicos
de redes ad hoc, pois nelas, os próprios nós são responsáveis pelo roteamento. Assim,
Tabela 2. Tipos de ataques em MANETs
Camada
Física
Ataque
Ruído
Enlace
Colisão
Rede
Wormhole
Blackhole
Grayhole
Sinkhole
Blackmail
Aceleração
Transporte
Inundação
SYN
de
Multi-camadas
Exaustão
inundação
ou
Sybil
Descrição
interferência no sinal transmitido, negando o serviço
no canal de comunicação.
colisões propositais causadas por um atacante, com o
objetivo de negar o serviço no canal de comunicação.
os nós maliciosos cooperam entre si para fornecer um
canal paralelo de baixa latência para a comunicação.
o nó malicioso exclui todos os pacotes que chegam
a ele para ser roteados. Em uma variação desse ataque, o nó malicioso descarta pacotes seletivamente,
dificultando a sua detecção.
uma variação do blackhole, na qual o atacante descarta alguns pacotes seletivamente.
o atacante força os pacotes a passar por um determinado nó, facilitando a ação de outros ataques.
os atacantes criam mensagens de alertas falsas, informando que um nó confiável está com um comportamento malicioso.
nós maliciosos encaminham rapidamente as mensagens de pedido de rota quando é iniciada uma descoberta de rota, com o objetivo de participar de qualquer
descoberta de rota.
inundação clássica de pacotes TCP SYN, na qual um
atacante envia muitos pedidos de estabelecimento de
conexão a um outro nó, sobrecarregando os recursos
desse nó.
tentativas de retransmissões sucessivas, com o objetivo de derrubar os recursos limitados da vítima, como
processador, memória, bateria ou largura de banda.
nós maliciosos criam várias identidades falsas.
os nós maliciosos ou os nós egoístas podem aproveitar essa característica e comprometer o funcionamento de toda a rede [Papadimitratos and Haas 2002]. Alguns exemplos
de ataques ao roteamento são: o wormhole, o blackhole, o sinkhole, o blackmail e o de
aceleração [Hu and Perrig 2004, Argyroudis and O’Mahony 2005]. Os ataques de multicamadas também podem ser usados para comprometer o serviço de roteamento das MANETs.
3.1. Ataques blackhole e grayhole
No ataque blackhole, um nó malicioso cria uma espécie de “buraco negro”, no
qual todos os pacotes que chegam a esse nó, para ser roteados, são excluídos. Uma das
conseqüência desse tipo de ataque é o particionamento da rede. Geralmente, durante a
fase de descoberta das rotas, esses nós maliciosos se comportam como nós confiáveis,
cooperando com as atividades da rede e ganhando confiança dos demais nós. Ao serem
escolhidos para participarem do roteamento dos pacotes, eles passam a se comportar maliciosamente [Agrawal et al. 2008].
O ataque grayhole é uma variação do blackhole, no qual o nó malicioso descarta
pacotes seletivamente, o que pode dificultar mais a sua detecção na rede.
3.2. Ataques wormhole
O wormhole é um tipo de ataque que precisa de no mínimo dois nós em conluio,
geograficamente distantes, para a realização do ataque. Os nós maliciosos criam um
“túnel” entre eles, capturam os pacotes de uma localização e passam esses pacotes pelo
túnel até o outro nó malicioso [Hu et al. 2005]. Existem duas principais formas de se
estabelecer esse túnel. Na primeira forma, apresentada na Figura 5, um nó M1 encapsula
um pacote recebido de seu vizinho, o nó A. O nó M1 envia o pacote encapsulado ao outro
nó atacante, nesse caso o nó M2 . O nó M2 , após desencapsular o pacote, o reencaminha
a todos os seus vizinhos. Dessa forma, o pacote original é transmitido por A para sua
vizinhança e reproduzido por M2 aos seus vizinhos, incluindo o nó B. Exemplificando, se
o pacote original transmitido pelo nó A e tunelado por M1 era um pacote HELLO, então o
nó B, ao receber esse pacote, assume que o nó A é seu vizinho, o que não é verdade. Note
que os nós entre c e t não conseguem interpretar o pacote, pois este está encapsulado.
Figura 5. Ataque wormhole - encapsulamento de pacotes
Na segunda forma, apresentada na Figura 6, os dois nós maliciosos, M1 e M2 ,
possuem um canal fora da banda de alta taxa de transmissão, por exemplo, um cabo para
conectar os dois pontos ou um enlace sem fio operando em outra freqüência. Também
nesse caso, um pacote HELLO transmitido pelo nó A pode ser retransmitido na vizinhança
do nó B. Como resultado, o nó B conclui que o nó A é seu vizinho, o que não é verdade.
Note que o ataque wormhole pode ter sucesso mesmo que os atacantes não tenham
acesso a qualquer material criptográfico dos demais nós. Além disso, os demais nós não
precisam ser comprometidos para a realização do ataque [Anjum and Mouchtaris 2007].
Figura 6. Ataque wormhole - fora da banda
3.3. Ataques de aceleração
Esse tipo de ataque tem efeitos sobre alguns protocolos de roteamento para redes
ad hoc, nos quais um nó que precisa de um caminho a um destino inunda a rede para
descobrir o caminho até o destino. Para não sobrecarregar a rede, cada nó intermediário
encaminha apenas os primeiros pacotes de solicitação da rota e os demais são descartados [Johnson and Maltz 1996]. Os nós maliciosos podem explorar essa característica e
reenviar esses pacotes rapidamente por toda a rede. Como resultado, os próximos pedidos de construção de rotas são descartados pelos demais nós, pois eles acreditam que são
pedidos duplicados [Anjum and Mouchtaris 2007].
Note que um atacante precisa encaminhar essa solicitação de rota mais rapidamente que os outros nós válidos. Isso aumenta a probalidade de que as rotas descobertas
incluam esse nó malicioso. Os atacantes podem fazer isso criando wormholes ou simplesmente ignorando os atrasos entre o recebimento e encaminhamento dos pacotes, que são
especificados pelos protocolo de roteamento.
3.4. Ataques blackmail
Esse tipo específico de ataque é realizado contra protocolos de roteamento que
mantêm uma lista negra contendo os nós que são considerados maliciosos e, portanto,
não são utilizados nas atividades de roteamento [Hu et al. 2005]. Nesse caso, os atacantes
enviam mensagens de alerta falsas, informando que um nó confiável é malicioso, tentando
fazer com que este nó confiável faça parte da lista negra dos demais nós.
3.5. Ataques Sybil
O ataque Sybil consiste em um nó assumir diversas identidades enquanto utiliza
um único dispositivo físico [Douceur 2001]. As identidades adicionais podem ser obtidas
pela personificação de outros nós ou utilizando identidades falsas. Esse tipo de ataque
pode ter impacto, por exemplo, em roteamentos multi-caminhos, em que um nó Sybil
pode receber os dados que deveriam passar por diversos caminhos disjuntos. Os mecanis-
mos baseados em confiança ou eleição também são afetados por esse tipo de ataque, pois
um mesmo nó, possuindo diversas identidades, pode participar mais vezes de um mesmo
processo como se fosse diversos nós diferentes.
4. Gerenciamento de chaves em redes ad hoc
A criptografia é um dos meios mais comuns para se garantir a segurança em uma
rede de dados. Nas redes ad hoc essa característica não é diferente. Ela é o conjunto de
técnicas, princípios e algoritmos para que uma informação seja trocada entre dois nós de
forma segura. A mensagem original que é enviada de um nó a outro é chamada texto
plano (plaintext). Esse texto plano é convertido em um texto cifrado (cyphertext) por
um processo de cifração, no qual é utilizado um algoritmo criptográfico. Um receptor
autêntico pode decifrar esse texto cifrado, tornando-o novamente um texto plano, por um
processo chamado decifração.
Para a cifração e a decifração das mensagens, faz-se necessária a utilização de
chaves, que são as informações relacionadas aos nós comunicantes e utilizadas pelos algoritmos criptográficos. A administração segura dessas chaves é conhecida como gerenciamento de chaves [Murthy and Manoj 2004] e é responsável pela geração, armazenamento, distribuição, proteção e revogação das chaves, sendo que essas chaves devem ser
disponibilizadas aos nós legítimos ou autênticos.
Uma forma de garantir a segurança do relacionamento entre dois nós confiáveis
de uma rede é por meio de uma entidade central de autenticação. É muito comum nas redes tradicionais, ou até mesmo nas redes ad hoc militares, a existência de uma autoridade
confiável para gerenciar a rede. Esses ambientes são chamados, geralmente, de ambientes “gerenciados”. Em casos mais críticos, é necessário que essa autoridade possua
um hardware à prova de alteração. Por outro lado, a utilização de entidades de autenticação em redes maiores pode elevar muito os custos e a quantidade de recursos para o
gerenciamento de chaves, e isso nem sempre é desejável.
Os esquemas de criptografia são classificados em simétricos e assimétricos, dependendo da forma que utilizam as chaves. Esses esquemas são detalhados a seguir, bem
como os principais esquemas para o gerenciamento de chaves em MANETs.
4.1. Criptografia Simétrica
A criptografia simétrica possui cinco elementos básicos: texto plano, algoritmo de
cifração, chave secreta, texto cifrado e algoritmo de decifração. A Figura 7 ilustra um
esquema de cifração simétrica.
O texto plano é a mensagem original legível que é enviada como entrada ao algoritmo de cifração. Este, por sua vez, executa diversas substituições e transformações no
texto plano utilizando uma chave secreta, também enviada como entrada ao algoritmo de
cifração. Essa chave secreta é independente do texto plano. Assim, dependendo da chave
secreta utilizada, a saída do algoritmo de cifração é diferente. A mensagem produzida
pelo algoritmo de cifração é chamada de texto cifrado. Para tornar esse texto cifrado
novamente legível, é necessário um algoritmo de decifracão, que é essencialmente o algoritmo de cifração executado de forma reversa. Ele recebe como entrada o texto cifrado
chave secreta compartilhada
entre o emissor e o receptor
chave secreta compartilhada
entre o emissor e o receptor
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Algoritmo de cifração
Texto plano
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Algoritmo de decifração
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Texto plano
Texto cifrado
Figura 7. Esquema genérico dos criptossistemas simétricos
e a chave secreta e, como resultado, produz o texto plano original.
Existem dois requisitos básicos para a utilização secura da cifração simétrica. Primeiro, é necessário um algoritmo de cifração forte, no qual um intruso não deve ser capaz
de decifrar um texto cifrado ou descobrir a chave secreta utilizada, mesmo que tenha
posse do algoritmo de crifração e de vários textos cifrados com seus respectivos textos
planos. Segundo, o receptor e o emissor devem obter cópias da chave secreta utilizando
um canal de comunicação seguro e devem manter essas chaves seguras [Stallings 2006].
Com essas características, não é necessário manter sigilo do algoritmo de cifração, mas
somente das chaves utilizadas para cifrar e decifrar os textos.
A
criptografia
simétrica
cos [Diffie and Hellman 1976]:
possui
dois
problemas
clássi-
1. problema da distribuição da chave: na criptografia simétrica, é necessário uma
das seguintes opções: (a) que as partes comunicantes já tenham uma chave compartilhada, que tenha sido distribuída a elas de alguma forma segura ou; (b) que
seja utilizado um Centro de Distribuição de Chaves (KDC – Key Distribution Center). Este segundo requisito nega uma das essências da criptografia: a capacidade
de manter total segredo sobre sua própria comunicação;
2. problema das assinaturas digitais: com o crescimento da utilização da criptografia, inclusive em ambientes comerciais, é necessário que os documentos eletrônicos
possuam assinaturas similares às utilizadas em documentos no papel. A assinatura
digital busca satisfazer a certeza de que uma mensagem digital foi enviada por uma
determinada pessoa e que essa pessoa não possa negar que essa mensagem é sua.
4.2. Criptografia Assimétrica
A criptografia assimétrica é também conhecida como criptografia de chavepública. Ela surgiu para solucionar os dois problemas da criptografia simétrica, mencionados acima. Os algoritmos assimétricos utilizam uma chave para cifração dos dados
diferente da chave para decifração. Não é possível utilizar a mesma chave para cifrar
e decifrar uma mensagem. Também, é impossível decifrar um documento tendo posse
somente do texto cifrado e da chave de cifração desse documento. A Figura 8 ilustra
um esquema genérico de cifração assimétrica que possui seis elementos básicos: texto
plano, algoritmo de cifração, chave pública, chave privada, texto cifrado e algoritmo de
decifração.
Chaveiro de chaves
públicas do emissor
Chave privada
do destinatário
Chave pública do
destinatário
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Texto plano
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Texto plano
Texto cifrado
Figura 8. Esquema genérico dos criptossistemas assimétricos
Da mesma forma que na criptografia simétrica, um texto plano legível é enviado a
um algoritmo de cifração para ser cifrado e transformado em um texto cifrado. Porém,
em vez de se utilizar uma chave secreta compartilhada, o algoritmo utiliza a chave pública
do destinatário. Neste caso, o texto cifrado somente pode ser decifrado com a chave
privada do destinatário. Para decifrar o texto cifrado, o algoritmo de decifração recebe
como entrada o texto cifrado e a chave privada do destinatário e como resultado produz
um texto plano legível. Note que, se for enviada ao algoritmo de decifração uma chave
privada de outro usuário, que não é relacionada à chave pública utilizada para cifração,
não é possível decifrar o documento.
O processo de assinatura apresentado na Figura 9 é similar ao da cifração dos
dados, porém, neste caso, o emissor cifra os dados com sua chave privada. Assim, esses
dados somente podem ser decifrados com posse de sua chave pública. Isso garante a
autenticidade da mensagem transmitida.
Chaveiro de chaves
públicas do destinatário
Chave privada
do emissor
Chave pública do
emissor
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Texto plano
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Texto assinado
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
Texto plano
Figura 9. Esquema genérico de assinatura em criptossistemas assimétricos
4.3. Soluções de Gerenciamento de Chaves para Redes Ad Hoc
Geralmente, as avaliações dos protocolos de gerenciamento de chaves analisam
a complexidade computacional. No entanto, para a proteção das MANETs, outros parâmetros também devem ser considerados, entre eles aplicabilidade, segurança, robustez,
escalabilidade e simplicidade. Algumas das características desejáveis para um esquema
de gerenciamento de chaves para MANETs são [Hegland et al. 2006]:
• ser simples, formado espontaneamente;
• não expôr ou distribuir os materiais de chaves para nós não-autorizados;
• garantir que a segurança do sistema não seja comprometida na presença de nós
maliciosos;
• permitir facilmente a utilização/revogação das chaves;
• ser robusto contra falta ou comportamento bizantino dos nós;
• ser escalável quanto ao crescimento da quantidade e densidade dos nós na rede;
• gerenciar com eficiência a saída e entrada de nós na rede.
Os esquemas de gerenciamento de chaves para MANETs podem ser classificados,
entre outros, em: autoridade certificadora parcialmente distribuída; autoridade certificadora totalmente distribuída; baseados em cadeia de certificados; baseados em identidade.
As próximas sub-seções apresentam os principais esquemas de gerenciamento de chaves
para MANETs. Na descrição desses esquemas, assume-se N como a quantidade de nós
da rede e (n ≤ N).
4.3.1. Autoridade Certificadora Parcialmente Distribuída
Um esquema de gerenciamento de chaves com autoridade certificadora parcialmente distribuída é apresentado em [Zhou and Haas 1999], baseado na criptografia de
limiar (threshold) [Shamir 1979]. Nesse esquema, existem n servidores em uma rede ad
hoc atuando como uma autoridade certificadora distribuída (DCA), sendo que quaisquer
(t +1) servidores podem, em conjunto, realizar com sucesso a autorização e a autenticação
na rede [Zhou and Haas 1999]. Dessa forma, até t servidores podem ser comprometidos
na rede, sem afetar a sua segurança. Esse tipo de segurança é chamado de configuração
(n,t + 1), no qual n > 3t + 1 [Murthy and Manoj 2004].
A chave privada da autoridade certificadora é distribuída e compartilhada por n
nós, de forma que no mínimo t nós devem cooperar para revelar a chave. Cada servidor consultado gera uma assinatura parcial do certificado, usando a sua parte da chave
privada em um esquema de assinatura de limiar [Desmedt 1994] e envia essa assinatura
parcial a um combinador, que produz um certificado válido [Zhou and Haas 1999]. Esse
combinador pode ser qualquer nó. De posse de t + 1 assinaturas parciais, sendo que uma
foi emitida por ele mesmo, um combinador calcula uma assinatura e verifica sua validade
utilizando uma chave pública.
Entre as vantagens do esquema proposto, está a distribuição das funções de uma
autoridade centralizada entre um grupo de nós, oferecendo segurança com maior disponibilidade do que as abordagens com servidores centralizados. Por outro lado, esse esquema
não possui mecanismos de revogação ou sincronização de certificados entre os servidores. Essa solução é ainda muito centralizada, pois existe a necessidade de uma terceira
entidade confiável offline que inicializa os servidores ou distribui o material criptográfico
antes da formação da rede.
Além disso, os nós precisam contatar a autoridade certificadora distribuída todas
as vezes que precisam de certificação, elevando a sobrecarga de comunicação na rede.
Quando um nó precisa de um serviço de certificação, ele inunda a rede esperando um
retorno de t dos n servidores. No entanto, cada um dos nós que participam da autoridade
certificadora distribuída responde ao pedido [Yi and Kravets 2003].
4.3.2. Autoridade Certificadora Totalmente Distribuída
Esquemas de gerenciamento de chaves públicas com a autoridade certificadora
totalmente distribuída foram propostos em [Kong et al. 2001, Luo et al. 2004]. Tais esquemas também são baseados nos conceitos da criptografia de limiar (n,t). Eles são uma
melhoria do esquema proposto por [Zhou and Haas 1999], pois n corresponde a todos os
nós da rede (n = N). Dessa forma, todos os nós participam na formação da Autoridade
Certificadora Distribuída (DCA – Distributed Certificate Authority). A chave privada da
DCA é compartilhada por todos os nós, permitindo que um nó solicite um serviço da
DCA contatando quaisquer t nós vizinhos diretos. A solução inclui um mecanismo de
atualização de partes para prevenir que o serviço de certificação seja comprometido por
adversários.
Para que o mecanismo de segurança funcione da forma indicada, alguns requisitos
são necessários:
• cada nó deve possuir um identificador;
• cada nó deve saber quem são os seus vizinhos;
• cada nó deve ter no mínimo t vizinhos legítimos;
• cada nó deve ser equipado com algum mecanismo de detecção para identificar nós
maliciosos entre os seus vizinhos.
O fato de que cada nó deve ter sempre no mínimo t nós vizinhos é um limitante,
pois os nós podem ter menos do que t vizinhos devido à sua mobilidade. Além disso,
definir o valor de t, mantendo ao mesmo tempo a segurança e a mobilidade da rede, pode
ser uma tarefa difícil, principalmente quando a quantidade de nós na rede aumenta ou
diminui.
4.3.3. Baseado em Cadeias de Certificado
Um sistema de gerenciamento de chaves públicas totalmente auto-organizado para
MANETs foi proposto em [Čapkun et al. 2003]. Esse esquema é chamado neste trabalho
de PGP-Like. Ele não necessita de nenhuma infra-estrutura, nem mesmo em uma fase
inicial. No PGP-Like, baseado nos conceitos do PGP [Zimmermann 1995], cada nó gera
seu próprio par de chaves pública e privada e emite certificados para os nós que ele confia.
Esses certificados são armazenados pelos próprios nós em seus repositórios locais de
certificados de uma forma totalmente auto-organizada. Dessa forma, as funcionalidades
da autoridade certificadora é completamente distribuída e auto-organizada.
Tanto as chaves públicas, como os certificados são representados no PGP-Like por
um grafo direcionado G(V, A), sendo que V representa as chaves públicas dos nós e A
representa seus certificados. Assim, uma aresta direcionada conectando dois vértices Ku e
Kv , (Ku → Kv ), denota um certificado assinado com a chave privada de u que associa Kv a
um nó v. Cada nó u mantém um repositório local de certificados atualizados, representado
pelo sub-grafo Gu e um repositório de certificados não-atualizados, representado pelo subgrafo GN
u.
Os gráficos da Figura 10 ilustram os repositórios de certificados atualizados dos
nós u e v (Figura 10a e Figura 10b, respectivamente). Quando um nó u deseja verificar a
autenticidade da chave pública Kv de um nó v, ele busca um caminho do vértice Ku até Kv
em seu repositório local de certificados. Caso ∃(Ku Kv ) ∈ Gu , então o nó u autentica o
nó v. Caso ¬∃(Ku
Kv ) ∈ Gu , ele realiza G′ = Gu ∪ Gv e procura (Ku
Kv ) ∈ G′ . Isso
é ilustrado na Figura 10c.
Gu
Gv
Kw
Kh
Ke
Ks
Kg
Ku
Kb
Kv
Kw
Ke
Kf
Kr
Kt
Kc
Kj
Km
Kd
(a)
(b)
GuU G v
Kt
Kw
Kc
Kd
Ks
Ke
Kg
Ku
Kb
Kj
Km
Kh
Kr
Kv
Kf
(c)
Figura 10. Grafo de certificados e os caminhos de certificados
O PGP-Like assume a existência de um modelo de confiança entre os nós. Assim,
se um nó u acredita que uma chave pública Kv pertence a um nó v, ele emite um certificado
de chave pública associando Kv ao nó v por meio da assinatura de u. Cada nó efetua
periodicamente uma troca de seus certificados com todos os seus nós vizinhos. Após
trocas sucessivas de certificados, os certificados serão armazenados por todos os nós.
Essa etapa denomina-se fase de convergência.
Os certificados de cada nó podem ser revogados de forma explícita ou implícita.
Na revogação explícita, o nó emissor cria uma mensagem de revogação e a envia para
todos os nós que solicitaram o certificado que está sendo revogado. Já a revogação implícita é baseada no tempo de validade dos certificados. Um certificado com seu tempo de
validade expirado é armazenado no repositório local de certificados não-atualizados.
Em [Čapkun et al. 2006] são apresentadas duas desvantagens do PGP-Like: primeiro, cada nó precisa construir o repositório de certificados locais antes de poder utilizar
o sistema; segundo, como utiliza cadeias de certificados, o PGP-Like assume uma confiança transitiva, i.e., se A confia em B, e B confia em C, então Ana confia em C. No
entanto, é difícil garantir uma cadeia de confiança transitiva válida com mais do que dois
níveis de confiança [Christianson and Harbison 1997]. Se qualquer nó que pertence à cadeia fica comprometido, isso resulta em uma falsa autenticação para todos os nós dessa
cadeia.
O PGP-Like confia sua segurança no relacionamento de confiança existente entre
os nós da rede. A confiança entre os nós pode ser direta ou indireta. Contudo, no PGP-Like
esses relacionamentos de confiança dependem da formação das cadeias de certificados,
que precisam de um tempo para se formar e necessitam da interação dos nós. Isso pode
gerar um atraso na criação das cadeias de certificados entre os nós, o que resulta em
problemas de autenticação na fase inicial. Essa característica também facilita a ação de
alguns tipos de ataques, como o blackhole, pois os nós maliciosos podem decidir não
cooperar com a rede, impedindo que os certificados emitidos se propaguem. No entanto,
os resultados apresentados em [da Silva et al. 2008] mostram que o PGP-Like mantém a
sua eficácia diante de ataques blackhole.
Por outro lado, os mesmos resultados mostram que, como o PGP-Like apresenta
um modelo totalmente auto-organizado e “aberto”, ele é totalmente vulnerável a ataques
Sybil. O seu funcionamento fica comprometido mesmo com uma baixa taxa de nós maliciosos. Isso ocorre porque os nós maliciosos não precisam comprometer outros nós para
participar da rede e das trocas de certificados [da Silva et al. 2008].
4.3.4. Baseado em Identidade
Os conceitos dos Criptossistemas Baseados em Identidade (IBCs) foram propostos
por Adi Shamir [Shamir 1985]. Nesses sistemas, a chave pública de um usuário é gerada
baseada na sua identidade, como um e-mail ou endereço IP, e a chave privada é gerada por
uma terceira entidade confiável chamada de Geradora de Chave Privada (PKG – Private
Key Generator) (PKG). O IBC possui as seguintes propriedades:
1. a chave púbica de um usuário é derivada diretamente da sua identidade;
2. não existe nenhum diretório de chaves públicas;
3. o processo de cifração e verificação da assinatura requer apenas a identificação do
receptor e dos usuários assinantes, com alguns parâmetros do sistema.
A principal vantagem do IBC, se comparado com os métodos tradicionais de chaves públicas, é o gerenciamento de chaves simples e o custo de armazenamento reduzido.
Os usuários precisam apenas dos parâmetros do PKG e não da chave pública de todos os
demais usuários da rede. No entanto, o PKG precisa conhecer a chave privada de todos os
usuários: esse problema é chamado de custódia da chave. Além disso, um canal seguro é
necessário para a troca das chaves entre o PKG e os usuários.
Khalili et al. propuseram um esquema de gerenciamento de chaves para MANETs
que combina as técnicas da criptografia baseada em identidade e criptografia de limiar
[Khalili et al. 2003]. Nesse esquema, todos os nós que inicializam o sistema formam
um PKG distribuído. Esse PKG tem uma chave mestre privada que é distribuída entre
todos esses nós usando um esquema no limiar (t, n). Isso significa que nenhum desses
nós consegue reconstruir a chave mestre privada baseado somente nas informações que
possui. A chave mestre pública é distribuída para todos os nós da rede.
Para receber sua chave privada, um nó i apresenta sua identidade para no mínimo
t nós que formam o PKG. Cada um desses nós envia uma parte da chave privada do
nó i. Recebendo t partes corretas, o nó i constrói a sua chave privada. O uso do PKG
distribuído elimina o ponto único de falha do sistema e também elimina o problema da
custódia da chave. Para descobrir a chave mestre, um atacante deve comprometer no
mínimo t nós. Por outro lado, os nós devem possuir um canal seguro de comunicação
com esses t servidores para poder receber as partes de sua chave privada de forma segura.
5. Segurança no roteamento
O roteamento em redes ad hoc é geralmente multisalto, visto que as unidades podem não estar dentro do raio de transmissão umas das outras. Nesse tipo de rede, as rotas
são quebradas com muita facilidade, pois as unidades podem se mover livre e aleatoriamente. Por conseqüência, os protocolos de roteamento para as redes ad hoc devem ser
distribuídos e adaptáveis às freqüentes mudanças na topologia da rede, mantendo as comunicações ao mínimo necessário. Os protocolos de roteamento para redes ad hoc podem
ser classificados em:
1. proativos: procuram manter as informações consistentes e atualizadas de cada unidade para todas as outras unidades da rede. Entre os protocolos de roteamento proativos para redes ad hoc, encontra-se o DSDV (Destination-Sequenced DistanceVector) [Perkins and Bhagwat 1994];
2. reativos: não mantêm informação sobre as rotas. Quando uma unidade quiser enviar uma mensagem, ela deve primeiro descobrir uma rota para o destino, para
somente então mandar a mensagem. Exemplos de protocolos de roteamento reativos são o DSR (Dynamic Source Routing) [Johnson and Maltz 1996] e o AODV
(Ad Hoc On Demand Distance-Vector) [Perkins and Belding-Royer 1999];
3. híbridos: misturam as características dos protocolos proativos e reativos. Alguns exemplos de protocolos de roteamento híbridos para MANETs são o ZRP
(Zone Routing Protocol) [Haas and Pearlman 2001] e o VRP (Virtual Routing Protocol) [Albini et al. 2006].
Dentro da área de roteamento das redes ad hoc, os ataques são geralmente classificados em duas grandes categorias: ataques de rompimento de rotas e ataques de consumo
de recursos [Hu and Perrig 2004]. No primeiro tipo, um atacante tem como objetivo rotear os pacotes da rede por rotas falsas e não-funcionais. Já no segundo tipo de ataque,
ele tem como objetivo injetar pacotes na rede, consumindo recursos valiosos como banda,
energia, processamento e outros. Dessa forma, os requisitos fundamentais para um protocolo de roteamento seguro para uma MANET são [Murthy and Manoj 2004]:
1. detecção de nós maliciosos: ele deve ser capaz de detectar a presença de um nó
malicioso na rede e evitar que tal nó participe do roteamento, mesmo na fase de
descoberta de rota;
2. garantia de descobrimento de rota correta: caso exista um caminho seguro entre dois nós na rede, o protocolo de roteamento deve ser capaz de encontrar esse
caminho;
3. confidencialidade da topologia de rede: deve garantir que um nó malicioso não
conheça a topologia da rede;
4. estabilidade contra ataques: ele deve ser capaz de restabelecer a sua operação
normal dentro de um tempo finito, após o acontecimento de um ataque passivo
ou ativo, garantindo que o roteamento não seja rompido permanentemente por um
ataque.
As próximas subseções contêm uma descrição dos dois principais protocolos de
roteamento para MANETs, o DSR e o AODV. Somente esses dois protocolos são apresentados, pois, além de serem os mais difundidos em MANETs, são utilizados como base
para o desenvolvido da maioria dos protocolos de roteamento seguro. Em seguida, são
apresentados os principais protocolos de roteamento seguros propostos para MANETs: o
Ariadne, o ARAN e o SRP. Sem detrimento à generalidade, esses protocolos são apresentados considerando que a antena de todos os nós é omnidirecional e possui o mesmo raio
de alcance.
5.1. Dynamic Source Routing – DSR
O protocolo de roteamento DSR [Johnson and Maltz 1996] é um protocolo de roteamento reativo baseado no conceito de source routing. Utilizando o DSR, as unidades
não utilizam tabelas de roteamento, mas sim caches de rotas. A cache de rotas permite
que a unidade possa guardar múltiplas entradas para um mesmo destino, possibilitando
até mesmo o uso de múltiplas rotas simultâneas.
Para enviar uma mensagem, a origem coloca no cabeçalho da mensagem a rota
completa pela qual esta mensagem deve passar. Essa rota é composta pelos endereços
das unidades que devem receber e retransmitir a mensagem. Então, a origem envia a
mensagem para a próxima unidade da rota. Quando uma unidade recebe uma mensagem,
ela analisa se ela é o destino da mensagem. Se for, remove a mensagem da rede e passa
para os protocolos das camadas superiores; se não for, então, simplesmente retransmite
a mensagem para a próxima unidade da rota contida na mensagem. Como as mensagens
carregam a rota completa pela qual elas devem passar entre a origem e o destino, outras
unidades, retransmitindo ou simplesmente ouvindo a mensagem, podem obter informações de roteamento e adicioná-las às suas caches.
Quando uma unidade deseja transmitir uma mensagem, ela primeiramente procura
por um caminho na sua cache de rotas. Se um caminho para o destino for encontrado na
cache, ele é colocado nas mensagens e utilizado para enviar as mensagens da origem para
o respectivo destino. Caso a origem não possua nenhuma rota para chegar ao destino, ela
utiliza a fase de descoberta de rota (route discovery) do protocolo DSR para procurar uma
nova rota até o destino. A fase de descoberta de rota do DSR permite que origens possam
procurar rotas para quaisquer destinos da rede. Esta fase é invocada sempre que a origem
não possui nenhum caminho válido em sua cache para o destino.
Para descobrir uma rota, a unidade inunda a rede com uma mensagem de Pedido
de Rota (RREQ - Route Request). As mensagens de RREQ possuem o seguinte formato:
[ source, destination, id, node list ]
(1)
• source e destination são os endereços da origem e do destino do RREQ, respectivamente;
• id é calculado pela origem do RREQ para que unidades da rede possam identificar
RREQs duplicados;
• node list guarda a lista ordenada de unidades pelas quais o RREQ passou desde que
saiu da origem.
Quando uma unidade recebe um RREQ, ela o processa na seguinte ordem:
1. se este RREQ já passou pela unidade, ele é descartado. Para saber se o RREQ já
passou por ela, a unidade compara o par (source ; id) da mensagem com a lista
que ela guarda com o par (source ; id) dos últimos RREQs recebidos. Se o par da
mensagem estiver na lista, então este RREQ já passou por esta unidade e pode ser
descartado;
2. senão, se a unidade é o destino do RREQ, a rota coletada pela mensagem é uma rota
da origem até o destino. Então a unidade inverte esta rota e a envia para a origem
em uma mensagem de Resposta de Rota (RREP – Route Reply);
3. caso contrário, a unidade coloca o seu endereço no final do campo node list e reenvia a mensagem para os seus vizinhos.
Se ocorrer um erro durante a transmissão que não possa ser reparado, a unidade
que detecta este erro envia uma mensagem de Erro de Rota (REER – Route Error) para a
unidade que iniciou a transmissão da mensagem, avisando que esta rota não é mais válida.
A mensagem RERR carrega os endereços das unidades entre as quais foi encontrado
o enlace quebrado, isto é, a unidade que detectou a quebra do enlace e a unidade que
deveria receber a mensagem. A mensagem de RERR é enviada pela rota reversa àquela
utilizada pela mensagem original. Quando uma unidade recebe um RERR, ela remove da
sua cache de rotas todas as rotas que utilizam o enlace quebrado. Quando o RERR chega
ao seu destino (a unidade que gerou a mensagem de dados) esta unidade decide se uma
nova rota para o destino precisa ser encontrada ou não.
5.2. Ad Hoc On-Demand Distance-Vector – AODV
O protocolo de roteamento AODV [Perkins and Belding-Royer 1999] foi criado
sobre o protocolo DSDV. O AODV pode ser considerado uma melhoria do DSDV, pois
minimiza a quantidade de tráfego, construindo as rotas sob demanda (somente quando
são necessárias), ao invés de manter uma tabela de roteamento sempre atualizada.
Os criadores do AODV classificam o protocolo como um sistema de aquisição
de rotas puramente sob demanda porque as unidades não dependem de rotas ativas nem
trocam informações de roteamento periodicamente. Para descobrir as rotas, o AODV
utiliza o mesmo mecanismo do DSR, uma inundação da rede. Entretanto, o AODV não
utiliza source routing, estabelecendo a rota dinamicamente nas unidades intermediárias.
Com isso, as mensagens do AODV não precisam carregar toda a rota pela qual elas devem
passar.
O AODV utiliza números de seqüência para garantir que as rotas não possuam
laços e para assegurar que as unidades possuem as informações de roteamento mais recentes. Todas as unidades devem manter uma tabela de roteamento contendo a próxima
unidade para a qual a mensagem deve ser enviada para chegar ao destino. Por exemplo,
quando a unidade i quer enviar uma mensagem para a unidade j, ela olha na sua tabela de
roteamento para quem deve enviar a mensagem para que a mensagem chegue ao destino,
por exemplo, a unidade k. Quando k recebe a mensagem, ela repete o processo, olhando
na sua tabela para quem ela deve mandar a mensagem para que chegue ao destino, por
exemplo, a unidade l, e envia a mensagem para l. Este processo é repetido até que a mensagem chegue ao destino. Caso a origem não saiba como chegar ao destino, ela precisa
procurar uma rota até o destino.
Para procurar uma rota, a origem envia uma mensagem de RREQ inundando a
rede. Caso uma unidade receba o RREQ mais de uma vez, ela simplesmente descarta o
RREQ duplicado. Os RREQs carregam um identificador que em conjunto com o endereço
da origem permite que eles possam ser unicamente identificados por todas as unidades.
Esse esquema é similar ao utilizado pelo DSR.
A rota do destino para a origem é estabelecida pelo RREQ à medida que ele atravessa a rede. Quando uma unidade recebe um RREQ, ela guarda na sua tabela de roteamento o endereço da unidade que transmitiu o RREQ para ela. Esta informação serve
também para informar para a unidade atual o caminho entre ela e a origem do RREQ.
À medida que o RREQ vai atravessando a rede, ele vai construindo a rota de todas as
unidades pelas quais ele passa até a origem do RREQ.
A rota da origem para o destino é construída pela mensagem de RREP. Uma unidade manda uma mensagem de RREP em resposta a um RREQ quando ela é o destino
do RREQ ou quando ela possui uma rota suficientemente nova para o destino do RREQ.
O RREP é enviado através do caminho construído pelo RREQ. Enquanto o RREP segue
o caminho do destino para a origem, ele vai estabelecendo o caminho da origem para o
destino. Quando uma unidade recebe um RREP, ela guarda na sua tabela o endereço da
unidade da qual ela recebeu o RREP, construindo o caminho entre a origem e o destino
da mesma forma que foi feito no RREQ. Quando o RREP chega ao seu destino, as duas
rotas estão estabelecidas, da origem para o destino e do destino para origem, e a origem
pode iniciar a transmissão dos dados.
Durante a transmissão dos dados, o movimento das unidades pode causar a quebra
da rota estabelecida. Caso o movimento da origem quebre da rota, ela precisa reiniciar
o processo de descoberta de rota. Se a quebra da rota for causada pelo movimento de
qualquer outra unidade, o seu predecessor na rota vai detectar a quebra do enlace e deve
propagar uma notificação de quebra de rota (RERR) para os seus predecessores. Este
processo é repetido até que a notificação de quebra de rota chegue na origem dos dados,
que deve, então, reiniciar o procedimento de descoberta de rota.
5.3. Ariadne
O Ariadne [Hu et al. 2005] é baseado no DSR e tem como objetivo fornecer um
mecanismo de autenticação com baixo custo computacional e baixa sobrecarga de comunicação. Essas características são importantes para que um atacante não possa explorar
essas limitações e realizar um ataque do tipo DoS, inundando a rede com mensagens maliciosas e gerando uma sobrecarga com a verificação da autenticidade dessas mensagens.
Ele garante que o nó destino possa autenticar o nó inicial na fase de descoberta de rota e
o nó inicial possa autenticar cada nó intermediário do caminho.
Ele realiza a autenticação das mensagens de roteamento utilizando um dos três
esquemas a seguir:
1. segredos compartilhados entre cada par de nós, sendo necessárias (n + 1)/2 chaves
em uma rede com n nós;
2. segredos compartilhados entre os nós comunicantes combinados com autenticação de pacotes de broadcast. O protocolo de autenticação utilizado é o
TESLA [Perrig et al. 2002];
3. assinatura digital, sendo necessário um mecanismo de distribuição de chaves públicas.
O Ariadne fornece autenticação ponto-a-ponto de uma mensagem de roteamento
usando um Código de Autenticação de Mensagem (MAC – Message Authentication Code)
e uma chave compartilhada entre as duas partes. Ele trata os ataques de modificação, de
fabricação, de personificação, e ataques wormhole [Molva and Michiardi 2003].
Neste protocolo, o mecanismo de RREQ básico é composto por oito campos adicionais que fornecem a autenticação e a integridade ao roteamento. Os campos de RREQ
são os seguintes:
[ source, destination, id, time interval, hash chain, node list, MAC list ]
(2)
• source e destination são os endereços de origem e de destino, respectivamente;
• id é calculado pela origem do RREQ para que unidades da rede possam identificar
RREQs duplicados;
• time interval é o tempo de intervalo do TESLA, que indica um tempo pessimista de
chegada esperado para que o RREQ chegue ao destino. Sendo τ o tempo pessimista
de trânsito e ∆ o tempo máximo de erro de sincronização entre dois nós, o time
interval poderia ser qualquer intervalo de tempo em que a chave não seja liberada
dentro do próximo tempo τ + 2∆;
• hash chain é um cálculo realizado sobre os endereços dos nós utilizados na construção da rota. Ele é inicializado como:
MACKSD (source, destination, id, time interval)
(3)
MACKSD (M) indica o cálculo MAC da mensagem M com a chave MAC KSD , usando
um algoritmo tipo HMAC.
• node list e MAC list são inicializados como vazios e guardam a lista ordenada de
unidades pelas quais o RREQ passou desde que saiu da origem.
Quando um nó I recebe um RREQ em que o destino não é ele próprio, ele verifica se já recebeu, recentemente, esse pedido de descobrimento de rota. Caso já tenha
recebido, ele descarta o pacote, como no DSR. Além disso, ele verifica se o tempo de
intervalo ainda é válido e, caso o pacote não seja válido, ele é descartado. Caso contrário,
o nó adiciona o seu próprio endereço I no campo lista de nós, altera o campo hash chain
com H( I, cadeia hash ) e adiciona um MAC do pedido inteiro ao campo MAC list. O
nó I utiliza a chave TESLA KIi para calcular o MAC, sendo i o índice para o intervalo de
tempo especificado no RREQ. Em seguida, o nó reenvia o RREQ modificado.
Quando o nó destino recebe um pacote RREQ, ele faz uma validação do RREQ,
verificando se as chaves do intervalo de tempo especificado não foram descobertas ainda
e que o campo hash chain seja igual a:
H[ηn−1 , H[..., H[η1, MACKSD (source, destination, id,timeinterval)]...]]]
(4)
ηi é o endereço do nó na posição i do campo lista de nós e n é o número de nós na lista
de nós. Se o destino determina que o RREQ é valido, ele retorna um pacote de RREP à
origem contendo oito campos:
[ destination, source, id, time interval, node list, MAC list, destination MAC, key list ]
(5)
• source e destination são os endereços de origem e de destino, respectivamente.
• id é calculado pela origem do RREQ para que unidades da rede possam identificar
RREQs duplicados;
• time interval é o tempo de intervalo do TESLA, que indica um tempo pessimista de
chegada esperado, para que o RREQ chegue ao destino. Sendo τ o tempo pessimista
de trânsito e ∆ o tempo máximo de erro de sincronização entre dois nós, o time
interval poderia ser qualquer intervalo de tempo em que a chave não seja liberada
dentro do próximo tempo τ + 2∆;
• node list e MAC list são inicializados como vazios, e guardam a lista ordenada de
unidades pelas quais o RREQ passou desde que saiu da origem;
• destination MAC é o cálculo MAC dos campos precedentes no RREP com a chave
KDS ;
• key list é a lista de chaves utilizadas pelos nós na construção do hash chain. Ela é
inicializada como vazia.
Um nó que está encaminhando um RREP, aguarda até poder abrir a sua chave do
intervalo de tempo especificado. Em seguida, ele adiciona a sua chave daquele intervalo
de tempo ao campo key list do RREP e encaminha o pacote de acordo com a rota indicada.
Isso gera um atraso no retorno do pacote RREP, porém não eleva o custo computacional.
Quando o nó inicial recebe o RREP, ele faz uma verificação da validade de cada
uma das chaves contidas na lista de chaves (key list), do endereço MAC destino (destination MAC) e de cada um dos MACs contidos na lista de MAC (MAC list). Se todos esses
campos forem válidos, ele aceita o RREP e, conseqüentemente, a nova entrada de roteamento. Caso contrário, ele descarta o pacote. Um esquema genérico do funcionamento
do Ariadne é apresentado na Figura 11, em que o nó S solicita um pedido de rota até o nó
D.
O Ariadne realiza a autenticação das mensagens tanto na fase de construção das
rotas como na fase de manutenção. Com isso, ele previne mensagens de erros (RERR)
falsas e rotas malcomportadas. Também, como as mensagens de pedido de rotas são autenticadas, ele previne contra a tentativa de inundação de pedidos de rotas com o objetivo
de negar os demais serviços da rede. Isso é possível porque o Ariadne limita a taxa de
pedidos de rotas por nó.
5.4. Authenticated Routing for Ad hoc Networks – ARAN
O ARAN [Sanzgiri et al. 2002] é baseado no protocolo reativo AODV. No ARAN,
cada nó tem um certificado assinado por uma autoridade confiável T . Todos os nós da rede
possuem acesso à chave pública de T e, assim, eles podem verificar a autenticidade dos
certificados [Anjum and Mouchtaris 2007]. Ele introduz autenticação, integridade e nãorepúdio de mensagens como parte de uma política mínima de segurança para ambientes
ad hoc e consiste de [Molva and Michiardi 2003]:
1. um processo preliminar de certificação;
2. um estágio de autenticação fim-a-fim mandatório;
3. um segundo estágio que fornece os menores caminhos seguros (opcional).
S:
S→∗:
h0 = MACKSD (REQU EST, S, D, id, ti)
(REQU EST, S, D, id, ti, h0 , (), () )
A:
..
A→∗:
h1 = H[A, h0 ]
MA = MACKAti (REQU EST, S, D, id,ti, h1 , (A), ())
(REQU EST, S, D, id,ti, h1 , (A), (MA ))
B:
h2 = H[B, h1 ]
MB = MACKBti (REQU EST, S, D, id, ti, h2 , (A, B), (MA ) )
(REQU EST, S, D, id, ti, h2 , (A, B), (MA , MB ))
B→∗:
C:
C→∗:
h3 = H[C, h2 ]
MC = MACKCti (REQU EST, S, D, id, ti, h3 , (A, B, C), (MA , MB ) )
(REQU EST, S, D, id, ti, h3 , (A, B, C), (MA , MB , MC ))
D:
MD = MACKDS (REPLY, D, S, ti, (A, B, C), (MA , MB , MC ) )
D → C : (REPLY, D, S, ti, (A, B, C), (MA , MB , MC ), MD , () )
C→B:
(REPLY, D, S, ti, (A, B, C), (MA , MB , MC ), MD , (KCti ) )
B→A:
(REPLY, D, S, ti, (A, B, C), (MA , MB , MC ), MD , (KCti , KBti ) )
A→S:
(REPLY, D, S, ti, (A, B, C), (MA , MB , MC ), MD , (KCti , KBti , KAti ) )
Figura 11. Funcionamento genérico do Ariadne
O certificado do nó A tem o seguinte formato [Anjum and Mouchtaris 2007]:
certA = [IPA, PKA ,t, e]SKT
(6)
• IPA é o endereço IP do nó A;
• PKA é a sua respectiva chave pública;
• t é a hora em que o certificado foi criado;
• e é o tempo de expiração do certificado;
• SKT indica que o certificado foi assinado com a chave privada de T .
.
Para iniciar a descoberta de uma rota ao destino D, a origem S faz um broadcast
de um RREQ com o seguinte formato:
[RREQ, IPD, certS , NS ,t]SKA
• RREQ indica que essa é uma mensagem RREQ;
• IPD especifica o endereço IP do nó D, que é o alvo da descoberta de rota.
(7)
• certS é o certificado do nó S;
• NS é um identificador que aumenta sempre que S envia uma mensagem RREQ;
• t é um carimbo de tempo;
• SKA indica que essa mensagem é assinada com a chave privada de A.
Quando um nó intermediário I recebe a mensagem, ele primeiramente verifica se
a mensagem é autêntica, extraindo a PKA do certificado que está na mensagem. Caso esse
nó ainda não tenha recebido essa mensagem e também não seja o destino final, ele assina
a mensagem com sua chave privada, inclui o seu próprio certificado à mensagem e a envia
aos seus vizinhos, com o seguinte formato:
[[RREQ, IPD, certS , NS ,t]SKA]SKI , certI
(8)
sendo que o nó intermediário I não altera a mensagem original, apenas adiciona o seu
certificado e a sua assinatura. Quando um próximo nó intermediário recebe a mensagem,
ele realiza o mesmo processo de I, porém remove o certificado e a assinatura de I e
substitui por seu próprio certificado e assinatura.
Quando o nó D recebe a mensagem, ele responde com uma mensagem RREP.
O protocolo ARAN não tenta verificar a quantidade de saltos no caminho, pois um nó
malicioso poderia tentar manipular o número de saltos [Anjum and Mouchtaris 2007].
Os nós realizam um unicast das mensagens RREP até o solicitante S, pelo caminho que
foi descoberto no RREQ. Assumindo que o nó C tenha sido o último salto antes do nó D,
então o D envia ao nó C a seguinte mensagem:
[RREP, IPS, certD , NA ,t]SKD
(9)
sendo que D informa o endereço IP da origem S e assina a mensagem com a sua chave
privada. Quando o nó C recebe essa mensagem, ele verifica sua autenticidade, assina a
mensagem, inclui o seu certificado à mensagem e a envia ao nó anterior esperado.
Como nas mensagens RREQ, os nós intermediários removem a assinatura e certificado dos nós anteriores. Quando o nó S recebe a mensagem RREP, ele verifica a
autenticidade da resposta e pode iniciar uma comunicação com D.
O protocolo ARAN também suporta um esquema de manutenção de rotas similar
ao AODV. Se, por exemplo, um nó B descobre que o enlace ao nó C está quebrado, ele
envia uma mensagem de RERR para a origem da rota. As mensagens de RERR têm o
seguinte formato:
[RERR, IPA, IPD , certB , NB ,t]PKB
(10)
Essas mensagens são assinadas para evitar que os nós maliciosos enviem mensagens de erros de rotas falsas para os demais nós. Também é indicado que cada nó mantenha um contador da mensagens de erros enviadas pelos outros nós, pois caso um único nó
envie muitas dessas mensagens, essas podem ser descartadas, evitando o processamento
desnecessário na verificação das assinaturas dessa mensagem.
A revogação dos certificados é realizada pela autoridade confiável central T por
meio de uma mensagem de revogação enviada a todos os nós. Caso o nó malicioso seja a
única relação entre a autoridade central T e os demais usuários da rede, ele pode bloquear
as mensagens de revogação enviadas, tornando o método de revogação vulnerável.
Com essas características, o protocolo ARAN protege a rede contra ataques de
modificação, de fabricação e de personificação. Por outro lado, ele não protege contra
ataques do tipo wormhole. Também, por utilizar criptografia assimétrica, possui um custo
computacional elevado, consumindo mais energia [Michiardi and Molva 2003].
5.5. Secure Ad Hoc On-Demand Distance-Vector – SAODV
O SAODV [Zapata and Asokan 2002] é um outro protocolo desenvolvido para
tornar o AODV seguro. A idéia do SAODV é utilizar uma assinatura para autenticar a
maioria dos campos de um RREQ e RREP e usar cadeias hash para autenticar a contagem de saltos. Os nós da rede autenticam os pacotes de roteamento com uma extensão
de assinatura do SAODV, prevenindo alguns ataques de personificação. As informações
relativas às cadeias hash e às assinaturas são transmitidas juntamente com a mensagem
AODV e são chamadas de Extensão de Assinaturas. Um pedido de rota com uma extensão
de assinatura é chamado RREQSSE.
Toda vez que um nó origina uma mensagem RREQ ou RREP, ele executa as seguintes operações:
1. gera um número aleatório (semente);
2. configura o campo Max Hop Count para o valor TimeToLive (do cabeçalho IP);
3. configura o campo Hash para o valor da semente;
4. configura o campo Hash Function para o identificador da função hash que está
sendo utilizada (a Tabela 3 contém os possíveis valores para esse campo);
5. calcula o campo Top Hash, realizando Max Hop Count vezes um hash da semente
(seed):
TopHash = hMaxHopCount (seed)
(11)
h é a função hash e hi x resulta em aplicar a função h em x por i vezes.
Tabela 3. Valores possíveis para o campo hash function
Valor
0
1
2
3–127
128–255
Função hash
Reservado
MD5HMAC96
SHA1HMAC96
Reservado
Dependente da implementação
Quando um nó recebe uma mensagem RREQ ou RREP, ele executa as seguintes
operações para verificar o contador de saltos:
1. aplica a função hash h no valor contido no campo Hash por (MaxHopCount −
HopCount) vezes e verifica se o valor resultado é igual no campo Top Hash:
TopHash = hMaxHopCount−HopCount (Hash)
(12)
2. antes de reenviar o pacote de RREQ ou encaminhar um de RREP, o nó aplica a
função hash ao valor Hash para contabilizar o novo salto:
Hash = h(Hash)
(13)
O campo Hash Function indica qual função deve ser utilizada, o que dificulta a
ação de um nó malicioso. Os campos Hash Functions, Max Hop Count, Top Hash e Hash
são transmitidos com a mensagem AODV, em uma Extensão de Assinatura.
O SAODV não consegue proteger a rede contra ataques do tipo wormhole. Como
suas mensagens são assinadas, ele possui proteção contra os ataques de personificação e
falsificação de mensagens. Além disso, ele possui proteção contra ataques de modificação
de rotas, em que um nó malicioso no meio da rota tenta diminuir a contagem de saltos
para ter preferência no encaminhamento das mensagens.
5.6. Secure Routing Protocol – SRP
O SRP [Papadimitratos and Haas 2002] é um protocolo que pode ser utilizado
como uma extensão de alguns protocolos de roteamento, adicionando a eles atributos
de segurança. De forma geral, ele é utilizado para adicionar segurança ao DSR. O SRP
assume que existe uma associação de segurança (AS) entre os nós que desejam realizar as
trocas de mensagens.
O SRP define um cabeçalho que é adicionado a cada mensagem de roteamento
do protocolo subjacente, como o DSR. Quando um nó S deseja iniciar um processo de
descoberta de rota ao nó D, ele gera uma mensagem de RREQ e anexa o cabeçalho SRP
a ela. Esse cabeçalho possui o seguinte formato:
[Type, Reserved, Query Identi f ier, Query Sequence Number, SRP MAC]
(14)
• Type define o tipo da mensagem, por exemplo, uma mensagem de requisição de
rota;
• Query Identifier é um identificador aleatório de 32 bits;
• Query Sequence Number é número de seqüência de 32 bits que é incrementado
a cada novo RREQ gerado pela origem para um destino específico. O número de
seqüência é inicializado quando é estabelecida uma Associação de Segurança entre
a origem e o destino;
• SRP MAC é um valor de 96 bits gerado por uma função hash, como SHA-1 ou
MD5.
A função hash recebe como entrada o cabeçalho IP, a mensagem de roteamento, a
extensão SRP e a chave compartilhada entre a origem e o destino da mensagem. Os campos que podem ser alterados são excluídos desse cálculo, o que pode deixar o protocolo
suscetível a ataques do tipo wormhole.
Quando um nó intermediário recebe um RREQ, ele verifica se essa mensagem já
foi recebida. Caso não tenha sido, ele adiciona o seu endereço na mensagem de RREQ e
a reencaminha. Os nós que solicitam um número excessivo de rotas tendem a ser evitados
por seus vizinhos, o que evita ataques do tipo DoS. Caso já tenha sido recebida, ela é
descartada.
Quando o destino recebe a mensagem RREQ, ele verifica a mensagem para ter
certeza que a requisição é válida. O número de seqüência também é verificado, para
garantir que essa não é uma mensagem antiga. O destino gera o hash do RREQ e compara
com o valor do campo SRP MAC incluso na mensagem. O nó destino geralmente recebe
múltiplos RREQs com o mesmo número de seqüência e responde a todos. Dessa forma, a
origem fica conhecendo múltiplos caminhos e, caso um nó malicioso rompa algumas das
rotas, ainda é possível existir comunicação entre os nós [Anjum and Mouchtaris 2007].
Na mensagem de RREP enviada pelo nó destino, é incluída a rota encontrada no
processo de pedido de rota, o identificador da consulta (query identifier) e o número de
seqüência da consulta. O valor MAC na resposta é realizado sobre a mensagem do protocolo de roteamento subjacente e o restante do cabeçalho SRP, protegendo a integridade da
resposta. Quando a origem recebe o RREP, ela valida a resposta e a armazena em seu cache de rotas. A origem receberá, possivelmente, múltiplas respostas e poderá armazenar
diversos caminhos até o destino.
O SRP fornece uma proteção mínima a erros de manutenção de rotas. Os nós
que descobrem ligações quebradas enviam mensagens de erros de rotas aos nós anteriores. Contudo, nada desencoraja os nós de enviar mensagens maliciosas de erros de rotas
declarando que uma rota não existe mais, mesmo que essa rota ainda exista.
6. Incentivo à cooperação em redes ad hoc
Como já discutido, as tarefas básicas em uma MANET são realizadas pelos próprios nós participantes da rede. No entanto, não é possível garantir que os nós irão cooperar uns com os outros, visto que as operações da rede consomem recursos, como energia,
memória e processamento. Dessa forma, as MANETs são vulneráveis a ataques de falta
de cooperação, nos quais os nós egoístas utilizam recursos da rede, porém não cooperam
com os demais nós.
As técnicas de incentivo de cooperação são usadas para encorajar a colaboração
entre os nós e podem ser classificadas em dois grupos: modelos baseados em reputação e modelos baseados em créditos. A Figura 12 ilustra a taxonomia dos esquemas de
incentivo à cooperação.
6.1. Modelos baseados em reputação
Os modelos baseados em reputação utilizam como métrica a reputação dos nós
para o encaminhamento de mensagens. Essa reputação é geralmente medida por nós
Esquemas de incentivo
à cooperação para
MANETs
Baseados em reputação
Reputação direta
Reputação direta e
indireta
Baseados em créditos
Uso de hardware
resistente à
alteração
Uso de banco virtual
Figura 12. Taxonomia dos modelos de incentivos à cooperação para MANETs
considerados confiáveis. A reputação de um nó aumenta na medida em que ele executa
as tarefas de encaminhamento de mensagens corretamente. De forma geral, os esquemas
baseados em reputação possuem técnicas para isolar os nós maliciosos, que possuem
baixa reputação. Entre os diversos modelos baseados em reputação estão:
• CONFIDANT [Buchegger and Boudec 2002b, Buchegger and Boudec 2002a];
• CORE [Michiardi and Molva 2002].
6.1.1. Cooperation of Nodes: Fairness in Dynamic Ad Hoc Networks – CONFIDANT
O esquema de reputação CONFIDANT [Buchegger and Boudec 2002b,
Buchegger and Boudec 2002a] atua como uma extensão para qualquer protocolo de
roteamento reativo. Esse esquema assume que os pacotes dos nós egoístas não são
encaminhados pelos nós não maliciosos. Ele possui quatro componentes de confiança em
cada nó: o Monitor, o Sistema de Reputação, o Gerenciador de Caminho e o Gerenciador
de Confiança. A Figura 13 ilustra o esquema básico de funcionamento do CONFIDANT.
O componente Monitor é responsável pelo monitoramento dos vizinhos. Um nó
pode detectar um comportamento egoísta de duas formas:
1. diretamente, ouvindo as transmissões de seus vizinhos de forma promíscua, chamado de observação first-hand. Quando o Monitor detecta qualquer evento egoísta,
o Gerenciador de Reputação é informado;
2. indiretamente, observando o mal comportamento do protocolo de roteamento, chamada de observação second-hand. Nesse caso, o Monitor recebe uma mensagem
de alerta (ALARM) de algum nó “amigo”. Ao receber um alerta de outro nó, o
Gerenciador de Confiança é acionado para avaliar a confiança do nó que enviou
o alerta. Se esse nó for confiável, a tabela de alarmes é atualizada e, se existirem
evidências suficiente do comportamento egoísta do nó acusado, o Gerenciador de
Reputação é informado.
Figura 13. Esquema de funcionamento do CONFIDANT
Para tratar o recebimento das mensagens de alertas de outros nós, cada nó possui
uma lista de “amigos”. Dessa forma, o Gerenciador de Confiança, antes de aceitar qualquer mensagem de alerta, analisa a sua lista de nós “amigos”. No entanto, é necessário um
estabelecimento de confiança prévio entre os nós para a formação dessa rede de “amigos”,
o que nem sempre é desejável ou possível em MANETs.
Independentemente da forma que o comportamento egoísta foi detectado, o Gerenciador de Reputação é acionado para que o sistema realize alguma ação para evitar
o nó egoísta. O Gerenciador de Reputação realiza uma análise da mensagem de alerta e,
se esta for significante, um contador de eventos é atualizado. Ele também é responsável
pelo gerenciamento de uma tabela de classificação de cada nó. Essa classificação pode
ser alterada somente se:
1. existe a evidência de um comportamento egoísta;
2. o comportamento egoísta ocorre um número de vezes excedendo um valor limite
pré-definido.
Depois de alterada a classificação do nó, o Gerenciador de Reputação analisa se
essa classificação está dentro de um limite de tolerância. Caso não esteja, o Gerenciador
de Caminho é ativado. Esse componente exclui todas as rotas que contenham os nós
egoístas. Além disso, ele classifica os caminhos e envia uma mensagem de alerta sobre o
nó egoísta.
Originalmente, o CONFIDANT era vulnerável a ataques do tipo blackmail, cha-
mado de fenômeno de rumores. No entanto, em novas implementações, modelos baesianos são utilizados para classificar e excluir os nós mentirosos da rede [Marias et al. 2006].
6.1.2. A Collaborative Reputation Mechanism to enforce node cooperation in Mobile Ad hoc Networks- CORE
O CORE [Michiardi and Molva 2002] estimula a cooperação dos nós usando uma
técnica de monitoramento colaborativo e um mecanismo de reputação. Cada nó monitora
o comportamento de seus vizinhos. O protocolo garante que, se um vizinho se recusar a
cooperar com um nó solicitante, o CORE reagirá diminuindo a reputação desse vizinho,
chamado de “fornecedor”. Caso esse comportamento de não-cooperação persista, esse nó
será naturalmente excluído da rede.
O funcionamento básico do CORE pode ser descrito como segue:
1. um solicitante solicita um serviço s de seu vizinho;
2. esse solicitante ativa um mecanismo de monitoramento, aguardando um retorno de
seu vizinho para realização do serviço s em um tempo pré-definido;
3. caso o serviço s seja realizado com sucesso, o solicitante desarma o mecanismo de
monitoramento:
• ao responder para o solicitante, o vizinho inclui uma lista de todos os nós que
estão participando corretamente da rede;
• o solicitante usa essa informação indireta para atualizar a sua tabela de reputação.
4. caso o serviço s não seja realizado dentro do tempo pré-determinado, o mecanismo
de monitoramente avaliará negativamente o vizinho: o solicitante atualiza a entrada
referente ao seu vizinho na tabela de reputação, com um valor negativo.
Com base nas informações coletadas, cada nó calcula o valor de reputação de seus
vizinhos, usando um mecanismo de reputação. Esse mecanismo divide esse valor em
três classes: subjetiva (observações); indireta (informações positivas recebidas de outros
nós); funcional (comportamento em uma tarefa específica). Esses valores são ponderados
e formam um valor de reputação combinado. A fórmula utilizada evita falsas detecções,
pois utiliza um fator de envelhecimento que prioriza as observações anteriores. Dessa
forma, também é impossível que um único nó malicioso diminua a reputação de um outro
nó, pois é necessária a observação de vários nós para o cálculo do valor da reputação.
Esse mecanismo permite que os nós isolem, gradativamente, os nós egoístas. Ao
receber um pedido para executar um serviço s, o nó verifica o valor de reputação do nó
socilitante em sua tabela de reputação. Se o valor de reputação é negativo, o nó não
executará o serviço solicitado. No entanto, os nós maliciosos podem ser integrados à rede
se aumentarem sua reputação cooperando nas operações da rede.
6.2. Modelos baseados em crédito
Os modelos baseados em crédito assumem que a tarefa de encaminhamento de
pacotes é um serviço que pode ser comercializado, no qual valores podem ser aplicados
e cobrados para a realização desse serviço. Esses modelos usam algum tipo de moeda
virtual para regular as negociações entre os nós e necessitam ou de um hardware resistente
a alterações ou de um banco virtual [Marias et al. 2006].
Nos modelos que utilizam um hardware resistente a alterações, todos os nós devem possuir esse hardware específico, o que pode encarecer o projeto. Por outro lado,
os modelos que utilizam banco virtual precisam de uma terceira entidade confiável para
oferecer esse serviço, o que não é uma característica desejada nas MANETs. Entre os
diversos modelos baseados em créditos estão:
• Nuglets [Michiardi and Molva 2002];
• Sprite [Sheng Zhong and Yang 2003].
6.2.1. Nuglets
O Nuglets [Buttyán and Hubaux 2001] apresenta dois objetivos importantes para
MANETs: primeiro, os nós devem ser incentivados a cooperar com as operações da rede,
principalmente no encaminhamento de pacotes; segundo, os nós devem ser desencorajados a sobrecarregar a rede com pacotes desnecessários. Nesse modelo, a moeda virtual
utilizada é chamada de nuglets.
O Nuglets prevê dois modelos básicos diferentes: o Packet Purse Model (PPM)
e o Packet Trade Model (PTM). No primeiro modelo, o pacote é carregado com uma
quantidade de nuglets e cada nó intermediário retira alguns nuglets como pagamento para
o encaminhamento do pacote. Essa abordagem desencoraja os nós a inundar a rede com
pacotes desnecessários, porém exige que a origem saiba exatamente a quantia de nuglets
necessária para que o pacote possa alcançar o destino. No segundo modelo, cada pacote
é comercializado em nuglets pelos nós intermediários: cada nó intermediário “compra” o
pacote de um nó anterior e o “revende” para outro nó. Nesse esquema, o destino precisa
realizar o pagamento pelo pacote. A principal vantagem é que a origem não precisa saber
a quantia em nuglets necessária para transmitir o pacote da origem ao destino, mas os nós
não são desencorajados a inundar a rede.
Os dois modelos, PPM e PTM, podem ser combinados para aproveitar as vantagens de ambos. Nesse caso, a origem carrega o pacote com uma quantidade de nuglets
e o pacote é transmitido usando o modelo PPM até que terminem os nuglets que foram
depositados pela origem. Depois, o pacote para a ser comercializado pelo modelo PTM
até que o destino compre o pacote. Dessa forma, a origem não é encorajada a inundar a
rede com pacotes desnecessários, pois precisa depositar uma quantia inicial de nuglets, e
não precisa saber a quantia total de nuglets necessária para a transmissão do pacote até o
destino.
Para o uso do Nuglets, cada nó deve possuir um módulo de hardware resistente a
alterações e confiável, chamado de módulo de segurança, que é responsável por manter
um contador de nuglets para esse nó e gerenciar alguns parâmetros criptográficos necessários para o protocolo. Também é necessária uma Infra-estrutura de Chaves Públicas
(PKI – Public Key Infrastructure) para estabelecer as chaves de sessão simétricas utilizadas entre os módulos de segurança dos nós vizinhos. Essas chaves são utilizadas para
proteção salto-a-salto dos pacotes e reconhecimentos.
Para garantir o encaminhamento dos pacotes, o nó intermediário somente recebe
os nuglets quando o próximo nó retornar um pacote de reconhecimento. Isso evita que
os nós intermediários recebam nuglets e não executem o serviço de encaminhamento dos
pacotes.
6.2.2. Sprite
O Sprite [Sheng Zhong and Yang 2003] utiliza a abordagem de banco virtual para
regular as negociações entre os nós. Ele necessita de uma terceira entidade, chamada
Serviço de Autorização de Crédito (CSS - Credit Clearance Service). Além disso, nesse
modelo, todo nó possui um certificado de chave pública emitido por uma Autoridade
Certificadora (AC).
Quando um nó envia suas próprias mensagens, perde crédito, pois os demais nós
da rede cobram pelo encaminhamento das mensagens. Por outro lado, quando um nó
encaminha mensagens de outros nós, ele ganha crédito, que pode ser utilizados para o
envio de suas mensagens. Resumidamente, a forma mais simples de um nó obter créditos
é encaminhando as mensagens de outros nós. Sempre que um nó encaminha uma mensagem de outro nó, ele deve informar o CCS, enviando um recibo assinado que confirma o
encaminhamento da mensagem. Esses recibos são derivados do conteúdo da mensagem,
porém não contêm a mensagem completa.
Esse método é eficiente contra as seguintes ações egoístas de um nó:
1. receber um pacote, não reencaminhá-lo, mas salvar um recibo;
2. receber um pacote, porém não informar o seu recebimento;
3. não receber um pacote, mas falsamente informar que o recebeu.
Com o objetivo de motivar o encaminhamento das mensagens de outros nós, o
CCS dá mais crédito a um nó que encaminha uma mensagem. Para isso, o CCS determina
o último nó no caminho que já recebeu a mensagem e solicita que o emissor pague β a
esse nó e α a todos os nós predecessores, sendo β < α . Assim, todo nó é motivado a
informar seus recibos, pois β é maior que o seu custo de envio do recibo, visto que um
recibo é relativamente menor que uma mensagem.
Algumas desvantagens desse modelo são: ele assume a existência de uma conexão
rápida entre os nós e o CCS para que os recibos possam ser reportados; necessita de uma
AC; precisa de uma terceira entidade confiável para assumir o papel do CCS.
7. Conclusão
Fornecer segurança às redes ad hoc é um grande desafio, pois estas redes são
altamente vulneráveis a diversos tipos de ataques, tanto ativos como passivos.
Este minicurso apresentou as principais soluções de segurança para três áreas críticas: o gerenciamento de chaves, o roteamento e a falta de cooperação das unidades.
Para cada uma destas áreas, foram apresentados e detalhados os principais protocolos
existentes atualmente, bem como as suas limitações. É importante salientar que um dos
maiores problemas de todas as soluções apresentadas é que elas foram projetadas para
um problema específico. Entretanto, os mecanismos de segurança para redes ad hoc deveriam ser incluídos nas funções dessas redes desde o seu projeto em todos os níveis
[Michiardi and Molva 2003] e deveriam considerar a escassez de recursos e a mobilidade.
Muito ainda precisa ser desenvolvido e pesquisado para que se possa fornecer uma
solução que atenda a todos os requisitos de segurança das redes ad hoc. O maior desafio
é desenvolver esquemas de segurança que possam garantir a segurança das informações e
dos usuários em todos os níveis e contra todos os tipos de ataques simultaneamente.
Referências
[Aboba et al. 2004] Aboba, B., Blunk, L., Vollbrecht, J., and Carlson, J. (2004). RFC
3748: Extensible authentication protocol (EAP).
[Abramson 1985] Abramson, N. (1985). Development of the alohanet. IEEE Transactions on Information Theory, 31.
[Agrawal et al. 2008] Agrawal, P., Ghosh, R. K., and Das, S. K. (2008). Cooperative
black and gray hole attacks in mobile ad hoc networks. In Proceedings of the 2nd International Conference on Ubiquitous Information Management and Communication
(ICUIMC ’08), pages 310–314, New York, NY, USA. ACM.
[Albini et al. 2006] Albini, L. C. P., Caruso, A., Chessa, S., and Maestrini, P. (2006).
Reliable routing in wireless ad hoc networks: The virtual routing protocol. Journal of
Network and Systems Management, 14:335–358.
[Anjum and Mouchtaris 2007] Anjum, F. and Mouchtaris, P. (2007). Security for Wireless ad hoc Networks. John Wiley & Sons, Hoboken, New Jersey.
[Argyroudis and O’Mahony 2005] Argyroudis, P. and O’Mahony, D. (2005). Secure routing for mobile ad hoc networks. IEEE Communications Surveys and Tutorials, 7(3):2–
21.
[Buchegger and Boudec 2002a] Buchegger, S. and Boudec, J.-Y. L. (2002a). Nodes bearing grudges: Towards routing security, fairness, and robustness in mobile ad hoc
networks. In Proceedings of the Tenth Euromicro Workshop on Parallel, Distributed
and Network-based Processing, pages 403–410, Canary Islands, Spain. IEEE Computer Society.
[Buchegger and Boudec 2002b] Buchegger, S. and Boudec, J.-Y. L. (2002b). Performance analysis of the confidant protocol. In Proceedings of the 3rd ACM interna-
tional symposium on Mobile ad hoc networking & computing (MobiHoc ’02), pages
226–236, New York, NY, USA. ACM.
[Buttyán and Hubaux 2001] Buttyán, L. and Hubaux, J.-P. (2001). Nuglets: a virtual
currency to stimulate cooperation in self-organized ad hoc networks. Technical Report
Tech. Rep. DSC/2001/001, Swiss Federal Institute of Technology, Lausanne - Switzerland.
[Buttyán and Hubaux 2007] Buttyán, L. and Hubaux, J.-P. (2007). Security and Cooperation in Wireless Networks. Cambridge University Press, draft version 1.4 edition.
[Čapkun et al. 2003] Čapkun, S., Buttyán, L., and Hubaux, J.-P. (2003). Self-organized
public-key management for mobile ad hoc networks. IEEE Transactions on Mobile
Computing, 2(1):52–64.
[Čapkun et al. 2006] Čapkun, S., Hubaux, J.-P., and Buttyán, L. (2006). Mobility helps
peer-to-peer security. IEEE Transactions on Mobile Computing, 5(1):43–51.
[Chandra 2005] Chandra, P. (2005). Bulletproof Wireless Security: GSM, UMTS, 802.11
and ad hoc Security. Communications Engeneering Series. Elsevier, Burlington, MA,
USA.
[Chlamtac et al. 2003] Chlamtac, I., Conti, M., and Liu, J. J.-N. (2003). Mobile ad hoc
networking: imperatives and challenges. Ad Hoc Networks, 1(1):13–64.
[Christianson and Harbison 1997] Christianson, B. and Harbison, W. S. (1997). Why
isn’t trust transitive? In Proceedings of the International Workshop on Security Protocols (WSP ’96), pages 171–176, London, UK. Springer-Verlag.
[da Silva et al. 2008] da Silva, E., Lima, M. N., dos Santos, A. L., and Albini, L. C. P.
(2008). Quantifying misbehaviour attacks against the self-organized public key management on manets. In Proceedings of International Conference on Security and
Cryptography (SECRYPT ’08). INSTCC Press.
[Daemen and Rijmen 2002] Daemen, J. and Rijmen, V. (2002). The Design of Rijndael.
Springer-Verlag New York, Inc., Secaucus, NJ, USA.
[Desmedt 1994] Desmedt, Y. G. (1994). Threshold cryptography. European Transactions
on Telecommunications and Related Technologies, 5(4):449–457.
[Diffie and Hellman 1976] Diffie, W. and Hellman, M. E. (1976). New directions in cryptography. IEEE Transactions on Information Theory, IT-22(6):644–654.
[Douceur 2001] Douceur, J. R. (2001). The sybil attack. In Proceedings of the First International Workshop on Peer-to-Peer Systems (IPTPS ’01), pages 251–260, London,
UK. Springer-Verlag.
[Earle 2006] Earle, A. E. (2006). Wireless Security Handbook. Auerback publications,
Boca Raton, Florida, USA.
[Haas and Pearlman 2001] Haas, Z. J. and Pearlman, M. R. (2001). Zrp: a hybrid framework for routing in ad hoc networks. pages 221–253.
[Hegland et al. 2006] Hegland, A. M., Winjum, E., Mjolsnes, S. F., Rong, C., Kure, O.,
and Spilling, P. (2006). A survey of key management in ad hoc networks. IEEE
Communications Surveys, 08(03):48–66.
[Hu and Perrig 2004] Hu, Y.-C. and Perrig, A. (2004). A survey of secure wireless ad
hoc routing. IEEE Security and Privacy, 2(3):28–39.
[Hu et al. 2005] Hu, Y.-C., Perrig, A., and Johnson, D. B. (2005). Ariadne: a secure
on-demand routing protocol for ad hoc networks. Wireless Networks, 11(1-2):21–38.
[IEEE 1997] IEEE (1997). Wireless LAN Medium Access Control (MAC) and Physical
Layer (PHY) Specifications. IEEE Strandard 802.11-1997, New York, NY.
[IEEE 2004a] IEEE (2004a).
IEEE Standards for Local and Metropolitan Area
Networks: Port based Network Access Control. IEEE Std 802.1X-2004, New York,
NY.
[IEEE 2004b] IEEE (2004b). Supplement to Standard for Telecommunications and Information Exchange Between Systems – LAN/MAN Specific Requirements – Part 11:
Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Specification for Enhanced Security. IEEE Strandard 802.11, New York, NY.
[Johnson and Maltz 1996] Johnson, D. B. and Maltz, D. A. (1996). Dynamic source routing in ad hoc wireless networks. In Imielinski and Korth, editors, Mobile Computing,
volume 353, pages 153–181. Kluwer Academic Publishers.
[Khalili et al. 2003] Khalili, A., Katz, J., and Arbaugh, W. A. (2003). Toward secure
key distribution in truly ad-hoc networks. In Proceedings of the 2003 Symposium
on Applications and the Internet Workshops (SAINT’03), page 342, Washington, DC,
USA. IEEE Computer Society.
[Kong et al. 2001] Kong, J., Zerfos, P., Luo, H., Lu, S., and Zhang, L. (2001). Providing
robust and ubiquitous security support for mobile ad hoc networks. In Proceedings
of the Ninth International Conference on Network Protocols (ICNP ’01), page 251,
Washington, DC, USA. IEEE Computer Society.
[Luo et al. 2004] Luo, H., Kong, J., Zerfos, P., Lu, S., and Zhang, L. (2004). Ursa: ubiquitous and robust access control for mobile ad hoc networks. IEEE/ACM Transactions
on Networking, 12(6):1049–1063.
[Marias et al. 2006] Marias, G. F., Georgiadis, P., Flitzanis, D., and Mandalas, K. (2006).
Cooperation enforcement schemes for manets: a survey. Wireless Communication
Mobile Computing, 6(3):319–332.
[Michiardi and Molva 2002] Michiardi, P. and Molva, R. (2002). Core: a collaborative
reputation mechanism to enforce node cooperation in mobile ad hoc networks. In Proceedings of the IFIP TC6/TC11 6th Joint Working Conference on Communications and
Multimedia Security, pages 107–121, Deventer, The Netherlands, The Netherlands.
Kluwer, B.V.
[Michiardi and Molva 2003] Michiardi, P. and Molva, R. (2003). Ad hoc networks security. ST Journal of System Research, 4(1).
[Molva and Michiardi 2003] Molva, R. and Michiardi, P. (2003). Security in ad hoc
networks. In Proceeding of 8th International Conference on Personal Wireless Communications (PWC ’03). Also published as LNCS Volume 2775.
[Murthy and Manoj 2004] Murthy, C. S. R. and Manoj, B. S. (2004). Ah hoc wireless
networks: architectures and protocols. Prentice Hall Communications Engineering
and Emerging Technologies Series. Prentice Hall, New Jersey, USA, 3 edition.
[Papadimitratos and Haas 2002] Papadimitratos, P. and Haas, Z. J. (2002). Secure routing for mobile ad hoc networks. In Proceedings of SCS Communication Networks and
Distributed Systems Modeling and Simulation Conference (CNDS ’02), pages 27–31.
[Perkins and Belding-Royer 1999] Perkins, C. and Belding-Royer, E. (1999). Ad-hoc
on-demand distance vector routing. In Proceedings of IEEE Workshop on Mobile
Computing Systems and Applications, pages 90–100, Los Alamitos, CA, USA. IEEE
Computer Society.
[Perkins and Bhagwat 1994] Perkins, C. and Bhagwat, P. (1994). Highly dynamic
destination-sequenced distance-vector routing (DSDV) for mobile computers. In Proceedings of the ACM Conference on Communications Architectures, Protocols and
Applications (SIGCOMM’94), pages 234–244. ACM Press.
[Perrig et al. 2002] Perrig, A., Canetti, R., Tygar, D., and Song, D. (2002). The tesla
broadcast authentication protocol. Cryptobytes, 5(2):2–13.
[Rigney et al. 2000] Rigney, C., Willens, S., Rubens, A., and Simpson, W. (2000). RFC
2865: Remote authentication dial in user service (RADIUS).
[Sanzgiri et al. 2002] Sanzgiri, K., Dahill, B., Levine, B. N., Shields, C., and BeldingRoyer, E. M. (2002). A secure routing protocol for ad hoc networks. In Proceedings
of the 10th IEEE International Conference on Network Protocols (ICNP ’02), pages
78–89, Washington, DC, USA. IEEE Computer Society.
[Shamir 1979] Shamir, A. (1979). How to share a secret. Communications of the ACM,
22(11):612–613.
[Shamir 1985] Shamir, A. (1985). Identity-based cryptosystems and signature schemes.
In Proceedings of Advances in Cryptology (CRYPTO 84), pages 47–53, New York, NY,
USA. Springer-Verlag New York, Inc.
[Sheng Zhong and Yang 2003] Sheng Zhong, J. C. and Yang, Y. R. (2003). Sprite: A
simple, cheat-proof, credit-based system for mobile ad hoc networks. In Proceedings
of IEEE INFOCOM 2003, San Francisco, California. IEEE Communications Society.
[Stallings 2006] Stallings, W. (2006). Cryptography and Network Security: Principles
and Practices. Prentice Hall, 4 edition.
[Yi and Kravets 2003] Yi, S. and Kravets, R. (2003). Moca: Mobile certificate authority
for wireless ad hoc networks. In 2nd Annual PKI Research Workshop (PKI 2003).
[Zapata and Asokan 2002] Zapata, M. G. and Asokan, N. (2002). Securing ad hoc routing protocols. In Proceedings of the 1st ACM workshop on Wireless security (WiSE
’02), pages 1–10, New York, NY, USA. ACM.
[Zhou and Haas 1999] Zhou, L. and Haas, Z. J. (1999). Securing ad hoc networks. IEEE
Networks, 13(6):24–30.
[Zimmermann 1995] Zimmermann, P. R. (1995). The official PGP user’s guide. MIT
Press, Cambridge, MA, USA.

Documentos relacionados