tcc wifidog
TRANSCRIPT
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.
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.
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.
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.
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.
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
REFERÊNCIAS.........................................................................................................52
APÊNDICE – CÓDIGOS PHP E ARQUIVOS TXT .............. .....................................54
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
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
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
Figura 20: Matriz de Autenticação com Máscara..............................................45
Figura 21: Funcionamento do novo método de autenticação ...........................46
LISTA DE TABELAS
Tabela 1: Métodos, Protocolos e tipos de Criptografia .....................................25
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.
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.
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.
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
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:
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.
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.
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
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
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
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
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
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).
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.
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
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
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
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.
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).
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.
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.
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.
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
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).
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).
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
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.
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,
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.
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
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
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
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
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.
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
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
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).
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.
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
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);
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");
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); } ?>
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]); } } } }
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]); } } ?>
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;
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");
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; }
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