O GSM (Global System Mobile) é o sistema de telefonia móvel padrão na Europa, sendo o mais utilizado em todo o mundo. Foi o primeiro sistema a oferecer serviços de segurança, como autenticação, sigilo e distribuição de chaves de sessão.
A tecnologia GSM combina os sistemas TDMA, FDMA e FDD, ou seja, usa simultaneamente o múltiplo acesso (MA) por divisão e freqüência das portadoras (FDMA), o múltiplo acesso por divisão de tempo (TDMA) de cada portadora e usa uma faixa de freqüência para cada sentio de transmissão (FDD = Freqüency Division Duplex).
As informações referentes à assinatura e identificação do usuário não estão embutidas no aparelho celular, e sim no chip destacável denominado SIM card (
Subscriber Identity Module), onde está contida a chave secreta, conhecida somente pelo chip e pela identidade HLR (Home Location Register), que contêm toda informação sobre o assinante.
Na tecnologia GSM, após a autenticação do usuário, estabelece-se uma chave Kc conhecida por ambas as partes (BTS e MS) com a qual as mensagens transmitidas e recebidas são cifradas por um algoritmo de stream cipher – que, ao contrário dos block ciphers, encriptam cada caractere (usualmente cada bit) de uma seqüência – chamado A5.
O GSM faz uso do sistema de criptografia de chave simétrica, e utiliza como processo de autenticação um mecanismo de desafio-resposta. Para garantir a segurança na comunicação, a tecnologia GSM faz uso de três algoritmos de segurança (A3, A5 e A8), sendo o A3 empregado para gerar o desafio-resposta, o A5 para cifrar e decifrar as mensagens e o A8 para gerar a chave de sessão.
O algoritmo A5 possui duas versões : o A5/1, versão mais forte, utilizada nos EUA e Europa Ocidental; o A5/2, versão mais fraca e exportável utilizada nos outros países.
A versão A5/1 possui uma chave de 64 bits, porém faz uso efetivo de 54 bits. O A5/1 realiza a cifragem das mensagens baseado em três LFSRs (Linear Feedback Shift Register) controlados por clock, sendo que os comprimentos dos registros são 19, 22 e 23. O resultado de saída é um XOR dos três registros LFSRs.
Ataques ao protocolo A5
Os ataques praticados à tecnologia GSM ocorrem sobre as vulnerabilidades encontradas no algoritmo A5/1. Basicamente, dois tipos de ataques acontecem sobre o A5/1 : : known ciphertext attack ou known plaintext attack .
No ataque do tipo known ciphertext attack, o atacante possui somente o texto cifrado e necessita obter o texto claro ou a chave simétrica para decifrar a mensagem. As etapas para a execução do ataque são : Dada uma seqüência de frame counters Fn {0,1}22 e uma seqüência de pares de frames cifrados Cn {0,1}114 x {0,1}114, um ataque ao A5/1 tem como objetivo descobrir informações sobre o texto claro Pn {0,1}114 x {0,1}114 ou sobre a chave de sessão Kc.
De posse destes dados, um ataque de força bruta faz uma busca no espaço de todas as chaves Kc {0,1}64 possíveis criando um conjunto de seqüências pseudo-randômicas Xn {0,1}114 x {0,1}114 para cada frame e computando os pares de texto claro Pn para cada par Cn.
Para a concretização deste ataque é necessária a utilização de um algoritmo de reconhecimento de texto claro eficiente. A dificuldade de implementar tal algoritmo limita a possibilidade prática do ataque de força bruta. Contudo, se a seqüência computada de Pn’s formar um texto claro válido, a chave Kc candidata foi encontrada.
O ataque do tipo known plaintext attack, supõe-se que o atacante possua uma parte do texto cifrado e o texto claro, tentando, então, obter a chave utilizada para cifrar a mensagem. É importante salientar que cada segundo de conversação contêm aproximadamente 28 frames, sendo que os telefones GSM enviam um novo frame a cada 4.6 milissegundos.
Os ataques do tipo known plaintext attack criam a partir de um conjunto de frames de texto cifrado e seus textos claros correspondentes, um conjunto de streams de bits de saída (bit strings y(t)|288 t=101) para o A5/1, e posteriormente, tenta-se computar o estado do A5/1 antes do embaralhamento do frame counter. Neste ataque as seguintes etapas são executadas :
1. Determinar a partir de um conjunto de streams de bit de saída o estado interno do
A5/1 para alguns ciclos t > 100.
2. Inverter o A5/1 para determinar um conjunto de estados iniciais possíveis.
3. Inverter o embaralhamento do frame counter para determinar o estado do A5/1 após o embaralhamento da chave de sessão.
O estado obtido no ultimo passo pode ser utilizado para gerar um stream de bits para qualquer frame counter desejado e então realizar ciframento e deciframento da chave de sessão.
Referências :
http://packetstormsecurity.nl/crypt/cryptanalysis/a51-pi.htm
http://www.tml.tkk.fi/Opinnot/Tik-110.501/2000/papers/tarkkala.pdf
http://cryptome.org/a51-bsw.htm
http://www.teleco.com.br/tutoriais/tutorialroubocel/pagina_2.asp


Leia este blog no seu celular