IPhone da Apple ataques de força bruta são frustrados por quê?
0

1 post neste tópico

IPhone da Apple é um excelente exemplo de uma proteção netlock bem projetado. Até hoje, tem sido uncracked em princípio: a soluções de desbloqueio atual, apenas corrigir o firmware em execução no modem de banda base para o efeito que os controlos são netlock anulado.Estas soluções basicamente injetar código para o firmware "on the fly", explorando buffer / heap overflows. Um pequeno pedaço de software homebrew é executado no processador de aplicação apenas para fazer isso - um jailbreak é, portanto, um pré-requisito para um desbloqueio. Os sistemas não podem ser permanentemente aplicadas ao firmware de dispositivos 3G e, mais tarde , porque é assinatura verificada pelo bootloader do baseband antes de ser executado. Sempre que a Apple decida atualizar o firmware baseband, que reparar os buracos da injeção. Downgrades de firmware estão bloqueadas, então uma maneira de desbloquear o baseband permanentemente ainda não foi encontrado para outros modelos que o iPhone 2G em primeiro lugar. Em suma, a proteção funciona assim:

  • Dois números de identificação única para cada dispositivo são geradas a partir do flash NOR e seriados baseband CPU: o norID eo ChipID, 8, respectivamente, 12 bytes de tamanho.
  • O dispositivo específico deviceKey é gerada a partir truncar um Please login or register to see this link. da concatenadas e acolchoada norID e ChipID .
  • A NCK supostamente aleatório ("chave de controle de rede ') é SHA1-hash. Com o NCK hash ea norID e ChipID , a segunda chave nckKeyé gerado. O algoritmo de hash usa Please login or register to see this link. . O nckKey também é específico do dispositivo uma vez que ambos os norID e ChipID são usados.
  • Um dispositivo específico assinatura RSA é gerado: dois hashes SHA1 são gerados a partir da norID e ChipID . O status que o bloqueio tem após o NCK correto foi inserido também é embutido dentro da mensagem. O PCKS 1,5 formato é usado para preencher os hashes eo status de (2 * 160 +32) bit a 2048 bits (256 byte).
  • A assimétrica Please login or register to see this link. é utilizado para a criptografia da assinatura de desbloqueio. Tenha em mente que o algoritmo usa duas chaves diferentes: uma chave privada para a criptografia e uma chave pública para descriptografar. Com a chave privada RSA, a assinatura é criptografada e armazenada na memória protegida.
  • Esta assinatura é criptografada com TEA, mais uma vez usando o dispositivo específico deviceKey no modo CBC.
Em pseudo-código, é parecido com este:

deviceKey = SHA1_hash (norID + ChipID)

nckKey = custom_hash (norID, ChipID, SHA1_hash (NCK), deviceKey)

rawSignature = generateSignature (SHA1_hash (norID + ChipID), SHA1_hash (ChipID))

Assinatura = RSA_encrypt (rawSignature, privateRSAkey)

encryptedSignature = TEA_encrypt_cbc (Assinatura, nckKey)

O encryptedSignature é então guardada em uma área protegida de memória - o dispositivo tiver sido bloqueado. Isso acontece quando as questões da Apple a AT + clck = "PN", 1, " NCK " comando presumivelmente diretamente após a fabricação do telefone. Ao testar uma chave de código de rede, o firmware baseband lê o encryptedSignature , calcula o deviceKey eo nckKey da entrada NCK, descriptografa oencryptedSignature com o nckKey usando TEA, descriptografa-lo mais uma vez com a chave pública RSA e verifica a assinatura com a hashes SHA1 do ChipID / norID . Aqui está o código pseudo:

deviceKey = SHA1_hash (norID + ChipID)

nckKey = custom_hash (norID, ChipID, SHA1_hash (NCK), deviceKey)

encryptedSignature readEncryptedSignature = ()

Assinatura = TEA_decrypt_cbc (encryptedSignature, nckKey)

rawSignature = RSA_decrypt (Assinatura, publicRSAKey)

if ((rawSignature tem formato correto) e (rawSignature contém SHA1_hash (norID + ChipID), SHA1_hash (ChipID) ) e (byte Bloqueio status rawSignature é OK))

.. aceitar todos os cartões SIM

outro

.. bloco não-autorizada SIMs

Se o NCK -chave está correta, ele é armazenado na parte processador de aplicação de dispositivo e um sinalizador é definido o que torna o firmware aplicação (IOS) alimentar o NCK para o modem de banda durante o arranque. Se o descriptografado rawSignature passa o cheque, o baseband desbloqueado. Isto é o que acontece em dispositivos de fábrica desbloqueado e iPhones que tenham sido oficialmente desbloqueado.Não se sabe se alguns iPhones nunca pode ser desbloqueado pelo projeto, mesmo com o conhecimento do NCK correto: em os EUA, a AT & T não dar NCKs para qualquer iPhone, mesmo para aqueles dispositivos em que o contrato acabou. Esta prática sugere que a AT & T iPhones têm uma barreira permanente. Várias lições podem ser aprendidas com este:

  • O NCK é armazenada apenas indiretamente sobre o dispositivo em um protegida área.
  • A assinatura , que contém as informações sobre o NCK está diretamente ligado ao dispositivo. Assim, a replicação de uma assinatura de outro dispositivo não vai funcionar.
  • O NCK é um número de 15 dígitos que não é presumivelmente dependente do IMEI ou qualquer outro número de série, mas completamente aleatórios.
  • Ataques de força bruta são frustrados porque algumas operações caras são necessárias apenas para verificar o código eo espaço da chave é grande, por exemplo, o número de possíveis combinações de teclas é grande.
  • A validade da assinatura é implicitamente exigido para um dispositivo desbloqueado. Fábrica desbloqueado dispositivos são enviados com tal assinatura , e durante o processo de desbloqueio oficial, esta assinatura é gerada.
  • A falsificação da assinatura de um dispositivo conhecido com norID , ChipID e NCK não pode ser gerado porque a chave privada RSA é desconhecida.
  • Conseqüente assinatura de código faz patches de firmware permanente impossível.
  • Curiosamente, a verificação de assinatura em si é executado no bootloader que não é tocado durante uma atualização de firmware.
Como resultado, a proteção resiste a maioria dos ataques usados ​​para desbloquear.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
0