domingo, 2 de setembro de 2007

Entendendo (e quebrando) a segurança em redes Wireless

O Kismet é uma ferramenta poderosa, que pode ser usado tanto para checar a segurança de sua própria rede wireless, quanto para checar a presença de outras redes próximas e assim descobrir os canais que estão mais congestionados (configurando sua rede para usar um que esteja livre) ou até mesmo invadir redes. O Kismet em sí não impõe restrições ao que você pode fazer. Assim como qualquer outra ferramenta, ele pode ser usado de forma produtiva ou destrutiva, de acordo com a índole de quem usa.

A página do projeto é a: http://www.kismetwireless.net/.

A principal característica do Kismet é que ele é uma ferramenta passiva. Ao ser ativado, ele coloca a placa wireless em modo de monitoramento (rfmon) e passa a escutar todos os sinais que cheguem até sua antena. Mesmo pontos de acesso configurados para não divulgar o ESSID ou com a encriptação ativa são detectados.

Como ele não transmite pacotes, apenas escuta as transmissões, todo o processo é feito sem prejudicar as redes vizinhas e de forma praticamente indetectável. A principal limitação é que, enquanto está em modo de monitoramento, a placa não pode ser usada para outros fins. Para conectar-se a uma rede, você precisa primeiro parar a varredura.

Esta questão da detecção dos pontos de acesso com o ESSID desativado é interessante. Não é possível detectá-los diretamente, pois eles não respondem a pacotes de broadcast (por isso eles não são detectados por programas como o Netstumbler), mas o Kismet é capaz de detectá-los quando um cliente qualquer se associa a eles, pois o ESSID da rede é transmitido de forma não encriptada durante o processo de associação do cliente.

A partir daí, o Kismet passa a capturar todos os pacotes transmitidos. Caso a rede esteja encriptada, é possível descobrir a chave de encriptação usando o aircrack (que veremos a seguir), permitindo tanto escutar as conexões, quanto ingressar na rede.

Como o Kismet é uma das ferramentas mais usadas pelos crackers, é sempre interessante usá-lo para verificar a segurança da sua própria rede. Tente agir como algum vizinho obstinado agiria, capturando os pacotes ao longo de alguns dias. Verifique a distância de onde consegue pegar o sinal de sua rede e quais informações consegue descobrir. Depois, procure meios de reforçar a segurança da rede e anular o ataque.

Por ser uma ferramenta popular, ele está disponível na maioria as distribuições. Algumas, como o Knoppix (a partir da versão 3.7), já o trazem instalado por padrão.

Nas distribuições derivadas do Debian, você pode instalá-lo via apt-get:

# apt-get install kismet

Antes de ser usar, é preciso configurar o arquivo "/etc/kismet/kismet.conf", especificando a placa wireless e o driver usado por ela, substituindo a linha:

source=none,none,addme

Por algo como:

source=madwifi_ag,ath0,atheros

Onde o "madwifi_ag" é o driver usado pela placa (que você pode verificar usando o comando lspci). Na documentação do Kismet o driver é chamado de "capture source", pois é a partir dele que o Kismet obtém os pacotes recebidos.

O "ath0" é a interface (que você vê através do comando ifconfig) e o "atheros" é um apelido para a placa (que você escolhe), com o qual ela será identificada dentro da tela de varredura.

Isto é necessário, pois o Kismet precisa de acesso de baixo nível ao hardware. Isto faz com que a compatibilidade esteja longe de ser perfeita. Diversas placas não funcionam em conjunto com o Kismet, com destaque para as placas que não possuem drivers nativos e precisam ser configurados através do ndiswrapper. Se você pretende usar o Kismet, o ideal é pesquisar antes de comprar a placa. Naturalmente, para que possa ser usada no Kismet, a placa precisa ter sido detectada pelo sistema, com a ativação dos módulos de Kernel necessários. Por isso, prefira sempre usar uma distribuição recente, que traga um conjunto atualizado de drivers. O Kurumin e o Kanotix estão entre os melhores neste caso, pois trazem muitos drivers que não vem pré instalados em muitas distribuições.

Você pode ver uma lista detalhada dos drivers de placas wireless disponíveis e como instalar manualmente cada um deles no meu livro Linux Ferramentas Técnicas.

Veja uma pequena lista dos drivers e placas suportados no Kismet 2006-04-R1:

  • acx100: O chipset ACX100 foi utilizado em placas de diversos fabricantes, entre eles a DLink, sendo depois substituído pelo ACX111. O ACX100 original é bem suportado pelo Kismet, o problema é que ele trabalha a 11 megabits, de forma que não é possível testar redes 802.11g.
  • admtek: O ADM8211 é um chipset de baixo custo, encontrado em muitas placas baratas. Ele é suportado no Kismet, mas possui alguns problemas. O principal é que ele envia pacotes de broadcast quando em modo monitor, fazendo com que sua varredura seja detectável em toda a área de alcance do sinal. Qualquer administrador esperto vai perceber que você está capturando pacotes.
  • bcm43xx: As placas com chipset Broadcom podiam até recentemente ser usadas apenas no ndiswrapper. Recentemente, surgiu um driver nativo (http://bcm43xx.berlios.de) que passou a ser suportado no Kismet. O driver vem incluído por padrão a partir do Kernel 2.6.17, mas a compatibilidade no Kismet ainda está em estágio experimental.
  • ipw2100, ipw2200, ipw2915 e ipw3945: Estes são os drivers para as placas Intel, encontrados nos notebooks Intel Centrino. O Kismet suporta toda a turma, mas você precisa indicar o driver correto para a sua placa entre os quatro.
    O ipw2000 é o chipset mais antigo, que opera a 11 megabits; o ipw2200 é a segunda versão, que suporta tanto o 8011.b, quanto o 802.11g; o ipw2915 é quase idêntico ao ipw2200, mas suporta também o 802.11a, enquanto o ipw3945 é uma versão atualizada, que é encontrada nos notebooks com processadores Core Solo e Core Duo.
  • madwifi_a, madwifi_b, madwifi_g, madwifi_ab e madwifi_ag: Estes drivers representam diferentes modos de operação suportados pelo driver madwifi (http://sourceforge.net/projects/madwifi/), usado nas placas com chipset Atheros. Suportam tanto o driver madwifi antigo, quanto o madwifi-ng.
    Usando os drivers madwifi_a, madwifi_b ou madwifi_g, a placa captura pacotes apenas dentro do padrão selecionado (o madwifi_a captura apenas pacotes de redes 802.11a, e assim por diante). O madwifi_g é o mais usado, pois captura simultaneamente os pacotes de redes 802.11b e 802.11g. O madwifi_ag, por sua vez, chaveia entre os modos "a" e "g", permitido capturar pacotes de redes que operam em qualquer um dos três padrões, mas num ritmo mais lento, devido ao chaveamento.
  • rt2400 e rt2500: Estes dois drivers dão suporte às placas com chipset Ralink, outro exemplo de chipset de baixo custo que está se tornando bastante comum. Apesar de não serem exatamente "placas de alta qualidade", as Ralink possuem um bom suporte no Linux, graças em parte aos esforços do próprio fabricante, que abriu as especificações e fornece placas de teste para os desenvolvedores. Isto contrasta com a atitude hostil de alguns fabricantes, como a Broadcom e a Texas (que fabrica os chipsets ACX).
  • rt8180: Este é o driver que oferece suporte às placas Realtek 8180. Muita gente usa estas placas em conjunto com o ndiswrapper, mas elas possuem um driver nativo, disponível no http://rtl8180-sa2400.sourceforge.net/. Naturalmente, o Kismet só funciona caso seja usado o driver nativo.
  • prism54g: Este driver dá suporte às placas com o chipset Prism54, encontradas tanto em versão PCI ou PCMCIA, quanto em versão USB. Estas placas são caras e por isso relativamente incomuns no Brasil, mas são muito procuradas entre os grupos que fazem wardriving, pois as placas PCMCIA são geralmente de boa qualidade e quase sempre possuem conectores para antenas externas, um pré-requisito para usar uma antena de alto ganho e assim conseguir detectar redes distantes.
  • orinoco: Os drivers para as placas com chipset Orinoco (como as antigas Orinoco Gold e Orinoco Silver) precisam de um conjunto de patches para funcionar em conjunto com o Kismet, por isso acabam não sendo placas recomendáveis. Você pode ver detalhes sobre a instalação dos patches no http://www.kismetwireless.net/HOWTO-26_Orinoco_Rfmon.txt.


Depois de definir o driver, a interface e o nome no "/etc/kismet/kismet.conf", você pode abrir o Kismet chamando-o como root:

# kismet

Inicialmente, o Kismet mostra as redes sem uma ordem definida, atualizando a lista conforma vai descobrindo novas informações. Pressione a tecla "s" para abrir o menu de organização, onde você pode definir a forma como a lista é organizada, de acordo com a qualidade do canal, volume de dados capturados, nome, etc. Uma opção comum (dentro do menu "sort") é a "c", que organiza a lista baseado no canal usado por cada rede.

Por padrão, o Kismet chaveia entre todos os canais, tentando detectar todas as redes disponíveis. Neste modo, ele captura apenas uma pequena parte do tráfego de cada rede, assim como você só assiste parte de cada programa ao ficar zapiando entre vários canais da TV.

Selecione a rede que quer testar usando as setas e pressione "Shift + L" (L maiúsculo) para travá-lo no canal da rede especificada. A partir daí ele passa a concentrar a atenção numa única rede, capturando todos os pacotes transmitidos:

Você pode também ver informações detalhadas sobre cada rede selecionando-a na lista e pressionando enter. Pressione "q" para sair do menu de detalhes e voltar à tela principal.

Outro recurso interessante é que o Kismet avisa sobre "clientes suspeitos", micros que enviam pacotes de conexão para os pontos de acesso, mas nunca se conectam a nenhuma rede, indício de que provavelmente são pessoas fazendo wardriving ou tentando invadir redes. Este é o comportamento de programas como o Netstumbler (do Windows). Micros rodando o Kismet não disparam este alerta, pois fazem o scan de forma passiva:

ALERT: Suspicious client 00:12:F0:99:71:D1 - probing networks but never participating.

O Kismet gera um dump contendo todos os pacotes capturados, que vai por padrão para a pasta "/var/log/kismet/". A idéia é que você possa examinar o tráfego capturado posteriormente usando o Ethereal. O problema é que, ao sniffar uma rede movimentada, o dump pode se transformar rapidamente num arquivo com vários GB, exibindo que você reserve bastante espaço no HD.

Um dos maiores perigos numa rede wireless é que qualquer pessoa pode capturar o tráfego da sua rede e depois examiná-lo calmamente em busca de senhas e outros dados confidenciais transmitidos de forma não encriptada. O uso do WEP ou outro sistema de encriptação minimiza este risco, pois antes de chegar aos dados, é necessário quebrar a encriptação.

Evite usar chaves WEP de 64 bits, pois ele pode ser quebrado via força bruta caso seja possível capturar uma quantidade razoável de pacotes da rede. As chaves de 128 bits são um pouco mais seguras, embora também estejam longe de ser inquebráveis. Em termos se segurança, o WPA está à frente, mas usá-lo traz problemas de compatibilidade com algumas placas e drivers.

Sempre que possível, use o SSH, SSL ou outro sistema de encriptação na hora de acessar outras máquinas da rede ou baixar seus e-mails. No capítulo sobre acesso remoto, veremos como é possível criar um túnel seguro entre seu micro e o gateway da rede, usando o SSH, permitindo assim encriptar todo o tráfego.


Para você entender a importância de usar o SSH o outros protocolos seguros ao usar uma rede wireless, vou falar um pouco mais sobre como quebrar chaves de encriptação, para que você possa entender os ataques usados pelos que estão do outro lado.

Alguns pontos de acesso utilizam versões vulneráveis do WEP, que são muito rápidas de quebrar (em muitos casos você pode corrigir através de uma atualização de firmware) mas, mesmo as versões "não vulneráveis" do WEP podem ser quebradas via força bruta, sempre que seja possível capturar um volume suficiente de tráfego da rede.

Você pode simular uma invasão na sua própria rede, para verificar qual seria o volume de trabalho necessário para invadí-la. Para isso, você vai precisar de pelo menos dois micros ou notebooks. Um deles vai ser usado como um cliente de rede normal e pode usar qualquer placa de rede, enquanto o segundo (que usaremos para simular o ataque) precisa ter uma placa compatível com o Kismet.

Configure o seu ponto de acesso ativando o WEP e desativando o Broadcast do SSID. Ou seja, faça uma configuração relativamente segura, mas faça de conta que esqueceu tudo :).

Comece abrindo o Kismet no notebook "invasor". Deixe que ele detecte as redes próximas, pressione "s" para ajustar a ordem dos nomes na lista, selecione sua rede e pressione "Shift + L" para que ele trave a varredura na sua rede e deixe de bisbilhotar nas redes dos vizinhos.

Inicialmente, sua rede será detectada como "no ssid", já que o broadcast do SSID foi desativado no ponto de acesso. Mas, assim que qualquer micro se conecta ao ponto de acesso, o Kismet descobre o SSID correto. Pressione "i" para ver os detalhes da rede e anote o endereço MAC do ponto de acesso (BSSID), que precisaremos para iniciar o passo seguinte.

Agora que já sabemos o SSID e o MAC do ponto de acesso, falta quebrar o WEP. Para isso precisaremos do Aircrack, uma suíte de aplicativos para verificação de redes wireless, que pode ser encontrada no http://freshmeat.net/projects/aircrack/. Nos derivados do Debian, ele pode ser instalado via apt-get:

# apt-get install aircrack

Outra opção é baixar o Back Track (http://www.remote-exploit.org/index.php/Main_Page) , um Live-CD baseado no Slax, que já vem com o Aircrack, Kismet e outras ferramentas úteis pré-instaladas.

O primeiro passo é capturar pacotes da rede usando o airodump. A sintaxe do comando é "airodump interface arquivo-de-log mac-do-ponto-de-acesso", como em:

# airodump ath0 logrede 00:50:50:81:41:56

Você pode também indicar um canal (neste caso, ele escuta todas as redes que estejam transmitindo no canal indicado), como em:

# airodump ath0 logrede 14

Isto gerará o arquivo "logrede.cap", que contém um dump de todos os pacotes capturados. Neste ponto você precisa esperar algum tempo até conseguir um volume razoável de pacotes. Para acelerar isso, faca com que o micro isca baixe alguns arquivos grandes a partir de outro micro da rede.

Abra outro terminal e use o aircrack para tentar quebrar a chave de encriptação. Você pode fazer isso sem interromper a captura do airodump, daí a idéia de usar dois terminais separados.

Ao usar o aircrack, é preciso especificar o comprimento da chave WEP (64 ou 128 bits) e o arquivo gerado pelo airodump, como em:

# aircrack-n 64 logrede.cap

ou:

# aircrack -n 128 logrede.cap

Caso o arquivo contenha pacotes destinados a mais de um ponto de acesso, ele pergunta qual verificar. No caso, indique sua rede.

O aircrack usa um ataque de força bruta para tentar descobrir a chave de encriptação da rede. A base do ataque são os IV's (vetores de inicialização), a parte de 24 bits da chave de encriptação, que é trocada periodicamente. O volume de IV's gerados varia de acordo com a rede (por isso existem redes mais vulneráveis que outras) mas, em teoria, é possível quebrar a encriptação de uma rede de 128 bits caso você consiga capturar de 500 mil a um milhão de IV's, enquanto que uma chave de 64 bits pode ser quebrada com pouco mais de 200 mil. Caso seja usada uma chave fácil de adivinhar, os números são drasticamente reduzidos, permitindo em muitos casos que a chave seja quebrada com a captura de alguns poucos milhares de IV's.

Como todo processo de força bruta, o tempo necessário é aleatório. O aircrack pode descobrir a chave correta tanto logo no início da captura, quanto só depois de capturar mais de um milhão de IV's. Por isso é interessante deixar o terminal de captura do airodump aberto e ir executando o aircrack periodicamente, até que ele descubra a chave. Quanto maior o volume de dados capturados, maior a possibilidade dele descobrir a chave.

Uma forma de aumentar a eficiência do ataque, ou seja, aumentar a chance de descobrir a chave, usando o mesmo número de IV's é aumentar o fudge factor, o que faz com que o aircrack teste um número maior de combinações. Isso naturalmente aumenta proporcionalmente o tempo necessário para o teste. O default do aircrack é 2, você pode alterar o valor usando a opção "-f", como em:

# aircrack -f 4 -n 128 logrede.cap

É comum começar fazendo um teste com o valor default, depois com fudge 4 (como no exemplo) e a partir daí ir dobrando até descobrir a chave, ou a demora se tornar inviável.

Com um grande volume de IV's, uma chave WEP de 64 bits é um alvo fácil. Neste caso a quebra demorou apenas 21 segundos:

Como é necessário capturar um grande volume de dados e muitas redes são usadas apenas para acessar a Internet e outras tarefas leves, capturar o volume de pacotes necessário poderia demorar dias.

Um invasor com um nível mediano de conhecimento, provavelmente não se contentaria em esperar tanto tempo. Ao invés disso, ele poderia usar um ataque de flood para induzir tráfego na sua rede, de forma a acelerar o processo, transformando os muitos dias em apenas alguns minutos.

Um exemplo de ferramenta usada para este tipo de ataque é o aireplay, mais um integrante da equipe do aircrack. O comando abaixo lança um chopchop atack (o tipo de ataque mais eficiente para quebrar chaves WEP) contra o ponto de acesso referente ao endereço MAC especificado, através da interface ath0:

# aireplay -b 00:50:50:81:81:01 -x 512 ath0 -4

Neste ataque, o aireplay captura um weak packet emitido por algum dos outros micros conectados ao ponto de acesso e o repete indefinidamente, obrigando o ponto de acesso a responder e assim aumentar rapidamente a contagem de IV's, permitindo quebrar a chave WEP muito mais rapidamente. Este é o tipo de ataque mais efetivo, pois derruba a última grande barreira contra a quebra do WEP, que era justamente a demora em capturar um grande volume de pacotes.

O "-x 512" especifica o número de pacotes que serão enviados por segundo. Aumentar o número permite quebrar a chave mais rapidamente, mas por outro lado vai reduzir o desempenho da rede, o que pode levar o administrador a perceber o ataque (a menos que ele seja feito em um momento de ociosidade da rede).

Como pode ver, o WEP dificulta o acesso à rede, mas quebrá-lo é apenas questão de tempo. Para melhorar a segurança da sua rede, o ideal é combinar várias camadas de segurança e monitorar os acessos, fazendo com que o tempo e trabalho necessário para invadir a rede seja maior (o que vai afastar os curiosos e invasores casuais) e vai lhe dar tempo para detectar e investigar casos mais graves. Ao usar o WEP, o ideal é trocar a chave de encriptação regularmente, de forma que, mesmo que alguém consiga descobrir a chave, não consiga usar a rede por muito tempo antes que ela seja trocada. Se possível, utilize o WPA, que, apesar dos problemas de compatibilidade, é muito mais seguro.

Caso a rede seja usada apenas dentro de um pequeno espaço, como uma única sala, apartamento ou escritório, você pode também reduzir a potência do transmissor no ponto de acesso, o que acaba sendo uma medida muito efetiva, pois realmente impede que o sinal da rede seja captado de longe.

Procure pela opção "Antenna transmit power" ou similar e veja qual é o menor valor com que a rede funciona corretamente dentro da área necessária:

Outra dica que dificulta, é habilitar a restrição de acesso à rede com base no endereço MAC, geralmente disponível através da opção "Access Control" do ponto de acesso. Ao ativar esta opção, você cria uma lista com os endereços MAC das placas autorizadas e o ponto de acesso restringe o acesso de qualquer outra.

Programas como o airodump e o próprio Kismet permitem descobrir o endereço MAC dos micros que estão acessando determinada rede muito facilmente, e o endereço MAC da placa de rede pode ser forjado (no Linux, por exemplo, você pode falsear usando o comando "ifconfig wlan0 hw ether 00:11:D8:76:59:2E", onde você substitui o "wlan0" pela interface e o "00:11:D8:76:59:2E" pelo endereço MAC desejado). A questão é que, ao forjar o endereço, o invasor vai derrubar o micro com a placa clonada, de forma que você perceba que algo está errado.

O próximo passo seria isolar sua rede wireless do restante da rede, fazendo com que, o invasor possa acessar a Internet, mas não tenha como acessar compartilhamentos e outros recursos da rede.

O mais simples neste caso é instalar uma placa de rede adicional no servidor da rede (ou em qualquer outro micro na ausência dele), onde é conectado o ponto de acesso. Compartilhe a conexão com a placa do AP, mas utilize duas faixas de IP's separados, com um firewall ativo, configurado para bloquear tentativas de conexão provenientes dos micros dentro da rede wireless.

Entendendo os endereços de IRQ, DMA e I/O

Os endereços de IRQ são interrupções de hardware, canais que os dispositivos podem utilizar para chamar a atenção do processador.

Na maioria das situações, o sistema operacional simplesmente chaveia entre os aplicativos ativos, permitindo que ele utilize o processador durante um determinado espaço de tempo e passe a bola para o seguinte. Como o processador trabalha a uma frequência de clock muito alta, o chaveamento é feito de forma muito rápida, dando a impressão de que todos realmente estão sendo executados ao mesmo tempo

No caso dos processadores dual-core, temos na realidade dois processadores, de forma que dois threads podem ser processados simultaneamente, mas o princípio continua o mesmo, já que em um PC típico temos um número sempre muito maior de aplicativos ativos.

Muitas operações, entretanto, não podem esperar. O exemplo mais típico são os caracteres digitados no teclado e os movimentos do mouse, que precisam ser interpretados rapidamente pelo sistema, mesmo enquanto o PC está executando tarefas pesadas, mas existem muitas outras operações que precisam de atenção semelhante, incluindo as transferências de dados recebidos através da placa de rede, operações de leitura e escrita nos HDs e assim por diante.

A placa de rede, por exemplo não pode ficar simplesmente esperando que cheque a sua vez dentro do sistema multitarefa, pois isso retardaria a transmissão dos pacotes, aumentando o ping e reduzindo a taxa de transmissão da rede.

É neste ponto que entram os endereços de IRQ. Ao ser avisado através de qualquer um destes canais, o processador imediatamente pára qualquer coisa que esteja fazendo e dá atenção ao dispositivo, voltando ao trabalho logo depois. Cada endereço é uma espécie de campainha, que pode ser tocada a qualquer momento. Se não fossem pelos endereços de IRQ, o processador não seria capaz de ler as teclas digitadas no teclado, nem os clicks do mouse, a sua conexão pararia toda vez que abrisse qualquer programa e assim por diante.

Em PCs antigos, os endereços de IRQ não podiam ser compartilhados entre os dispositivos, o que freqüentemente causava problemas, já que existem apenas 16 endereços de IRQ disponíveis. Sempre que os endereços de IRQ se esgotavam (pela instalação de muitos periféricos) ou dois dispositivos eram configurados para utilizar o mesmo endereço, tínhamos os famosos conflitos, que faziam com ambos os dispositivos deixassem de funcionar corretamente.

Atualmente, os conflitos relacionados aos endereços de IRQ são muito raros, pois as placas atuais suportam diversos sistemas de compartilhamento e atribuição automática de endereços. No caso das placas PCI, por exemplo, o controlador PCI passa a centralizar as requisições enviadas por todas as placas instaladas, de forma que todas possam utilizar um único endereço. Isto é possível por que as placas passam a enviar as requisições para o controlador e apenas ele entra em contrato direto com o processador.

De qualquer forma, é importante entender como o sistema funciona, de forma que você possa solucionar conflitos que eventualmente apareçam, além de aprender a se virar ao dar manutenção em PCs antigos.

Para variar, tudo começa com o PC original, aquele lançado em 1981. Ele tinha apenas 8 endereços de IRQ, numerados de 0 a 7. Isso acontecia por que ele ainda era baseado no processador 8088, que apesar de ser internamente um processador de 16 bits, utilizava um barramento de apenas 8 bits para comunicar-se com os periféricos. Com isto, tinha apenas 8 IRQs.

Os 8 endereços disponíveis ficavam geralmente configurados da seguinte forma:

IRQ 0 - Sinal de clock da placa mãe
IRQ 1 – Teclado
IRQ 2 – Livre
IRQ 3 - COM 2
IRQ 4 - COM 1
IRQ 5 - Disco Rígido
IRQ 6 - Drive de disquetes
IRQ 7 - Porta paralela

O número do endereço de IRQ indica também a sua prioridade, começando do 0 que é o que tem a prioridade mais alta. Não é à toa que o IRQ 0 é ocupado pelo sinal de clock da placa mãe, pois é ele quem sincroniza o trabalho de todos os componentes, inclusive do processador.

Logo depois vem o teclado, que ocupa o IRQ 1. Veja que o teclado é o dispositivo com um nível de prioridade mais alto, para evitar que as teclas digitadas se percam. Isso pode parecer desnecessário, já que um processador atual processa bilhões de operações por segundo e dificilmente alguém digita mais do que 300 ou talvez 400 teclas por minuto, mas, na época do XT, as coisas não eram assim tão rápidas.

Em seguida vêm os demais periféricos, como as portas seriais e o drive de disquetes. A IRQ2 ficava livre para a instalação de um periférico qualquer. Na verdade, na maioria das vezes o 5 também ficava livre, pois os HDs não eram algo muito comum naquela época.

A partir do 286, houve uma evolução neste esquema, pois finalmente os PCs passaram a ter 16 endereços de IRQ, numerados de 0 a 15, como nos dias de hoje. Como quase todas as evoluções na família PC, foi preciso manter compatibilidade com o padrão anterior, para que as placas para XT pudessem funcionar nos PCs 286 em diante.

Assim, resolveram manter o controlador de IRQs original para que tudo continuasse funcionando da mesma maneira que antes e simplesmente adicionar um segundo controlador para obter os 8 novos endereços. Este segundo controlador passou a ser ligado no IRQ 2, que costumava ficar livre. Todos os pedidos de interrupção dos periféricos ligados aos endereços entre 8 e 15, controlados pelo segundo controlador, passam primeiro pelo IRQ 2, para só depois chegar ao processador. Isto é chamado de cascateamento de IRQs.

Dá para notar duas coisas neste esquema. Em primeiro lugar que o IRQ 2 não pode mais ser utilizado por nenhum periférico. Caso fosse instalado um modem ISA, por exemplo, configurado através dos jumpers para utilizar o IRQ 2, ele seria remapeado para o IRQ 9. Ou seja, na prática, não temos 16 endereços de IRQ, mas apenas 15.

Em segundo lugar, como o segundo controlador está ligado ao IRQ 2, todas as placas que utilizarem os endereços de 8 a 15, terão prioridade sobre as que usarem os IRQs de 3 a 7, pois, do ponto de vista do processador, estão ligadas ao IRQ 2, que é por onde todos os pedidos chegam a ele:
Este seria um exemplo de configuração comum de endereços em um PC da era Pentium baseado em uma placa mãe soquete 7:

IRQ 0 - Sinal de clock da placa mãe (fixo)
IRQ 1 - Teclado (fixo)
IRQ 2 - Cascateador de IRQs (fixo)
IRQ 3 - Porta serial 2
IRQ 4 - Porta serial 1
IRQ 5 - Livre
IRQ 6 - Drive de disquetes
IRQ 7 - Porta paralela (impressora)
IRQ 8 - Relógio do CMOS (fixo)
IRQ 9 - Placa de vídeo
IRQ 10 - Livre
IRQ 11 - Controlador USB
IRQ 12 - Porta PS/2
IRQ 13 - Coprocessador aritmético (fixo)
IRQ 14 - IDE Primária
IRQ 15 - IDE Secundária

Veja que com apenas a placa de vídeo e os dispositivos da placa mãe, já sobravam apenas dois endereços de IRQ disponíveis. Ao adicionar uma placa de som e um modem, todos os endereços estariam ocupados, não dando mais margem de expansão para uma placa de rede ou uma placa SCSI por exemplo. A solução seria desabilitar dispositivos que não estivessem sendo usados, como por exemplo, a segunda porta serial, a porta PS/2, o controlador USB, etc. Mas, de qualquer forma, logo chegaria o ponto em que não haveria mais nada a ser desabilitado.

Este problema começou a tornar-se cada vez mais evidente, à medida que mais e mais periféricos começaram a tornar-se padrão. Os únicos periféricos "de fábrica" em um 286 eram o monitor e o teclado, todo o restante era opcional. Em um PC atual temos um número muito maior de dispositivos, a começar pelos componentes onboard.

Felizmente, pensaram neste problema quando desenvolveram o barramento PCI, incluindo o recurso de PCI Steering, que permite que dois, ou mais periféricos PCI compartilhem o mesmo endereço de IRQ. Neste caso, o controlador PCI passa a atuar como uma ponte entre os periféricos e o processador. Ele recebe todos os pedidos de interrupção, os encaminha para o processador e, ao receber as respostas, novamente os encaminha para os dispositivos corretos. Como o controlador é o único diretamente conectado ao processador é possível ocupar apenas um endereço de IRQ. Do lado do software, o PCI Steering passou a ser suportado a partir do Windows 95 OSR/2, além de ser suportado, por parte do Kernel, praticamente desde as primeiras versões do Linux.

Nem todos os dispositivos PCI suportam trabalhar desta maneira, mas a grande maioria funciona sem problemas. No Windows, você pode verificar a distribuição dos endereços dentro do Painel de Controle > Sistema > Hardware > Gerenciador de Dispositivos. Na janela principal, clique no Exibir > Recursos por tipo.

No screenshot abaixo, temos um PC antigo, rodando o Windows 2000, onde as duas placas de rede e a placa de som compartilhando o IRQ 9:
Além do barramento PCI, outros barramentos usados atualmente permitem compartilhar um único IRQ entre vários periféricos. O USB é um bom exemplo, o controlador ocupa um único IRQ, que é compartilhado entre todas as portas USB e todos os dispositivos conectados a elas. Mesmo que a sua placa mãe tenha 6 portas USB e você utilize todas, terá ocupado apenas um endereço.

Caso você utilizasse apenas periféricos USB, incluindo o mouse, impressora, scanner, etc. poderia desabilitar todas as portas de legado da sua placa mãe: as duas portas seriais, a porta paralela e a porta PS/2, o que liberaria 4 endereços de IRQ.

No caso de placas mãe com duas interfaces IDE, cada uma ocupa dois endereços (por padrão o 14 e o 15). Mas, caso você não pretenda usar a IDE secundária, sempre existe a possibilidade de desabilitá-la no Setup. Todas estas opções aparecem na sessão "Integrated Peripherals".

Com todas estas facilidades, ficava fácil ter um sistema com vários IRQs livres, como no exemplo abaixo:

IRQ 0 - Sinal de clock da placa mãe (fixo)
IRQ 1 - Teclado (fixo)
IRQ 2 - Cascateador de IRQs (fixo)
IRQ 3 - Livre (serial 2 desativada)
IRQ 4 - Modem
IRQ 5 - Livre
IRQ 6 - Drive de disquetes
IRQ 7 - Livre (porta paralela desativada)
IRQ 8 - Relógio do CMOS (fixo)
IRQ 9 - Placa de som, placa de rede (1), placa de rede (2)
IRQ 10 - Placa de vídeo
IRQ 11 - Controlador USB (Mouse, impressora e scanner)
IRQ 12 - Porta PS/2
IRQ 13 - Coprocessador aritmético
IRQ 14 - IDE Primária
IRQ 15 - Livre (IDE Secundária desativada)

Todos estes dispositivos e ainda 4 endereços de IRQ livres não soam nada mal. Na verdade, a escassez de endereços de IRQ é um problema muito menor hoje em dia do que já foi no passado. Antigamente era preciso configurar manualmente o endereço a ser usado por cada placa e não havia como compartilhar um IRQ entre dois periféricos como temos hoje. Um jumper no lugar errado era o suficiente para o modem ou a placa de som entrarem em conflito com alguém e pararem de funcionar.

Hoje em dia, todas as placas novas são PCI, o que naturalmente significa que são plug and play. Basta espeta-las para que o BIOS atribua automaticamente um endereço. Usando apenas placas PCI, você terá conflitos apenas caso realmente todos os IRQs estejam ocupados.

Mas nem tudo está resolvido. Apesar dos conflitos ao se usar apenas placas PCI sejam raríssimos, ainda estão em uso muitos PCs antigos com placas ISA. É aí que as coisas podem complicar um pouco.

Existem dois tipos de placas ISA: as ISA Plug-and-Play e as placas de legado (Legacy ISA). As primeiras, que começaram a aparecer ainda na época do 486, tem seus endereços configurados automaticamente pelo BIOS, mas não são capazes de compartilhar IRQs como as placas PCI.

O sistema de plug-and-play utilizado nelas funciona de forma limitada, de forma que elas ainda podem entrar em conflito com periféricos PCI, mesmo que existam alguns endereços livres. Neste caso, você pode alterar manualmente o endereço a ser usado pela placa ISA através do gerenciador de dispositivos do Windows, basta clicar sobre o ícone do dispositivo, acessar as propriedades e abrir a guia de recursos.

Já nas placas Legacy ISA, é preciso configurar os endereços de IRQ manualmente, através de jumpers, ou então usando um software que acompanha a placa (o que é muito comum em placas de rede ISA). Uma vez configurada para usar um endereço, a placa irá entrar em conflito com qualquer dispositivo que tente usá-lo. Para complicar, o BIOS não enxerga as placas de legado, de forma que existe a possibilidade de que ele atribua o mesmo endereço para algum dispositivo plug-and-play, gerando um conflito.

Para evitar este problema, é preciso reservar manualmente os endereços de IRQ e DMA ocupados por periféricos ISA de legado através da sessão "PNP/PCI Setup" do CMOS Setup. É o tipo de coisa com a qual você não precisa se preocupar em um PC atual (que não possuem sequer slots ISA), mas que era uma necessidade a duas gerações atrás.

Caso o PC tivesse instalado um modem ISA, configurado para utilizar o IRQ 7, por exemplo, você precisava marcá-lo com a opção "Legacy ISA" no Setup. Na foto abaixo temos a sessão "PnP/PCI" do Setup de uma placa mãe com BIOS Award. Veja que cada endereço de IRQ pode ser configurado separadamente:
A opção default é não reservar os endereços, deixando-os livres para o uso de qualquer dispositivo PnP. Para reservar um endereço, basta alterar a opção. Lembre-se de reservar apenas os endereços necessários, pois ao reservar um endereço ele deixa de estar disponível para as placas plug-and-play.

Existe mais um ponto interessante sobre as placas ISA, que é o fato de existirem tanto placas ISA de 8 bits, quanto placas de 16 bits. É fácil diferenciá-las, pois as placas de 8 bits utilizam apenas a primeira parte do encaixe. As placas de 8 bits utilizam exatamente o mesmo barramento que era usado no XT, o que significa que estas placas enxergam apenas os IRQs de 0 a 7. Este é o caso por exemplo de muitos modems ISA.

Neste caso não existe muito segredo, caso todos os seus IRQs de 0 a 7 já estejam ocupados, o jeito será mudar o endereço de um dos dispositivos, dando lugar ao modem. Você pode simplesmente reservar no Setup o endereço que esteja sendo usado por uma placa plug-and-play que esteja instalada, assim da próxima vez que iniciar o micro, o BIOS se encarrega de dar outro endereço para ela, deixando o modem em paz.

Toda a configuração de endereços feita perlo BIOS é armazenado numa área do CMOS, chamado ESCD. Em casos onde o BIOS não detecte um dispositivo recém-instalado ou onde ele insista em assinar o mesmo endereço para duas placas que não suportam o PCI Steering, causando um conflito, existe a opção de limpar o ESCD. Isto fará com que o BIOS precise reconfigurar o endereços de todas as placas, partindo do zero. Para limpar o ESCD, basta acessar o Setup e ativar a opção "Force Update ESCD" ou "Reset Configuration data".

APIC



A partir das placas soquete 7, os dois controladores de interrupções foram substituídos por um controlador aprimorado, batizado de APIC (Advanced Programmable Interrupt Controller). O APIC preserva a compatibilidade com os dois controladores antigos, o que permite que placas de legado e sistemas operacionais antigos continuem funcionando normalmente. Originalmente, ele foi desenvolvido para melhorar a eficiência de sistemas com dois ou mais processadores, mas ele traz benefícios mesmo em máquinas com apenas um.

Para que o APIC possa ser ativado, é necessário que exista suporte por parte do processador (todos os processadores a Partir do Pentium 1 o suportam), por parte da placa mãe (o suporte foi introduzido a partir das placas soquete 7, de forma que todas as placas atuais o suportam) e também por parte do sistema operacional. Na família Windows, o suporte foi introduzido a partir do Windows 2000, enquanto no Linux ele existe desde a série 2.4 do Kernel.

O APIC pode ser desativado através da opção "APIC Function" (ou similar) do Setup, mas é importante mantê-lo ativado em qualquer PC atual (sobretudo ao usar as versões atuais do Windows), pois ele acrescenta 8 novos endereços de IRQ, de 16 ao 23, além de melhorar sensivelmente o sistema de atribuição automática de endereços.

Em teoria, é possível desenvolver controladores APIC com mais endereços, ou mesmo combinar vários controladores na mesma placa, de forma a aumentar o número de endereços disponíveis. Com isto, os fabricantes ganham margem para expansões futuras, que eventualmente se tornem necessárias.

Aqui temos um screenshot do gerenciador de dispositivos, mostrando a distribuição dos endereços em um PC atual, com o Windows XP SP2 instalado:

Veja que além de distribuir os dispositivos instalados entre os agora 24 endereços disponíveis, o sistema permite que alguns endereços sejam compartilhados por vários dispositivos. Graças à expansão no número de endereços, o PC continua com vários endereços livres, apesar da adição das controladoras USB, placa wireless, leitor de cartões e outros dispositivos que não eram comumente usados em PCs antigos.

Embora qualquer distribuição Linux atual ofereça suporta ao APIC, é comum que problemas na implementação dos fabricantes (que frequentemente possuem bugs ou adicionam recursos fora da especificação) cause problema na detecção de alguns dispositivos, sobretudo de periféricos onboard, como a placa de som ou placa de rede.

Nestes casos, é possível desativar o APIC utilizando a opção "noapic", especificada na tela de boot, ou adicionada na linha com opções para o Kernel dentro do arquivo "/boot/grub/menu.lst" ou "/etc/lilo.conf".

DMA e I/O


Além dos endereços de IRQ, temos também os canais de DMA e os endereços de I/O.

Os canais de DMA são utilizados apenas por dispositivos de legado (placas ISA, portas paralelas e drives de disquete) para transferir dados diretamente para a memória RAM, reduzindo desta forma a utilização do processador.

Existem 8 canais de DMA, numerados de 0 a 7. Os canais de 0 a 3 são herança do PC original e trabalham a 8 bits, assim como o barramento externo no processador 8080. Os canais de 4 a 7 foram introduzidos com o 286 e, acompanhando o barramento de dados do processador, são canais de 16 bits. Os canais de DMA são relacionados ao barramento ISA e, justamente por isso, nunca foram introduzidos canais de 32 bits. Ao invés disso, o barramento PCI (seguido pelos demais barramentos modernos), trouxe o Bus Mastering, um sistema muito mais eficiente e rápido.

Tipicamente, o canal DMA 2 era reservado para a controladora do drive de disquetes, o 3 para a porta paralela (quando configurada para operar em modo ECP), enquanto uma placa de som ISA utilizava os endereços 1 e 5.

Justamente por serem muito lentos, os canais de DMA caíram em desuso desde a década de 1990 e continuaram sendo utilizados apenas por periféricos de legado, como drives de disquete, placas de som ISA e portas paralelas padrão ECP. Conforme estes periféricos foram caindo em desuso, os canais de DMA simplesmente deixaram de ser usados, embora permaneçam disponíveis mesmo nos PCs atuais.

Finalmente, temos os endereços de I/O (também chamados "endereços de ES", por causa da tradução do Windows). Diferentemente dos endereços de IRQ, eles não são interrupções, mas sim endereços utilizados para a comunicação entre os dispositivos. Cada dispositivo precisa de um endereço próprio mas, ao contrário dos endereços de IRQ, existe uma abundância de endereços de I/O disponíveis, de forma que eles raramente são um problema.

No total, existem 65.536 endereços de I/O e, na maioria dos casos, cada dispositivo utiliza apenas um, de forma que 99% dos endereços permanecem disponíveis.

Temos aqui um exemplo da distribuição dos endereços DMA e de I/O em um PC atual. Como ele não possui nenhum dispositivo ISA, nem possui uma porta paralela ou a porta para o drive de disquetes, o único canal de DMA em uso é o canal 4, utilizado pela própria controladora. Já no caso dos endereços de I/O, temos uma longa lista, incluindo praticamente todos os periféricos, além de uma grande quantidade de controladores incluídos na placa mãe:

Windows bloqueado?

Alguns spywares e malwares em geral desativam componentes do Windows, usando recursos do próprio sistema.

Isso é possível porque o Windows foi projetado para suportar diretivas de empresas e grupos, onde os funcionários podem usar os computadores, mas não alterar configurações. Alguns spywares dão uma de “administradores” no seu sistema, bloqueando diversas coisas. Entre as mais visadas estão o bloqueio da página inicial do Internet Explorer, a edição do registro pelo regedit, de forma que você não consegue abri-lo nem usar os arquivos “.reg”, e em alguns casos, bloqueiam até o gerenciador de tarefas, para evitar que sejam fechados (aqui usar o Process Explorer NT normalmente resolve).

Esses bloqueios são feitos pelo registro, e caso você não possa abrir o regedit, e/ou se quiser remover diversos bloqueios de uma vez, recomendo um software meu mesmo: o AntiPolicy. Basta abri-lo, clicar na aba “AntiPolicy” e então no botão “Remover bloqueios...”.

Quase todos esses bloqueios serão liberados de imediato, alguns só no recarregamento do Explorer (no próximo logon, por exemplo). Vale a dica: primeiro, feche os malwares e certifique-se de que não estejam marcados para inicializar depois, pois eles poderão restaurar os bloqueios se forem abertos.

Download do AntiPolicy:
http://www.mephost.com/software/antipolicy.htm

Esse programa ainda permite fechar bruscamente processos também, servindo como um gerenciador de processos alternativo. Enquanto que o gerenciador de tarefas do Windows e o Process Explorer NT listam os processos pelo nome do executável, o AntiPolicy lista pelos nomes das classes de janelas. A maioria dos spywares não têm janelas visíveis, mas têm janelas ou pelo menos controles que não ficam visíveis mas são listados. No AntiPolicy, você pode fechar qualquer programa, pela aba “Visíveis” (os que estão rodando na barra de tarefas ou em uma janela) ou “Ocultos” (os que rodam sem ser exibidos, que vem a ser o caso da maioria dos malwares). Vale o cuidado de testar e ficar atento, pois você poderá fechar programas bons sem saber o nome da classe.

Diversos spywares usam nomes com XXX alguma coisa (referentes à pornografia), hk (da palavra “hacker”), ou somente números. Mas não há regras, você terá que caçar um pouco, e qualquer coisa, o Google está à disposição para nos ajudar (bem indiretamente, claro).

Removendo vírus e spywares do Windows, no braço

A falta de informação das pessoas aliada à falta de segurança do Windows traz sérios riscos, não é de hoje. Um programa com código malicioso executado no computador pode fazer coisas das mais terríveis. Tudo bem, isso já é do conhecimento de todos, mas de qualquer forma as pessoas precisam usar seus computadores, e estes devem estar livres de pragas.

Use antivírus. Use antispyware. Use firewall. Até que ponto isso é verdadeiro? Muita gente se surpreende comigo quando digo: eu não uso antivírus! Recuso-me até a morte (ou, quem sabe, até que um vírus me prove o contrário :). E não recomendo, sinceramente. Tudo fica mais lento. Mesmo em PCs atuais, sou meio contra a idéia de haver um programa tendo que monitorar todos os dados no meu computador em tempo real, em busca de um código malicioso. Isso é coisa para sistemas operacionais incompetentes.

O que não vem a ser totalmente o caso do Windows, pois quem está diante do sistema é uma pessoa. É a pessoa que deveria saber o que abrir, o que fazer e como agir. Ninguém nasce sabendo, então trago aqui algumas noções importantes para detectar e eliminar boa parte dos malwares que infectam o Windows. Além, é claro, de tentar conscientizar um pouco sobre medidas de segurança que boa parte das pessoas sabem – ou pelo menos já ouviram falar – mas não se dão ao trabalho de cumpri-las.

Fui infectado! E agora?


Esses dias entrou um malware no computador de uma amiga, daqueles que ficam enviando mensagens pelo MSN. Eles detectam a janela de conversa aberta e enviam comandos à mesma, fazendo com que um texto seja enviado para a pessoa com a qual a outra esteja conversando – como se tivesse sido digitada pela pessoa. Minha amiga estava com o nick “Tá enviando vírus, não clique!”. E logo que abríamos a conversa normalmente vinham lá alguns dizeres “Olha as fotos que eu tirei com não sei quem, veja aqui...” seguido de um endereço de um site suspeito. Claro, clicando, mais uma pessoa seria infectada. Além disso, vai saber o que esse programinha não fazia nos bastidores. Hoje em dia roubar dados é a principal idéia dos malwares: senhas, contatos, tudo o que foi digitado. Foi-se o tempo em que vírus destruía para se exibir.

Numa seção de “exorcismo” virtual, ajudei essa amiga pelo MSN mesmo, de uma forma simples. Ela estava passando desesperada o AVG e um antispyware, e nada de eles detectarem a praga. Então lá fui eu. Pedi para ela abrir o gerenciador de tarefas do Windows na aba “Processos”, e me enviar uma imagem da tela. Com base nisso eu chutaria alguns processos e mandaria ela fechar. E isso foi feito. O malware foi fechado. A segunda parte foi um pouco mais complicada para ela, mas nada tão doloroso: abrir o MSConfig e desativar a inicialização do maldito (eu procuraria diretamente no registro, mas ela iria se perder). Depois de reiniciado o PC, esse pelo menos já era. AVG 0 x 1 Eu!

Os malwares são programas como outros quaisquer. Na grande maioria das vezes, são programas que se configuram para iniciar junto com o Windows. E ficam fazendo sua ação. Seja enviar spam (usando o seu IP e a sua banda!), usar seu computador como servidor de um software P2P qualquer ou tentar capturar suas senhas.

Esses quase sempre podem ser removidos manualmente, usando programas simples de monitoramento. A idéia é: eles estão abertos, vamos fechá-los! E se eles se configuram para serem iniciados junto com o computador, vamos remover essa configuração. Alguns casos mais graves podem ocorrer, onde os vírus mais “poderosos” se infiltram dentro de arquivos do sistema, corrompendo-os. Aí a coisa complica, seria tarefa mais para um antivírus (agora sim, automatizada) mas normalmente dá para restaurar arquivos do sistema, caso os arquivos infectados sejam os nativos do Windows. Bem, vamos por partes...

Identificando e removendo um programa indesejado


Como no caso da minha amiga, usei uma idéia básica. Mas para isso, eu precisaria tentar chutar o programa a ser fechado, pelo nome do executável. Como saber? O Windows por si só carrega diversos programas em execução (processos) próprios, para uso do sistema. Cada programa aberto também será considerado um processo, e listado, portanto, no gerenciador de tarefas e os malwares também ficarão por ali.

A idéia é listar ou decorar os nomes dos programas do Windows que sempre se iniciam, mais aqueles que você usa e que se iniciam automaticamente também (como seu antivírus, o firewall, etc). Com base nisso, você pode ir tentando fechar os malwares. Na dúvida, uma dica é copiar o nome do programa e jogar no Google. Se for um malware conhecido, provavelmente você irá encontrar páginas (normalmente de fóruns) relatando-o. Aí não resta dúvida, basta fechá-lo.

Acontece que o gerenciador de tarefas do Windows pode ser facilmente corrompido ou modificado, e é possível que um programa nem apareça nele. Além disso, alguns malwares bloqueiam o gerenciador de tarefas (usando recursos do próprio Windows, por incrível que possa parecer!). Para uma pescagem mais profunda, vamos usar outro gerenciador de tarefas.

Um muito bom é o Process Explorer NT. Ele é da SysInternals, que foi comprada pela Microsoft. Eu pensava que seria descontinuado depois da compra, mas pelo contrário, foi até atualizado para trabalhar melhor no Windows Vista.
Baixe em:
http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx

Ele lista todos os processos abertos e permite visualizar muitas informações sobre os mesmos. A listagem é hierárquica, ele mostra os processos e os processos que os originaram (o programa que abriu outro programa, numa linguagem mais clara). Clicando com o botão direito num item, pode-se matar o processo correspondente, fechando bruscamente o programa.

O fechamento dessa forma é essencial. Uma que os malwares normalmente não exibem janelas, não tem onde você clicar para fechar. Outra que, mesmo se exibissem, é diferente o comando que o sistema operacional envia ao programa para fechá-lo. Ao clicar no botão com o X numa janela, o Windows não necessariamente fecha o programa; ele diz ao programa que é para ser fechado. O programa pode fazer o que quiser, inclusive decidir se vai mesmo ser fechado ou não.

É isso que permite a um programa tomar a dianteira e exibir uma janela perguntando se você quer salvar um arquivo antes de fechá-lo, dando a opção de mantê-lo aberto, por exemplo. Se ele fosse fechado diretamente ao clicar no X, você perderia qualquer arquivo não salvo.

Aqui, o objetivo é justamente o contrário: fechar o programa “à força”, “matar o processo”, como se diz. O sistema operacional finaliza o programa e libera os recursos usados por ele (como a memória) sem notificá-lo. Algumas vezes complica um pouco, pois malwares mais elaborados podem manter duas instâncias de si mesmo, e se uma for fechada logo a outra detecta e a reabre. Mas com um pouco de paciência e prática, dá para se virar e tomar o controle. Afinal, o computador é seu, não do malware.

Esse Process Explorer NT permite até mesmo “pausar” um determinado programa, e continuá-lo depois. Estando “pausado”, o programa continua aberto mas parece morto; por exemplo, esse que envia mensagens pelo MSN, não enviaria enquanto estivesse pausado. Essas ações são feitas ao clicar com o botão direito no processo, dentro do Process Explorer NT.

Pode ocorrer de você fechar um programa inofensivo realmente, por desconhecer o nome dele. Normalmente isso não lhe trará problema algum, bastará reabrir o programa que foi fechado depois. Tome o cuidado de não manter arquivos abertos ou documentos não salvos enquanto fecha os programas suspeitos, e também evite fazer isso conectado à Internet. Simples: você pode fechar seu firewall sem querer e continuar por horas navegando – sem perceber que abriu as portas do seu computador para o mundo.

Bem, fechado o programa, você pode excluir o arquivo correspondente a ele. Tome cuidado aqui, para não excluir um arquivo errado, do sistema ou de outro programa bom que você use. Antes de excluir é bom pesquisar na Internet pelo nome do executável, ou então movê-lo para uma outra pasta, ou mesmo renomeá-lo com outra extensão (por exemplo, “coisax.exe” viraria “coisax.123”).

Para excluir, você deverá saber onde se encontra o arquivo. A maioria dos spywares são instalados na pasta “system32” (creio que escolhem essa por ser uma pasta de sistema, que ainda por cima contém muitos arquivos), assim fica difícil encontrar “suspeitos” apenas olhando lá dentro. Uma dica é usar a pesquisa do sistema operacional, aquele “Pesquisar” do Iniciar, jogando o nome do arquivo desejado. Nessa tarefa, algumas configurações do Windows acabam atrapalhando. Para ficar mais seguro para você, altere estas opções:
  • Na guia “Modos de exibição” das opções de pasta (menu “Ferramentas > Opções de pasta”, do Windows Explorer), marque o item “Mostrar todos os arquivos” na categoria “Arquivos ocultos”. E desmarque o “Ocultar arquivos protegidos do sistema operacional”. Ainda ali, desmarque a opção que oculta as extensões dos arquivos. Depois disso, basta tomar cuidado ao renomear seus arquivos, onde você deverá digitar o nome junto com a extensão, e não apague alguns arquivos que “aparecerão” na unidade C:, como boot.ini, ntldr, etc. Esses arquivos são do sistema e ficam ocultos por padrão. Pedi para exibi-los pois assim ele não ocultará os outros arquivos, facilitando a localização dos malwares, inclusive usando o “Pesquisar”.
  • O “Pesquisar” do Windows XP veio para facilitar para usuários iniciantes. Para pesquisar arquivos ocultos em pastas do sistema, usando regras de pesquisa (máscaras) e opções avançadas, é terrível, ficou muito ruim. O ideal é voltar para a pesquisa clássica, igual à do Windows 2000/Me. Veja como fazer isso aqui:
http://janelasepinguins.blogspot.com/2005/12/deixando-o-pesquisar-do-windows-xp2003.html
(envolve edição do registro)

Pronto. Agora ficou mais fácil localizar o arquivo no disco e excluí-lo. Quase sempre os spywares estarão dentro da pasta system32, ou pelo menos na pasta do Windows. Mande pesquisar na pasta “C:\windows” incluindo subpastas; caso não o encontre ali, mande buscar então em todos os discos rígidos locais. Pesquisando apenas na pasta do Windows a pesquisa será mais rápida, já que o buscador não terá que vasculhar todo o seu HD :)

Fechado o programa, excluído o arquivo, agora falta remover o ponto de entrada de inicialização, que faz com que o programa seja carregado durante o boot do sistema. Os programas que se iniciam junto com o computador podem ficar configurados em alguns lugares diferentes no Windows. Uma forma básica de ver isso é usar o MSConfig, programinha que já vem com o Windows (exceto NT e 2000) e que lista os programas abertos. Clique no “Iniciar > Executar”, digite msconfig e tecle enter. Na aba “Inicializar”, localize os itens desejados e desmarque o suposto malware. Depois de desmarcado, clique em Aplicar > OK. Ele pedirá para reiniciar o computador, fica a seu critério reiniciar no momento ou depois.

Dica: desativando outros itens desnecessários pelo MSConfig também, fará com que o computador inicie um pouco mais rápido e use menos memória; mas cuidado para não desativar programas importantes, como o firewall, antivírus (se você usar), etc.

Importante: sempre remova a entrada de inicialização do programa com ele fechado. Se você não fizer isso, alguns programas ficam regravando as chaves no registro enquanto estão abertos, justamente para que se você remova, logo eles regravam e serão inicializados depois, na maior cara de pau. Com eles fechados, simplesmente não têm como regravar.

Nem sempre será fácil remover programas indesejados dessa forma, mas boa parte deles podem ser removidos assim, por incrível que possa parecer :)

Outra dica é iniciar o computador limpo, sem spywares, e anotar os nomes dos programas que se iniciam automaticamente (seja pelo Process Explorer NT ou pelo próprio gerenciador de tarefas). Boa sorte :)

Bluetooth

O Bluetooth é uma tecnologia de transmissão de dados via sinais de rádio de alta freqüência, entre dispositivos eletrônicos próximos, que vem sendo desenvolvida num consórcio, que originalmente incluía a Ericsson, IBM, Nokia, Toshiba e Intel.

A distância ideal é de no máximo 10 metros e a distância máxima é de 100 metros. Um dos trunfos da é a promessa de transmissores baratos e pequenos o suficiente para serem incluídos em praticamente qualquer tipo de dispositivo, começando por notebooks, celulares e micros de mão, passando depois para micros de mesa, mouses, teclados, joysticks, fones de ouvido, etc. Já tem gente imaginando um "admirável mundo novo Bluetooth" onde tudo estaria ligado entre sí e à Internet, onde a cafeteira poderia ligar para o seu celular para avisar que o café acabou, ou a geladeira te mandar um mail avisando que está sem gelo... sinceramente acho que existem usos mais úteis para essa tecnologia, mas tem louco pra tudo... :-)

A grande vantagem do Bluetooth é o fato de ser um padrão aberto e livre de pagamento de royalties, o que vem levando muitos fabricantes a se interessar pela tecnologia.

As especificações técnicas do padrão são as seguintes:
  • Alcance ideal: 10 metros
  • Alcance máximo: 100 metros (em condições ideais e com ambos os transmissores operado com potência máxima)
  • Freqüência de operação: 2.4 GHz
  • Velocidade máxima de transmissão: 1 Mbps
  • Potência da transmissão: 1 mW a 100 mW

A demora

O Bluetooth foi originalmente anunciado em 1998, como um padrão de transmissão sem fio que poderia ser usado universalmente. De fato, o padrão oferece grandes possibilidades, o problema é que, três anos depois do lançamento do padrão, os dispositivos bluetooth não chegaram às lojas. Afinal, o que houve com o Bluetooth?

Inicialmente imaginava-se que o Bluetooth poderia ser usado para quase tudo, desde redes sem fio até para conectar periféricos como mouses, teclados, e até mesmo eletrodomésticos entre sí.

Mas, atualmente os fabricantes vêm considerando seu uso para tarefas um pouco mais modestas. A probabilidade de utilizar o Bluetooth como um padrão universal para redes sem fio caiu por terra com o IEEE 802.11b, que é capaz de manter taxas de transferência de 11 megabits e é capaz de cobrir distâncias maiores, sem falar nos dois sucessores, o 802.11a e o 802.11g

O 802.11b pode ser utilizado para conectar PCs, notebooks e também outros dispositivos de médio porte. O problema fica por conta dos Handhelds, celulares e outros aparelhos pequenos, alimentados por baterias. Os transmissores 802.11b trabalham com um sinal bastante intenso e por isso também consomem muita energia.

O Bluetooth perde feio para o trio em termos de velocidade, pois o padrão é capaz de transmitir a apenas 1 megabit, isto em teoria, já que a velocidade prática cai para apenas 700 Kbits graças aos sinais de controle e modulação. Em compensação, o Bluetooth é uma tecnologia mais barata que o 802.11b. Atualmente os transmissores já custam, para os fabricantes, cerca de 20 dólares por unidade, um quinto do preço de uma placa de rede 802.11b. Outra diferença é que os transmissores bluetooth trabalham com uma potência mais baixa e são menores. Isso permite que eles consumam menos energia, permitindo que sejam usados também em pequenos aparelhos. Os transmissores são bastante compactos, o da foto abaixo por exemplo têm o comprimento de um palito de fósforos. Atualmente existem transmissores ainda menores, com menos de 1 centímetro quadrado.


Com estes dados ja dá para entender por que os fabricantes não estão mais citando o uso do bluetooth em redes sem fio, simplesmente o padrão não tem condições de competir neste segmento. A idéia agora é usar as redes Ethernet ou o 802.11b para ligar os PCs e notebooks em rede e o bluetooth como um complemento para conectar periféricos menores, como Handhelds, celulares, e até mesmo periféricos de uso pessoal, como teclados, mouses, fones de ouvido, etc.

O Bluetooth serviria então como uma opção às interfaces USB, seriais e paralelas para a conexão de periféricos. De fato, a velocidade permitida pelo Bluetooth é bem mais baixa que a das interfaces USB, estamos falando de 12 megabits contra apenas 1 megabit.

Mais um dado interessante é que a Intel vem tentando incentivar os fabricantes a abandonar o uso das interfaces seriais, paralelas, PS/2 e até mesmo do bom e velho drive de disquetes, substituindo todos estes periféricos por similares USB ou bluetooth. Esta mudança poderia finalmente possibilitar a adoção em massa do bluetooth, o que de certa forma seria bem vindo já que seria um meio muito mais simples de sincronizar dados com o palm, transferir as fotos da câmera digital, etc. não seria mais preciso instalar cabos, apenas deixar o periférico próximo do PC.

Mas, para isso ainda faltam resolver dois problemas.

Em primeiro lugar, falta a padronização definitiva do Bluetooth. O padrão 1.0 possuía vários problemas o que levou os fabricantes a trabalharem no padrão 1.1, que promete ser o definitivo. O padrão 1.1 foi estabelecido recentemente e não oferece compatibilidade com periféricos do padrão antigo. Para complicar, não existe a certeza de que não haverão novas mudanças no padrão.

Além disso, existe o problema do preço. Atualmente os transmissores bluetooth ainda custam na casa dos 20 dólares. Segundo os fabricantes, seria necessário que o valor caísse para algo próximo de 5 dólares por transmissor para que fosse viável incluir transmissores bluetooth em todos os periféricos. O valor vai continuar caindo conforme a tecnologia avança, mas pode demorar mais dois anos até que chegue até este patamar.

Usos para o Bluetooth

Esta é a parte futurista deste tópico. Imagine que aplicações poderão surgir ao combinarmos a natural miniaturização dos componentes e a possibilidade de conectá-los sem fios uns aos outros.

Cada aparelho têm uma certa função, mas ao interligá-los novas utilidades podem surgir, da mesma forma que novas idéias surgem quando várias pessoas trabalham em conjunto.

O celular permite realizar chamadas de voz e acessar a Internet. Mas, sua funcionalidade não é perfeita. Para atender uma chamada é necessário tirá-lo do bolso e o acesso à Web é extremamente limitado, graças ao pequeno tamanho da tela e da pequena capacidade de processamento do aparelho.

Um Palm (ou outro Handheld qualquer) tem bem mais recursos que o celular, mas ao mesmo tempo não tem acesso à Web. Existem alguns aparelhos que tentam juntar as duas coisas, o que acaba resultando num celular bem maior que o habitual que traz um Palm embutido.

Mas, caso os dois aparelhos viessem equipados com transmissores bluetooth seria possível acessar a Web através do Palm, com muito mais recursos que no celular, utilizando sem precisar tirar o celular do bolso. Como apartir dos próximos meses teremos celulares 2.5G (e no futuro os 3G) que ficarão continuamente conectados à Web, a parceria seria muito bem vinda.

Imaginando que este Palm do futuro tivesse memória suficiente, ele poderia ser usado também para gravar as chamadas de voz, servir como secretária eletrônica e outros recursos semelhantes.

Podemos agora adicionar um terceiro dispositivo, um fone de ouvido. Este fone, estaria ligado tanto ao celular quando ao Palm. Existem transmissores bluetooth pequenos o suficientes para serem usados num fone de ouvido sem fio. Já existem até alguns produtos, como o da foto:



Este fone de ouvido com microfone permitiria adicionar mais recursos aos outros dois aparelhos. Seria possível tanto ouvir músicas em MP3 e gravar notas de voz através da conexão com o Palm, quanto usá-lo para atender as chamadas no celular. É possível imaginar mais funções, como por exemplo acessar dados na agenda de compromissos do Palm através de comandos de voz. Seria estranho sair falando sozinho no meio da rua, mas é mais uma possibilidade, enfim.

Temos aqui o que pode ser chamada de PAN ou Personal Area Network, uma rede pessoal, entre os dispositivos que carrega nos bolsos.

Ao chegar em casa, o Palm automaticamente formaria uma rede com o PC. Isso permitiria configurá-lo para automaticamente fazer o sincronismo periodicamente, sem a necessidade do velho ritual de colocá-lo no cradle, apertar o botão e esperar. Seria possível também programar outros tipos de tarefas.

Se você tivesse uma câmera digital existiria a possibilidade de transferir automaticamente as fotos para o PC ou o Palm, ou mesmo enviá-las via e-mail ou salvá-las num disco virtual usando a conexão do celular.

Estes claro são alguns exemplos, existem muitas outras aplicações possíveis aqui. A idéia seria fazer todas as conexões que seriam possíveis utilizando fios mas de uma forma bem mais prática. Se realmente conseguirem produzir transmissores bluetooth por 5 dólares cada um, isto tem uma grande possibilidade de acontecer.

Veja que entre as aplicações que citei, não estão planos de criar redes usando apenas o bluetooth, o padrão é muito lento para isto. Ele serviria no máximo para compartilhar a conexão com a Web entre dois PCs próximos e compartilhar pequenos arquivos. Para uma rede mais funcional seria preciso apelar para os cabos de rede ou um dos padrões de rede sem fio que citei a pouco, que são mais rápidos e têm um alcance maior que o bluetooth.

Finalmente, outra área em que o Bluetooth será muito útil é nas Internet Appliances. Se você nunca ouviu o termo, estes são periféricos que oferecem alguma funcionalidade relacionada à Web. O conceito pode ser usado para adicionar recursos à maioria dos eletrodomésticos, mas algum tipo de conexão sem fio é essencial para tudo funcionar.

Na casa do futuro é fácil imaginar um PC servindo como servidor central, concentrando recursos que vão desde espaço em disco e conexão à web até poder de processamento. Todos os outros dispositivos podem utilizar os recursos do servidor.

Veja o caso do aparelho de som por exemplo. Ao ser conectado ao PC passa a ser possível reproduzir as músicas em MP3 armazenadas nele, sem a necessidade de transferi-las antes para o aparelho. Com isso, cortamos custos, já que o aparelho de som não precisará de memória flash ou muito menos de um HD para armazenar as músicas. Com a centralização, todos os eletrodomésticos poderão ser controlados remotamente. Se o PC ficar conectado continuamente à Web (quem sabe via fibra óptica, já que estamos imaginando alguns anos à frente) será possível controlar tudo de qualquer lugar, usando o celular ou outro dispositivo com conexão à web.

O interessante é que não estamos falando de um grande aumento no custo do aparelhos. Como eles não precisarão nem de muita memória nem de um processador sofisticado, já que tudo será processado pelo PC central, bastarão os sensores necessários, um chip de controle simples e o transmissor bluetooth. Presumindo que o transmissor custe os 5 dólares prometidos pelos fabricantes, teríamos um aumento de preço em torno de 15 dólares por aparelho, algo aceitável se alguém tiver boas idéia para adicionar funcionalidade à cada um.

Como funciona o Bluetooth

Numa rede Bluetooth, a transmissão de dados é feita através de pacotes, como na Internet. Para evitar interferências e aumentar a segurança, existem 79 canais possíveis (23 em alguns países onde o governo reservou parte das freqüências usadas). Os dispositivos Bluetooth têm capacidade de localizar dispositivos próximos, formando as redes de transmissão, chamadas de piconet. Uma vez estabelecida a rede, os dispositivos determinam um padrão de transmissão, usando os canais possíveis. Isto significa que os pacotes de dados serão transmitidos cada um em um canal diferente, numa ordem que apenas os dispositivos da rede conhecem.

Isto anula as possibilidades de interferência com outros dispositivos Bluetooth próximos (assim como qualquer outro aparelho que trabalhe na mesma freqüência) e torna a transmissão de dados mais segura, já que um dispositivo "intruso", que estivesse próximo, mas não fizesse parte da rede simplesmente não compreenderia a transmissão. Naturalmente existe também um sistema de verificação e correção de erros, um pacote que se perca ou chegue corrompido ao destino será retransmitido, assim como acontece em outras arquiteturas de rede.

Para tornar as transmissões ainda mais seguras, o padrão inclui também um sistema de criptografia. Existe também a possibilidade de acrescentar camadas de segurança via software, como novas camadas de criptografia, autenticação, etc.

Consumo elétrico

Os dispositivos Bluetooth possuem um sistema de uso inteligente da potência do sinal. Se dois dispositivos estão próximos, é usado um sinal mais fraco, com o objetivo de diminuir o consumo elétrico, se por outro lado eles estão distantes, o sinal vai ficando mais forte, até atingir a potência máxima.

Dentro do limite dos 10 metros ideais, o consumo de cada transmissor fica em torno de 50 micro ampères, algo em torno de 3% do que um celular atual, bem menos do que outras tecnologias sem fio atuais. O baixo consumo permite incluir os transmissores em notebooks, celulares e handhelds sem comprometer muito a autonomia das baterias.

sábado, 1 de setembro de 2007

MPLS

A MPLS permite que os operadores de uma determinada rede tenham alto desempenho no desvio de tráfego de dados em situações críticas, tais como de falhas e gargalos (ou congestionamentos). Através do MPLS eles podem assegurar que a transmissão de determinados pacotes tenham perdas ou atrasos imperceptíveis em função da capacidade de uma gestão de tráfego mais eficaz, possibilitando assim maior qualidade dos serviços e conseqüentemente maior confiabilidade. É normalmente utilizado em empresas de Telecomunicações responsáveis por backbones que se utilizam de BGP4, QoS e SLA para aumentar sua credibilidade quanto à disponibilidade de seus serviços.
aracterísticas

MPLS, ou MultiProtocol Label Switching, é uma tecnologia de encaminhamento de pacotes baseada em rótulos (labels) que deixa a rede IP muito mais segura, confiável, fácil de administrar e de personalizar. Ela funciona, basicamente, com a adição de um rótulo nos pacotes IP na entrada do backbone (chamados de roteadores de borda) e, a partir daí, todo o encaminhamento pelo backbone passa a ser feito com base neste rótulo e não mais no endereço IP, simplificando o processo de roteamento.

MPLS permite a criação de Redes Virtuais Privativas VPN garantindo um isolamento completo do tráfego com a criação de tabelas de "labels" (usadas para roteamento) exclusivas de cada VPN.

Além disso é possível realizar QoS (qualidade de serviço) com a priorização de aplicações críticas, dando um tratamento diferenciado para o tráfego entre os diferentes pontos da VPN. QoS cria as condições necessárias para o melhor uso dos recursos da rede, permitindo também o tráfego de voz e vídeo.

MPLS mantém as virtudes de uma rede IP como flexibilidade e escalabilidade e remove grande parte de suas imperfeições.

processo.

Vantagens:

Melhor desempenho no encaminhamento de pacotes; Criação de caminhos entre os roteadores; Possibilidade de associar requisitos de QoS, baseados nos rótulos carregados pelos pacotes.

Redes de infra-estrutura suportados:

Frame Relay, ATM, PPP, Packet Over Sonet/SDH, Ethernet, Token Ring, FDDI, Comutação ótica (MPλS), Combinação de Abordagens precedentes,

Funções de MPLS:

Mecanismos para o tratamento de fluxos de dados entre hardware, ou mesmo aplicações, distintos. Independência em relação aos protocolos das camadas 2 (enlace) e 3 (rede). Mapeamento entre os endereços IP e labels, para envio de pacotes. Interfaces com protocolos de roteamento, como OSPF. Suporta IP, ATM e frame-relay.

IPv6

O IPv6 é a versão 6 do protocolo IP. O IPv6 tem como objetivo substituir o padrão anterior, o IPv4, que só suporta cerca de 4 bilhões ( 4 x 109) de endereços, enquanto que o IPv6 suporta 3.4 x 1038 endereços. A previsão atual para a exaustão de todos os endereços IPv4 livres para atribuição a operadores é de Abril de 2010, o que significa que a transição da versão do IPv4 para o IPv6 é inevitável num futuro próximo. O governo dos Estados Unidos da América determinou que todas as suas agências federais devem suportar o protocolo IPv6 até 2008.

Motivações para a mudança de IPv4 para IPv6

  • Espaço de endereçamento. A maior parte dos endereços no IPv4 são de classe C, que são muito pequenas para muitas organizações, os endereços de classe B estão praticamente esgotados.
  • Qualidade de serviço. A convergência das redes de telecomunicações futuras para a camada de rede comum, o IPv6, prevê o aparecimento de novos serviços sobre IP (por exemplo. VoIP, streaming de vídeo em tempo real, etc). O IPv6 suporta intrinsecamente classes de serviço diferenciadas, em função das exigências e prioridades do serviço em causa.
  • Mobilidade. A mobilidade está a tornar-se um factor muito importante na sociedade de hoje em dia. O IPv6 suporta a mobilidade dos utilizadores, onde estes poderão ser contactados em qualquer rede através do seu endereço IPv6 de origem.

Novidades nas especificações do IPv6

  • Espaço de Endereçamento. Os endereços IPv6 têm um tamanho de 128 bits.
  • Autoconfiguração de endereço. Suporte para atribuição automática de endereços numa rede IPv6, podendo ser omitido o servidor de DHCP a que estamos habituados no IPv4.
  • Endereçamento hierárquico. Simplifica as tabelas de encaminhamento dos routers da rede, diminuindo assim a carga de processamento dos mesmos.
  • Formato do cabeçalho. Totalmente remodelados em relação ao IPv4.
  • Cabeçalhos de extensão. Opção para guardar informação adicional.
  • Suporte a qualidade diferenciada. Aplicações de áudio e vídeo passam a estabelecer conexões apropriadas tendo em conta as suas exigências em termos de qualidade de serviço (QoS).
  • Capacidade de extensão. Permite adicionar novas especificações de forma simples.
  • Encriptação. Diversas extensões no IPv6 permitem, à partida, o suporte para opções de segurança como autenticação, integridade e confidencialidade dos dados.

Endereçamento

O endereçamento no IPv6 é de 128 bits, e inclui prefixo de rede e sufixo de host. No entanto, não existem classes de endereços, como acontece no IPv4. Assim, a fronteira do prefixo e do sufixo pode ser em qualquer posição do endereço.

Um endereço padrão IPv6 deve ser formado por um campo provider ID, subscrive ID, subnet ID e node ID. Recomenda-se que o ultimo campo tenha pelo menos 48 bits para que possa armazenar o endereço MAC.

Os endereços IPv6 são normalmente escritos como oito grupos de 4 dígitos hexadecimais. Por exemplo:

O endereçamento no IPv6 é de 128 bits, e inclui prefixo de rede e sufixo de host. No entanto, não existem classes de endereços, como acontece no IPv4. Assim, a fronteira do prefixo e do sufixo pode ser em qualquer posição do endereço.

Um endereço padrão IPv6 deve ser formado por um campo provider ID, subscrive ID, subnet ID e node ID. Recomenda-se que o ultimo campo tenha pelo menos 48 bits para que possa armazenar o endereço MAC.

Os endereços IPv6 são normalmente escritos como oito grupos de 4 dígitos hexadecimais. Por exemplo,

3ffe:6a88:85a3:08d3:1319:8a2e:0370:7344

Se um grupo de vários dígitos seguidos for 0000, pode ser omitido. Por exemplo,

3ffe:6a88:85a3:0000:0000:0000:0000:7344

é o mesmo endereço IPv6 que:

3ffe:6a88:85a3::7344

Existem no IPv6 tipos especiais de endereços:

  • unicast - cada endereço corresponde a uma interface (dispositivo).
  • multicast - cada endereço corresponde a múltiplas interfaces. Enviada uma cópia para cada interface.
  • anycast - corresponde a múltiplas interfaces que partilham um prefixo comum. Um datagrama é enviado para um dos dispositivos, por exemplo, o mais próximo.

SIP

SIP significa protocolo de iniciação de sessão, é um protocolo de aplicação, que utiliza o modelo “requisição-resposta”, similar ao HTTP, para iniciar sessões de comunicação interactiva entre usuários. É um padrão da Internet Engineering Task Force (IETF) (RFC 3261, 2002.).

O SIP é um protocolo de sinal para estabelecer chamadas e conferências através de redes via Protocolo IP. O estabelecimento, mudança ou término da sessão é independente do tipo de mídia ou aplicação que será usada na chamada; uma chamada pode utilizar diferentes tipos de dados, incluindo áudio e vídeo.

O SIP teve origem em meados da década de 1990 (naquele tempo o H.323 estava começando a ser finalizado como um padrão) para que fosse possível adicionar ou remover participantes dinamicamente em uma sessão multicast. O desenvolvimento do SIP talvez concentre-se em ter um impacto tão significante quanto o protocolo HTTP, a tecnologia por trás das páginas da web que permite que uma página com links clicáveis conecte com textos, áudio, vídeo e outras páginas da web. Enquanto o HTTP efectua essa integração através de uma página web, o SIP integra diversos conteúdos a sessões de administração. O SIP recebeu uma adopção rápida como padrão para comunicações integradas e aplicações que usam presença. (Presença significa a aplicação estar consciente da sua localização e disponibilidade).

O SIP foi modelado inspirado em outros protocolos de Internet baseados em texto como o SMTP (email) e o HTTP (páginas da web) e foi desenvolvido para estabelecer, mudar e terminar chamadas em um ou mais usuários em uma rede IP de uma maneira totalmente independente do conteúdo de mídia da chamada. Como o HTTP, o SIP leva os controles da aplicação para o terminal, eliminando a necessidade de uma central de comutação.

O protocolo SIP possui as seguintes características:


O SIP no mercado actual


Há um certo número de produtos comerciais e de fonte aberta do SIP disponíveis actualmente. O desenvolvimento comercial tem se mostrado com foco nos Agentes do Usuário como o telefone SIP e os softwares de Agentes do Usuário. Exemplos notáveis incluem o “Messenger” da Microsoft. Uma linha mais desenvolvida de produtos com a arquitectura SIP está disponível pelo Cisco, PingTel, 3COM, e outros. Um produto muito interessante está disponível pela Wave3 Software, inclui software tanto para plataforma Windows como para Macintosh.(Este produto será muito mais interessante quando se incorporar um codec de vídeo padrão nos próximos meses[carece de fontes?]).

A Microsoft anunciou que não desenvolverá mais o H.323 (NetMeeting e Exchange Conferencing Server) e passará exclusivamente a desenvolver produtos dentro do SIP. O "Windows Messenger" transforma o PC em um software de telefone (um dispositivo de voz sobre IP) com as ferramentas adicionais de vídeo, Chat e compartilhamento de dados. Os componentes do servidor SIP estão em desenvolvimento e devem aparecer no mercado em breve. Esta é a fronteira para se ter um tremendo impacto no mercado pela adoção do SIP.

O Network World Fusion conduziu um teste de interoperabilidade no Windows Messenger em Janeiro de 2002, registrando o cliente Microsoft com um Synamicsoft SIP Proxy Server e passando as chamadas por um telefone IP Pingtel xpressa. As chamadas não foram feitas somente com sucesso, mas também com uma qualidade de voz relatada como “qualidade comercial”.

Voz sobre IP

Voz sobre IP, também chamado VoIP, telefonia IP, telefonia Internet, telefonia em banda larga e voz sobre banda larga é o roteamento de conversação humana usando a internet ou qualquer outra rede de computadores baseada no protocolo de internet tornando a transmissão de voz mais um dos serviços suportados pela rede de dados.

Empresas que fornecem o serviço de VoIP são geralmente chamadas provedoras, e os protocolos usados para transportar os sinais de voz em uma rede IP são geralmente chamados protocolos VoIP.

Existe barateamento de custo devido ao uso de uma única rede para carregar dados e voz, especialmente no qual os utilizadores já possuem uma rede com capacidade subutilizada, que pode transportar dados VoIP sem custo adicional. Chamadas de VoIP para VoIP no geral são gratuitas, enquanto chamadas VoIP para redes públicas (PSTN) podem ter custo para o utilizador VoIP.

Considera-se a telefonia IP a agregação do VoIP com outros serviços agregados para a telefonia.


Como Funciona o VOIP

A voz é digitalizada em pacotes de dados, estes trafegam pela rede IP e são convertidos em voz.
Exemplo:
Assim que o telefone é tirado do ganho o aparelho emite um sinal para o roteador, este por sua vez emite um sinal de discagem, aí é simples basta discar o numero de destino. É apartir deste momento que os gateways(portas de ligação) fazem a comparação dos digitos acumulados com os numeros que foram programados, quando esses numeros se fecham o endereço discado com o IP do gateway de destino. A aplicação de sessão roda o protocolo de sessão sobre o IP, para estabelecer um canal de transmissão e recepção para cada direção através da rede IP.
Se o receptor atender a ligação é estabelecido um fluxo RTP sobre UDP entre o gateway de origem e destino, tornando a conversação possível. Quando qualquer das extremidades da chamada desligar, a sessão é encerrada.

Funcionamento

O procedimento consiste em digitalizar a voz em pacotes de dados para que trafegue pela rede IP e converter em voz novamente em seu destino. Segue passo a passo um caso de uso de uma ligação. O utilizador retira o telefone IP do gancho, e nesse momento é emitido um sinal para a aplicação sinalizadora do roteador de "telefone fora do gancho". A parte de aplicação emite um sinal de discagem. O utilizador digita o número de destino, cujos dígitos são acumulados e armazenados pela aplicação da sessão. Os gateways comparam os dígitos acumulados com os números programados; quando há uma coincidência ele mapeia o endereço discado com o IP do gateway de destino. A aplicação de sessão roda o protocolo de sessão sobre o IP, para estabelecer um canal de transmissão e recepção para cada direção através da rede IP. Se a ligação estiver sendo realizada por um PABX, o gateway troca a sinalização analógica digital com o PABX, informando o estado da ligação. Se o número de destino atender a ligação, é estabelecido um fluxo RTP sobre UDP entre o gateway de origem e destino, tornando a conversação possível. Quando qualquer das extremidades da chamada desligar, a sessão é encerrada.

Uso corporativo

Apesar de poucos ambientes de escritório e residências utilizarem uma infraestrutura puramente de telefona IP, provedores de telecomunicações usam a tecnologia rotineiramente, geralmente em uma rede IP dedicada para conectar estações e converter sinais de voz em pacotes IP e vice e versa. O resultado é uma rede digital genérica (tráfego de voz e dados) com escalabilidade. O consumidor corporativo usa a telefonia IP para obter as vantagens da abstração da informação na rede. Com o VoIP é necessário somente fornecer uma conexão de dados e mais banda de rede. Não sendo necessário distribuir uma rede específica para a telefonia no ambiente de trabalho. Empresas maiores também fazem uso de gateways para as redes tradicionais, reduzindo custos de mão de obra externa o serviço. Seu uso é ainda mais visível quando uma empresa necessita comunicar dois sítios distantes a nível internacional.