quinta-feira, 11 de fevereiro de 2010

Falha em GSM / 3G

Olá!

Resolvi postar esse tópico pois envolve segurança e se trata de um problema gravíssimo relacionado a privacidade dos usuários de telefonia móvel, mais especificamente GSM e 3G. Embora o assunto seja muito importante, as mídias (com execção dos sites de segurança) não estão divulgando a mesma.

No final do ano passado, durante a Chaos Communication Conference em Berlim, foi divulgada uma falha no algoritmo de criptografia A5/1, um algoritmo de 64 bits usado na criptografia de comunicações GSM.



Na prática, antes de criptografar a conversa, o algoritmo faz uma "limpeza" de ruídos antes de enviar o sinal para a central e é nessa etapa que o algoritmo sofre o ataque.
É uma falha semelhante à encontrada no protocolo WEB de redes Wireless na qual o algoritmo de criptografia executa ciclos repetidos de chaves passando por momentos onde a probabilidade de chaves é muito baixa tornando uma quebra dessa chave muito fácil por um interceptador.

Tudo bem. Logo em seguida os engenheiros divulgaram o sucessor A5/3, o qual corrigia essas vulnerabilidades e foi desenvolvido especificamente para o sitema 3G.

O problema é que esse kra também está vulnerável. Uma explicação mais matemática da falha está em http://threatpost.com/en_us/blogs/second-gsm-cipher-falls-011110 e uma mais exclarecedora em http://emergentchaos.com/archives/2010/01/another-week-another-gsm-cipher-bites-the-dust.html.

Meio complexa a parte técnica, mas em resumo significa que qualquer pessoa que tenha as ferramentas adequadas pode “grampear” seu celular seja em voz ou dados, ou seja, NADA de informação crítica por celular GSM ou 3G.

Uma linha 3G, por exemplo, pode ser grampeade em apenas 2 horas.


Para Leigos

O funcionamento normal de um celular atual consiste sempre em codificar toda a comunicação entre dois ou mais aparelhos com a finalidade de tornar uma interceptação impossível por uma pessoa não autorizada.
Para que isso ocorra são usados algoritmos (processos) muito complexos matematicamente.

No final de 2009, em uma conferencia de Segurança da Informação em Berlin, especialistas em segurança divulgaram uma falha na forma como os celulares GSM transmitem suas informações. Com essa descoberta tornou-se possível que qualquer pessoa em posse de alguns equipamentos e softwares possa descobrir a codificação usada por um celular e clonar o mesmo a fim de grampear qualquer informação de Voz ou de Dados enviada ou recebida por este aparelho.

Logo em seguida o órgão responsável pelas comunicações em telefonia móvel (GSM Association) divulgou e implementou um novo algoritmo de codificação, o mesmo usado nos atuais celulares 3G. Porém, algumas semanas após a divulgação deste novo algoritmo pesquisadores já descobriram uma nova falha semelhante ao anterior e até mais fácil de ser explorada.

Em testes práticos, tais pesquisadores provaram que um celular 3G pode ser grampeado em menos de 2 horas sem a necessidade de equipamentos muito caros.

Até o momento não foram divulgadas correções nesse sistema e as mídias estão contendo a proliferação desta informação, mas ainda estamos todos vulneráveis.

A dica é que NÃO usem usem aparelhos celulares GSM ou 3G para trocar informações sigilosas, sejam elas no formato de Voz ou de Dados.


Grande abraço! 

Como os Switches processam seus frames?

Olá!

Esse é um tópico bem curtinho mas não menos importante para entendermos os Swicthes. O básico do seu funcionamento já sabemos, mas o objetivo aqui é vermos cada vez mais profundamente suas características.

Entendendo essas formas de processamento podemos designar a melhor forma de operação para a nossa topologia e saber o que é mito ou não. hehe

Bom, preciso deixar claro que os termos usados se baseiam em Cisco, pois estou estudando para a CCNA, mas outros fabricantes possuem os mesmo conceitos podendo trocar alguns nomes...

Basicamente os Switches possuem três formas de processamento de frames:
- Store-and-Forward - A padrão em quase todos os switches.
- Cut-through - A que eu menos indico.
- Fragment-free - Bem inteligente.

Store-and-forward
Como já dito acima, esse é o padrão em quase todos os switches (pelo menos nos que conheço). Nesse formato de processamento o swicth irá trasmitir os frames para a porta de destino apenas quando todos os fragmentos desse frame chegarem no switch e forem analisados. É a forma mais segura e confiável para um switch trabalhar. Da para fazer uma analogia com um servidor proxy, o qual só retransmite o site para o destinatário depois que todos os frames chegam e o proxy consegue montar o pacote completo. A única desvantegem desse modo de processamento em relação aos outros é referente à latência. Como ele espera que todos os frames cheguem para depois transmitir isso pode causar uma pequena latência. Mas na prática isso não é problema hoje em dia, pois nossas LANs dificilmente atuam em toda sua capacidade e ainda assim temos velocidades bem altas.

Portanto, é a forma de processamento mais indicada para a maioria dos casos.

Cut-through
Essa é uma opção que na minha opinião não vale a pena. Em um frame ethernet o endereço MAC sempre vem bem no ínicio do frame (nos primeiros bytes). Em um swicth isso é mais do que necessário para ele tomar a decisão de que porta transmitir o frame. Assim que consegue ler o MAC de destino já começa a retransmitir os fragmentos desse frame. Isso causa uma latência realmente muito baixa na comunicação. Os frames serão restransmitidos assim que possível. O problema desse modo é que cada cabeçalho de frame possui um campo chamado FCS que fica mais ao final do cabeçalho. Esse campo tráz um hash de todo o frame no momento em que ele foi gerado. Na outra ponta o dispositivo calcula novamente esse hash e compara com o resultado que veio no campo FCS. Caso seja igual significa que o frame foi transmitido com sucesso e está íntegro. Caso contrário o frame foi corrompido no caminho.

Como nesse modo o Swicth nem chega a ler o campo FCS, o frame é retransmitido mesmo estando corrompido causando uma transmissão desnecessária e consequentemente perda de desempenho na comunicação. Na minha opinião não vale a pena esse ganho na análise do cabeçalho perdendo com transmissões corrompidas. NÃO recomendo.

Fragment-free
Esse é um kra legal. Considero um intermediário entre o Store-and-forward e o Cut-through.
Ele não espera todos os fragmentos e nem lê apenas o DST MAC. Na verdade ele espera os primeiros 64 Bytes de um frame, os quais contém todo o cabeçalho. Dessa forma ele consegue ler informações de MAC e ainda verificar a integridade do cabeçalho evitando a restransmissão de pacotes corrompidos. Talvez seria interessante em estruturas de Cluster sobre LAN.

Conclusão: Usar sempre que possível o primeiro modo - Store-and-forward - pois ele satisfaz praticamente todas as necessidades sem causar perdas consideráveis no desempenho da nossa rede. Na pior das hipóteses use o Fragment-free mas jamais o Cut-throug.

Abração!