Reginaldo SanTana™ Postado Agosto 31, 2011 Compartilhar Postado Agosto 31, 2011 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 hash SHA1 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 algoritmo de criptografia Tiny (TEA) . 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 algoritmo RSA é 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.
Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.