quarta-feira, 28 de janeiro de 2015

Como Funcionam as Wildcard Masks

Olá Pessoal.

Este artigo foi escrito para aqueles que já têm familiaridade com cálculos de sub-redes e compreendem bem a dinâmica de operação da máscara de rede. A wildcard mask (máscara coringa) é um recurso bastante comum na configuração de roteadores e outros equipamentos, principalmente no que diz respeito à escrita de listas de controle de acesso (ACL) e até mesmo à configuração de alguns protocolos de roteamento dinâmico. Essa semana um aluno me pediu para escrever um artigo no blog explicando o conceito de wildcard mask, além daquele clichê simplista de que elas são o inverso da máscara de rede. Pois bem, então vamos à explicação... 



Vamos começar com uma resposta objetiva para a seguinte pergunta:
Por que wildcard mask ao invés da tradicional máscara de rede?
R: Porque a wildcard mask oferece maior flexibilidade.



Eis então que surge a segunda pergunta:
Por que a wildcard mask oferece maior flexibilidade?
Essa resposta demanda um pouco de discussão...




É importante ter em mente que a máscara de rede e a máscara coringa não estão diretamente relacionadas uma com a outra. Lembrem-se que o propósito da máscara de rede é estabelecer uma fronteira entre aquilo que chamamos de prefixo de rede (identificador da rede) e o sufixo de host (identifcador de um host na rede), necessariamente nessa ordem (contíguas). Ou seja, na estrutura da máscara de rede há uma sequência ininterrupta de bits 1 (prefixo) e, depois, uma sequência ininterrupta de bits 0, sem que haja intercalação de bits 0s e 1s. Por outro lado a wildcard mask não tem essa estrutura rígida e os bits são tratados individualmente, por isso é possível ter máscaras coringas que intercalam bits 0s e 1s. 

Na máscara de rede tradicional os bits sigificam:
  • 1 = REDE
  • 0 = HOST

Na wildcard mask os bits siginificam:
  • 1 = o bit equivalente é irrelevante e pode assumir qualquer valor
  • 0 = o bit equivalente DEVE ser igual

Hum, então é daí que vem a flexibilidade das máscaras coringas!!!??? Parece que conceitualmente as coisas estão ficando um pouco mais claras, mas vamos continuar desenvolvendo esse raciocínio a partir de um exemplo prático da maior flexibilidade das máscaras coringas. Um exemplo clássico diz respeito à máscara coringa 0.0.0.254 para fins de correspondência somente daqueles endereços IP com valores pares ou ímpares no último octeto de redes /24. 

Tomando o endereço IP 192.168.0.10 (par) como referência, em binário ele equivale a:
> 11000000.10101000.00000000.00001010

A wildcard mask 0.0.0.254 em binário equivale a:
> 00000000.00000000.00000000.11111110

O valor 0 na máscara coringa (destaque em vermelho) indica que o respectivo bit posicional de um endereço IP qualquer deve ser equivalente ao endereço de referência, enquanto que o valor 1 indica que os bits posicionais não interessam e podem assumir qualquer valor. 

Todos os endereços IPs que têm o último octeto ímpar terminam com o bit 1, enquanto que todos os endereços IP que são pares terminam em 0. Logo, se o endereço IP associado à máscara coringa é par (192.168.0.10), então somente haverá correspondência com outros endereços pares, quaisquer que sejam. Por exemplo, 192.168.0.22 equivale a 11000000.10101000.00000000.00010110. Reparem nas linhas abaixo como fica a comparação entre o endereço de referência, o endereço a ser testado e a máscara coringa (com destaque em vermelho nos bits "travados"):

> 11000000.10101000.00000000.00001010 = IP 192.168.0.10 (referência)
> 11000000.10101000.00000000.00010110 = IP 192.168.0.22
> 00000000.00000000.00000000.11111110 = Wildcard Mask

Os três primeiros octetos tiveram uma correspondência porque todos os primeiros 24 bits dos endereços 192.168.0.10 e 192.168.0.22 são iguais, equivalentes a 192.168.0 (prefixo /24). O último octeto teve uma correspondência porque o último bit dos endereços 192.168.0.10 e 192.168.0.22 é igual, equivalente a 0 (ambos são pares). 

Agora tomemos um exemplo contrário, ou seja, o IP 192.168.0.33 (ímpar) que em binário é 11000000.10101000.00000000.00100001. Ao comparar esse endereço com o endereço de referência (192.168.0.10) e sua respectiva máscara coringa fica evidente que não há correspondência no último bit, logo o endereço 192.168.0.33 é rejeitado. 

> 11000000.10101000.00000000.00001010 = IP 192.168.0.10 (referência)
> 11000000.10101000.00000000.00100001 = IP 192.168.0.33
> 00000000.00000000.00000000.11111110 = Wildcard Mask

Os três primeiros octetos tiveram uma correspondência porque todos os primeiros 24 bits dos endereços 192.168.0.10 e 192.168.0.33 são iguais, equivalentes a 192.168.0. O último octeto não teve uma correspondência porque o último bit do endereço 192.168.0.10 é 0(2), enquanto que o último bit do endereço 192.168.0.33 é 1(2)

Assim é possível utilizar a wildcard mask 0.0.0.254 associada com um endereço par para permitir apenas endereços pares, enquanto que a associação dessa máscara coringa com um endereço ímpar implica em correspondência apenas com endereços ímpares. Esse foi apenas um exemplo frequentemente utilizado para demonstrar a flexibilidade da wildcard mask.

Uma recomendação para trabalhar rapidamente com as máscaras coringas no cotidiano operacional é pensar nela como o "inverso" da máscara de rede. Por exemplo, os valores das wildcard masks associados com as máscaras padrões são:

  • 255.0.0.0     (/08) = WC 0.255.255.255
  • 255.255.0.0   (/16) = WC 0.0.255.255
  • 255.255.255.0 (/24) = WC 0.0.0.255

Decorar esses valores associados com as máscaras padrões não é suficiente para ajudá-lo em ambientes onde existem sub-redes que não seguem as classes padrões (classless). Quando o ambiente possui sub-redes que utilizam máscaras de rede que não sejam as tradicionais /8, /16 ou /24, a máscara coringa pode ser obtida por meio da subtração da máscara em uso na sub-rede do valor 255.255.255.255. Por exemplo, uma rede /26 (255.255.255.192) tem a wildcard 0.0.0.63 (exemplo a), enquanto que uma rede /30 (255.255.255.252) tem a wildcard 0.0.0.3 (exemplo b).

-------------------------------------------------------
a) Exemplo: Sub-Rede /26   |   b) Exemplo: Sub-Rede /30
---------------------------|---------------------------
   255.255.255.255         |      255.255.255.255        
                   (-)     |                      (-)    
   255.255.255.192         |      255.255.255.252        
   _______________ (=)     |      _______________ (=)    
     0.  0.  0. 63         |        0.  0.  0.  3        
-------------------------------------------------------

Ainda em dúvida? Continue estudando e praticando... 

Samuel.

terça-feira, 13 de janeiro de 2015

Palestra na Campus Party Brasil (CPBR8)

Olá Pessoal,

Nos dias 03 a 08 de fevereiro ocorrerá a oitava edição da Campus Party Brasil (CPBR8), o maior evento do mundo em tecnologia, principalmente nas áreas de inovação, criatividade, ciência, empreendedorismo e entretenimento digital. Em 2015 o evento será realizado na Expo Imigrantes (SP) e as vagas estão esgotadas, por isso os interessados devem se inscrever na lista de espera.


A convite dos colegas do NIC.br, pelo segundo ano consecutivo estarei palestrando no painél intitulado "Redes e Internet do Futuro: SDN e NDN", que será realizado no dia 06/02 (sexta-feira), no período da manhã, no palco Netuno da arena (trilha Redes e Segurança).

Conteúdo da Palestra:

A palestra irá apresentar duas propostas inovadoras na área de redes de computadores que atualmente são "hot topics" de pesquisa nas universidades do mundo todo, especificamente no que diz respeito ao conceito de SDN (Software-Defined Networking) e NDN (Named Data Networking). O paradigma SDN está em amplo crescimento inclusive nas indústrias com casos de sucesso de implantação em operadoras de telecomunicações e data-centers. O conceito futurista de NDN é uma aquitetura de Internet do futuro liderada pelo cientista Van Jacobson que propõe um novo paradigma orientado a conteúdo (information-centric) em substituição ao atual TCP/IP (host-centric). 

Mais uma vez espero encontrar vocês por lá!

Samuel.

###--- Conteúdo Adicionado em 09/02/2015


terça-feira, 6 de janeiro de 2015

Aspectos de Segurança do "Novo" Protocolo IPv6

Olá Pessoal.

O sexto capítulo do meu livro intitulado "IPv6 - O Novo Protocolo da Internet" é dedicado aos aspectos de segurança do protocolo IPv6. Logo no início desse capítulo explico ao leitor que existe uma "promessa folclórica" de que o IPv6 é um protocolo mais seguro do que o seu antecessor IPv4, porque ele foi projetado na década de 1990, período em que muitas deficiências e vulnerabilidades do IPv4 eram amplamente conhecidas pela comunidade técnica. Por ser mais recente, realmente o IPv6 teve a oportunidade de corrigir várias dessas vulnerabilidades, no entanto, eu diria que ainda é equivocado afirmar categoricamente que o IPv6 é mais seguro do que o IPv4. Eu prefiro pensar que o IPv6 tem potencial para ser mais seguro do que o IPv4.


No entanto, não podemos ser passionais e ignorar o fato de que o IPv6 é um protocolo apenas recente operacionalmente, o que torna sua adoção ainda pouco representativa atualmente. Isso quer dizer que o IPv6, por ser "novo", traz consigo várias funcionalidades nebulosas em relação ao seu modo de operação e, à medida que sua adoção crescer nas empresas e na Internet, fatalmente surgirão novas modalidades de ataques e novas vulnerabilidades que sequer existiam no IPv4.

Do ponto de vista arquitetural, o IPv6 é realmente mais robusto do que o IPv4, afinal, não podemos esquecer que segurança não era um requisito de projeto na concepção do IPv4, ao contrário do processo de concepção do IPv6 em que segurança foi um dos critérios mais relevantes na escolha da proposta que daria origem ao chamado IPng, ou IP de próxima geração, que posteriormente foi denominado IPv6. Tanto é que o protocolo IPSec foi criado para o IPv6 e somente depois foi aproveitado para operar sobre o IPv4. 

Essa afirmação "folclórica" de que o IPv6 é um protocolo mais seguro vem do fato de ele possuir suporte nativo ao IPSec. Por isso, muitas pessoas pensam que todo o tráfego v6 sempre é criptografado automaticamente sem nenhuma intervenção ou configuração do administrador - o que NÃO é verdade! O fato de IPSec estar embutido nos dispositivos (suporte nativo) não quer dizer que a solução de segurança seja autoconfigurada. Ao contrário, as principais soluções de segurança, a exemplo de autenticação e criptografia, deverão ser manualmente configuradas pelo administrador, de maneira bastante similar ao que já é feito atualmente com o IPv4. 

No decorrer do livro essa discussão é aprofundada, oportunidade em que apresento um tópico delicado e muitas vezes polêmicos: o fim do NAT no IPv6! ;-) Além dessa discussão, no livro apresento ao leitor os principais ataques conhecidos, bem como os respectivos mecanismos de defesa recomendados para mitigar esses ataques. Os links abaixo direcionam vocês para outros artigos que escrevi no blog e que trazem vários exemplos de configurações de segurança para IPv6 em roteadores e também em sistemas operacionais:


Por fim, aproveito a oportunidade para compartilhar um vídeo recém produzido pelos colegas do NIC.br, em que essa discussão é abordada em apenas 10 minutos! Vale a pena conferir...

Samuel.

sexta-feira, 2 de janeiro de 2015

IANA: A Autoridade Mundial da Internet

Olá Pessoal

Em janeiro de 2013 escrevi um artigo intitulado "Governança da Internet no Mundo" para explicar como está organizada a governança da Internet no mundo. Em síntese, naquela oportunidade utilizei a figura abaixo para destacar que no topo dessa hierarquia está a IANA (Internet Assigned Numbers Authority) que coordena as atividades globalmente, sendo que na condição de autoridade mundial delega parte dessas atividades para outras cinco autoridades de abrangência regional.


Atualmente a autoridade mundial da Internet (ICANN/IANA) possui vínculo contratual com a NTIA (National Telecommunications & Information Administration), uma agência do Departamento de Comércio do governo dos EUA responsável por aconselhar o presidente no que diz respeito a assuntos relacionados às políticas de telecomunicações e informação. No fórum NETmundial realizado no Brasil em abril de 2014 foram intensificadas as discussões para elaboração de uma proposta de transição da governança da Internet em que essa autoridade mundial não seja centralizada nas mãos de um único país e nem de um único setor (governo).

A nova proposta, ainda em ampla discussão, deve estar apoiada em um modelo multissetorial similar ao que já acontece hoje no Brasil com o CGI.br (Comitê Gestor da Internet no Brasil), garantindo a participação não apenas dos governos (primeiro setor), mas também da indústria (segundo setor) e da sociedade civil (terceiro setor). Além disso, o objetivo é manter a Internet aberta e garantir a manutenção e resiliência do sistema DNS (nomes de domínio).

Aproveito a discussão para compartilhar um vídeo produzido pela LACNIC, uma das cinco autoridades regionais da Internet "subordinadas" à IANA na hierarquia da governança da Internet, oportunidade em que as principais atribuições da autoridade mundial da Internet são brevemente explicadas.

Samuel.