Sunteți pe pagina 1din 47

ESCOLA POLITCNICA DE PERNAMBUCO

ANLISE DE SEGURANA DE INFORMAO EM DISPOSITIVOS WUSB


Trabalho de Concluso de Curso Engenharia da Computao

Felipe Zimmerle da Nbrega Costa Orientador: Prof. Carlos Alexandre Barros de Mello Recife, junho de 2008

ESCOLA POLITCNICA DE PERNAMBUCO

ANLISE DE SEGURANA DE INFORMAO EM DISPOSITIVOS WUSB


Trabalho de Concluso de Curso Engenharia da Computao
Este Projeto apresentado como requisito parcial para obteno do diploma de Bacharel em Engenharia da Computao pela Escola Politcnica de Pernambuco Universidade de Pernambuco.

Felipe Zimmerle da Nbrega Costa Orientador: Prof. Carlos Alexandre Barros de Mello Recife, junho de 2008

Felipe Zimmerle da Nbrega Costa

ANLISE DE SEGURANA DE INFORMAO EM DISPOSITIVOS WUSB

ESCOLA POLITCNICA DE PERNAMBUCO

Resumo
A tecnologia USB, Universal Serial Bus, surgiu da necessidade de diminuir-se o nmero de protocolos de comunicao e de instituir-se um padro de transmisso. Porm, a mobilidade cada vez mais uma necessidade do usurio, e em decorrncia desse fato, foi criada a tecnologia WUSB ou Wireless USB. O meio com fio no demanda uma grande preocupao com a proteo dos dados por ele trafegados. Contudo, o meio sem fio enfrenta mais obstculos em relao segurana, uma vez que, mais propenso a sofrer interferncias e ataques. Neste trabalho so efetuadas diversas anlises sobre a segurana da informao no WUSB e seu protocolo de comunicao, alm de melhorias nas implementaes existentes. Tambm realizado um estudo sobre criptografia, algoritmos de cifra e USB para embasar a compreenso das especificaes WUSB. So analisados os drivers dos dispositivos HWA para aferir se estes encontram-se nos padres de codificao do Kernel e no modelo de especificao WUSB. Tambm realizada uma anlise da implementao do Cable Association no sistema operacional Windows e no Linux. Ao longo do trabalho, tambm esto descritos os processos de teste e homologao das implementaes de correo.

ESCOLA POLITCNICA DE PERNAMBUCO

ii

Abstract
The USB, Universal Serial Bus, technology arose from the needs for reducing the number of communication protocols and to establish a transmission pattern. However, mobility is an increasingly need for the user, and it resulted in the establishment of the WUSB or Wireless USB technology. The wired USB transmission does not demand a great concern with data protection. However, wireless connections face more obstacles in relation to security, since it is more prone to suffer interference and attacks. This work does various analyses about information security in WUSB, its communication protocol, and improvements in existing deployments. Also it is presented an study on cryptography, encryption algorithms, and USB protocol in order to allow a complete comprehension of WUSB specifications. We make an analysis on device drivers of HWA devices to ascertain if they are found in the patterns of the kernel coding style and in the model of WUSB specification. It was also analyzed the implementation of the Cable Association in the Windows and Linux operating systems. The work describes the procedures for testing and approval of the necessary implementations.

ESCOLA POLITCNICA DE PERNAMBUCO

iii

Sumrio
ndice de Figuras ndice de Tabelas Tabela de Smbolos e Siglas 1! Introduo
1.1! Objetivos 1.2! Organizao do Trabalho

v! vii! viii! 10!


11! 11!

2! Conceitos Bsicos
2.1! Definies Iniciais sobre Criptografia 2.2! Criptografia Simtrica 2.2.1! Advanced Encryption Standard 2.2.2! Modos de Operao 2.3! Criptografia Assimtrica 2.4! Algoritmos de Hash

12!
12! 13! 13! 15! 17! 18!

3! Universal Serial Bus


3.1! Arquitetura do padro USB 3.1.1! Topologia Fsica 3.1.2! Topologia Lgica 3.2! Modelo de Comunicao

20!
21! 21! 21! 22!

4! Wireless USB
4.1! Sobre WUSB 4.1.1! Topologia Fsica 4.1.2! Topologia Lgica 4.1.3! Modelo de Conexo 4.2! Modelo de Criptografia do WUSB 4.3! Connection Context 4.3.1! Associao com Chave Simtrica 4.3.2! Associao com Chave Pblica

25!
25! 26! 26! 27! 27! 28! 28! 29!

5! Anlise da Segurana no WUSB


5.1! Padro de Criptografia do WUSB 5.1.1! Anlise do modelo de criptografia adotado na Comunicao WUSB 5.1.2! Garantia de Autenticidade 5.1.3! Possibilidade de Conexes Acidentais 5.2! Anlise dos mtodos de associao 5.2.1! Associao 5.3! Anlise do Suporte ao WUSB no Linux 5.3.1! Anlise do Suporte ao HWA 5.3.2! Anlise do Suporte Associao 5.3.3! Testes

30!
30! 30! 31! 32! 32! 33! 35! 36! 37! 38!

ESCOLA POLITCNICA DE PERNAMBUCO

5.3.4! Homologao

iv 39! 41! 41!

6! Concluses e Trabalhos Futuros


6.1! Dificuldades Encontradas 6.2! Trabalhos Futuros

40!

ESCOLA POLITCNICA DE PERNAMBUCO

ndice de Figuras
Figura 1.! Operaes do AES, (a) SubBytes. (b) ShiftRows. (c) MixColumns. (d) AddRoundKey......................................................................................................................... 14! Figura 2.! Etapas do AES. ........................................................................................................... 15! Figura 3.! Modo de operao CBC, Cipher Block Chaining: (a) representa uma cifragem enquanto (b) representa um decifragem. ................................................................................. 16! Figura 4.! Diagrama de operao do modo Counter, sendo (a) o processo para cifrar e (b) o processo para decifrar.............................................................................................................. 17! Figura 5.! Diagrama de operao do MAC. Observe que a chave K a mesma tanto para o receptor quanto para o emissor................................................................................................ 17! Figura 6.! Exemplo do funcionamento do algoritmo de chave pblica RSA.............................. 18! Figura 7.! Exemplos de aplicaes de um algoritmo de Hash. ................................................... 18! Figura 8.! Logos colocados em dispositivos USB que seguem o padro espeficado pelo USB-IF. A imagem (a) representa os dispositivos 2.0 enquanto a (b) representa os dispositivos nas verses anteriores 2.0............................................................................................................ 20! Figura 9.! Topologia fsica da ponte USB [26]. .......................................................................... 21! Figura 10.! Topologia Lgica da ponte USB [26]....................................................................... 22! Figura 11.! Assinatura da funo de envio de mensagem de controle para um dispositivo USB, definida no kernel do Linux, verso 2.6.17 no arquivo drivers/USB/core/message.c e encontrada na linha 135........................................................................................................... 23! Figura 12.! Comunicao entre um host e um dispositivo lgico [26]. ...................................... 24! Figura 13.! Logo que representa a garantia de compatibilidade dos dispositivos Wireless USB com o padro estabelecido pela USB-IF. ................................................................................ 25! Figura 14.! Exemplo de dispositivos conectados a uma rede WUSB [30]. ................................ 26! Figura 15.! Topologia WUSB [30].............................................................................................. 27! Figura 16.! Processo de associao [30]. .................................................................................... 29! Figura 17.! Exemplo de ataque de MITM: Bob tenta mandar uma mensagem para Alice; entretanto, o invasor coloca-se no meio da conexo, fingindo ser Alice para Bob e Bob para Alice. .................................................................................................................................. 31! Figura 18.! Primeira troca de mensagem entre o host e o dispositivo. (a) Tipo da comunicao: GET_ASSOCIATION_INFORMATION. (b) Tamanho da estrutura. (c) Nmero de requisies. (d) Valor pr-definido. (e) Valor do ndice. (f) Byte reservado. (g) Valor prdefinido. (h) Tipo da requisio. (i) Tamanho da informao associada a requisio. (j) Valor do ndice. (l) Byte reservado. (m) Valor pr-definido. (n) Tipo da requisio. (o) Tamanho da informao associada a requisio. ......................................................................................... 33! Figura 19.! Segunda troca de mensagem entre o host e o dispositivo. (a) Tipo da comunicao: HOST_INFO. (b) Tipo da associao. (c) Sub-tipo da associao. (d) CHID. (e) ID da linguagem utilizada. (f) Nome amigvel do host. ................................................................... 34! Figura 20.! Terceira troca de mensagem entre o host e o dispositivo. (a) Tipo da comunicao: DEVICE_INFO. (b) Tamanho desta estrutura. (c) CDID. (d) BandGroups. (e) Nome amigvel do dispositivo. (f) ID da linguagem utilizada. ......................................................... 34! Figura 21.! Quarta e ltima troca de mensagem entre o host e o dispositivo. (a) Tipo de comunicao: SET_ASSOCIATION_REQUEST. (b) Tipo da associao. (c) Sub-Tipo da

ESCOLA POLITCNICA DE PERNAMBUCO

vi

associao. (d) Tamanho da estrutura de dados. (e) CC, Connection context. (f) BandGroups. .................................................................................................................................. 35! Figura 22.! Dispositivos HWAs. (a) Dispositivo do fabricante IOGear. (b) Dispositivo do fabricante Intel......................................................................................................................... 36! Figura 23.! Trecho do log de sistema, aps d dispositivo ser ligado ao sistema, onde (a) representa uma mensagem de erro aps o envio do firmware................................................. 37!

ESCOLA POLITCNICA DE PERNAMBUCO

vii

ndice de Tabelas
Tabela 1.! Tabela S-Box usada pelo AES. As colunas determinam o nybble menos significativo e as linhas o mais significativo [23]. ....................................................................................... 14! Tabela 2.! Comparativo entre diversos algoritmos de Hash........................................................ 19! Tabela 3.! Dados que so considerados na gerao do nonce utilizado pelo WUSB.................. 31! Tabela 4.! Distribuio do cabealho MAC mais payload num bloco de dados WUSB. ........... 32! Tabela 5.! Firmawares suportado pelos dispositivos HWA........................................................ 36! Tabela 6.! Tabela comparativa entre a segurana da USB com fio e sem fio ............................. 41!

ESCOLA POLITCNICA DE PERNAMBUCO

viii

Tabela de Smbolos e Siglas


(Dispostos por ordem de apario no texto) USB Universal Serial Bus WUSB Wireless USB (USB sem-fio) AES Advanced Encryption Standard DES Data Encryption Standard S-Box Substitution Box (Caixa de substituio) ECB Eletronic Code book CBC Cipher Block Chaining CFB Cipher Feedback OFB Output Feedback CM Counter Mode CCM Counter com CBC-MAC XOR Exclusive OR (Ou exclusivo) IV Initialization Vector (Vetor de inicializao) MAC Message Authentication Code (Cdigo de autenticao de mensagem) USB-IF Universal Serial Bus Implementers Forum (Frum dos implementadores USB) I/O Input/Output (Entrada e sada) IRPs I/O Request Packets (Requisio de pacotes de I/O) FIFO First in first out (Primeiro a entrar o primeiro a sair) UWB Ultra Wide Band DWA Device Wire Adapter OOB Out of band (Fora da banda) HWA Host Wire Adapter PK Pair Keys (Par de chaves) CK Connection Key (Chave de conexo) CHID Connection Host Indentification (Identificao de conexo de host) CDID Connection Device Identification (Identificao de conexo de dispositivo) GTK Group Temporal Key CC Connection Context (Contexto de conexo) SFN Secure Frame Number (Nmero do frame seguro) TKID Temporal Key Identification (Identificador de chave temporria) MITM Men in the middle (Home do meio) WLP Wimedia Link Protocol IP Internet Protocol CBA Cable Association CBAF Cable Association Framework MMC Micro-scheduled Management Command

ESCOLA POLITCNICA DE PERNAMBUCO

ix

Agradecimentos
#include <linux/module.h> #include <linux/config.h> #include <linux/init.h> static int __init mymodule_init(void) { printk ("Agradeo em especial a minha famlia, meus pais, Flvia e Domingos por \n"); printk ("todo o apoio e incentivo. A meus avs, em especial meu av Ramon \n"); printk ("Nbrega, por todo carinho e por ter sido para mim, todos esses anos, um \n"); printk ("grande exemplo.\n\n); printk ("Ao meu sogro e sogra, Prof. Lee e Sonia, pelo incentivo e ajuda. \n"); printk ("A minha cunhada, Sonmi, sempre disposta a nos levar pro mau caminho. \n\n"); printk ("A todos os meus professores/amigos da faculdade especialmente a Carlos \n"); printk ("Alexandre, que mesmo depois de me aturar durante dois anos seguidos \n"); printk ("em lgebra Aplicada, ainda assim, aceitou ser meu orientador. Obrigado. \n\n"); printk ("A Ricardo Ulisses e a toda sua pacincia por ter me aturado como dupla e \n"); printk ("como colega de equipe em quase 100% dos trabalhos. \n\n"); printk ("Agradeo a todos com quem trabalhei, que agentaram meu mau humor e \n"); printk ("minha cara de sono !. Especialmente, a Marco Kiko Carnut por me passar \n"); printk ("um pouco do seu conhecimento de criptografia e de l33t. Obrigado a clm, \n"); printk ("ech, csm, jcpac, ^2, tcb, mabj e a todos os outros Tempesters. \n\n"); printk ("Aos amigos do INdT, em especial ao meu chefinho Eduardo Rocha, por me \n"); printk ("permitir trabalhar em projetos to motivadores. A meu ex-chefinho Frvio \n"); printk ("Jos, por tolerar meus atrasos e ausncias. Han? O que? \n\n"); printk ("A Inaky Perez e a Intel pela doao dos equipamentos utilizados durante \n"); printk ("este trabalho. A Lizardo e a David Vrabel pela ateno e pacincia na \n"); printk ("reviso e nos comentrios dos meus patches. \n\n"); printk ("Agradeo a todos os que me ajudaram. Obrigado.\n\n"); return 0; } static void __exit mymodule_exit(void) { printk ("Tks to Greg HK... I Love Greg. \n\n"); module_init(mymodule_init); module_exit(mymodule_exit); MODULE_LICENSE("Dual BSD/GPL"); MODULE_AUTHOR("Felipe Zimmerle <felipe@zimmerle.org>"); }

ESCOLA POLITCNICA DE PERNAMBUCO

10

Captulo 1 Introduo
Foi com o intuito de diminuir o nmero de protocolos de comunicao, instituindo-se um padro de transmisso de dados entre perifricos e computador, que a tecnologia USB, Universal Serial Bus, foi criada. Hoje, a USB j consagrada, pois possui inmeras vantagens como: baixo custo, padro robusto, reduo do nmero de cabos e fcil utilizao [1]. Cada vez mais a necessidade dos usurios se volta para a mobilidade e esta se alia rapidez e agilidade nas comunicaes. Atualmente, a interface de conexo eficiente e de alta velocidade USB j oferece as suas funcionalidades sem precisar dos fios. Um grupo de promotores da USB sem fio (tambm chamada de WUSB Wireless USB) que define as especificaes que fornecem um padro para a tecnologia. Esse grupo foi anunciado no Frum de Desenvolvedores da Intel em 2004 e formado por sete lderes no setor: Agere Systems [2], HP [3], Intel [4], Microsoft Corporation [5], NEC [6], Philips Semiconductors [7] e Samsung Eletronics [8]. A especificao da interface WUSB mantm a mesma utilizao e arquitetura da USB com fio, definida por uma conexo host-dispositivo, de alta velocidade. O objetivo principal da especificao fazer com que a WUSB funcione como um substituto do cabo. Para tal, imprescindvel que exista na WUSB o mesmo grau de segurana que na USB com fio. A nvel de conexo entre dispositivos, a segurana garantir que o dispositivo seja associado e autenticado para permitir seu funcionamento. Os nveis mais altos de segurana, como os que envolvem criptografia, por exemplo, devem ser implementados no nvel de aplicao [9]. O meio com fio no necessita de uma grande preocupao com a proteo dos dados por ele trafegados. O meio sem fio, no entanto, mais propenso a interferncias e ataques, enfrentando mais dificuldades em relao segurana. Fazer a equivalncia da segurana provida por um meio fsico em um meio sem-fio uma tarefa que historicamente tem se provado desafiadora, principalmente em dispositivos que demandam uma alta velocidade de transmisso, onde uma menor latncia ou o mnimo atraso pode prejudicar o bom funcionamento da comunicao e, por conseqncia, dos equipamentos. Tal desafio somente aceito em benefcio da facilidade e comodidade das transmisses sem-fio [10], [11]. Para obter uma comunicao segura deve haver garantia de autenticidade, integridade e confidencialidade dos dados transmitidos. Nesse contexto, a autenticao, que garante que ambas as partes em uma comunicao esto trocando informaes com a entidade correta, um fator importante uma vez que a comunicao no meio a ser protegido compartilhada. Atravs da autenticao evita-se que um equipamento ou pessoa maliciosa se aproveite da arquitetura para

ESCOLA POLITCNICA DE PERNAMBUCO

11

captura de dados ou ainda, que equipamentos com mau funcionamento - conhecido ou no comprometam o sistema. Garantir a comunicao segura entre os dispositivos garantir a integridade dos dados bem como a autenticidade dos mesmos. Uma vez que os dados podem ser manipulados ainda em sua transmisso, isso pode gerar comportamentos inesperados que podero acarretar at em uma negao de servio do sistema. A integridade a garantia de que os dados chegaro a seu destino de forma ntegra, ou seja, sem terem sofrido alteraes, erros ou modificaes indevidas [12], [13]. No menos importante, a confidencialidade dos dados que esto sendo transmitidos no canal de comunicao de extrema necessidade para proteo dos mesmos. evidente que qualquer indivduo mal intencionado pode, atravs de equipamentos adequados, capturar os dados que passam pelo canal, estes podem ser facilmente interpretados quando em texto claro. A confidencialidade a garantia de que apenas as partes envolvidas em uma comunicao tero acesso s informaes trafegadas [14], [15]. A comunicao com fio apresenta menos vulnerabilidades em relao segurana das informaes trafegadas devido prpria natureza do meio. J, prover um meio de comunicao seguro para a transmisso de dados sem fio, cujas informaes podero ser crticas e em grandes volumes, respeitando o requisito inicial da praticidade com relao ao uso, demanda a utilizao de criptografia aplicada diretamente em tal necessidade.

1.1 Objetivos
Este trabalho tem como objetivo o estudo dos conceitos de criptografia, incluindo alguns algoritmos de cifra, o estudo do funcionamento dos dispositivos WUSB, bem como suas respectivas especificaes, a anlise de segurana da informao nos dispositivos WUSB e melhorias na implementao do Linux para a segurana dos canais de comunicao propostos pelo padro WUSB.

1.2 Organizao do Trabalho


Este trabalho est organizado da seguinte forma: O Captulo 2 apresenta os conceitos bsicos de criptografia e exemplos de algoritmos de cifra. O Captulo 3 descreve a arquitetura do padro USB, apresentando suas topologias, alm de explicar o seu modelo de comunicao. O Captulo 4 define a tecnologia WUSB, apresenta suas topologias, modelo de comunicao, padro criptogrfico adotado e seus modelos de associao. O Captulo 5 apresenta a anlise realizada sobre o padro de segurana do WUSB, incluindo uma criptoanlise da sua comunicao. Tambm apresentada uma anlise sobre os mtodos de associao da especificao do padro WUSB, alm de uma anlise do suporte ao WUSB no Linux. Neste Captulo, so descritas as implementaes realizadas para a correo dos problemas levantados. Por fim, o Captulo 6 exibe as concluses, contribuies, dificuldades encontradas e trabalhos futuros.

ESCOLA POLITCNICA DE PERNAMBUCO

12

Captulo 2 Conceitos Bsicos


Este Captulo apresenta alguns conceitos bsicos, bem como exemplos de algoritmos criptogrficos. Esses elementos so necessrios para o bom entendimento do trabalho.

2.1 Definies Iniciais sobre Criptografia


Criptografia um mtodo de armazenar e transmitir dados de forma que, somente os destinatrios possam process-los e interpret-los. conhecida como a cincia de proteger informaes por codific-las em um formato no legvel. A criptografia protege de forma eficaz o armazenamento e a transmisso de informaes sensveis em meios no seguros [16]. Existem alguns jarges da criptografia que devem ser explicados para a boa compreenso deste trabalho [17], [18], [19]: Cifrar o mesmo que codificar, ou seja, converter informaes sigilosas em algo sem sentido aparente. Decifrar o mesmo que decodificar, ou seja, a funo inversa de cifrar. Texto claro ou simples ou pleno mensagem original, no cifrada. Texto cifrado mensagem codificada, ininteligvel para receptores no autorizados. Unidade de mensagem subconjuntos do texto claro ou do texto cifrado. Funo de cifragem seja S o conjunto de todas as possveis unidades de mensagem em texto claro. Uma funo de cifragem uma funo f que aplicada a qualquer elemento do conjunto S, leve a algum elemento do conjunto C. Sendo C o conjunto de todas as possveis unidades de mensagem cifradas. Sistema criptogrfico ou criptossistema um conjunto de funes de cifragem e decifragem, alm de outras funes que auxiliam no processo de cifra. Chave criptogrfica realizando uma analogia, uma chave criptogrfica pode ser comparada a uma chave convencional e o algoritmo de criptografia a uma fechadura. Uma chave utilizada na transformao de um texto claro em texto cifrado, ou viceversa. Em um algoritmo de criptografia bem projetado, cifrar o mesmo texto com duas chaves diferentes, produzir textos cifrados totalmente diferentes. Invasor geralmente algum que tenta roubar informaes. De forma geral, invasor um termo que designa o indivduo do qual as informaes devem ser protegidas. Criptoanlise Estudo sobre a quebra de sistemas criptogrficos.

ESCOLA POLITCNICA DE PERNAMBUCO

13

Criptanalista procura fraquezas que podem ajudar algum a quebrar um algoritmo criptogrfico mais rapidamente. Alm disso, a criptografia moderna exige que trs propriedades sejam atendidas por qualquer criptossistema [13], [16]: Integridade: Garantia de que o dado que foi recebido, no sofreu nenhuma alterao durante a sua transmisso, ou seja, ele chegou no seu receptor de forma integra. Autenticao: Garantia do receptor sobre quem enviou a mensagem. No-Repdio: O emissor no pode negar o envio de uma mensagem. Algoritmos de criptografia podem ser classificados como restritos, onde a segurana do algoritmo est baseada no prprio algoritmo; ou baseados em chave, onde a segurana est na proteo da chave [17]. Os algoritmos cuja segurana est na chave so os mais fortes. Tais algoritmos podem ser classificados em simtricos ou assimtricos como detalhado a seguir.

2.2 Criptografia Simtrica


Na criptografia de chave secreta, os processos de cifragem e de decifragem utilizam a mesma chave. Considere Kc a chave de cifragem e Kd a chave de decifragem, na criptografia de chave secreta: Kc=Kd, em razo disso, esse tipo de criptografia tambm conhecida como simtrica [17]. Existem diversos algoritmos que fazem uso dos conceitos de criptografia simtrica, como, por exemplo, as cifras clssicas de Substituio e Transposio. Ambas possuem as principais tcnicas utilizadas na construo dos algoritmos criptogrficos simtricos modernos. So tambm utilizadas combinaes dessas duas cifras em blocos de mensagens a serem cifrados ou decifrados. Um exemplo de tal algoritmo o AES, Advanced Encryption Standard [20]. O AES surgiu para substituir o DES [21], Data Encryption Standard, algoritmo que virou padro criptogrfico a partir de 1977, desenvolvido pela IBM [22]. 2.2.1 Advanced Encryption Standard O AES, originrio da cifra de Rijndael [17] - assim denominada pelos seus criadores, os belgas Joan Daemen e Vincent Rijmen - foi o algoritmo de cifra adotado como padro pelo Governo Norte Americano desde novembro de 2001 e, sendo largamente utilizado em todo o mundo desde ento. O AES destaca-se por no exigir muito poder computacional e por precisar de pouca memria, apresentando um bom desempenho tanto em hardware quanto em software. O AES funciona com blocos de 128 bits e chaves de tamanhos que variam entre: 128, 192 e 256 bits. A mudana no tamanho das chaves e dos blocos apenas varia a quantidade de rodadas de permutaes/substituies (operaes base para o seu funcionamento). Para chaves de 128 bits, o algoritmo precisa de 10 iteraes; 12 iteraes so necessrias para chaves de 192 bits; e chaves de 256 bits exigem 14 iteraes. O funcionamento do AES dividido em quatro operaes principais, so elas: SubByte ou substituio de bytes. ShiftRows ou deslocamento de linhas. MixColumns ou permutao de colunas. AddRoundKey ou adio de chave de rodada. Na operao SubBytes ocorre uma substituio no linear, onde cada byte do bloco substitudo pelo seu correspondente da tabela S-Box (Substitution Box ou Caixa de Substituio), conforme demonstrado na Figura 1a. A tabela S-Box consiste de um conjunto de valores pr-

ESCOLA POLITCNICA DE PERNAMBUCO

14

definidos como descrito na Tabela 1. Observe, por exemplo, que o valor 0x9a do byte do bloco corresponde ao valor 0xb8 na tabela S-Box (exemplo marcado em cinza na Tabela 1). Tabela 1. Tabela S-Box usada pelo AES. As colunas determinam o nybble1 menos significativo e as linhas o mais significativo [23].
00 10 20 30 40 50 60 70 80 90 a0 b0 c0 d0 e0 f0 0 63 ca b7 04 09 53 d0 51 cd 60 e0 e7 ba 70 e1 8c 1 7c 82 fd c7 83 d1 ef a3 0c 81 32 c8 78 3e f8 a1 2 77 c9 93 23 2c 00 aa 40 13 4f 3a 37 25 b5 98 89 3 7b 7d 26 c3 1a ed fb 8f ec dc 0a 6d 2e 66 11 0d 4 f2 fa 36 18 1b 20 43 92 5f 22 49 8d 1c 48 69 bf 5 6b 59 3f 96 6e Fc 4d 9d 97 2a 06 d5 a6 03 d9 e6 6 6f 47 f7 05 5a b1 33 38 44 90 24 4e b4 f6 8e 42 7 c5 f0 cc 9a a0 5b 85 f5 17 88 5c a9 c6 0e 94 68 8 30 ad 34 07 52 6a 45 bc c4 46 c2 6c e8 61 9b 41 9 01 d4 a5 12 3b cb f9 b6 a7 ee d3 56 dd 35 1e 99 A 67 a2 e5 80 d6 be 02 da 7e b8 ac f4 74 57 87 2d b 2b af f1 e2 b3 39 7f 21 3d 14 62 ea 1f b9 e9 0f c fe 9c 71 eb 29 4a 50 10 64 de 91 65 4b 86 ce B0 d d7 a4 d8 27 e3 4c 3c ff 5d 5e 95 7a bd c1 55 54 E Ab 72 31 b2 2f 58 9f f3 19 0b e4 Ae 8b 1d 28 Bb f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16

Na operao de ShiftRows cada linha sofre uma operao de deslocamento cclico que se repete n vezes, onde n o nmero da linha menos um. Essa operao est ilustrada na Figura 1b. Em MixColumns, os quatro bytes de cada coluna so combinados atravs de uma transformao linear (Figura 1c). Na etapa de AddRoundKey, cada coluna do dado submetida a uma operao de XOR com a coluna correspondente da chave da rodada, conforme demonstrado na Figura 1d.

(a)

(b)

(c) (d) Figura 1. Operaes do AES, (a) SubBytes. (b) ShiftRows. (c) MixColumns. (d) AddRoundKey.
1

Nybble ou nibble um termo que representa um conjunto de quatro de quatro bits, ou seja, a metade de

um octeto. Um nmero em hexadecimal, representado por dois nibbles, um para cada digito [24].

ESCOLA POLITCNICA DE PERNAMBUCO

15

Todas as quatro operaes ocorrem em seqncia (Figura 2) e seu trmino resulta em um bloco cifrado.

Figura 2. Etapas do AES. Note que cada rodada faz uso de uma chave, esta depende diretamente do modo de operao escolhido para o funcionamento do algoritmo de cifra de blocos. Os modos de operao so detalhados a seguir.

2.2.2 Modos de Operao


Os algoritmos de criptografia de blocos, para realizar as suas operaes, repartem os dados a serem cifrados em blocos menores. O modo de operao descreve um modelo utilizado pelo algoritmo de criptografia para que ele possa operar em cada bloco. Em geral, os modos de operao podem ser utilizados por qualquer algoritmo de cifra de blocos, possuindo extrema importncia no processo de criptografia. A segurana final dos dados depende diretamente do modo de operao utilizado. O AES, por exemplo, pode operar sob vrios modos de operao. Os mais comuns so: Electronic Code Book (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), Counter Mode (CM) e Counter com CBC-MAC (CCM). Neste trabalho, esto detalhados os modos de operao CBC, Counter e CCM, pois so importantes para os estudos realizados. Maiores detalhes sobre os outros modos podem ser encontrados em [18]. O modo de operao do CBC, ilustrado na Figura 3, consiste em criar uma cadeia entre os blocos, onde o resultado da cifra no bloco atual usada juntamente com o texto claro a ser cifrado no bloco seguinte a combinao do bloco cifrado com o texto claro do prximo bloco realizada atravs de uma operao de Ou-Exclusivo (XOR eXclusive OR). Nesse modo de operao, necessria a utilizao de um vetor de inicializao (IV, Initialization Vector). Este utilizado por um criptossistema para fornecer certo grau de aleatoriedade ao processo de cifra. necessria a criao de um bloco inicial que deve ser gerado a partir de nmeros aleatrios/pseudo-aleatrios ou, em alguns casos, o prprio bloco a ser cifrado poder ser utilizado como IV.

ESCOLA POLITCNICA DE PERNAMBUCO

16

O IV, ou bloco falso, auxilia na cifra do primeiro bloco de dados. Na maioria dos casos, o IV no precisa ser secreto, entretanto ele nunca deve ser utilizado duas vezes com a mesma chave.

Figura 3. Modo de operao CBC, Cipher Block Chaining: (a) representa uma cifragem enquanto (b) representa um decifragem. O modo Counter, ilustrado na Figura 4, utilizado para cifrar a mensagem. Diferente do modo CBC, ele no depende do bloco anterior para realizar a criptografia, entretanto depende de um nmero incremental que utilizado junto a cada bloco. O modo CCM funciona como uma juno do modo CBC e Counter, sendo necessrias duas operaes de cifragem para cada bloco. No CCM, tambm utilizado o MAC, Message Authentication Code. O MAC uma informao utilizada para autenticar uma mensagem [25]. Um algoritmo gerador de MAC aceita como entrada uma chave secreta e um dado de tamanho arbitrrio; como produto, recebe-se um MAC. Esse garante tanto a autenticidade quanto a integridade da mensagem, permitindo ao receptor detectar qualquer tipo de mudana ocorrida na mesma. Assim como na criptografia simtrica, no MAC, a chave secreta compartilhada entre o emissor o e receptor da mensagem. A Figura 5 apresenta um diagrama de operaes do MAC.

ESCOLA POLITCNICA DE PERNAMBUCO

17

Figura 4. Diagrama de operao do modo Counter, sendo (a) o processo para cifrar e (b) o processo para decifrar.

Figura 5. Diagrama de operao do MAC. Observe que a chave K a mesma tanto para o receptor quanto para o emissor.

2.3 Criptografia Assimtrica


A criptografia assimtrica ou de chave pblica, utiliza duas diferentes chaves, uma para cifragem e outra para decifragem, ou seja, Kc ! Kd. Na criptografia assimtrica, cada um dos envolvidos detentor de um par de chaves, sendo uma privada e uma pblica, como pode ser observado na Figura 6. Como o prprio nome diz, a chave privada, ao contrrio da pblica, deve ser de conhecimento, s e somente s, do seu detentor. Essas chaves podem ser utilizadas de tal maneira a prover garantia de autenticidade, integridade e no repdio de um dado. Os algoritmos de criptografia assimtrica tm como caracterstica principal o fato de serem computacionalmente muito mais caros que os algoritmos de criptografia simtrica,

ESCOLA POLITCNICA DE PERNAMBUCO

18

entretanto destacam-se por no compartilhar uma chave secreta. Um dos mais populares algoritmos de criptografia de chave pblica o RSA [17] (criado por Rivest, Shamir e Adleman), publicado inicialmente em 1977 e bastante utilizado em transaes eletrnicas, provendo segurana, inclusive, em conexes web. Uma ilustrao do funcionamento do RSA pode ser vista na Figura 6.

Figura 6. Exemplo do funcionamento do algoritmo de chave pblica RSA.

2.4 Algoritmos de Hash


Hash Criptogrfico, tambm conhecido como resumo de mensagem, um algoritmo que gera uma sada de tamanho fixo. Essa sada o resultado da manipulao de uma entrada de tamanho no definido. Na Figura 7, pode-se observar exemplos de Hash gerados a partir de frases [16], [17], [18]. A palavra hash tem sua origem na lngua inglesa e significa desordem ou confuso. O algoritmo foi assim nomeado por gerar resultados pseudo-aleatrios, ou seja, que parecem no possuir uma ordem, apesar dela existir. O algoritmo de Hash Criptogrfico tem por objetivo criar uma representao, ou resumo de uma mensagem, que pode ser processada por algoritmos de criptografia, cujo custo computacional alto. Essa representao usada para reduzir o custo, uma vez que o algoritmo pode ser aplicado a somente uma seqncia de caracteres de tamanho fixo produto de um algoritmo de Hash, ao invs de, por exemplo, ser aplicada em todo o dado a ser assinado digitalmente.

Figura 7. Exemplos de aplicaes de um algoritmo de Hash.

ESCOLA POLITCNICA DE PERNAMBUCO

19

Um bom algoritmo de Hash Criptogrfico deve seguir um srie de propriedades, dentre elas, podemos destacar: ! ! ! Dada a funo de Hash H e um dado d, o clculo de H(d) no deve ser computacionalmente caro; O resultado de H(d) tem um tamanho fixo, mesmo que o dado possua um tamanho arbitrrio; A partir do resultado de H(d) no deve ser fcil encontrar d.

Uma vez que dados quaisquer so representados dentro de um conjunto finito, formado pelos possveis resultados de um algoritmo de Hash, h a possibilidade de haver diferentes dados que so mapeados pelo algoritmo na mesma codificao hash. A isso se d o nome de coliso e inevitvel que ela ocorra. Entretanto, a pseudo-aleatoriedade do resultado do algoritmo deve garantir que um resultado de hash especfico no possa ser obtido atravs de manipulao de dados. Atualmente, existem diversos algoritmos de Hash utilizados na criptografia, variando na sua forma de operar e no tamanho de suas sadas (Tabela 2). No entanto, apesar se suas caractersticas prprias, eles tm o mesmo objetivo. Devido ao crescente avano computacional, alguns algoritmos caram em desuso por tornarem-se suscetveis ataques de coliso. Tabela 2. Comparativo entre diversos algoritmos de Hash. Tamanho do bloco Sujeito ataques Algoritmo Tamanho da sada (bits) de operaes (bits) de coliso HVAL MD2 MD4 MD5 PANAMA RIPEMD RIPEMD-128/256 RIPEMD-160/320 SHA-0 SHA-1 SHA-256/224 SHA-512/384 Tiger(2)-192/160/128! WHIRLPOOL 256/224/192/160/128 128 128 128 256 128 128/256 160/320 160 160 256/224 512/384 192/160/128 512 1024 128 512 512 256 512 512 512 512 512 512 1024 512 512 Sim Sim Sim Sim Sim Sim No No Sim Parcialmente No No No No

ESCOLA POLITCNICA DE PERNAMBUCO

20

Captulo 3 Universal Serial Bus


O padro USB, Universal Serial Bus, foi projetado com o intuito de diminuir a quantidade de protocolos de comunicao e instituir-se um padro de transmisso de dados entre perifricos e computador. O padro se popularizou bastante pela sua simplicidade do uso, ganhando ainda mais usurios na sua verso 2.0 onde sua largura de banda passou a ser maior do que em sua verso anterior, atingindo 480 MB/s [26]. As duas caractersticas que mais contriburam para a popularizao do padro USB foram: a facilidade de instalao de novos dispositivos e o fato da maioria dos dispositivos possurem a propriedade hot swap, permitindo que eles possam ser ligados com o host - um computador ou vdeo game, por exemplo - sem a necessidade que o host seja previamente desligado. Uma outra caracterstica importante no padro o fato de que a controladora USB prov energia suficiente para o funcionamento da a maioria dos dispositivos sem precisar de uma fonte de energia eltrica auxiliar. Para garantir a interoperabilidade entre os diversos dispositivos que podem estar conectados num barramento, foi definida uma especificao. A autoria da especificao foi das mesmas empresas envolvidas no consrcio responsvel pela criao do padro do USB, o USBIF (USB Implementers Forum). Os dispositivos que seguem tais especificaes recebem um selo de compatibilidade, como ilustrado na Figura 8. Novas verses do padro USB e suas respectivas especificaes, tambm, so definidas pelo USB-IF [27].

(a) (b) Figura 8. Logos colocados em dispositivos USB que seguem o padro espeficado pelo USB-IF. A imagem (a) representa os dispositivos 2.0 enquanto a (b) representa os dispositivos nas verses anteriores 2.0. O padro USB no somente especifica o modo de comunicao entre o dispositivo e o host, como tambm especifica o modo de funcionamento de algumas classes de dispositivos, como: teclados, mouses, adaptadores bluetooth, entre outros, que podem ser suportados pelo sistema operacional sem a necessidade de um driver especfico.

ESCOLA POLITCNICA DE PERNAMBUCO

21

3.1 Arquitetura do padro USB


Os sistemas operacionais provm uma interface tambm respeitando os padres do USB-IF que abstrai do desenvolvedor problemas relacionados forma da comunicao, tornando mais simples a programao de drivers para os dispositivos. A comunicao USB depende de trs elementos bsicos, so eles: USB Interconnect Prov o meio de comunicao e transporte de dados entre o dispositivo e o host. USB devices So os dispositivos utilizados pelo usurio, por exemplo, HUBs, joysticks, mouses e teclados. USB host o responsvel pela gerncia de operaes no barramento. Permite uma boa comunicao e fornece interfaces de acesso s informaes para um meio final. Esse meio final pode ser um computador, um vdeo game, um media center ou at mesmo um som automotivo.

3.1.1 Topologia Fsica


Os dispositivos USB so conectados fisicamente ao host e utilizam uma topologia estrela2, possuindo, assim, uma hierarquia que permite, por exemplo, o uso de potncia eltrica externa atravs de um dispositivo especial chamado de HUB. A funo do HUB aumentar o nmero de portas de entrada para o host. Cada host USB tem um root HUB (interno) que faz a ligao entre o host e o dispositivo. No existe conexo direta de um dispositivo com o host, como pode ser observado na Figura 9. HUBs especiais fazem parte de dispositivos chamados de Dispositivos compostos e tm o papel de ligar duas ou mais classes pertencentes fisicamente ao mesmo dispositivo.

Figura 9. Topologia fsica da ponte USB [26].

3.1.2 Topologia Lgica

Rede estrela: Diz-se topologia estrela quando um dispositivo se conecta a outro apenas atravs de um

equipamento central, concentrador, sem nenhuma ligao direta entre os dispositivo [28].

ESCOLA POLITCNICA DE PERNAMBUCO

22

Na topologia lgica, os dispositivos USB so conectados diretamente ao host, sem nenhuma distino quanto hierarquia. Tambm na perspectiva lgica, no so representados os HUBS, sendo esses transparentes na comunicao entre o dispositivo e o host. A Figura 10 representa a topologia lgica de uma ponte USB.

Figura 10. Topologia Lgica da ponte USB [26].

3.2 Modelo de Comunicao


A comunicao USB entre o host e o dispositivo realizada atravs de canais de comunicao chamados de pipes, cada um desses pipes tem buffers3 prprios. Um canal de controle utilizado para gerncia de dispositivos ligados ao barramento. Esse canal de controle tem um endpoint com identificador 0 (zero) o qual pode trocar informaes nas duas direes: entrada e sada. Ele tambm utilizado para configurao do dispositivo (assim que conectado ao host) e na troca de mensagens de status. Um endpoint representa o trmino de uma comunicao entre um host e um dispositivo. Cada dispositivo lgico USB composto por um conjunto de endpoints independentes. Juntando o endpoint com o endereo do dispositivo que dado pelo host no momento que o mesmo conectado ao barramento e a direo de uma mensagem, possvel identificar, unicamente, uma mensagem no barramento. Na Figura 11 pode ser observada a presena desses identificadores na assinatura da funo que envia mensagens de controle no Kernel do Linux4.

Buffer uma regio de memria utilizada temporariamente por um dado que ser movido para outro Kernel ou cerne do Linux, e o ncleo do sistema operacional. Ele responsvel por prover uma interface

lugar. Um dado fica num buffer esperando em uma fila, por exemplo.
4

entre os softwares e hardwares de um computador [29].

ESCOLA POLITCNICA DE PERNAMBUCO

23

Figura 11. Assinatura da funo de envio de mensagem de controle para um dispositivo USB, definida no kernel do Linux, verso 2.6.17 no arquivo drivers/USB/core/message.c e encontrada na linha 135. A direo da mensagem num barramento pode ser de input (do dispositivo para o host) ou de output (do host para o dispositivo). Cada troca de menssagem com um endpoint tem caractersticas que determinam o tipo de transferncia. Essas transferncias so compostas de: Freqncia/Latncia de acesso; Largura de banda requerida; Identificador; Requerimentos para tratamento de erro; Tamanho mximo do pacote que pode ser tratado pelo endpoint; Tipo de transferncia que poder ser feita; A direo dos dados. Os pipes de comunicao apresentam-se de duas formas: Stream - No existe uma estrutura que pr-defina a forma dos dados. Mensagem - Existe alguma definio do tipo de dados que passa no canal. As mensagens enviadas pelo barramento no so interpretadas enquanto esto no canal de comunicao, mesmo quando so mensagens de controle onde a sua forma conhecida. A comunicao Stream iniciada com o requerimento de transferncia de dados via I/O Request Packets (IRPs) para um pipe que ao ser concluda gera uma notificao. Caso no haja nenhuma IRPs pendentes ou em progresso, o estado do canal ser idle em espera - at que uma requisio ocorra. Os pipes do tipo Stream so geralmente uniderecionais e respeitam a ordem seqencial FIFO (first in first out) de transferncia de dados. A Figura 12 representa a comunicao entre um dispositivo e um host.

ESCOLA POLITCNICA DE PERNAMBUCO

24

Figura 12. Comunicao entre um host e um dispositivo lgico [26]. Os pipes do tipo mensagem funcionam em um modelo diferente do Stream, onde uma mensagem enviada e sua confirmao de recebimento enviada em seguida (de maneira sncrona).

ESCOLA POLITCNICA DE PERNAMBUCO

25

Captulo 4 Wireless USB


Neste Captulo, abordamos detalhes sobre WUSB. Detalhes sobre a topologia, modelo de comunicao adotado bem com os modos de associao entre dispositivos e hosts.

4.1 Sobre WUSB


Unindo as caractersticas do padro USB com a facilidade e a praticidade da transmisso de dados sem-fio, foi criado o padro Wireless USB ou, comumente chamado, USB sem-fio. Tal padro foi definido pelo mesmo frum mantenedor do padro USB e consiste no uso de redes UWB, Ultra Wide Band, para transmisso de dados com baixa latncia e alta largura de banda. Mantendo a compatibilidade com os dispositivos USB, o padro Wireless USB mantm as mesmas caractersticas bsicas do USB. Algumas outras propriedades foram definidas com o propsito de atender s caractersticas relacionadas dispositivos sem-fio, como o caso da autorizao de conexo ao barramento, que deve ser realizada antes da conexo de qualquer dispositivo. A segurana da transmisso dos dados - entre o host e o dispositivo - passou a ser descrita na especificao WUSB. Essa preocupao no existia no padro USB, pois o prprio meio de comunicao (fio) utilizado garantia a segurana desejada, uma vez que os fios dos dispositivos USB so curtos o suficiente para serem observados pelo seu utilizador. Assim como os dispositivos USB com-fio, os dispositivos USB sem-fio tambm ganharam um logo (Figura 13) que indica sua compatibilidade com o padro WUSB. O logo agora representa no s uma boa comunicao, mas uma comunicao segura.

Figura 13. Logo que representa a garantia de compatibilidade dos dispositivos Wireless USB com o padro estabelecido pela USB-IF.

ESCOLA POLITCNICA DE PERNAMBUCO

26

Os conceitos de host e dispositivo, vistos no padro USB, so respeitados no padro WUSB, destacando, porm, que nesse ltimo, o meio de propagao das informaes no mais um fio. Dado que no existe mais a necessidade de um dispositivo HUB, uma vez que as entradas fsicas no so mais necessrias, esse dispositivo passou a ser desconsiderado pelo padro WUSB. Contudo, outro dispositivo especial passou a existir. Este chamado de DWA, Device Wire Adaptor, e tem a funo de permitir a conexo entre dispositivos com fio no barramento sem-fio, fornecendo no s a conexo no barramento mais tambm a potncia eltrica necessria para o seu funcionamento.

4.1.1 Topologia Fsica


No padro WUSB no h conexes fsicas dos dispositivos com o host. Entretanto, os dispositivos que esto dispostos num raio de at 10 metros distncia so capazes de estabelecer comunicao com o host. A Figura 14 exemplifica a topologia fsica de uma rede de dispositivos WUSB, incluindo o uso de um dispositivo DWA.

Figura 14. Exemplo de dispositivos conectados a uma rede WUSB [30]. Existem alguns dispositivos que para troca inicial de chaves utilizadas para estabelecer uma comunicao segura necessitam ser ligados fisicamente a um barramento USB, fazendo a troca de chaves Out of Band (OOB) ou fora da banda.

4.1.2 Topologia Lgica


Utiliza-se como topologia um modelo que se assemelha ao modelo estrela cujo centro o host e os dispositivo so as pontas finais. Dado que os dispositivos WUSB no dependem de portas fsicas, a limitao de conexo de dispositivos depende diretamente da quantidade de dispositivos sem-fio suportada pelo protocolo, sendo esse limite de 127 dispositivos. A Figura 15 ilustra o modelo da topologia WUSB.

ESCOLA POLITCNICA DE PERNAMBUCO

27

Figura 15. Topologia WUSB [30]. Tambm chamado de HWA, Host Wire Adapter, o host UWB pode ser adicionado no sistema atravs do barramento USB (necessitando de um barramento USB 2.0).

4.1.3 Modelo de Conexo


Dado que no existe uma conexo fsica entre o host e o dispositivo, uma srie de premissas devem que ser cumpridas para que se estabelea uma conexo lgica. Para essa comunicao, o dispositivo WUSB assume vrios estados que so relevantes para o host. O objetivo de seguir esses critrios no s a criao de uma conexo, mas sim uma conexo segura antes que dados crticos passem no canal. Afirmar que uma conexo segura no dizer que impossvel atac-la com sucesso. , na verdade, afirmar que o custo de um ataque com sucesso mais alto que o valor de um eventual ganho que o atacante venha a ter com um ataque bem sucedido. Atualmente, no existe nenhum tipo de mecanismo de segurana relacionado ao ncleo do protocolo USB, os dispositivos so livres para adicionar essa segurana no topo do protocolo. Sendo a segurana um requisito necessrio na substituio de uma comunicao atravs de fios por uma comunicao over-the-air5.

4.2 Modelo de Criptografia do WUSB


O mtodo de criptografia recomendado pela especificao do protocolo WUSB o AES de 128 bits no modo de operao CCM. O WUSB tambm suporta criptografia de chave pblica, entretanto, ela s utilizada para a associao do dispositivo. Os dispositivos que implementam criptografia de chaves pblicas, tm que suportar o algoritmo RSA com chaves de 3071 bits e o algoritmo de hash SHA-256, mantendo assim um nvel equivalente de segurana ao AES 128 CCM utilizado aps a troca de chave inicial nas comunicaes.
5

O termo over-the-air, refere-se a comunicao sem-fio.

ESCOLA POLITCNICA DE PERNAMBUCO

28

Vrias chaves so utilizadas na comunicao segura do dispositivo com o host no padro WUSB. As Master Keys tm vida longa e so geralmente utilizadas para compartilhamento do segredo de autenticao. Para a associao de dispositivos atravs do mtodo de chaves pblicas, utilizado um par de chaves (PK). Cada dispositivo, que usa chave pblica, deve conter a sua prpria chave. Caso a gerao da chave ocorra na hora em que o dispositivo ligado, esta dever ser feita em menos de 3 segundos, tempo esperado para que o dispositivo esteja pronto para o funcionamento segundo as especificaes do WUSB [30]. A chave de conexo (CK) a chave secreta utilizada para estabelecer conexes. Ela gerada pelo host e distribuda para os dispositivos juntamente com o CHID (Connection Host Identification - Identificador de conexo de host) e a CDID (Connection Device Ideintification Identificador de conexo do dispositivo) no momento da associao. importante observar que o host no deve mandar a mesma CK para vrios dispositivos, a menos que, seja com o propsito de depurao. O envio da mesma CK para vrios dispositivos aumenta a probabilidade de descoberta por um atacante. As chaves de seo so utilizadas somente durante o tempo de conexo de um dispositivo, sendo descartadas logo em seguida. As chaves do tipo GTK (Group Temporal Key) no so utilizadas para cifra de dados; so usadas apenas para checar a integridade das mensagens. Elas so de conhecimento de todos os dispositivos que esto conectados a um determinado host. O host utiliza essa chave quando faz alguma comunicao para todos os dispositivos que esto conectados a ele.

4.3 Connection Context


Para que haja qualquer comunicao segura, tanto o host quanto o dispositivo mantm trs informaes em comum, CHID, CDID e CK. Essas informaes devem ser de conhecimento dos dois, permitindo que no seja necessrio fazer uma nova associao para se estabelecer uma nova conexo. Esses trs elementos juntos so conhecidos por Connection Context (CC) ou contexto de conexo. Alguns dispositivos tm suporte a aceitar mais de um CC, neste caso o dispositivo deve armazenar tantas quantas forem as solicitaes que ele puder. Os que no possuem tal suporte devem sobrescrever a associao com a mais recente. Os CCs s devem ser trocados atravs de uma canal seguro, pois, a interceptao dessa informao compromete a segurana, uma vez que o detentor dela pode conectar e desconectar do host sem autorizao prvia. Um dispositivo deve ser capaz de estabelecer uma conexo com qualquer host que ele j tenha se associado. Atravs de mensagens, o host comunica a sua existncia para possveis dispositivos. Essas mensagens so enviadas ininterruptamente pelo host. At que a conexo seja considerada operacional, o host e o dispositivo devem completar a fase de autenticao e associao. Enquanto isso no ocorre, o dispositivo no reconhecido pelo barramento USB.

4.3.1 Associao com Chave Simtrica


O processo de associao Out-of-Band pode ocorrer de diversas maneiras diferentes. O princpio bsico consiste no envio do CC para um dispositivo atravs de um canal seguro fora do meio normal de comunicao WUSB. O processo pode ocorrer via USB com fio, a associao ocorre quando o dispositivo USB ligado ao host. Nesta hora a confirmao do usurio necessria

ESCOLA POLITCNICA DE PERNAMBUCO

29

para continuar o processo, essa pode ser feita via software. Aps o dispositivo ser desligado do host possvel a conexo via WUSB, onde atravs de solicitao do usurio, o dispositivo inicia o processo de associao. Depois de iniciado, o dispsitivo envia ao host uma requisio de conexo. Aps a resposta da requisio, eles fazem a troca de chave inicial (handshake) e o dispositivo passa a estar operacional, como ilustrado na Figura 16.

Figura 16. Processo de associao [30].

4.3.2 Associao com Chave Pblica


O processo de associao atravs de chave pblica comea quando o usurio, atravs do host, anuncia e aceita novas conexes. O dispositivo por sua vez, ao receber tal informao, responde com uma requisio de conexo. O host completa o requerimento e notifica a entidade de segurana que um novo dispositivo deve ser processado. Depois de ser enumerado pelo host, enviado para o dispositivo uma requisio contendo a chave pblica do host e solicitando a chave pblica do dispositivo. Nesse ponto, o usurio envolvido e dele a confirmao de que o host e o dispositivo receberam as chaves corretamente. Essa validao necessria para provar que tanto o host quanto o dispositivo so quem dizem ser e que no se trata de um agente malicioso, ou seja, garantindo a autenticidade. Depois da validao da chave do dispositivo, o host deve usar a chave pblica do dispositivo para cifrar e distribuir o CC.

ESCOLA POLITCNICA DE PERNAMBUCO

30

Captulo 5 Anlise da Segurana no WUSB


Este Captulo trata da anlise do modelo de segurana adotado pelo padro WUSB. A Seo 5.1 descreve alguns aspectos tericos do processo de criptografia. Na Seo 5.2, possvel encontrar uma anlise dos mtodos de associao de dispositivos com hosts. A Seo 5.3 contm uma anlise da implementao de cdigo aberto do protocolo WUSB, a qual se encontra disponvel para a comunidade de usurios do Linux em [31].

5.1 Padro de Criptografia do WUSB


O algoritmo de cifra AES possui inmeras vantagens como: ser um algoritmo de criptografia que exige um baixo custo computacional, possui alta velocidade para realizao de operaes, entre outras. Essas so algumas das caractersticas que definem o AES como algoritmo padro de criptografia do WUSB. A configurao do AES utilizada no WUSB feita com chaves de 128 bits no modo de operao CCM. Essa configurao torna o algoritmo capaz de garantir a confidencialidade e a autenticidade da informao trafegada no canal de dados [30], [32]. Como j dissemos, a confidencialidade na comunicao de dispositivos USB com fio garantida pelo prprio cabo de conexo, uma vez que a propagao difundida unicamente pelo fio, impedindo a captura externa. O uso de criptografia (no caso, o AES) necessrio nas conexes sem fio para dificultar a captura de informaes transmitidas pelo dispositivo.

5.1.1 Anlise do modelo de criptografia adotado na Comunicao WUSB


Nessa abordagem, destacaremos dois tipos de ataques: os ataques passivos e os ataques ativos. Nos ataques passivos, o invasor age sem ser percebido, se aproveitando dos dados que consegue captar. No ataque ativo, o invasor tem a capacidade de manipular as informaes no canal, criando um ambiente propcio para o seu ataque. A comunicao WUSB protegida a ataques do tipo texto claro escolhido [17]. Esses ataques presumem que o atacante, por possuir a capacidade de gerar dados cifrados a partir de texto claro escolhido, pode associar, atravs de heurstica, as diferenas a uma chave. Como no caso da comunicao WUSB o atacante age passivamente, para ele no possvel a manipulao do texto a ser cifrado.

ESCOLA POLITCNICA DE PERNAMBUCO

31

O AES com CCM no vulnervel a ataques do tipo texto claro conhecidos [17]. Tais ataques, ao contrrio do texto claro escolhido, podem ser realizados passivamente. Porm o modo CMM, por usar o modo Counter, evita que a chave privada seja capturada. O modo Counter, alm de usar a chave para fazer a cifra, usa tambm o nonce que um nmero que representa unicamente um bloco. Um fator que depende da quantidade de blocos que j foram cifrados que, geralmente, no de conhecimento do invasor. No caso do WUSB, o nonce utilizado uma composio de valores, que consideram os dados: SFN, TKID, DestAddr e SrcAddr de acordo com a Tabela 3. Tabela 3. Dados que so considerados na gerao do nonce utilizado pelo WUSB. Offset Campo Tamanho Descrio 0 SFN 6 O nmero do frame seguro associado a essa mensagem 6 TKID 3 Referncia da chave utilizada para cifrar/decifrar essa mensagem 9 DestAddr 2 Endereo do dispositivo de destino 11 SrcAddr 2 Endereo do dispositivo de origem A utilizao do nonce, tambm garante que o resultado da cifra de dois dados iguais produzam resultados diferentes, adicionando um maior carter de aleatoriedade ao processo e, dessa forma, introduzindo um complicador a mais no cdigo, dificultando a criptoanlise. A resistncia a ataques ativos e no somente a passivos, como demonstrado anteriormente, tambm uma caracterstica desse modelo adotado pelo padro WUSB. Protegendo a comunicao de ataques como Men-in-the-middle, MITM [17], que caracteriza-se por explorar os primeiros passos da comunicao cifrada, antes que um elo de segurana seja estabelecido. Nesses casos especiais, o invasor, ou homem do meio, se apresenta para A como B e como B para A, ficando exatamente no meio da comunicao, a par de todas as informaes que passam pelo o canal. A Figura 17 mostra com mais detalhes um ataque de MITM.

Figura 17. Exemplo de ataque de MITM: Bob tenta mandar uma mensagem para Alice; entretanto, o invasor coloca-se no meio da conexo, fingindo ser Alice para Bob e Bob para Alice.

5.1.2 Garantia de Autenticidade


O modo de operao CBC-MAC, que utilizado pelo CCM, garante a autenticidade das informaes no canal de comunicao. O processo de decifragem/validao do MAC determina se, de fato, o bloco veio do processo de cifragem, onde foram utilizados: uma chave K, um bloco de dados D e um nonce. Isso garante se o bloco recebido veio do transmissor legtimo ou no.

ESCOLA POLITCNICA DE PERNAMBUCO

32

Para qualquer texto cifrado de tamanho M pelo menos M bytes correspondem a um MAC cifrado, o resto da mensagem pode ser considerado como payload (no caso, os dados cifrados). No WUSB, essas informaes esto dispostas de acordo com a Tabela 4. Tabela 4. Distribuio do cabealho MAC mais payload num bloco de dados WUSB. Offset Campo Tamanho Tipo Descrio 0 cabealho MAC 10 Record Campo de 10 bytes obrigatoriamente preenchido com o cabealho do MAC. 11 payload N Bitmap Refere-se aos dados cifrados. O processo de verificao checa a corretude do MAC em relao ao payload e s informaes adicionais: nonce e bloco de dados. No ato da validao, duas so as respostas esperadas: invlido ou o prprio MAC. Quando invlido, tanto o payload quanto os dados acessrios no podem ser validados de forma independente; apenas possvel aferir que eles no foram gerados a partir de um emissor confivel. Quanto o resultado o prprio MAC, de acordo com o design do modelo, possvel afirmar que os dados so autnticos. Entretanto, tal afirmao no pode ser considerada absolutamente verdadeira, afinal, um atacante pode gerar uma mensagem que passe por essa validao. A probabilidade de um atacante ter sucesso na validao de uma mensagem inversamente proporcional ao tamanho do MAC. claro que um atacante pode enviar dados aleatrios a fim de obter, ao menos, uma mensagem aceita pela validao.

5.1.3 Possibilidade de Conexes Acidentais


Aps a associao, fica a critrio do usurio autorizar ou no a conexo, sendo essa autorizao concedida ao dispositivo atravs do seu nome. Em um cenrio onde existem n dispositivos associados, o usurio pode eventualmente selecionar o errado, ocasionando negao do servio, caso algum j esteja utilizando o dispositivo. Os dispositivos conectados ao DWA agora estariam disponveis para o novo host permitindo que o usurio do novo host acesse dados pessoais do usurio do primeiro host como, por exemplo, um pen-drive. imprescindvel que o usurio s associe o seu dispositivo WUSB em hosts que ele realmente confie, at porque no existe na definio do protocolo de associao, uma interface para deleo da associao. A delao s e possvel de ser feita no host que, se maliciosamente configurado, no deletar de fato as informaes do CC, nica informao necessria para o host re-estabelecer uma comunicao com o dispositivo. Um outro cenrio possvel de acontecer a conexo a um DWA maliciosamente posto a fim de confundir o usurio, tendo conectado a ele dispositivos de classe mass storage (pendrives) que podem injetar vrus, malwares ou ainda spywares, sem que o usurio do host perceba.

5.2 Anlise dos mtodos de associao


Conforme detalhado anteriormente, o mtodo de associao entre o dispositivo e o host bastante importante para que uma comunicao seja estabelecida de forma segura, alm de garantir que o processo est realmente seguindo o que est descrito na especificao, sendo isso vital para a segurana do processo.

ESCOLA POLITCNICA DE PERNAMBUCO

33

Como garantia de corretude da associao, esta Seo visa a apresentar os resultados da anlise entre a associao de um dispositivo WUSB (WUSB Hub do fabricante IOGear) e um host que utiliza um HWA tambm da IOGear. O software de associao analisado foi fornecido pelo prprio fabricante e pode ser encontrado em [33]. O processo a ser analisado uma viso das informaes trocadas entre o dispositivo e o host atravs da USB. Esses dados foram obtidos atravs do uso da ferramenta de captura UsbSnoop que pode ser encontrada em [34].

5.2.1 Associao
O processo de associao tem o objetivo de garantir a troca da chave de conexo (CK). Esse processo ocorre da seguinte forma: o dispositivo conectado atravs da USB de um host e esse dispositivo, aps ser identificado, passa por um processo de reconhecimento, onde aguarda a autorizao do usurio que dar incio ao processo de associao. Como parte da anlise da segurana do WUSB, o processo de associao foi detalhado em 4 blocos referentes a cada requisio USB. O primeiro bloco refere-se requisio de informao de associao (GET_ASSOCIATION_INFORMATION) e est ilustrado na Figura 18.

Figura 18. Primeira troca de mensagem entre o host e o dispositivo. (a) Tipo da comunicao: GET_ASSOCIATION_INFORMATION. (b) Tamanho da estrutura. (c) Nmero de requisies. (d) Valor pr-definido. (e) Valor do ndice. (f) Byte reservado. (g) Valor prdefinido. (h) Tipo da requisio. (i) Tamanho da informao associada a requisio. (j) Valor do ndice. (l) Byte reservado. (m) Valor pr-definido. (n) Tipo da requisio. (o) Tamanho da informao associada a requisio. Esse segundo bloco de informao contm os dados, a respeito do host, que so enviados para o dispositivo. Esse bloco est ilustrado na Figura 19.

ESCOLA POLITCNICA DE PERNAMBUCO

34

Figura 19. Segunda troca de mensagem entre o host e o dispositivo. (a) Tipo da comunicao: HOST_INFO. (b) Tipo da associao. (c) Sub-tipo da associao. (d) CHID. (e) ID da linguagem utilizada. (f) Nome amigvel do host. O terceiro bloco do processo de associao contm informaes a respeito do dispositivo e est ilustrado na Figura 20.

Figura 20. Terceira troca de mensagem entre o host e o dispositivo. (a) Tipo da comunicao: DEVICE_INFO. (b) Tamanho desta estrutura. (c) CDID. (d) BandGroups. (e) Nome amigvel do dispositivo. (f) ID da linguagem utilizada. O quarto bloco contm a quarta e ltima troca de mensagem entre o host e o dispositivo. nesse bloco que ocorre a confirmao da associao atravs da passagem da CK. O bloco est ilustrado na Figura 21.

ESCOLA POLITCNICA DE PERNAMBUCO

35

Figura 21. Quarta e ltima troca de mensagem entre o host e o dispositivo. (a) Tipo de comunicao: SET_ASSOCIATION_REQUEST. (b) Tipo da associao. (c) Sub-Tipo da associao. (d) Tamanho da estrutura de dados. (e) CC, Connection context. (f) BandGroups. Para um melhor entendimento, valido ressaltar que todos os dados numricos representado nessa anlise esto no formato little-endian6. As strings esto representadas no formato Unicode7, por exemplo, a Figura 20, legenda e, representa: IOGEAR WUSB Hub. Com essa anlise, possvel constatar que os equipamentos e softwares testados esto dentro da especificao do padro WUSB e, por isso, podem ser considerados seguros. Alm disso, pode-se mostrar em detalhes como ocorre o processo de associao, fato esse, que j representa uma grande contribuio. No fica claro, entretanto, como o dispositivo armazena as chaves, uma vez que ele tem suporte a armazenar mais de uma e no existe uma interface para list-las requisito da especificao.

5.3 Anlise do Suporte ao WUSB no Linux


Apesar do WUSB no ser uma tecnologia to recente (especificada desde maio de 2005) o seu uso no to popular. A tecnologia ainda no encontra suporte nativo nos sistemas operacionais. Os softwares de suporte, fornecidos pelos fabricantes dos hardwares, ainda encontram-se bastante instveis, alm de no suportarem todos os tipos de transferncias USB, como por exemplo: as transferncias de stream. Essa anlise visa a identificar e corrigir disparidades entre o modelo proposto pela especificao e a implementao. Para tal validao, primeiro foi necessrio garantir o

O termo little-endian refere-se a ordenao de bytes usado para representar algum tipo de dado na

memria. Dizer que o dado est armazenado num formato little-endian e afirmar que se byte menos significativo esta no endereo mais baixo. Os outros bytes seguem em ordem de significncia crescente [35].
7

Unicode um padro que permite aos computadores representar e manipular, de forma consistente, texto

de qualquer sistema de escrita [36].

ESCOLA POLITCNICA DE PERNAMBUCO

36

funcionamento dos HWA. Nos dois dispositivos testados foi necessrio o uso de um arquivo de firmware8. Sendo o arquivo de firmware do distpositivo da Intel liberado para download em [38]. Aps a anlise do suporte ao HWA no Linux, foi analisado o suporte associao dos dispositivos com o host atravs de cabo. Essa ltima anlise tambm visa a verificar a corretude da implementao do modelo proposto em relao s especificaes do WUSB e do WUSB Association Model [39].

5.3.1 Anlise do Suporte ao HWA


O firmware do HWA da IOGear, at ento no testado no Linux, no liberado pelo fabricante. Entretanto, o mesmo pode ser encontrado dentro dos arquivos distribudos junto aos drivers. Utilizando novamente a ferramenta de captura dos dados da USB, UsbSnoop [34] foi possvel achar o bytes iniciais e finais do firmware, que, por conseqncia, permitiu achar em que arquivo o mesmo estava inserido. Apesar dos dispositivos possurem fabricantes diferentes, fisicamente eles so bastante semelhantes, como pode ser visto na Figura 22. Todos os dois dispositivos utilizam um chipset fabricado por uma empresa chamada Alereon, a referncia do chipset AL4200. (a)

(b)

Figura 22. Dispositivos HWAs. (a) Dispositivo do fabricante IOGear. (b) Dispositivo do fabricante Intel. Dadas as semelhanas, testes foram feitos para averiguar se os dispositivos so capazes de trabalhar com firmwares de outros fabricantes. Os resultados podem ser encontrados na Tabela 5. Tabela 5. Firmawares suportado pelos dispositivos HWA.
Dispositivo Firmware

i1480-usb-RC1.3 Suportado Suportado

i1480-usb-RC1.2 Suportado Suportado

IOGear Parcialmente suportado Parcialmente suportado

HWA Intel HWA IOGear

Utilizando o firmware da IOgear, os dispositivos funcionam. Entretanto, o firmware no prov suporte ao WLP, Wimedia Link Protocol. O WLP permite a comunicao IP (Internet Protocol) atravs dos HWA. WLP no faz parte do escopo deste trabalho e as suas especificao ainda no foram concludas.

Firmware o termo usado para se referenciar um software que roda embarcado em um hardware [37].

ESCOLA POLITCNICA DE PERNAMBUCO

37

Aps a concluso de qu firmwares utilizar, foi necessrio modificar o cdigo do suporte a upload do firmware, pois o mesmo apresentava diversos warnings e ignorava alguns erros que deveriam ser tratados. Esses foram corrigidos, a fim do cdigo estar alinhado com o estilo de programao do kernel [40]. importante seguir esse estilo, para que atravs da submisso do patch9 o cdigo possa ser analisado por outros desenvolvedores. Caso no esteja dentro dos padres, o cdigo sequer analisado. Esses so os patches inicialmente submetidos para a comunidade linux-uwb: [linux-uwb] [PATCH] dfu: Use %zu instead of %d when dealing with size_t dfu: Makes i1480_cmd_reset(), i1480_mpi_write() and i1480_mpi_read() static instead of global Aps as correes, o usurio dever obter no seu log uma sada como a ilustrada na Figura 23. Essa sada deve ser vista logo aps o dispositivo ser ligado ao sistema.

Figura 23. Trecho do log de sistema, aps d dispositivo ser ligado ao sistema, onde (a) representa uma mensagem de erro aps o envio do firmware. Na Figura 23, na legenda a, pode-se observar que ainda persiste uma mensagem de erro; esse erro no foi tratado, pois, mesmo aps discusso na comunidade, no se chegou a nenhuma concluso da exata origem do mesmo. O erro poderia apenas representar um problema no hardware, que no atrapalha o funcionamento final do dispositivo. Com o fim da anlise do suporte ao HWA no Linux e com patches aceitos pela comunidade, o dispositivo est apto a funcionar de acordo com as especificaes. Sabendo-se que o dispositivo DWA, que foi utilizado neste trabalho, necessita realizar sua associao atravs de cabo, este , naturalmente, o prximo passo a ser analisado.

5.3.2 Anlise do Suporte Associao


Na comunidade do Linux UWB j havia suporte para CBA, o CBAF (Cable Association Framework). Esse modelo apenas apresentava uma interface de comunicao entre a user space10 e o dispositivo. Essa interface realizada atravs da interface de comunicao sysfs que prov uma hierarquia de diretrios e arquivos especiais que podem ser listados pelos usurios de uma mquina, permitindo a leitura e escrita desses arquivos especiais. A leitura e escrita nesses arquivos virtuais, na verdade, so gatilhos para funes em kernel space11, na escrita os dados so passados para kernel space e referenciados atravs de um ponteiro.
9

Patch um arquivo texto que contm as diferenas da alterao de um arquivo, estas diferenas podem

ser geradas com o uso do comando diff [41] do Unix e aplicadas com um programa do mesmo nome, patch [42].
10,11

O Linux cria uma barreira virtual entre a memria que esta em Kernel Space e a memria de User

Space, em Kernel space esta tudo de Kernel, Kernel extension e alguns drivers de dispositivos, o resto roda em User space [43].

ESCOLA POLITCNICA DE PERNAMBUCO

38

O estilo de cdigo do Kernel recomenda que no devem existir entradas para dois tpicos diferentes em apenas um arquivo sysfs, sendo isso um problema para implementao do CBAF que em sua implementao original recebia mltiplos parmetros como forma de entrada. Por exemplo, o parmetro wusb_cc recebia como entrada CK, CHID e BandGroups. Novamente, para atender aos padres de codificao do Kernel, foram implementados patches para correo desses arquivos sysfs. Nesse conjunto de patches, tambm foram corrigidos problemas na entrada do BandGroups, que agora refere-se ao BandGroups do dispositivo e no do host como acontecia antes. Aps o CBAF estar organizado da forma correta, ficou claro constatar que havia um problema na implementao da funo que recebe informaes do dispositivo (Figura 20). Ao receber os dados com informaes sobre o dispositivo, atravs de um conjunto de bytes, a implementao os reparte de maneira correta. Entretanto, utiliza a funo strncpy [44] que, ao receber um conjunto de bytes, interpreta o 00 como final de um conjunto de caracteres. Como os dados repassados pelo dispositivo so seguidos sempre por um byte 00, o nome do dispositivo fica resumido ao seu primeiro caractere. Essa uma falha grave, uma vez que o usurio pode ter mais de um dispositivo fazendo Cable Association e no conseguiria, assim, aferir quem quem, se as primeiras letras forem iguais. Tambm foram adicionados meios de depurao. Os meios anteriores tambm no seguiam os padres aconselhados pela comunidade do Kernel. Os novos meios de depurao esto compatveis com o modelo proposto e tambm ganharam entrada no menu de opes de compilao do Kernel para serem ativados ou no na compilao do mdulo ou do Kernel.

5.3.3 Testes
Para testar os patches produzidos, foram utilizados 2 computadores Dell, Xeon 3.2 GHz com 2 Gigas de memria RAM e dois notebooks IBM ThinkPad T41 com processador Pentium M de 1.6 e 1 Giga de memria RAM. Cada uma das mquinas de teste possui Kernel nas verses: 2.6.24 2.6.25 2.6.25-rc6 2.6.26-rc1 2.6.26-rc2 Nas mquinas Dell, foram instalados os kernels citados com suporte instrues de 64 bits. Como comum no processo de testes/depurao, as mquinas podem travar isto acontece porque, em geral, o espao de memria do Kernel no tem proteo; qualquer corrupo na memria acarreta em um congelamento que muitas vezes impede o testador de identificar a possvel causa e de ler mensagens de depurao. Para que isso no ocorra, necessria a utilizao de um cabo de comunicao serial para que um console do computador possa ser exportado para outro computador, onde as mensagens do sistema so transferidas diretamente. No caso de um erro, a mensagem de depurao enviada remotamente antes que a mquina pare de funcionar. A etapa de testes de extrema importncia para garantir o bom funcionamento do WUSB uma vez que na ocasio de um erro no Kernel o usurio final no seria capaz de identific-lo. Todos os patches produzidos no decorrer deste trabalho foram devidamente testados e homologados.

ESCOLA POLITCNICA DE PERNAMBUCO

39

5.3.4 Homologao
A homologao ocorre atravs de uma hierarquia de 3 nveis, sendo o primeiro deles no mesmo computador onde so realizados os testes. Uma verso limpa do sistema operacional que no foi utilizado para desenvolvimento utilizada para realizao de uma bateria de testes. Uma vez que os patches passam por essa bateria so enviados para outra equipe de desenvolvimento que tem por funo analisar o cdigo, questes de estilo, identao e padronizao, alm de avaliar se os mesmos esto funcionando conforme deveriam. Essa mesma equipe responsvel pela instalao do seu prprio ambiente, evitando problemas de vcios de instalaes e aumentado a heterogeneidade do ambiente de testes. A terceira e ltima fase de homologao acontece pela comunidade do projeto, onde o patch submetido anlise de todos os envolvidos (usurios, desenvolvedores, pesquisadores). Depois de recebido os devidos comentrios e realizadas as argumentaes, o patch finalmente aprovado pelo mantenedor da comunidade, que adiciona o mesmo na rvore de desenvolvimento oficial do projeto. Neste momento, o cdigo torna-se oficialmente reconhecido pela comunidade, e far parte de um release12, de acordo com o cronograma do projeto.

12

Entende-se por release uma verso de software que ser disponibilisada para o usurio final.

ESCOLA POLITCNICA DE PERNAMBUCO

40

Captulo 6 Concluses e Trabalhos Futuros


notrio que os usurios necessitam cada vez mais de mobilidade e, aliada a essa mobilidade, encontram-se a rapidez de acesso e agilidade nas comunicaes. A USB sem-fio ou WUSB foi idealizada para suprir essa necessidade. Apesar do grupo de promotores da WUSB ter se formado em 2004 e de sua especificao ter sido finalizada em 2005, foi recente o avano da tecnologia que tornou vivel o uso comercial da WUSB. Tambm com esse avano outras necessidades surgiram, como: implementao de drivers de dispositivos para sistemas operacionais que no eram suportados inicialmente, validao da segurana das aplicaes fornecidas pelos fabricantes de dispositivos etc. Nesse contexto, este trabalho sugere uma anlise mais apurada da segurana da informao nos dispositivos WUSB e de seu protocolo de comunicao. Para tal, foi realizado primeiramente um estudo acerca da tecnologia envolvida, criando uma base de conhecimento necessria para o incio da anlise. Para este estudo foram utilizados materiais referentes criptografia e tecnologia USB, alm das especificaes sobre WUSB. Aps serem devidamente instalados, os drivers dos dispositivos foram analisados, levando em considerao: a fidelidade aos padres de codificao do Kernel e ao modelo de especificao WUSB. Para a anlise, tambm foi necessria a extrao do arquivo de firmeware do dispositivo IOGear. Foi possvel concluir que o cdigo dos drivers necessitava de algumas mudanas para atender os aspectos analisados. Duas mudanas de cdigo foram implementadas, ocasionando a gerao de dois patches, com o intuito de atender aos padres de codificao do Kernel e o modelo de especificao WUSB. Uma anlise posterior trata de aferir se a implementao do Cable Association ou CBA no sistema operacional Windows, fornecida pelo fabricante IOGear, est fidedigna s especificaes do WUSB e do WUSB Association Model. A partir dessa anlise, foi possvel concluir que a implementao de fato atende a todas as especificaes. Tambm for realizada uma anlise do Cable Association no Linux, onde foi constatada a necessidade de pequenas mudanas no cdigo do CBA. Essas mudanas geraram uma srie de patches de correo. A proposta do modelo de segurana WUSB fazer a equivalncia da segurana dos dispositivos com-fio com dos dispositivos sem-fio, e demonstra-se bastante eficaz nesse ponto. Entretanto, alguns pontos so falhos, como a possibilidade de conexo com o dispositivo errado e a falta da opo de deleo de uma associao. Na Tabela 6 encontra-se um comparativo entre a USB com fio e a USB sem fio em relao a segurana da informao.scp

ESCOLA POLITCNICA DE PERNAMBUCO

41

Tabela 6. Tabela comparativa entre a segurana da USB com fio e sem fio USB com fio USB sem fio Ataques passivos Impossvel Fcil Integridade Garantida Garantida Autenticidade Garantida Garantida Conexo acidental Impossvel Fcil MITM Impossvel Desconhecido O fato do AES 128bits com CCM ser o nico algoritmo citado pelas especificaes um problema, uma vez que o poder computacional cresce cada vez mais, auxiliando a criptoanlise. Apesar de hoje no existirem tcnicas conhecidas para a quebra da cifra AES nesse modo de operao, poder existir em um futuro prximo e isso acarretar num legado de dispositivos inseguros. Se no for estabelecido um meio dos dispositivos se inter-operarem, suportando diversos algoritmos de cifras, no ser possvel ter num mesmo host dispositivos, utilizando o AES 128 bits e outro algoritmo. Um ponto muito forte no modelo adotado o fato das conexes j comearem protegidas. O prprio aviso do host para comunicar que est ativo (MMC) j se encontra protegido com a GTK. A GTK utilizada somente para validar o MMC, a informao do GTK transmitida para o dispositivo depois que o mesmo se conecta com o host pela primeira vez; a partir de ento, ele passa a validar as informaes no MMC. De forma geral, foi percebido ao longo deste trabalho que a qualidade do cdigo do WUSB no Linux deixa a desejar quando contrastado com os padres especificados pela comunidade do Kernel sendo esse um ponto no qual tivemos que atacar, para contarmos com a homologao da comunidade.

6.1 Dificuldades Encontradas


Durante este trabalho, algumas dificuldades foram encontradas, como: A dificuldade na aquisio dos dispositivos WUSB, devido pouca quantidade de fabricantes, venda limitada aos pases que possuem a banda utilizada pelo UWB no regulamentada e por diversos embaraos alfandegrios. Falta de documentao e de cooperao dos fabricantes de alguns dispositivos. A falta de padronizao no cdigo do WUSB no Linux, tornando difcil o entendimento do mesmo.

6.2 Trabalhos Futuros


clara a necessidade de anlise de outras partes do cdigo do WUSB no Linux, bem como, a adio de suporte a outros dispositivos de diferentes fabricantes. Ento, possvel prever a continuidade deste trabalho.

ESCOLA POLITCNICA DE PERNAMBUCO

42

Bibliografia
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] BUCCI, Andrea, COSTA, Newton. A Interface USB: Uma Viso Geral. Universidade Estadual de Campinas, 2006. Disponvel em: <www.ic.unicamp.br/~rodolfo/Cursos/ mc722/2s2006/Trabalho/g17-apresentacao.pdf>. ltimo acesso em: 17 de maro de 2008. Agere Systems. Disponvel em: <http://www.agere.com>. ltimo acesso em: 23 de maro de 2008. Hewlett-Packard. Disponvel em: <http://www.hp.com>. ltimo acesso em: 23 de maro de 2008. Intel. Disponvel em: <http://www.intel.com>. ltimo acesso em: 23 de maro de 2008. Microsoft Corporation. Disponvel em: <http://www.microsoft.com/en/us/default.aspx>. ltimo acesso em: 23 de maro de 2008. NEC. Disponvel em: <http://www.nec.com>. ltimo acesso em: 23 de maro de 2008. Philips Semiconductors. Disponvel em: <http://www.nxp.com/>. ltimo acesso em: 23 de maro de 2008. Sansung Eletronics. Disponvel em: <http://www.samsung.com>. ltimo acesso em: 23 de maro de 2008. KOLIC, Rafael. Wireless USB Brings Greater Convenience and Mobility to Devices. Intels Corporate Tecnology Group, 2004. Disponvel em: <http://www.deviceforge.com/ articles/AT9015145687.html>. ltimo acesso em: 17 de maro de 2008. ROCHA, rico, BRUNO, Gaspare. Estudo e anlise de vulnerabilidades de segurana na tecnologia Bluetooth. Centro Universitrio Lasalle, Canoas, RS. KARYGIANNIS, Tom, OWENS, Les. Wireless Network Security 802.11, Bluetooth and Handheld Devices. NIST Special Publication 800-48, novembro de 2002. Federal Standard 1037c. ANS T1.523-2001, Telecom Glossary 2000. Disponvel em: <http://www.atis.org/tg2k/>. ltimo acesso em: 16 de marco de 2008. BRAINARD, J., JUELS, A., RIVIEST, R., SZYDLO, M., YUNG, M. Fourth-Factor Authentication: Somebody You Know. ACM CCS, pp. 168-78, 2006. SOUSA, Rafael, PUTTINI, Ricardo. SSLeay/OpenSSL Tutorial. Disponvel em: <http://www.redes.unb.br/security/ssleay/tutorial.html>. ltimo acesso em: 17 de maro de 2008. ANDERSSON, Fredik. ISO/IEC 17799 Compliant? Master Thesis, Department of Computer and Systems Sciences, Stockholms University, dezembro de 2004. HARRIS, S. All in One CISSP: Exam Guide.California: McGraw-HILL/Osborne, 2005. MAO, W. Modern Cryptography: Theory & Practice. Nova Jersey: Prentice Hall PTR, 2004. BURNETT, S., PAINE, S. Criptografia e Segurana: O Guia Oficial RSA. Rio de Janeiro: Campus, 2002.

ESCOLA POLITCNICA DE PERNAMBUCO

43

[19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41]

GOMES, A. Criptografia Usando Protocolos Qunticos. Universidade Federal de Lavras, 2004. Disponvel em: <http://bazar.ginux.ufla.br/index.php/MonosARL/article/viewPDF Interstitial/93/25>. ltimo acesso em: 14 de maio de 2008. NIST. Announcing the Advanced Encryption Standard (AES). Federal Information Processing Standards Publications, 2001. NIST. Data Encryption Standard (DES). Federal Information Processing Standards Publications, 1999. IBM, Disponvel em: <http://www.ibm.com>. ltimo acesso em: 25 de maio de 2008. Rijnadael S-BOX, Disponvel em: <http://en.wikipedia.org/wiki/Rijndael_S-box>. ltimo acesso em: 25 de maio de 2008. Nibble, Disponvel em: <http://en.wikipedia.org/wiki/Nibble>. ltimo acesso em: 25 de maio de 2008. RIVEST, R. Lecture on MACs, 1997, Disponvel em: < http://web.mit.edu/6.857/OldStuff/Fall97/lectures/lecture3.pdf >. ltimo acesso em: 25 de maio de 2008. USB Specification, Disponvel em: <http://www.usb.org/developers/docs/usb_20_ 040908.zip>. ltimo acesso em: 25 de maio de 2008. USB Implementers Forum. Disponvel em: <http://www.usb.org/developers>. ltimo acesso em: 25 de maio de 2008. Rede estrela. Disponvel em: <http://en.wikipedia.org/wiki/Star_topology>. ltimo acesso em: 25 de maio de 2008. Linux Kernel. Disponvel em: <http://www.kernel.org>. ltimo acesso em: 25 de maio de 2008. WUSB Specification. Disponvel em: <http://www.usb.org/developers/wusb/ wusb_2007_0214.zip>. ltimo acesso em: 27 de maio de 2008. Linux UWB. Disponvel em: <http://www.linuxuwb.org/>. ltimo acesso em: 25 de maio de 2008. NIST. Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality. IOGear Support. Disponvel em: <http://www.iogear.com/support/dm/>. ltimo acesso em: 25 de maio de 2008. UsbSnoop. Disponvel em: <http://usbsnoop.sourceforge.net/>. ltimo acesso em: 25 de maio de 2008. Little-endian. Disponvel em: <http://en.wikipedia.org/wiki/Endianness>. ltimo acesso em: 25 de maio de 2008. Unicode. Disponvel em: <http://pt.wikipedia.org/wiki/Unicode>. ltimo acesso em: 25 de maio de 2008. Firmwares. Disponvel em: <http://en.wikipedia.org/wiki/Firmware>. ltimo acesso em: 25 de maio de 2008. Intel i1480 Firmwares. Disponvel em: < http://www.linuxuwb.org/thewiki/Firmware_ for_the_Intel(r)_Wireless_UWB_Link_1480>. ltimo acesso em: 25 de maio de 2008. Association Models Supplement to the Certified Wireless Universal Serial Bus Specification. Disponvel em: <http://www.usb.org/developers/wusb/ wusb_2007_0214.zip>. ltimo acesso em: 25 de maio de 2008. Kernel coding style. Disponvel em: <http://lxr.linux.no/linux/Documentation/ CodingStyle>. ltimo acesso em: 25 de maio de 2008. Diff man page. Disponvel em: <http://unixhelp.ed.ac.uk/CGI/man-cgi?diff>. ltimo acesso em: 25 de maio de 2008.

ESCOLA POLITCNICA DE PERNAMBUCO

44

[42] [43] [44]

Patch man page. Disponvel em: <http://www.rt.com/man/patch.1.html>. ltimo acesso em: 25 de maio de 2008. CORBET, J., RUBINI, A., KROAH-HARTMAN, G. Linux Device Drivers, Estados Unidos: OReilly, 2005. strncpy man page. Disponvel em: <http://linux.com.hk/penguin/man/3/strcpy.html>. ltima acesso em: 25 de maio de 2008.

S-ar putea să vă placă și