TCC WifiDog

63
UNIVERSIDADE LUTERANA DO BRASIL ULBRA – CAMPUS GUAÍBA CURSO DE SISTEMAS DE INFORMAÇÃO SEGURANÇA EM SISTEMA DE LOCALIZAÇÃO DE ESTAÇÕES SEM FIO IEEE 802.11: AUTENTICAÇÃO E ESTAÇÕES MALICIOSAS ALLAN GABRIEL HENZE Guaíba, junho de 2008.

Transcript of TCC WifiDog

Page 1: TCC WifiDog

UNIVERSIDADE LUTERANA DO BRASIL

ULBRA – CAMPUS GUAÍBA

CURSO DE SISTEMAS DE INFORMAÇÃO

SEGURANÇA EM SISTEMA DE LOCALIZAÇÃO

DE ESTAÇÕES SEM FIO IEEE 802.11:

AUTENTICAÇÃO E ESTAÇÕES MALICIOSAS

ALLAN GABRIEL HENZE

Guaíba, junho de 2008.

Page 2: TCC WifiDog

UNIVERSIDADE LUTERANA DO BRASIL

ULBRA – CAMPUS GUAÍBA

CURSO DE SISTEMAS DE INFORMAÇÃO

SEGURANÇA EM SISTEMA DE LOCALIZAÇÃO

DE ESTAÇÕES SEM FIO IEEE 802.11:

AUTENTICAÇÃO E ESTAÇÕES MALICIOSAS

ALLAN GABRIEL HENZE

Trabalho de Conclusão de Curso apresentado como requisito parcial para a obtenção do grau de Bacharel em Sistemas de Informação. Prof(a). André Peres Orientador(a)

Guaíba, junho de 2008.

Page 3: TCC WifiDog

“É melhor fazer pouco e bem, do que muito e mal.” Sócrates

Page 4: TCC WifiDog

AGRADECIMENTOS

Agradeço a minha esposa e meus filhos, aos meus amigos, aos colegas de

trabalho e de faculdade, bem como aos meus professores ao longo da vida

acadêmica. Em especial àqueles que sempre me apoiaram, acreditaram no meu

potencial, me incentivaram e me ensinaram a cobrar mais de mim mesmo por saber

que eu seria capaz. A estes, agradeço de coração.

Page 5: TCC WifiDog

RESUMO

A ULBRA - Universidade Luterana do Brasil – campus Guaíba possui um sistema de localização de estações sem fio padrão IEEE 802.11. Atualmente, tal sistema utiliza uma técnica conhecida como fingerprinting para determinar a posição em que as estações sem fio se encontram em suas dependências. Tendo em vista a necessidade de aprimorar a segurança no ambiente wireless do campus, este TCC discorre a respeito da implementação de mecanismos de segurança no serviço Wi-Fi oferecido, inibindo o comportamento de estações consideradas maliciosas e o desenvolvimento de uma nova camada de autenticação, demonstrando como é possível tornar o ambiente wireless mais seguro, confiável e gerenciável. Entre as melhorias, está a utilização de captive portal e a autenticação baseada na localização.

Palavras-chave: Wireless, 802.11, Fingerprinting, Autenticação baseada na localização, captive portal.

Page 6: TCC WifiDog

ABSTRACT

ULBRA - Universidade Luterana do Brasil - campus of Guaíba has a wireless stations location system IEEE 802.11 standard. Today, this system uses a technique known as fingerprinting to determine the position within the university area in which the wireless stations are. Knowing the necessity of improving the wireless security, this TCC describes the implementation of security mechanisms in the Wi-Fi environment, inhibiting the behavior of stations that are considered malicious and developing a new authentication layer, showing how safe, reliable and manageable the wireless environment can be. Among the improvements are the captive portal utilization and a location-based authentication process.

Keywords: Wireless, 802.11, Fingerprinting, Location-based authentication, captive portal.

Page 7: TCC WifiDog

SUMÁRIO

LISTA DE ABREVIATURAS E SIGLAS..................... ................................................9

LISTA DE FIGURAS................................... ..............................................................11

LISTA DE TABELAS ................................... .............................................................13

INTRODUÇÃO ..........................................................................................................14

1 REDES LOCAIS SEM FIO ............................... ...................................................16 1.1 Redes sem fios 802.11 .............................. ......................................................16 1.2 Padrões ............................................ ................................................................17 1.3 Modelo OSI......................................... ..............................................................19 1.4 802.11 e as Camadas do Modelo OSI .................. ..........................................21 1.5 Hotspots e Captive Portals.............................................................................23

2 AUTENTICAÇÃO ....................................... .........................................................25

3 LOCALIZAÇÃO DE ESTAÇÕES SEM FIO.................... .....................................28 3.1 Triangulação....................................... .............................................................29 3.2 Fingerprinting ..................................... .............................................................30

4 SISTEMA DE LOCALIZAÇÃO DE ESTAÇÕES SEM FIO......... .........................31 4.1 Detalhes do Sistema ................................ .......................................................33

5 CENÁRIO ............................................................................................................34

6 MODELO PROPOSTO........................................................................................36 6.1 Autenticação Baseada na Localização................ ..........................................38 6.2 Estações Maliciosas ................................ .......................................................38

7 DESENVOLVIMENTO DO MODELO PROPOSTO................. ............................40 7.1 Instalação Captive portal – WifiDog ................ ..............................................40 7.2 Novo método de autenticação ........................ ...............................................42 7.2.1 Detalhes do funcionamento ........................................................................43

CONCLUSÃO .......................................... .................................................................47

TRABALHOS FUTUROS.................................. ........................................................49

Page 8: TCC WifiDog

REFERÊNCIAS.........................................................................................................52

APÊNDICE – CÓDIGOS PHP E ARQUIVOS TXT .............. .....................................54

Page 9: TCC WifiDog

LISTA DE ABREVIATURAS E SIGLAS

AES Advanced Encryption Standard

AM Attenuation Monitor

AMPOA Amplitude of Arrival

AOA Angle of Arrival

AP Access Point

ASCII American Standard Code for Information Interchange

CCMP Counter Mode CBC-MAC Protocol

DSSS Direct-Sequence Spread-Spectrum

EAP Extensible Authentication Protocol

FAST Flexible Authentication via Secure Tunneling

FHSS Frequency-Hopping Spread-Spectrum

GSM Global System for Mobile Communications

HR/FHSS High-Rate Frequency-Hopping Spread-Spectrum

IAPP Inter Access Point Protocol

IEEE Institute of Electrical and Electronic Engineers

IP Internet Protocol

ISO International Standards Organization

LAN Local Area Network

LEAP Lightweight Extensible Authentication Protocol

Page 10: TCC WifiDog

LLC Logical Link Control

MAC Media Access Control

OFDM Orthogonal Frequency Division Multiplexing

OSI Open Systems Interconnection

PEAP Protected Extensible Authentication Protocol

QoS Quality of Service

SIM Subscriber Identity Module

SNMP Simple Network Management Protocol

SSID Service Set Identifier

TKIP Temporal Key Integrity Protocol

TLS Transport Layer Security

TOA Time of Arrival

VLAN Virtual Local Area Network

WDS Wireless Distribution System

WEP Wired Equivalency Privacy

WLAN Wireless Local Area Network

WPA Wi-Fi Protected Access

Page 11: TCC WifiDog

LISTA DE FIGURAS

Figura 1: Exemplo de aplicabilidade de WLAN (3COM, 2003) .........................17

Figura 2: Padrões 802.11a, 802.11b e 802.11g (3COM, 2003) ........................18

Figura 3: Modelo OSI........................................................................................20

Figura 4: Padrões 802.11 e as camadas OSI ...................................................22

Figura 5: Padrões 802.11, as camadas OSI e Autenticação ............................23

Figura 6: Acesso web através de captive portal................................................24

Figura 7: Triangulação ......................................................................................29

Figura 8: Fingerprinting .....................................................................................30

Figura 9: Pontos mapeados no LABIN por Fingerprinting.................................31

Figura 10: Localização dos Access Points........................................................32

Figura 11: Abrangência dos Access Points ......................................................32

Figura 12: Exemplo de saída do comando iwlist...............................................33

Figura 13: Planta baixa LABIN..........................................................................34

Figura 14: Cenário atual do sistema .................................................................35

Figura 15: Estrutura de rede pós-implementação.............................................37

Figura 16: Diagrama rede wireless ...................................................................42

Figura 17: Processo de autenticação................................................................43

Figura 18: Tela inicial do WifiDog .....................................................................44

Figura 19: Matriz de Autenticação ....................................................................45

Page 12: TCC WifiDog

Figura 20: Matriz de Autenticação com Máscara..............................................45

Figura 21: Funcionamento do novo método de autenticação ...........................46

Page 13: TCC WifiDog

LISTA DE TABELAS

Tabela 1: Métodos, Protocolos e tipos de Criptografia .....................................25

Page 14: TCC WifiDog

14

INTRODUÇÃO

Atualmente é vertiginosa a velocidade com que novas tecnologias vêm se

disseminando. A cada ano surgem novas soluções no mercado que podem trazer

benefícios estratégicos, caso utilizados corretamente, tais como Access Point

(pontos de acesso wireless), Máquinas Virtuais, Telefonia IP, Frameworks,

Appliances de Rede, entre outros.

Acompanhando estas tendências, a Universidade Luterana do Brasil - ULBRA

- campus Guaíba, possui uma cobertura de rede wireless relativamente ampla,

cobrindo quase todo o prédio principal. Com o passar do tempo, naturalmente, a

preocupação com segurança de rede vem crescendo de forma intensa. Assim, o

primeiro passo, visando o propósito de gerência de rede, foi dado no momento em

que um sistema capaz de localizar estações sem fio dentro de suas dependências

foi desenvolvido.

Desta forma, a instituição, atualmente, dispõe de um sistema de localização

de estações sem fio que apresenta, de forma gráfica, a localidade em que

determinada estação se encontra dentro da área de abrangência da rede wireless.

Entretanto, por se tratar de um protótipo, alguns quesitos podem ser identificados

como pontos de falha. A sua precisão, por exemplo, está diretamente interligada à

confiabilidade e integridade das informações passadas pelas estações móveis.

Uma vez que a estação cliente é a responsável pela informação sobre sua

localização, tal dado passa a ser passível de alteração, visto que as mesmas

podem distorcê-las, de forma mal intencionada, antes de enviá-las ao servidor.

Assim sendo, o próximo passo a ser dado em direção a gerenciamento,

controle e segurança, seria a possibilidade de limitar o acesso apenas às estações

que estejam fisicamente dentro da universidade e que os responsáveis pela

administração da rede tivessem ciência e concordassem com que uma

determinada estação tivesse acesso ao serviço wireless oferecido.

Page 15: TCC WifiDog

15

Face ao exposto, este TCC aborda, de forma objetiva, embasamentos

teóricos referentes às redes wireless, padrões da família IEEE 802.11, o

relacionamento entre os padrões utilizados e as camadas do modelo OSI, os

métodos e técnicas utilizados para se localizar uma estação sem fio dentro de um

determinado perímetro de abrangência e propõe a implementação de um maior

controle no ambiente wireless (através de uma ferramenta de captive portal) e o

desenvolvimento de uma nova etapa no processo de autenticação, baseando-se na

localização das estações. O mesmo visa, ainda, ampliar conhecimentos na área de

segurança de rede e ambiente wireless e implementar as melhorias de segurança

necessárias para que tais funcionalidades sejam concretizadas.

Este documento encontra-se dividido em 5 partes: Referencial Teórico,

Sistema Atual, Solução Proposta, Desenvolvimento e Conclusões. Na primeira, são

expostos conceitos para que o leitor se identifique com ambiente onde este

trabalho está sendo desenvolvido. As demais dão foco ao sistema atual, à solução

proposta para melhorias de segurança, à forma como decorreu toda a parte de

desenvolvimento e testes, aos trabalhos futuros e a quais resultados pôde-se

chegar.

Page 16: TCC WifiDog

16

1 REDES LOCAIS SEM FIO

1.1 Redes sem fios 802.11

Hoje em dia, o conceito mais básico de wireless está extremamente difundido:

comunicação sem fio. Com uma visão um pouco mais técnica, podemos dizer que

wireless é, na realidade, toda e qualquer comunicação entre dois ou mais pontos

distintos utilizando ondas eletromagnéticas onde não são utilizados fios como meio

físico.

WLAN (wireless local area network) ou rede local sem fio é exatamente o que

o nome se refere. Trata-se de aplicar a tecnologia wireless como meio de

comunicação em uma rede local de computadores, substituindo o cabeamento

convencional (PAHLAVAN, 2002). Desta forma, todas as funcionalidades das LAN

também estão presentes na WLAN, incluindo compartilhamento de arquivos,

compartilhamento de periféricos, acesso à internet entre outros recursos, como

exemplificado na figura 1(3COM, 2003).

Visto o amplo crescimento das tecnologias e a proliferação das WLANs (pela

simplicidade de sua configuração básica e por não exigir muitos recursos) foram

determinados padrões para que sua utilização fosse eficaz e coerente. Assim

sendo, através da IEEE (Institute of Electrical and Electronics Engineers) foi

desenvolvido o padrão 802.11 para rede wireless, abordado mais profundamente

no item a seguir.

Ainda considerando esta disseminação, muitos locais passaram a oferecer

acesso livre à internet, através da tecnologia wireless. Quesito que será explicado

no item 1.5 desta monografia.

Page 17: TCC WifiDog

17

Figura 1: Exemplo de aplicabilidade de WLAN (3COM, 2003)

1.2 Padrões

O padrão 802.11 é um membro da família IEEE 802, sendo este último o que

trata de especificações para as tecnologias de redes locais (LAN). O padrão IEEE

802.11 original, estabelecido em junho de 1997, definia um sistema cuja banda

fosse 2,4GHz com uma taxa de dados máxima de 2Mbps (3COM, 2003). Esta

tecnologia ainda existe, mas não deve ser considerada para novas implantações.

Hoje em dia, existem duas categorias básicas no padrão IEEE 802.11. A primeira

são aquelas que especificam os protocolos fundamentais para um sistema wireless

completo: 802.11a, 802.11b e 802.11g. Já a segunda categoria, é composta por

extensões endereçadas às fragilidades ou para adicionar novos atributos aos

Page 18: TCC WifiDog

18

padrões da primeira categoria. São eles: 802.11d, 802.11e, 802.11f, 802.11h,

802.11i, 802.11j. A figura 2 (3COM, 2003) mostra maiores detalhes a respeito da

primeira categoria:

Figura 2: Padrões 802.11a, 802.11b e 802.11g (3COM, 2003)

É importante salientar que existem algumas considerações a serem feitas

quando trabalhando com estes padrões. Como por exemplo:

- 802.11b: não indicado para aplicações que utilizem muita banda, porém se a

intenção é uma maior cobertura, deve ser considerado. Além disso, o custo dos

equipamentos que utilizam este padrão é inferior aos dos demais. Como principal

desvantagem, pode-se citar que a taxa de transferência deste padrão é muito baixa

e, por utilizar a freqüência 2,4GHz (mesma utilizada por alguns equipamentos de

telefone sem fio e Bluetooth), pode ter sua capacidade reduzida e sofrer

interferências.

- 802.11a: indicado nos casos de aplicações como voz (telefones IP) e vídeo,

em função da alta taxa de transmissão. O grande número de possíveis canais

distintos de freqüência permite que vários APs (Access Points) sejam alocados uns

mais próximos dos outros sem que haja interferência. Como desvantagem, pode-se

citar que não é compatível com o padrão 802.11b e seu custo é mais elevado para

proporcionar semelhante cobertura do sinal.

- 802.11g: indicado quando se necessita executar aplicações que consomem

muita banda e uma área de cobertura mais abrangente (semelhante ao padrão

802.11b). Além disto, ainda oferece compatibilidade com equipamentos padrão

802.11b. Como desvantagens têm-se alta possibilidade de interferência (por utilizar

freqüência semelhante ao padrão 802.11b) e, quando se operam ambos os

padrões em conjunto, sua capacidade fica reduzida ao do 802.11b.

Os demais padrões (3COM, 2003) são abordados a seguir:

Page 19: TCC WifiDog

19

- 802.11d: garante a interoperabilidade em WLANs cujos países ainda não

possuem o padrão 802.11 aplicado.

- 802.11e: define níveis de QoS (Quality of Service) para aplicações como

áudio e vídeo.

- 802.11f: trata-se do IAPP (Inter Access Point Protocol). Possibilita a

transição entre APs em um mesmo domínio, sem a necessidade de reassociação.

Utiliza mecanismos de WDS (Wireless Distribution System).

- 802.11h: adiciona um melhor controle entre potência de transmissão e

seleção de canais no padrão 802.11a.

- 802.11i: provê melhoria de segurança, incluindo a utilização do protocolo de

autenticação 802.1x e algoritmo criptográfico AES (Advanced Encryption

Standard).

- 802.11j: adição dos endereços canal de 4.9GHz para 5GHz para o padrão

802.11 (apenas no Japão).

1.3 Modelo OSI

Nos primórdios das redes de dados, as soluções para comunicação entre

computadores eram proprietárias, ou seja, apenas o próprio fabricante era capaz

de permitir a comunicação entre diferentes equipamentos.

Desta forma, para que a comunicação fosse viabilizada entre equipamentos

de fabricantes diferentes, a ISO (International Standards Organization)

desenvolveu um modelo de referência conhecido como OSI (Open Systems

Interconnection) (TORRES, 2008). Este modelo divide-se em sete camadas

hierárquicas, ou seja, cada uma destas camadas utiliza suas próprias funções ou

da camada anterior, ilustrado pela figura 3.

Page 20: TCC WifiDog

20

Figura 3: Modelo OSI

Seguem, abaixo, maiores detalhes de cada uma das camadas do modelo OSI

(PICCININ, 2007 e DUBENDORF, 2003):

Camada Física ( Physical Layer) - é responsável por prover características

físicas, elétricas, funcionais e procedimentos para ativar, manter e desativar

conexões entre duas partes. Está diretamente ligada à transmissão dos dados por

um canal de comunicação.

Trata-se da única camada que possui acesso físico ao meio de transmissão

da rede, ou seja, a camada física tem como função básica a adaptação do sinal ao

meio de transmissão.

Camada de Enlace ( Data Link Layer) - tem por função detectar e,

opcionalmente, corrigir erros que possam ocorrer no nível físico. É responsável,

ainda, pela transmissão e recepção de quadros e pelo controle de fluxo. Ela

também estabelece um protocolo de comunicação entre sistemas diretamente

conectados.

Camada de Rede ( Network Layer) - é responsável pelo endereçamento dos

pacotes, convertendo endereços lógicos em endereços físicos (ou IP), de forma

que os pacotes consigam chegar corretamente ao destino. Essa camada também

determina a rota que os pacotes irão seguir para atingir o destino, baseada em

fatores como condições de tráfego da rede e prioridades.

Page 21: TCC WifiDog

21

Camada de Transporte ( Transport Layer) – como função principal, esta

camada aceita dados da camada de sessão, os quebra em unidades menores

(caso seja necessário), os encaminha para a camada de rede e assegurar que

todas as partes chegarão corretamente ao outro extremo. Protocolos de transporte

são empregados para estabelecimento, manutenção e liberação de conexões de

transporte que representam um caminho duplo para os dados entre dois endereços

de transporte.

Camada de Sessão ( Session Layer) – Através de “conexões virtuais”

(estabelecidas quando a estação transmissora troca informações com a receptora)

esta camada é capaz de gerenciar as atividades das camadas inferiores,

informando que deve se iniciar e manter um link de comunicação. Seria algo

semelhante ao que ocorre quando alguém se conecta a uma rede. Uma vez

logado, a conexão é mantida até que o logoff seja executado, mesmo sem acesso

contínuo à rede. Esta camada não é utilizada na arquitetura TCP/IP.

Camada de Apresentação ( Presentation Layer) – converte o formato do

dado recebido pela camada de Aplicação em um formato comum a ser usado na

transmissão desse dado, ou seja, um formato entendido pelo protocolo usado. Um

exemplo comum é a conversão do padrão de caracteres (código de página)

quando, por exemplo, o dispositivo transmissor usa um padrão diferente do ASCII,

por exemplo. Pode ter outros usos, como compressão de dados e criptografia.

Semelhante à camada de sessão, esta camada também não é utilizada na

arquitetura TCP/IP.

Camada de Aplicação ( Application Layer) – opera como interface entre o

protocolo de comunicação e o aplicativo que pediu ou receberá a informação

através da rede. Por exemplo, ao solicitar a recepção de e-mails através do

aplicativo de e-mail, este entrará em contato com a camada de Aplicação do

protocolo de rede efetuando tal solicitação. Tudo nesta camada é direcionado aos

aplicativos.

1.4 802.11 e as Camadas do Modelo OSI

Poder-se-ia dizer que o IEEE 802.11 é apenas mais uma camada de link que

pode utilizar o 802.2/LLC (Logical Link Control), o que omitiria alguns detalhes

(GAST, 2002). Entretanto, são estes detalhes que fazem com que este padrão

Page 22: TCC WifiDog

22

funcione tão bem. A especificação original do 802.11 incluía o 802.11 MAC (Media

Access Control) e duas camadas físicas: FHSS (Frequency-Hopping Spread-

Spectrum) e DSSS (Direct-Sequence Spread-Spectrum). Revisões posteriores à

802.11 adicionaram outras camadas físicas, como, por exemplo, o 802.11b, que

especifica o HR/DSSS (High-Rate Direct-Sequence Spread Spectrum), ou o

802.11a e a 802.11g, que descreve uma camada física baseada em OFDM

(Orthogonal Frequency Division Multiplexing).

O 802.11 permite acesso à rede para dispositivos móveis e, para isso, uma

série de melhorias foram implementadas no MAC. Como resultado, o MAC 802.11

é extremamente mais complexo que os MAC dos demais padrões da família IEEE

802 (GAST,2002).

A figura 4, baseada em (3COM, 2000), demonstra em que ponto os padrões

da família 802.11 operam dentro do modelo OSI.

Figura 4: Padrões 802.11 e as camadas OSI

Page 23: TCC WifiDog

23

Já a figura 5, baseada na disponível em (JAVVIN, 2007), demonstra maiores

detalhes destas camadas, inclusive com os níveis de autenticação, que serão

abordados no decorrer deste TCC.

Figura 5: Padrões 802.11, as camadas OSI e Autenticação

1.5 Hotspots e Captive Portals

Mais uma comprovação deste crescimento que a tecnologia wireless tem

sofrido é a ampliação cada vez mais notável de zonas públicas com cobertura Wi-

Fi, sendo hotspot o nome utilizado para identificar tais locais. Normalmente, os

hotspots são encontrados em locais públicos como aeroportos, hotéis e shoppings,

nos quais o acesso à internet é liberado desde que sejam utilizados dispositivos

compatíveis com redes Wi-Fi, como laptops, handhelds e smartphones.

Uma vez que existe um hotspot, é necessário que o mesmo possa ser

gerenciado e, nestes casos, normalmente, costuma-se utilizar uma solução

denominada captive portal. Captive portal é uma ferramenta capaz de tornar o

browser uma ferramenta de autenticação (TELCO, 2008). Nesta arquitetura, todo o

tráfego é direcionado para o captive portal, o qual retorna uma página web para o

browser do sistema solicitante, para que sejam informadas credenciais que liberem

tal acesso ou que novas credenciais sejam criadas. Caso as credenciais sejam

aceitas, dinamicamente, são realizadas alterações no firewall do gateway liberando

a navegação bem como demais recursos disponíveis no hotspot. Em alguns casos,

principalmente naqueles em que o próprio Access Point dispõe de um sistema

interno de gateway, é utilizado um servidor de autorização/autenticação para

atender às solicitações de todos os APs do ambiente. A figura 6, a seguir, ilustra a

Page 24: TCC WifiDog

24

execução de todo o processo, desde a requisição inicial da estação cliente até o

sucesso no acesso à página solicitada.

Figura 6: Acesso web através de captive portal

Page 25: TCC WifiDog

25

2 AUTENTICAÇÃO

O padrão IEEE 802.11 oferece dois métodos para garantir a segurança dos

dados: criptografia e autenticação. Sendo existentes, neste último, dois métodos de

autenticação: Open System e Shared Key.

Open System – é o sistema padrão de autenticação. Neste, qualquer estação

que solicitar a associação à rede será aceita. Trata-se de um sistema nulo de

autenticação.

Shared key – neste método, tanto a estação que solicita acesso quanto a

autenticadora (seja um AP ou outra estação) necessitam que uma chave secreta

seja compartilhada entre elas.

A tabela 1, abaixo, mostra o relacionamento entre os protocolos, os tipos de

autenticação e criptografia utilizados no padrão 802.11. Em seguida, cada um

deles é explicado individualmente.

Tabela 1: Métodos, Protocolos e tipos de Criptografia

Suporte 802.1x Protocolo Autenticação Criptografia

Open

WEP RC4

TKIP DISABLED

WPA Shared

AES-CCMP

LEAP

FAST

PEAP

SIM

ENABLED EAP

TLS

Page 26: TCC WifiDog

26

Seguem as definições do tipo de protocolo, sua autenticação e sua

criptografia (estes dois últimos apenas quando cabíveis) (DÍGITRO, 2007 e

MICROSOFT, 2008). Iniciando por aqueles que não possuem suporte ao 802.1x:

WEP (Wired Equivalency Privacy) – protocolo de autenticação que faz uso

de criptografia baseada no RC4. Por utilizar a mesma chave para todos que

acessam a mesma rede, caracteriza-se por ser um protocolo não muito seguro,

mas ainda em uso, principalmente em residências.

• RC4 – algoritmo de criptografia de fluxo muito utilizado em softwares e

protocolos como o SSL (Secure Socket Layers).

WPA (Wi-Fi Protected Access) – protocolo de autenticação substituto do

WEP, melhorando a atribuição de chaves dinâmicas, a força da criptografia, a não

repetição de chaves e o uso de funções hash nas mensagens assegurando a

integridade dos dados.

• TKIP (Temporal Key Integrity Protocol) – Algoritmo de criptografia

baseado em chaves que se alteram a cada novo envio de pacote, o

que garante maior segurança.

WPA2 (Wi-Fi Protected Access 2) – evolução do WPA especificado pelo

padrão IEEE 802.11i. Melhora a criptografia através da utilização do AES.

• AES (Advanced Encryption Standard) – técnica de criptografia de

dados simétrica (256bits).

Já com o suporte ao 802.1x habilitado:

EAP (Extensible Authentication Protocol) – Protocolo para controle de

acesso à rede que suporta diversos métodos (senhas, token, Kerberos, certificados

digitais, chave pública etc...).

• LEAP (Lightweight Extensible Authentication Protocol) - Método de

autenticação que utiliza senhas e servidores RADIUS.

• FAST (Flexible Authentication via Secure Tunneling) – Método de

autenticação proposto pela Cisco em substituição ao LEAP. Utiliza uma

chave pré-compartilhada chamada PAC (Protected Authentication

Credential).

Page 27: TCC WifiDog

27

• PEAP (Protected Extensible Authentication Protocol) - Método de

autenticação que utiliza certificado digital e outros sistemas, como a

própria senha do usuário.

• SIM (Subscriber Identity Module) – Método para autenticação e

distribuição de chave de sessão utilizando GSM-SIM (Global System

for Mobile Communications – Subscriber Identity Module).

• TLS (Transport Layer Security) – Método de autenticação que utiliza

certificado digital.

Page 28: TCC WifiDog

28

3 LOCALIZAÇÃO DE ESTAÇÕES SEM FIO

Existem, atualmente, dois modelos para que se possa localizar uma estação

sem fio em um ambiente, conhecidos como Mobile Based e Network Based. No

primeiro modelo, o cliente obtém a sua localização a partir de informações

adquiridas da própria infra-estrutura de rede (APs cuja localização seja conhecida).

Já no segundo modelo, a infra-estrutura efetua “consultas” nas estações para

determinar sua localização.

Desta forma, existem três meios de se localizar uma estação móvel, de

acordo com os modelos expostos, sendo eles baseados na potência do sinal, na

diferença do tempo de chegada do sinal ou no ângulo em que o sinal chega à

estação (SURIS, 2007). Estas técnicas são conhecidas, respectivamente, como

AMPOA (Amplitude of Arrival), TOA (Time of Arrival) e AOA (Angle of Arrival). É

importante ressaltar que a eficácia destes sistemas está diretamente relacionada

ao ambiente, ou seja, torna-se mais complexo de acordo com as interferências

sofridas pelo sinal, as reflexões, refrações e a atenuação.

Abaixo, uma sucinta explicação a respeito de cada uma destas três técnicas:

AMPOA – mede-se a amplitude com que o sinal chega à estação. Neste

caso, normalmente, utiliza-se ferramentas como o NetStumbler ou comando

IWLIST (disponível em algumas distribuições do Linux) para se determinar esta

amplitude.

TOA – mede-se o tempo entre o envio do sinal do ponto de referência até a

estação que se deseja localizar, possibilitando determinar o raio equivalente à

distância entre tais pontos. Considerando que as ondas eletromagnéticas transitam

a uma velocidade constante, próxima a da luz, é imprescindível que os relógios

Page 29: TCC WifiDog

29

(estação e AP) estejam perfeitamente sincronizados, caso contrário haverá erros

no cálculo.

AOA – mede-se o ângulo com que o sinal chega à estação baseado em

antenas direcionais em cada AP. Assim, de acordo com a amplitude com que cada

antena recebe o sinal, é possível traçar uma linha reta até o local onde a estação

se encontra.

Maiores informações podem ser obtidas em (XIANG, 2004) e (TAHERI, 2004).

Utilizando AMPOA, existem 2 técnicas para localizar estações móveis,

conhecidas como Triangulação e Fingerprinting, que serão explicadas a seguir.

3.1 Triangulação

Uma vez que a amplitude com que o sinal chega à estação é sabida, é

possível que a distância entre o AP e tal estação seja inferida. Assim sendo, o valor

obtido representa a circunferência existente entre o ponto de referência e a estação

móvel que se deseja localizar.

Para viabilizar este método de localização, é necessária a existência de

outros pontos de referência (preferencialmente três ou mais), permitindo que, a

partir destes, sejam inferidas novas circunferências, possibilitando, assim, a

determinação do ponto de intersecção das mesmas. A figura 7 exemplifica tal

situação:

Figura 7: Triangulação

Page 30: TCC WifiDog

30

3.2 Fingerprinting

Ainda utilizando a técnica do AMPOA, pode-se mapear todo o perímetro de

cobertura do sinal, assim como um site survey. Neste método, a área de cobertura

é dividida em espaços físicos menores (quadrantes) e é realizada uma

amostragem da cobertura do sinal. Cada quadrante representa uma entrada na

tabela do fingerprinting, assim, quando a estação informa a potência do sinal entre

o mesmo e os APs disponíveis, o sistema efetua uma consulta em suas tabelas

para determinar sua localização.

A figura 8 (BAHL, 2000) exemplifica o mapeamento através da técnica de

fingerprinting.

Figura 8: Fingerprinting

Page 31: TCC WifiDog

31

4 SISTEMA DE LOCALIZAÇÃO DE ESTAÇÕES SEM FIO

Na ULBRA campus Guaíba já está em uso um sistema de localização de

estações sem fio, baseado na técnica de fingerprinting, devidamente desenvolvido

e documentado (SURIS, 2007). Atualmente, tal sistema, contempla a área do

LABIN (Laboratório de Informática), onde cada uma das dependências foi mapeada

em nove pontos (coletadas três amostras intercaladas em dez segundos e tirada a

média). Abaixo, figura 9 (SURIS, 2007), o mapeamento realizado:

Figura 9: Pontos mapeados no LABIN por Fingerprinting

Já as figuras 10 e 11, respectivamente, demonstram a localização dos Access

Points e suas abrangências.

Page 32: TCC WifiDog

32

Figura 10: Localização dos Access Points

Figura 11: Abrangência dos Access Points

Page 33: TCC WifiDog

33

4.1 Detalhes do Sistema

O sistema foi desenvolvido em PHP e dividido em dois módulo, cliente e

servidor.

O módulo instalado na estação do usuário a ser localizado, por meio de sua

interface de rede, capta todos os pontos de acesso que estão ao seu alcance

juntamente com suas respectivas potências (através do comando IWLIST, já

comentado anteriormente). Uma vez capturados, tais dados são enviados ao

servidor para que sejam realizados os cálculos necessários.

Figura 12: Exemplo de saída do comando iwlist

Por sua vez, o módulo servidor, recebe as informações enviadas pelo cliente

e compara-as com as tabelas já mapeadas através do fingerprinting, determinando,

assim, sua localização.

Maiores informações a respeito das técnicas empregadas neste sistema, bem

como seu funcionamento, podem ser adquiridas em (SURIS, 2007).

Page 34: TCC WifiDog

34

5 CENÁRIO

O cenário para implementação destas alterações no sistema foi o mesmo no

qual o atual já opera, ou seja, no LABIN – figura 13.

Figura 13: Planta baixa LABIN

Embora o ambiente físico seja o mesmo, a cobertura wireless do ambiente

sofreu alterações consideráveis. Na ocasião da implantação do sistema de

localização, três access points estavam fisicamente instalados em seu perímetro,

sendo seus respectivos SSIDs: LABIN (localizado na sala de Pesquisa e

Servidores), LABIN2 (localizado na sala da Coordenação do Curso de Sistemas de

Informação) e RTL8186-GW (localizado na entrada do auditório). Na época,

algumas estações sem fio, conseguiam se associar à SSID professores, cuja

localização era no andar térreo, próximo a sala dos professores do curso de

Administração.

Page 35: TCC WifiDog

35

Atualmente, o levantamento via fingerprinting foi totalmente refeito. Apenas

dois access points se encontram no mesmo plano (os demais se encontram em

outros andares) e o mapeamento varia entre nove e vinte coletas por sala

(dependendo do tamanho da mesma).

Abaixo, figura 14, seguem a nova localização dos access points, seus SSIDs

e sua abrangência:

Figura 14: Cenário atual do sistema

Existem, no mínimo, duas característica interessantes neste ambiente (para

fins acadêmicos). A primeira é que cada access point possui um SSID diferente, ou

seja, uma vez sabendo qual SSID a estação está utilizando, fica óbvio a qual AP a

mesma está associada. Tal situação normalmente não ocorre em outros

ambientes, como o corporativo, por exemplo. A segunda é o fato de não haver

nenhum protocolo de autenticação ativo no momento, ou seja, a cobertura é em

broadcast sem que sejam necessárias senhas ou criptografias específicas para sua

utilização, mais uma característica pouco utilizada em empresas.

Page 36: TCC WifiDog

36

6 MODELO PROPOSTO

Antes de descrever o modelo proposto e seu desenvolvimento, são

necessárias algumas considerações. Com base no referencial passado e tendo

conhecimento do serviço Wi-Fi que a Ulbra campus Guaíba oferece, pode-se

classificá-la como um hotspot. Como principal característica deste ambiente, pode-

se citar o fato de todos os APs possuírem SSID distintos e em broadcast (“visíveis”

para todos os dispositivos compatíveis com Wi-Fi). Outro fator importante a ser

considerado, por sua influência no decorrer do desenvolvimento, é a ausência de

autenticação, ou seja, trata-se de um open-system sem criptografia.

Sendo a segurança o foco deste trabalho, o primeiro passo dado seria a

implementação de um maior controle e gerenciamento da cobertura wireless, bem

como dos acessos realizados pelas estações a ela conectadas. Como explicado

anteriormente, uma vez que se disponibiliza um hotspot e se faz necessário o seu

gerenciamento, utiliza-se um captive portal. Neste caso, foi escolhido o WifiDog

(http://dev.wifidog.org), citado em sites especializados (LENCZNER, 2008). Tal

escolha seguiu alguns critérios, como o fato de ser um produto de código aberto,

desenvolvido em PHP (assim como o sistema de localização já existente) e C e

existir um número considerável de citações em sites e fóruns da área.

Realizadas as considerações e tendo conhecimento do sistema de

localização já existente, a solução proposta foca a implementação de um captive

portal e o desenvolvimento de um novo método de autenticação: baseado na

localização da estação.

Page 37: TCC WifiDog

37

A figura 15 representa como a estrutura de rede ficou após a solução ser

colocada em prática, onde cada um dos laboratórios possui uma rede local virtual

específica e diferenciada e, apenas o ambiente Wi-Fi trafega pelo captive portal

(CP).

Figura 15: Estrutura de rede pós-implementação

Page 38: TCC WifiDog

38

6.1 Autenticação Baseada na Localização

Conforme citado, existem várias formas de se autenticar a uma rede wireless,

no entanto, todas elas utilizam algum tipo de senha, seja por token, servidor

RADIUS, certificado digital ou a própria senha de rede do usuário. Sabe-se,

entretanto, que nenhum tipo de senha é 100% segura, ou seja, qualquer um destes

métodos pode ser quebrado (mesmo que o tempo para fazê-lo seja um impeditivo).

Tendo em mente o aumento da segurança, a localização geográfica da

estação no ambiente passou a ser um fator autenticador, ou seja, além de utilizar

os métodos já existentes, o sistema considera a área de abrangência da cobertura

da rede wireless e, caso a estação esteja dentro de uma sala de aula ou da

biblioteca, por exemplo, através de informações capturadas de sua estação, o

servidor libera o acesso à rede.

Assim, pode-se considerar que, um usuário mal intencionado que esteja

utilizando a rede wireless do campus, estando no estacionamento ou na

lanchonete (áreas livres), por exemplo, pode ter o seu acesso revogado, não mais

representando uma ameaça em potencial. Neste caso, a autenticação baseada na

localização, serve como um mecanismo capaz de ampliar a segurança.

6.2 Estações Maliciosas

Como o próprio título do trabalho sugere, são focadas as questões de

autenticação e estações maliciosas. O novo método de autenticação já foi citado e

sua utilização exemplificada. Referente às estações maliciosas é importante

explicar o tipo de comportamento esperado e impacto que tais comportamentos

podem ter, tanto na estrutura quanto em seus utilizadores.

É considerada uma estação maliciosa toda aquela que possa estar

oferecendo risco à integridade da rede (disponibilidade de serviços), realizando

acesso a conteúdos indevidos (invasão de servidores, estações de usuários e

funcionários), usufruindo de recursos (utilizando a conexão com a internet para

qualquer fim, servidores de e-mail para envio de SPAMs), disseminando vírus entre

outros. Uma simples falha no cadastro dos utilizadores de seus recursos pode

causar muito mais que um simples problema de controle, podendo chegar a

questões judiciais e multas relativamente elevadas (MOREIRA, 2008).

Page 39: TCC WifiDog

39

Para inibir este tipo de comportamento, inicialmente, é necessário manter

uma base atualizada das pessoas que têm autorização para utilizar a rede

acadêmica e seus respectivos logs de acesso (facilitado pela utilização de um

captive portal que possua este suporte).

Page 40: TCC WifiDog

40

7 DESENVOLVIMENTO DO MODELO PROPOSTO

7.1 Instalação Captive portal – WifiDog

Visto que a primeira etapa do desenvolvimento deu foco à arquitetura

estrutural da solução proposta, foi montado um ambiente de teste que pudesse ser

fiel à realidade encontrada no ambiente produtivo. Assim, a estrutura de hardware

inicial ficou da seguinte forma:

• dois notebooks, sendo um com duas interfaces de rede (wireless e

física) e o outro apenas com a interface wireless habilitada;

• um modem router, conectado à internet via ADSL.

Já referente aos softwares utilizados, foram necessários:

• Ubuntu Linux 7.10 desktop (host);

• VMware Workstation 6.0 para Linux;

• Ubuntu Linux 6.06 server;

• Apache WebServer;

• PHP;

• Banco de Dados PostgreSQL 8.1;

• WifiDog Captive Portal e Authentication Server.

Com base na técnica de virtualização (HENZE, 2006), foi instalado, no

notebook com as duas interfaces ativas, um servidor Ubuntu 6.06 utilizando o

Ubuntu 7.10 como host, sendo cada interface mapeada no servidor para emular o

seu funcionamento em produção. Ainda neste servidor, os demais softwares

Page 41: TCC WifiDog

41

(Apache, PHP, PostgreSQL e Postfix) foram instalados como pré-requisitos do

captive portal.

Utilizando o outro notebook, apenas no ambiente wireless, foram realizadas

tentativas de conexões com a internet, sendo apresentada, em todas as vezes, a

tela do WifiDog, conforme esperado. Assim que as credencias previamente criadas

foram informadas, a navegação ocorreu corretamente, validando o teste inicial.

Uma vez que os testes iniciais foram efetivos, foi montado um laboratório na

própria Ulbra, onde um desktop foi preparado para receber a solução. Sendo

necessários os seguintes requisitos:

Software:

• Ubuntu Linux 8.04 server;

• Apache WebServer;

• PHP;

• Banco de Dados PostgreSQL 8.3;

• WifiDog Captive Portal e Authentication Server.

Hardware:

• Duas interfaces de rede;

• 1Gb de memória RAM.

Foi utilizada a versão 8.04 do Ubuntu Server no ambiente produtivo por

possuir melhorias em relação às versões anteriores e maior suporte a novos

hardwares.

Foi instalado um Access Point (modelo DWL-900AP+), conectado a uma das

interfaces de rede existentes no servidor e configurado o WifiDog para gerenciar as

conexões. O SSID disponibilizado foi “wifidog”, open-system em broadcast. Para

este AP, o range do DHCP foi 10.2.9.100 a 10.2.9.199.

Pra viabilizar o funcionamento da solução, foi criada uma nova VLAN

(10.2.9.0/24), no switch layer 3 (HENZE, 2006), para ser utilizada pelo ambiente

wireless, segmentando, assim a rede do campus. A figura 16 ilustra como a

solução ficou configurada.

Page 42: TCC WifiDog

42

Figura 16: Diagrama rede wireless

Concluída esta etapa, passou-se para a integração do sistema de

autenticação existente no WifiDog com o sistema de localização, utilizando PHP

para desenvolvimento.

7.2 Novo método de autenticação

O sistema de autenticação foi dividido em 3 partes. O módulo que fica em

execução na estação do usuário, o sistema autenticador e localizador no Auth-

server do WifiDog e o sistema de monitoramento que fica instalado no Attenuation

Monitor (AM). Antes da explicação de cada um dos módulos, faz-se necessário um

breve esclarecimento acerca do AM.

O Attenuation Monitor, ou AM, trata-se de um desktop com uma interface de

rede cabeada e uma wireless. Sua principal função é tirar um snapshot dos

obstáculos, ou seja, sempre que é disparado o processo de autenticação pelo

Auth-server, o AM executa uma varredura no ambiente e atualiza, dinamicamente,

as tabelas de fingerprinting. O objetivo deste processo é manter as tabelas

atualizadas de acordo com os obstáculos dinâmicos que podem estar interferindo

no sinal wireless no momento da localização e autenticação.

Retornando ao sistema propriamente dito, no módulo localizado na estação

do cliente (server_user.php), são configurados os access points a serem

considerados para a localização e a interface de rede da estação que deverá ter

seu ganho, MAC e SSID coletados. O mesmo fica em execução constantemente,

Page 43: TCC WifiDog

43

com a porta 1234 em listening, para que o servidor WifiDog possa coletar tais

informações.

O sistema disponibilizado no Auth-server do WifiDog é responsável por

disparar o processo de atualização das tabelas de fingerprinting localizadas no

Attenuation Monitor, conectar-se à estação cliente para coletar as informações

referentes ao ganho, MAC e SSID (conforme citado no parágrafo anterior) e validar

estes dados (juntamente com o usuário e senha informado) com a tabela de

fingerprinting devidamente atualizada pelo AM.

O sistema instalado no AM, por sua vez, fica aguardando, na porta 1235, o

comando do WifiDog para iniciar o seu processo de atualização das tabelas.

Face ao exposto, a figura 17 demonstra, de forma gráfica, o funcionamento

deste processo.

Autenticação

OK (Open-System)

GET

Usuário/Senha ?

Estação AP WifiDog

AM’s

Associação OK

Usuário/SenhaAtualização Fingerprint

Dados AtenuaçãoLocalização

Dados (AP)

OK / NOK Localização

LABIN

Internet

Redirect

Figura 17: Processo de autenticação

7.2.1 Detalhes do funcionamento

Para a viabilização deste novo processo, foram necessárias algumas

alterações no arquivo Authenticator.php, localizado no Auth-server do WifiDog.

Page 44: TCC WifiDog

44

Foram adicionadas duas novas classes, UpdateFP e Location, que entram

em execução no momento em que o usuário clica em “Login” na tela de

autenticação do WifiDog, ilustrada abaixo pela figura 18.

Figura 18: Tela inicial do WifiDog

Dentro do UpdateFP.php, já estão inseridas as coordenadas (linha e coluna

na tabela de fingerprinting) de localização dos access points e do AM. Assim, no

momento em que o usuário informa suas credenciais de acesso e clica no botão

citado, a primeira classe cria um novo objeto updatefp e executa o método update.

Neste momento, o AM realiza uma leitura do ambiente (potência entre ele e o AP

informado) e verifica quais células do fingerprinting devem ser atualizadas de

acordo com os obstáculos encontrados. Concluída esta etapa, as tabelas são

atualizas, substituiindo os arquivos “MACaddressAP.txt” localizados em /include do

Auth-server.

Ao término desta etapa, o location.php entra em execução. Nele, o Auth-

server conecta-se ao cliente, capta as informações já citadas, realiza uma busca

nos arquivos previamente atualizados pelo updatefp.php e retorna uma string com

a posição em que se encontra, no formato “linha, coluna”.

Voltando ao Authenticator.php, é realizada uma varredura numa matriz de

autenticação (pol_acesso.txt), de acordo com o retorno obtido na etapa anterior.

Tal arquivo contém 0s e 1s representando a cobertura da rede Wi-Fi. Nos locais

Page 45: TCC WifiDog

45

em que um “0” se encontra, o acesso é negado, caso exista um “1”, liberado. As

figuras 19 e 20 ilustram tal matriz.

Figura 19: Matriz de Autenticação

Figura 20: Matriz de Autenticação com Máscara

Todos os códigos e arquivos, criados e alterados encontram-se no Apêndice.

Lab 07

Lab 05

Lab 04

Sala Coordenação

Lab 06

Lab 03

Pesquisa

Lab 01 Lab 02

Lab Especializado At.

Cor

Page 46: TCC WifiDog

46

Unindo o funcionamento do captive portal com o processo de autenticação

desenvolvido, temos o processo completo de funcionamento da ferramenta,

ilustrado pela figura 21.

Figura 21: Funcionamento do novo método de autenticação

Page 47: TCC WifiDog

47

CONCLUSÃO

Inicialmente, é importante citar que, após a realização de algumas pesquisas,

não foi identificada nenhuma solução comercial que implementasse a autenticação

por meio de localização das estações sem fio ou que fosse capaz de limitar o

acesso à rede Wi-Fi por perímetro, o que funcionou como um forte incentivo para a

concretização deste TCC.

Considerando todo o caminho percorrido até a finalização deste trabalho são

válidas algumas considerações. A primeira delas é o fato de já ter experiência na

área e já ter conhecimentos prévios em alguns conceitos, como virtualização,

VLANs e redes (HENZE, 2006), o que contribuiu de forma considerável no

embasamento teórico e aplicação das tecnologias e metodologias. Outro ponto

importante a ser comentado, é o espantoso número de ferramentas em código livre

disponíveis e o fato de sua documentação ser, normalmente, inversamente

proporcional à oferta dos produtos, refletindo diretamente em muito tempo de

pesquisa.

De fato, ocorreram alterações que não estavam previstas no TCCI, como a

utilização de um captive portal, cuja funcionalidade agregou valor à solução e

substituiu a idéia inicial de se utilizar firewalls entre o ambiente wireless e cabeado.

Dois pontos podem ser citados como sendo os mais trabalhosos: a

integração do captive portal com o proxy, pelo fato do WifiDog realizar alterações

dinâmicas no firewall, e o desenvolvimento em PHP, em função de não ter muita

experiência na área de desenvolvimento.

De qualquer forma, a solução realiza o que se promete, permite acesso

apenas a determinadas áreas e limita o acesso a rede apenas àqueles que

possuem credenciais, sendo este último fator extremamente importante para

Page 48: TCC WifiDog

48

eliminar riscos como o relatado por (MOREIRA, 2008). Assim, a rede wireless

acabou por se tornar mais segura que a própria rede cabeada, atualmente

disponível a qualquer usuário, sem credenciais exclusivas.

Observando o processo como um todo, acredita-se que a contribuição do

trabalho ao contexto que o mesmo se aplica é evidente. Tal solução pode ser

aplicada nos mais diversos ambientes e estruturas, o tipo de limitação do acesso

pode ser padronizada (acesso completo aos recursos, acesso apenas à navegação

ou acesso negado, por exemplo), ou seja, conforme citado no capítulo 8, existe

uma infinidade de customizações e melhorias possíveis.

Page 49: TCC WifiDog

49

TRABALHOS FUTUROS

Mesmo com a aplicação das soluções abordadas e a visível melhoria de

segurança da rede wireless oferecida pela Ulbra campus Guaíba, é possível

aperfeiçoar ainda mais esta solução.

Inicialmente, todos os testes foram realizados em um ambiente open-system,

ou seja, sem nenhuma autenticação e/ou criptografia. Uma melhoria possível, e de

bastante valia, seria o suporte aos demais tipos de autenticação, o que tornaria a

solução bastante completa.

Toda a solução foi desenvolvida sobre sistema operacional Linux, distribuição

Ubuntu. Pode-se considerar como melhoria o desenvolvimento da mesma solução

para outros sistemas operacionais, ou até mesmo utilizando alguma outra

linguagem que possa para garantir uma maior portabilidade (atendendo PDAs ou

Smartphones, por exemplo).

O atual sistema de localização é baseado na técnica de fingerprinting. Porém,

uma considerável melhoria que pode vir a ser feita posteriormente, é a substituição

desta técnica pela Triangulação, devido à maior precisão na coleta da informação

das estações que estejam tentando utilizar a rede Wi-Fi. Entretanto, tal alteração

implica diretamente na ampliação da estrutura wireless, visto que, para seu pleno

funcionamento, a Triangulação necessita de no mínimo três access points cobrindo

a área na qual a estação se encontra.

Outro ponto a ser melhorado, seria a adição de mecanismos de verificação de

autenticidade e integridade das informações repassadas pelas estações dos

usuários. Uma vez que o sistema se baseia nos dados obtidos através da estação

dos usuários, os mesmos podem ser alterados de forma mal-intencionada antes de

Page 50: TCC WifiDog

50

serem capturados pelo sistema, ou seja, a localização ficaria comprometida. Esta

melhoria, entretanto, chegou a ser estudada mais profundamente, sendo relatados

a seguir os passos para sua concretização.

O módulo que fica na estação deverá sofrer alterações, entre elas:

• Identificar o tipo de autenticação utilizado no SSID localizado;

• Forçar a estação a se associar a todos os SSIDs identificados;

• Enviar ao servidor as informações coletadas enquanto ainda se

encontra associado ao SSID corrente;

• Aguardar a validação do servidor para se desassociar do SSID

corrente e se associar ao próximo SSID localizado.

Para conseguir se associar ao AP correspondente, este módulo deverá utilizar

o tipo de autenticação configurada (característica determinada nas configurações

de cada access point, seja ela “Open System”, “Shared Key” ou com suporte a

“802.1x”), em cada um destes aparelhos e efetuar o processo de associação. Ou

seja, no momento em que a estação identifica o SSID ao qual se associará, deverá

identificar também qual tipo de autenticação utilizar para dar prosseguimento ao

processo.

Esta modificação no fluxo deve-se, também, em função das alterações que

serão realizadas no módulo servidor da aplicação que, atualmente, apenas coleta

estes dados e efetua os cálculos para que seja determinada a localização da

estação, mas que, a partir destas modificações, deverá validar a informação

passada pelo cliente no próprio AP associado.

Para que o servidor consiga a informação referente à potência do sinal, o

cliente precisa estar associado ao SSID correspondente ao AP que está sendo

acessado (visto que no gerenciador do AP são informados os clientes que estão

associados a ele no momento e qual o endereço MAC do cliente). Uma vez obtida

tal informação, através de SNMP (Simple Network Management Protocol), ela é

armazenada e informa-se ao cliente que o mesmo já pode se desassociar do SSID

atual e se associar ao próximo localizado.

Realizado este processo em todos os AP que cobrem a sua área de atuação

e de posse destas informações (obtidas a partir dos APs), as mesmas serão

Page 51: TCC WifiDog

51

confrontadas com as passadas pelo cliente. Caso haja coerência, a estação

receberá permissão para ingressar na rede (vale lembrar que, em função de

obstáculos, como pessoas caminhando no ambiente, os valores precisam ser

apenas aproximados e não exatamente idênticos).

Page 52: TCC WifiDog

52

REFERÊNCIAS

3COM Corporation. Technical Paper: IEEE 802.11b Wireless LANs . USA: 3Com Corporation, 2000.

3COM Corporation. White Paper: Deploying 802.11 Wireless LAN . USA: 3Com Corporation, 2003.

BAHL, Paramvir; PADMANABHAN, Venkata .N.; BALACHANDRAN, Anand. Enhancements to the RADAR User Location and Trackin g System . USA: Microsoft Research Technical Report, 2000.

DÍGITRO Tecnologia. Glossário Tecnológico . Coordenação Eng. Juliano Anderson Pacheco, desenvolvida por Adm. Claudio Brancher Kerber, apresenta termos tecnológicos na área de telecomunicações. Disponível em: http://www.digitro.com/glossario_digitro.php. Acesso em: 23 nov. 2007.

DUBENDORF, Vern A. Wireless Data Technologies – Reference Handbook . England: John Willey & Sons Ltd, 2003.

GAST, Matthew S. 802.11 Wireless Networks: The Definitive Guide . UK: O’Reilly & Associates, 2002.

HENZE, Allan. Projeto de Rede para Novo Datacenter da Thyssenkrup p Elevadores – Relatório de Estágio em Sistemas de In formação , Guaíba: Universidade Luterana do Brasil, 2006.

JAVVIN. WLAN Wireless LAN by IEEE 802_11, 802_11a, 802_11b( Wi-Fi), 802_11g, 802_11n . Disponível em: http://www.javvin.com/protocolWLAN.html. Acesso em: 21 set. 2007.

Page 53: TCC WifiDog

53

LENCZNER, Michael. Wireless Portals with WifiDog . Disponível em: HTTP://www.linuxjournal.com/article/8352. Acesso em: 20 maio 2008.

MICROSOFT Corporation. Networking – Wireless . Disponível em: http://msdn.microsoft.com/en-us/library/aa915901.aspx. Acesso em: 17 jun. 2008.

MOREIRA, Daniela. Lan house terá que pagar R$ 10 mil a vítima de proc esso por difamação . Disponível em: http://idgnow.uol.com.br/internet/2008/03/25/lan-house-tera-que-pagar-r-10-mil-a-vitima-de-processo-de-difamacao/. Acesso em: 22 maio 2008.

PAHLAVAN, Kaveh; LI, Xinrong; YLIANTTILA, Mika; LATVA-AHO, Matti. “Wireless Data Communication Systems ”, Wireless Communication Technologies – New Multimedia Systems , edited by MORINAGA, Norihiko; KOHNO, Ryuji; SAMPEI, Seiichi: KLUWER ACADEMIC PUBLISHERS, 2002. Page(s): 201-214

PICCININ. Camadas OSI . Disponível em: http://www-usr.inf.ufsm.br/~piccinin/. Acesso em: 21 set. 2007.

SURIS, Henrique A. Localização de Estações sem Fio IEEE 802.11 – Traba lho de Conclusão de Curso (Graduado em Sistemas de Informação), Guaíba: Universidade Luterana do Brasil, 2007.

TAHERI, Ali; SINGH, Arvider; AGU, Emmanuel. Location Fingerprinting on Infrastructure 802.11 Wireless Local Área Networks (WLANs) using Locus* . USA: Worcester Polytechnic Institute, 2004.

TORRES, Gabriel. The OSI Reference Model for Network Protocols . Disponível em: http://www.hardwaresecrets.com/article/431. Acesso em: 17 jun. 2008.

TELCO Project. CaptivePortal – Personal Telco Project . Disponível em: http://wiki.personaltelco.net/CaptivePortal. Acesso em: 17 jun. 2008.

XIANG, Z; SONG, S. A Wireless LAN-based Indoor Positioning Technology . USA: IBM, 204. Page(s): 617-626

Page 54: TCC WifiDog

54

APÊNDICE – CÓDIGOS PHP E ARQUIVOS TXT

Server_user.php:

<?php // configurações $server_ip="0.0.0.0"; // eu sou o servidor $server_port="1234"; // porta a ser acessada pelo cliente (wifidog) $times=25; // quantidade de vezes que será reali zado o scan $interface="eth0"; // nome da interface a realiza r o scan $num_aps=3; // loop infinito do servidor while (true){ // configuração dos pontos de acesso a serem consid erados $mac_ap1="00:0D:88:A6:CA:7D"; // wifidog $gain_ap1=0; $num_ap1=0; $mac_ap2="00:0D:88:A6:CA:7D"; // paris $gain_ap2=0; $num_ap2=0; $mac_ap3="00:0D:88:A6:CA:7D"; $gain_ap3=0; $num_ap3=0; // criação do socket $socket = socket_create (AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); $result = socket_bind($socket, $server_ip, $server _port); if (!$result){ socket_close($socket); die ("Could not bind server socket\n"); } $result=socket_listen($socket); print("\nServidor inicializado... aguardando novas conexões... ... ...\n"); $client = socket_accept($socket) or die("Could not accept incoming connection\n"); // wifidog conectado $data = socket_read($client, 1024);

Page 55: TCC WifiDog

55

print ("\n".$data."\n"); // loop para scan for ($loop=0; $loop < $times; $loop++){ $scan=""; exec ("iwlist ".$interface." scan", $scan); // re aliza o scan dos pontos de acesso $i = 0; $j = 0; $k = 0; $l = 0; while ($i < count($scan)){ $scan[$i] = trim($scan[$i]); if (substr($scan[$i],0,4)=="Cell"){ $line=explode(" ",$scan[$i]); $mac = $line[4]; $l=$l+1; } if (substr($scan[$i],0,4)=="Qual"){ $line = explode("=",$scan[$i]); $line = explode(" ", $line[2]); $gain = $line[0]; $k=$k+1; if ($mac==$mac_ap1) { $gain_ap1=$gain_ap1 + $gain; $num_ap1=$num_ap1+1; print ("AP1 =".$gain." -> ".$num_ap1." amostras \n"); } if ($mac==$mac_ap2) { $gain_ap2=$gain_ap2 + $gain; $num_ap2=$num_ap2+1; print ("AP2 =".$gain." -> ".$num_ap2." amostras \n"); } if ($mac==$mac_ap3) { $gain_ap3=$gain_ap3 + $gain; $num_ap3=$num_ap3+1; print ("AP3 =".$gain." -> ".$num_ap3." amostras \n"); } } $i = $i +1; } } print("\n"); if ($num_ap1==0){$num_ap1=1;} if ($num_ap2==0){$num_ap2=1;} if ($num_ap3==0){$num_ap3=1;} $media_ap1 = $gain_ap1 / $num_ap1; print("AP1 = ".$gain_ap1." / ".$num_ap1." = ".$med ia_ap1."\n\n"); $media_ap2 = $gain_ap2 / $num_ap2; print("AP2 = ".$gain_ap2." / ".$num_ap2." = ".$med ia_ap2."\n\n");

Page 56: TCC WifiDog

56

$media_ap3 = $gain_ap3 / $num_ap3; print("AP3 = ".$gain_ap3." / ".$num_ap3." = ".$med ia_ap3."\n\n"); // enviando dados para wifidog $dados = $num_aps.";".$media_ap1.";".$mac_ap1.";".$media_ap2 .";".$mac_ap2.";".$media_ap3.";".$mac_ap3; socket_write ($client, $dados, strlen ($dados)); // fechando socket print ("closing time...\n"); $arrOpt = array('l_onoff' => 1, 'l_linger' => 0); socket_set_block($client); socket_set_option($client, SOL_SOCKET, SO_LINGER, $arrOpt); socket_close($client); } ?>

Page 57: TCC WifiDog

57

Location.php:

<?php class LocationServer { function find($user_ip){ // configuração básica de variáveis $server_ip = $user_ip; // ip do servidor a ser obtido pelo wifidog $server_port="1234"; // porta de conexão com cliente // criação do socket e conexão $socket = socket_create(AF_ INET, SOCK_STREAM, 0) or die("Could not create socket\n"); socket_connect($socket,$ser ver_ip, $server_port) or die ("Socket error - no connection\n"); $data = "conectado... requi sitando scan de APs"; socket_write ($socket, $dat a, strlen($data)); $data = socket_read($socket , 1024); $dados= explode (";",$data) ; $ref_num=$dados[0]; // numero de APs encontrados $j=0; for ($i=1; $i < ($dados[0]* 2)+1; $i++){ $gain[$j] = $dados[ $i]; $mac[$j] = $dados[$ i+1]; $i=$i+1; $j=$j+1; } for ($compara=0; $compara<2; $compara++){ // buscando referencias nos arquivo s for ($i=0; $i<$ref_num; $i+ +){ $filename="/var/www /wifidog-auth/wifidog/classes/includes/".$mac[$i].".txt.".$c ompara; if ($arquivo=file($ filename)===FALSE){ print("\nEr ro lendo arquivo !!!\n"); exec ("touc h ".$filename); } else { $arquivo=fi le($filename); for ($l=0; $l<count($arquivo);$l++){ $li nha[$l]=explode ("\t",$arquivo[$l]); for ($c=0; $c<count($linha[$l]);$c++){ $dist[$i][$l][$c]=0; $dist[$i][$l][$c]=abs($linha[$l][$c]-$gain[$i]); } } } }

Page 58: TCC WifiDog

58

for ($i=0; $i<$ref_num; $i+ +){ for ($l=0; $l<count ($dist[$i]);$l++){ for($c=0;$c<count($dist[$i][$l]);$c++){ $po nto[$l][$c]=0; } } } for ($i=0; $i<$ref_num; $i+ +){ for ($l=0; $l<count ($dist[$i]);$l++){ for($c=0;$c<count($dist[$i][$l]);$c++){ $ponto[$l][$c]=$ponto[$l][$c]+$dist[$i][$l][$c]; } } } $pontol=0; $pontoc=0; for ($l=0; $l<count($ponto) ;$l++){ for($c=0;$c<count( $ponto[$l]);$c++){ if($ponto[$pontol][$pontoc]>$ponto[$l][$c]){ $po ntol=$l; $po ntoc=$c; } } } $arq_comp = fopen("/var/www /wifidog-auth/wifidog/classes/comparativo.txt", "a"); $comparativo = date("d H:i")."\t".$compara."\t".$pontol."\t".$pontoc."\n"; fwrite ($arq_comp,$comparat ivo ); fclose ($arq_comp); } $politica_f=file("/var/www/wifidog-auth/wifidog/classes/includes/pol_acesso.txt"); for ($l=0; $l<count($politica_f);$l++){ $politica[$l]=explode ("\t",$politica_f[$l] ); } return($politica[$pontol][$pontoc]); } } ?>

Page 59: TCC WifiDog

59

UpdateFP.php:

<?php class UpdateFP { function update(){ $alpha = 1; // conexao com o socket $server_ip = "10.2.9.101"; $server_port="1235"; $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); socket_connect($socket,$server_ip, $server_port) or die ("Socket error - no connection\n"); // aguarda a primeira conexão... vai vir o numero de aps encontrados $data = socket_read($socket, 1024); socket_write ($socket, $data, strlen($data) ); $ref_num=0; $ref_num=$data; // posicai do AM(x) $AI_x = socket_read($socket, 1024); socket_write ($socket, $data, strlen($data) ); // posicai do AM(y) $AI_y = socket_read($socket, 1024); socket_write ($socket, $data, strlen($data) ); $ok="ok"; for ($i=0; $i<$ref_num; $i++){ $data = socket_read($socket, 1024); $mac[$i]=$data; socket_write ($socket, $ok, strlen( $ok)); $data = socket_read($socket, 1024); $gain[$i]=$data; socket_write ($socket, $ok, strlen( $ok)); $data = socket_read($socket, 1024); $ssid[$i]=$data; socket_write ($socket, $ok, strlen( $ok)); } // buscando referencias nos arquivos for ($i=0; $i<$ref_num; $i++){ $filename="/var/www/wifidog-auth/wifidog/classes/includes/".$mac[$i].".txt"; $posicaoAP=file($filename.".pos"); $AP_x = abs($posicaoAP[0]); $AP_y = abs($posicaoAP[1]); if ($arquivo=file($filename.".1")== =FALSE){ print("\nErro lendo arquivo !!!\n"); exec ("touch ".$filename); } else { $small = 100;

Page 60: TCC WifiDog

60

$arquivo=file($filename.".1 "); for ($l=0; $l<count($arquiv o);$l++){ $linha[$l]=explode ("\t",$arquivo[$l]); for ($c=0; $c<count ($linha[$l]);$c++){ //algoritmo de subst do arquivo $DISTAI[$l] [$c]=(sqrt(pow(($AI_x - $l),2)+pow(($AI_y - $c),2))); $DISTAP[$l] [$c]=(sqrt(pow(($AP_x - $l),2)+pow(($AP_y - $c),2))); $dist = $DISTAP[$l][$c]+$DISTAI[$l][$c]; if ($dist < $small) {$small = $dist;} } } $nro_cel = 0; for ($l=0; $l<count($linha) ;$l++){ for ($c=0; $c<count ($linha[$l]);$c++){ $dist = $DISTAP[$l][$c]+$DISTAI[$l][$c]; if ($dist <= $small + $alpha) { $nr o_cel = $nro_cel +1; } } } for ($l=0; $l<count($linha);$l ++){ for ($c=0; $c<count ($linha[$l]);$c++){ $dist = $DISTAP[$l][$c]+$DISTAI[$l][$c]; if ($dist <= $small + $alpha) { $di ferenca = abs(($gain[$i] - $linha[$l][$c])/($small/$dist)); if ($linha[$l][$c]>$gain[$i]){ $novo_valor = $linha[$l][$c] - $diferenca; } els e{ $novo_valor = $linha[$l][$c] + $diferenca; } $linha[$l][$c]=$novo_valor; } } } $arquivow = fopen($filename." .1", "w"); for ($l=0; $l<count($linha);$ l++){ for ($c=0; $c<count ($linha[$l]);$c++){ fwr ite ($arquivow, $linha[$l][$c]); if ($c <> count($linha[$l])-1) {fwrite ($arquivow, "\t");} } } } } return("ok");

Page 61: TCC WifiDog

61

} } ?>

Page 62: TCC WifiDog

62

Authenticator.php (trecho alterado):

Adicionadas novas classes:

/** * Load Network class */ require_once('classes/Location.php'); require_once('classes/UpdateFP.php');

Alterada forma de se autenticar:

// Authenticating the user through the selected aut h source. $network = Network::processSelectUI('au th_source'); // processo de atualizacao de tabelas de fingerpri nt $update = new UpdateFP(); $updateOK = $update->update(); // processo de localizacao da estacao cliente $location = "unknown"; $locationSRV = new LocationServer($_SERVER[ 'REMOTE_ADDR']); $location = $locationSRV->find($_SERVER['RE MOTE_ADDR']); if (true){ $user = $network->getAuthenticator()-> login($username, $password, $errmsg); } else { $errmsg="erro de localizacao e ip=".$_SERVER['REMOTE_ADDR']." localizado em:".$loc ation; } self::$_loginLastError = $errmsg; }

Page 63: TCC WifiDog

63

Pol_acesso.txt:

1 1 1 1 0 0 0 0 0

1 1 1 1 0 0 0 0 0

1 1 1 1 0 0 0 0 0

1 1 1 1 0 0 0 0 0

0 0 0 0 0 1 1 1 1

0 0 0 0 0 1 1 1 1

0 0 0 0 0 1 1 1 1

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

1 1 1 1 0 1 1 1 1

1 1 1 1 0 1 1 1 1

1 1 1 1 0 1 1 1 1

0 0 0 0 0 1 1 1 1

0 0 0 0 0 1 1 1 1

0 0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 0 0