350 likes | 441 Views
Self-organised Group Key Management for Ad Hoc Networks. Adriano Simões 53813 Tiago Almeida 53867. Problema. Desenvolver um protocolo para estabelecer uma chave de sessão comum a um conjunto de nós. Motivação. Cenários de Guerra Catástrofes Emergências Monitorização Ambiental
E N D
Self-organised Group Key Management for Ad Hoc Networks Adriano Simões 53813Tiago Almeida 53867
Problema • Desenvolver um protocolo para estabelecer uma chave de sessão comum a um conjunto de nós.
Motivação • Cenários de Guerra • Catástrofes • Emergências • Monitorização Ambiental • Entretenimento (Rede Segura de Portáteis/PDA's)
Requisitos • Não existe qualquer tipo de acordo à priori (infra-estrutura, chaves partilhadas, routing, “terceiras entidades confiáveis”) • Chave tem de ser gerada por todos. • Rede tem de permitir que nós se juntem ou a abandonem facilmente. • TEM DE SER SEGURO! (Confidencial)
Ideia do protocolo • Alguns nós da rede são definidos como “grupo iniciador” (Initiator Group = IG) • IG combina entre si (de forma segura) uma chave de sessão a usar. • Chave de sessão é propagada ao resto da rede (de forma segura). • Todo o tráfego “útil” é cifrado com chave de sessão (qualquer algoritmo)
Restrições • Os nós que iniciam a rede (IG) têm de conseguir comunicar uns com os outros directamente. • Cada nó tem uma maneira única de ser identificado. (ex: SIM card)
Ideia “refinada” do protocolo • IG acorda um conjunto P de chaves e particiona-o em K subconjuntos. • {1,2,3,4,5,6} { {1,2} , {3,4} , {5,6} } • Cada nó escolhe aleat. Uma chave de cada subconjunto. (cada um fica com K chaves). • Nós tentam “adivinhar” as chaves que os vizinhos escolheram aleat. • Quando cada nó souber as chaves do vizinho, geram todos uma chave de sessão.
Notação • Existe um conjunto P de chaves igual para todos os nós e público. • Conjunto P tem tamanho N. • O conjunto P irá ser partido em k blocos de m elementos (N=mk). • L é o número mínimo de chaves partilhadas entre cada par de nós para que se considere que eles têm uma ligação segura.
Protocolo • Consiste em 3 fases: • Setup Inicial. • Descoberta de chaves partilhadas. • Estabelecer chave de sessão e propagá-la a toda a rede.
Protocolo • Consiste em 3 fases: • Setup Inicial. • Descoberta de chaves partilhadas. • Estabelecer chave de sessão e propagá-la a toda a rede.
Setup Inicial • Definir o conjunto P (tamanho N e elementos). • Definir k (número de subconjuntos). • Partir P em k subconjuntos chamados blocos. • Definir L. • (Isto pode ser hardcoded ou negociado dinamicamente) • Cada nó escolhe 1 chave de cada bloco aleatoriamente.
Protocolo • Consiste em 3 fases: • Setup Inicial. • Descoberta de chaves partilhadas. • Estabelecer chave de sessão e propagá-la a toda a rede.
Cifras Homomórficas • Cifras Homomórficas: • E(A) & E(B) = E(A&B) , & é uma operação qualquer. • K*E(A) = E(K*A)
Descoberta de chaves partilhadas 1/6 • Na fase de Setup cada nó escolheu k chaves do conjunto P. • A tem de conseguir perceber as chaves de B e de C que são iguais às suas. Como?
Descoberta de chaves partilhadas 2/6 • A constrói um polinómio FA(x)=(x-KA1)*…*(x-KAk) • (fácil ver que FA(KA1) = 0) • Aplica a distributiva e obtém os coeficientes do polinómio. (Exemplo para B) • Cifra os coeficientes com algoritmo de cifra homomórfico e envia a B. • B recebe o polinómio, calcula: • Zi = EKA(rFA(KBi)) onde r é um número aleatório e envia para A.
Descoberta de chaves partilhadas 3/6 • A decifra obtendo rFA(KBi). • Se este valor for 0 então a chave é igual tanto em A como em B.
Descoberta de chaves partilhadas 4/6 • “Demonstração” • B tem o seguinte: EKA(c1), … , EKA(ck+1) • EKA(c1)*xk + … + EKA(ck+1)* x0 = • EKA(c1)*B1k + … + EKA(ck+1)* B10 = • EKA(c1 * B1k) + …. + EKA(ck+1 *B10) = • EKA(c1 * B1k + ... + ck+1 *B10) = • EKA(FA(KB1)) • Porquê o r ? • Atacante sabe que o B respondeu com algo estilo: • EKA(c1)*Xk + … + EKA(ck+1)* X0 • E também sabe EKA(ck) , portanto seria só resolver a equação em ordem a X para obter os Bi
Descoberta de chaves partilhadas 5/6 • Este processo é repetido para todas as chaves de cada nó, para todos os nós. • Finalmente, cada nó fica com uma matriz que diz para cada nó as chaves que são comuns. • Matriz tem q-1 linhas por k colunas, onde q é o número de nós no IG.
Descoberta de chaves partilhadas 6/6 • O IG considera-se bem formado se existirem L chaves partilhadas entre cada par de nós do IG. • Se não existirem, os nós não concordantes voltam a repetir o processo para tentar acertar em chaves comuns.
Protocolo • Consiste em 3 fases: • Setup Inicial. • Descoberta de chaves partilhadas. • Estabelecer chave de sessão e “propagá-la” a toda a rede.
Estabeler chave de sessão • Cada nó i (pertencente a IG) gera um aleatório Si • Cada nó i calcula o XOR de todas as L chaves partilhadas KIG = K1IGxor…xor KLIG • Cada nó i cifra Si com KIG e envia para todos os vizinhos (pertencentes a IG). • Cada nó decifra com KIG e calcula a chave de sessão Ks = S1 xor … xor Sr • Finalmente (Chave partilhada entre o IG)!
Propagar chave de sessão • Cada nó do IG manda a chave de sessão para os vizinhos (só para os que tem ligação segura, ou seja, L chaves partilhadas). Ideia: • O novo Nó junta-se a partir de um Nó já pertencente à rede. • A Chave de Sessão tem que ser mudada para que o novo nó não veja comunicação passada (Segurança Futura Perfeita).
Propagar chave de sessão 2 • Cada nó na fronteira repete a fase 2 com os vizinhos fora do IG. • Gera-se uma nova chave de sessão aplicando função não invertível à chave de sessão actual. (seg. futura perfeita) • Nós da rede passam a usar a nova chave. • Nova chave enviada para o novo membro usando as L chaves comuns como cifra.
Seguro? • Soa bem, mas será realmente seguro?! • Situação1: Atacante consegue apanhar o tráfego entre todos os nós.
Seguro? • Mensagens trocadas na fase 2 são cifradas com cifra homomórfica segura. • Desde que o algoritmo de cifra seja seguro, atacante não tem qualquer informação das L chaves partilhadas. • Chave de sessão também vai cifrada com algoritmo seguro. • N=mk chaves possíveis. • Ele sabe valor de L (público) mas não sabe de que bloco é que cada chave veio. • Vai ter de testar (kCL)mL conjuntos de chaves.
Seguro? • Parâmetros bem definidos: • 1264 chaves, partidas em blocos de 4 316 blocos. 20 chaves partilhadas por todos. • m=4 , L=20 , k=316 • (316C20)420
Seguro! • Parâmetros bem definidos: • 1264 chaves, partidas em blocos de 4 316 blocos. 20 chaves partilhadas por todos. • m=4 , L=20 , k=316 • (316C20)420 ~= 2150
Seguro! • Situação 2: Atacante apoderou-se de um dos nós. • Assumindo que os vizinhos conseguem detectar essa situação… • B envia para rede a dizer “D é espião!” • Todas as chaves comuns entre B e D estão comprometidas!
Seguro! • D é eliminado da lista de nós autorizados da rede. • Se a intersecção entre chaves comuns BD com chaves BA e BC for “pequena” segurança da rede continua intacta. • B volta a juntar-se à rede.
Mais detalhes • Protocolo é independente do algoritmo de Cifra E(.) desde que seja homomórfico na soma. • Paper usa algoritmo de cifra algo complexo para ser usado, proposto por Chan. • A. C.-F. Chan and E. S. R. Sr. Distributed symmetric key management for mobile ad hoc networks. In Infocom 2004, 2004. • Consideramos não ser importante devido à independência do protocolo.
Eficiência e mobilidade Memória K valores Tempo processamento N((2k+1)p + ak2) Custo junção Nj((2k+1)p + ak2) • Protocolo é muito pesado. • K+1 coefs k+1 cifras + k decifras. • Cada nó faz o mesmo. N nós n(k^2 + 2k +1) trocas de informação na rede e cálculos. • Nj - nós a juntar, p – custo (de)cifra homomórfica , a – custo de soma em dados cifrados homomórficamente.
Mais detalhes • Custo amortizado. Cada nó só precisa de 1 ligação segura com 1 vizinho para pertencer à rede. • Um nó ao mover-se pode ganhar novos vizinhos e negociar chaves com eles aumentando a fiabilidade da rede.
Como definir bem os parâmetros? • Parâmetros mal definidos podem tornar a probabilidade de formação de IG muito baixa ou tornar o sistema fraco. • Bons valores tornam o sistema fortíssimo e com boa probabilidade de formação de IG (>=0.5). • Fácil ver que: • Quanto maior L maior a segurança e menor a probabilidade de formação de IG. • Quanto mais nós no IG maior a força da chave de sessão mas menor a probabilide de formação de IG. • Quanto menor k (e menor m para N fixo N=mk) menor a probabilidade de formação de IG mas maior a segurança.
Trabalhos relacionados • Artigo refere dois outros trabalhos parecidos: • Chan • Eschenauer and Gligor • O primeiro tem baixa probabilidade de formação de IG (muito baixa). • Segundo requer terceira entidade confiável. • Algoritmo de cifra usado é o do Chan.