A criptografia de dispositivo completo protege meus dados do Google e do governo?

13

Recentemente, a Apple fez ondas na comunidade tecnológica, recusando-se a cumprir a aplicação da lei em relação ao acesso a dados criptografados do usuário. Eles afirmaram que eles não têm capacidade técnica para descriptografar esses dados.

Como usuário do Android, existe alguma possibilidade semelhante (de preferência incorporada ao sistema operacional em vez de terceiros) que eu possa usar para obter proteção semelhante até do Google e do fabricante do meu dispositivo? Sei que existe a "Criptografia completa de dispositivos" nas minhas configurações, mas isso impede o Google etc. de acessá-la?

Para referência, meu dispositivo executa o Android Lollipop e é um OnePlus Two. Se outras versões como o Marshmallow me permitirem fazer isso, tudo bem.

malexdev
fonte

Respostas:

10

O Google não tem idéia de qual é a chave de criptografia para o seu dispositivo. Todo o processo ocorre no seu dispositivo e a chave nunca é transmitida a lugar algum. A chave em si também não é armazenada em texto sem formatação no seu dispositivo :

Armazenando a chave criptografada

A chave criptografada é armazenada nos metadados de criptografia. O suporte de hardware é implementado usando o recurso de assinatura do Trusted Execution Environment (TEE). Anteriormente, criptografávamos a chave mestra com uma chave gerada aplicando scrypt à senha do usuário e ao sal armazenado. Para tornar a chave resiliente contra ataques externos, estendemos esse algoritmo assinando a chave resultante com uma chave TEE armazenada. A assinatura resultante é então transformada em uma chave de tamanho apropriada por mais uma aplicação de scrypt. Essa chave é usada para criptografar e descriptografar a chave mestra.

Portanto, mesmo que alguém tenha uma cópia da sua chave mestre criptografada, ela não poderá descriptografá-la sem a chave TEE do SoC do seu dispositivo.

Portanto, fora de uma falha na implementação, a criptografia total do dispositivo impedirá que qualquer pessoa acesse seus dados, a menos que conheça / obtenha sua senha OU adivinhe sua senha (por exemplo, forçando brutalmente ou algum tipo de técnica de engenharia social). Em dispositivos que não possuem o suporte de hardware necessário, o FDE tentará criptografar a chave usando um método somente de software.

eldarerathis
fonte
@beeshyams É uma característica do processador. A implementação do ARM é chamada "TrustZone", mas outras arquiteturas também fornecem mecanismos semelhantes. A idéia é que você pode gerar uma chave de dispositivo, armazená-la em um local acessível apenas para o TEE e nunca revelá-la ao mundo externo. Quando você precisa criptografar / descriptografar algo, solicita que o código em execução no TEE faça isso por você, para que a chave permaneça segura. A Wikipedia tem um artigo (-ish) decente .
Eldarerathis
1
@eldarerathis O que eu ouvi é que o iPhone 6 e mais recentes estão protegidos até das atualizações dos OEMs, pois a verificação de senha ( incluindo o atraso / bloqueio temporizado) é implementada inteiramente em hardware. O que estou perguntando é se o Android faz algo semelhante ou se é puramente um bloqueio de software - que pode, obviamente, ser ignorado por uma atualização de firmware. Também estou perguntando se existem telefones baseados no Android com gerenciadores de inicialização que recusam atualizações sem que a senha especificada pelo usuário seja inserida - o que facilitaria o desvio dos períodos de bloqueio de software.
22416 Bob
1
Outra maneira de reformular é se existe uma maneira de exigir que a descriptografia (com senha do usuário) ocorra antes que as atualizações sejam permitidas. Em outras palavras, as atualizações (OEM assinadas) podem ser instaladas sem a chave de descriptografia (sem uma limpeza obrigatória dos dados do usuário)?
22416 Bob
1
@Bob Que eu saiba, o Android não exige a senha de descriptografia para executar o processo de atualização, porque apenas criptografa a /userdatapartição, e não as partições que a atualização realmente estaria modificando ( /systeme /boot, geralmente). Está praticamente no mesmo barco que o iPhone 5 (e inferior).
Eldarerathis
1
Eu acrescentaria, não tenho certeza se o atraso geral por tentativa é algo que pode ser "desativado" por uma atualização ou se o Android a escala artificialmente. O Android usa rodadas de criptografia durante o processo de geração de chaves, portanto, ele também precisa ser usado para descriptografar a chave, e o scrypt é projetado especificamente para ser difícil de acelerar, como uma atenuação à força bruta. Isso continuaria consistente. Um bloqueio após um número X de tentativas com falha (ou um bloqueio escalado, se houver) seria implementado no software, no entanto, o AFAIK.
Eldarerathis
-1

A criptografia completa do dispositivo protegerá seu dispositivo se você usar uma chave longa demais para força bruta, mesmo quando os atacantes puderem usar técnicas de força bruta - assumindo que existem maneiras de permitir que eles façam isso. Snowden diz que 64 caracteres são longos o suficiente para criptografia verdadeiramente inquebrável. É possível obter uma segurança completa - se você não se importa em digitar uma senha de 64 caracteres toda vez que liga o telefone.

Andrew Brown
fonte
Você conhece a limitação do comprimento do PIN do bloqueio de tela? Considere reiniciar sua resposta de acordo
Beeshyams
Sim, 16 caracteres é a limitação se você verificar o código fonte .
Firelord