A evolução dos cartões SIM

20 jan 2016

Um cartão SIM, da sigla Subscriber Identity Modulde (Módulo de Identidade do Usuário), pode ser facilmente trocado ou substituído. Os primeiros celulares suportavam apenas padrões de comunicação embutidos: os parâmetros de inscrição eram codificados dentro da memória do aparelho.

Sistemas antigos como o NMT-450 não empregava nenhum meio de segurança: os dados de inscrição podiam ser copiados em outros dispositivos ou até clonados, tornando possível ligar e aceitar ligações no lugar do dono legítimo, livre de cobranças.

sim-card-history-FB

As primeiras medidas de segurança, que foram criadas um pouco depois, foram chamadas de código SIS, sigla para Segurança de Identidade do Usuário – um número único de 18 dígitos por aparelho codificado. Códigos SIS eram distribuídos entre os vendedores de modo que dois dispositivos não tivessem o mesmo número. O processador também armazenava um número de 7 dígitos de código RID que era transmitido para uma estação base quando o usuário se registrava a uma rede de celular.

A estação base geraria um número aleatório, que, com uma resposta SIS única, o processador SIS produziria uma chave de autorização.

Tanto a chave quanto os números eram relativamente curtos, mas adequados para 1994 – como podemos imaginar, o sistema foi invadido mais tarde, três anos antes do padrão GSM emergir. Era mais seguro por design, pois usava um sistema de autorização similar mesmo que mais resiliente. Então, o padrão se tornou “independente”.

Isso significa que a autorização ocorria completamente em um processador externo, integrado com um cartão. Surgiu o SIM. Com a introdução dele, a inscrição não era mais dependente do aparelho, então um usuário poderia trocar de dispositivo tanto quanto quisesse, preservando a identidade do celular.

Um cartão SIM é basicamente, um cartão padrão inteligente ISO 7816 e não possui diferença significativa de outros cartões de contatos baseados em IC, como de crédito ou telefônicos. O primeiro cartão SIM até tinha o mesmo tamanho de um cartão de crédito, mas a tendência generalizada de diminuir tudo, levou a uma forma nova mais compacta.

Cartões SIM tradicionais de tamanho integral 1FF não caberiam mais nos celulares, então a indústria inventou uma solução de compatibilidade simples: um cartão menor (mini-SIM, ou 2FF), que é comum hoje, foi colocado em um envoltório plástico de tamanho 1FF, de modo que o novo chip ficava confinado no cartão plástico e ele possuía um chip menor e que pode ser facilmente retirado.

Mesmo que o encolhimento continue com micro-SIM (3FF) e o nano-SIM (4FF), o formato, funcionamento de contato e as características continuaram os mesmos por quase 25 anos. As quinquilharias plásticas maiores ainda são produzidas para acomodar as necessidades de usuários que ainda preferem telefones mais antigos.

Dito isso, muitos dispositivos agora fora de linha não suportariam os SIMs de hoje, mesmo que eles tenham o tamanho correto. Isso diz respeito ao fato da voltagem de operação de cartões SIM antigos ser de 5V, enquanto os de hoje demandam 3V. Muitos fabricantes de SIM preferem trocar compatibilidade por custo, então a maioria dos cartões SIM não suportam duas voltagens. E é por isso que um telefone antigo compatível somente com SIM de 5V, não reconheceria cartões de 3V por conta da proteção de voltagem do processador.

Enquanto na linha de produto certas informações são escritas na memória do cartão SIM: o número IMSI (uma identidade internacional de celular) de acordo com a companhia que fez o pedido do lote, é uma chave de 128-bit chamada Ki (Key Identification). De forma simples, IMSI e Ki são o login e a senha do usuário, respectivamente, codificados no SIM.

A correspondência entre o IMSI e o número de telefone é armazenada em uma base de dados especial chamada HLR (Home Location Register). Esses dados são copiados em outra base de dados, VLR (Visitor Location Register), em cada segmento da rede, baseado no registro “convidado” em outra estação base.

O processo de autorização é bem simples. Quando um usuário é registrado a base temporária, VLR envia um número aleatório de 129-bit (RAND) para o número de telefone. O processador do cartão SIM usa o algoritmo A3 para gerar respostas de 32-bit (SRES) ao VLR, baseado nos números RAND e Ki. Se o VLR recebe uma resposta concordante, o usuário se registra na rede.

O SIM também gera outra senha temporária chamada Kc. Seu valor é calculado baseado nos já mencionados RAND e Ki com a ajuda do algoritmo A8. Essa senha é usada para codificar dados transmitidos por meio do algoritmo A5.

Parece um pouco complicado por conta dos diversos acrônimos e tudo. Mas a ideia básica é bem simples: primeiro você tem login e senha codificados no seu SIM, depois você cria uma verificação e senha de criptografia com alguns truques de matemática – e pronto, você está conectado.

A criptografia é sempre habilitada por definição, mesmo que em certas circunstâncias (por exemplo, apresentada a garantia) é desligada, tornando possível que uma agência de inteligência intercepte conversas de telefone. Nesse caso, um telefone antigo mostraria uma imagem como um cadeado aberto, já os telefones de hoje (menos o Blackberry) não mostram nada.

Existe um ataque especificamente projetado para interceptar ligações de telefone: para que ele ocorra, é necessário um aparelho chamado “Captor” de IMSI. Ele simula a estação base, registra telefones conectados e encaminha todos os sinais para a estação base real.

Nesse caso, o processo de autorização como um todo flui normalmente (não é necessário violar as chaves de criptografia), mas a estação base falsa impulsiona o celular a transmitir em modo de texto plano, de modo que o sinal pode ser interceptado sem o usuário ou a operadora saberem.

Por mais que pareça um contrassenso, essa “vulnerabilidade” não é uma vulnerabilidade. Na verdade, essa característica foi desenvolvida logo no início, com intuito que os serviços de inteligência pudessem promover ataques Man-In-The-Middle, quando fosse necessário.