- O GrapheneOS combina criptografia de disco, limitação de tentativas por força bruta, mitigação de ataques ao sistema operacional e defesa contra acesso físico com base nos recursos de segurança do Android 17 e no hardware Pixel mais recente
- O elemento de segurança mais recente limita a entrada de PIN/senha a no máximo 20 tentativas e, após 10 falhas, impõe um atraso de 4 horas; após 15, até 41 dias. Também impede alterações de firmware sem autenticação do proprietário, bloqueando desvios por insiders
- Com suporte a senhas de até 128 caracteres e a impressão digital + PIN secundário opcional, é possível usar 6 a 8 palavras Diceware aleatórias como senha principal sem abrir mão da conveniência no desbloqueio cotidiano
- No estado bloqueado, novas conexões USB são bloqueadas tanto por software quanto por hardware, e a reinicialização automática entre 10 minutos e 72 horas, junto com a limpeza da memória, devolve o dispositivo ao estado Before First Unlock
- O PIN/senha de coação apaga o dispositivo quando inserido em qualquer janela de autenticação de qualquer perfil, mas a proteção geral dos dados se baseia não em apenas esse recurso, e sim em criptografia, segurança de hardware e mitigação de ataques
Criptografia e limitação de tentativas de autenticação
- Quebrar diretamente a criptografia de disco não é um caminho realista nem para os invasores mais sofisticados; eles precisam explorar uma vulnerabilidade do sistema operacional no estado After First Unlock ou tentar PINs/senhas por força bruta
- A limitação de tentativas pelo elemento de segurança do Android 16 QPR2 aumenta gradualmente o tempo de espera conforme o número de falhas
- Após 10 falhas, o atraso é de 4 horas; após 15, pode chegar a 41 dias, e o total de tentativas permitido é limitado a 20
- Cinco valores diferentes que falharam recentemente são rejeitados antecipadamente, para que erros repetidos não desperdicem o número de tentativas
- O GrapheneOS só oferece suporte a dispositivos que implementam a limitação de tentativas do elemento de segurança de geração mais recente
- Para atualizar o firmware do elemento de segurança em dispositivos compatíveis, são necessários não apenas uma chave de assinatura válida e um número de versão mais alto, mas também a autenticação do usuário Owner
- Mesmo que um governo obrigue a criação de um firmware que remova a limitação de tentativas, não é possível instalá-lo para contornar a restrição
- Desde o Pixel 2, lançado no fim de 2017, os Pixel usam um elemento de segurança com temporizador interno e resistência a ataques internos, e desde então a integração com o sistema operacional também foi aprimorada
- O GrapheneOS aumentou o limite de tamanho de senha de 16 para 128 caracteres, permitindo o uso de frases-senha Diceware de alta entropia sem depender da limitação de tentativas do elemento de segurança
- A opção de impressão digital + PIN secundário permite combinar uma senha principal forte com desbloqueio diário conveniente
- No estado Before First Unlock, usa-se uma senha principal composta por 6 a 8 palavras Diceware aleatórias; depois disso, é possível combinar impressão digital com um PIN curto
- Mesmo após reconhecer uma impressão digital válida, é preciso inserir o PIN secundário para desbloquear a tela e o armazenamento de chaves de hardware
- As tentativas permitidas de impressão digital caem de 20 para 5, e PINs secundários incorretos também contam como falhas
Defesa do sistema operacional e contra acesso físico
- O GrapheneOS eleva a dificuldade de ataques ao sistema operacional com recursos baseados em hardware, como um alocador de memória reforçado e marcação de memória por hardware (MTE); os detalhes podem ser conferidos em recursos de mitigação de exploits
- Para impedir ataques com acesso físico ao dispositivo, novas conexões USB são bloqueadas por padrão enquanto ele está travado, em nível de software e de hardware, e, quando uma conexão USB ativa desaparece, as funções de dados também são desativadas imediatamente
- O temporizador de reinicialização automática para dispositivos bloqueados, introduzido em junho de 2021, pode ser configurado entre 10 minutos e 72 horas
- O valor padrão era inicialmente 72 horas, mas depois foi reduzido para 18 horas
- Ao encerrar o sistema operacional e inicializar novamente, a memória é limpa e o dispositivo volta ao estado Before First Unlock
- Em abril de 2024, a limpeza de memória também foi adicionada à inicialização no modo fastboot do firmware dos Pixel
- A Apple e o Google também adicionaram reinicialização automática de dispositivos bloqueados ao iOS 18.1 e ao Android 16; no Android, ela pode ser ativada pelo Advanced Protection Mode
- O Android usa chaves de criptografia separadas para cada usuário secundário e para cada Private Space
- No GrapheneOS, é possível devolver essas áreas ao estado Before First Unlock sem reinicializar, encerrando a sessão de usuário secundário e usando os respectivos toggles
- Para recolocar os dados do usuário principal em um estado criptografado em repouso, apagar completamente dados residuais da RAM e até bloquear atualizações do elemento de segurança, é melhor reinicializar o dispositivo inteiro
Apagamento de dados em situações de coação
- O PIN/senha de coação apaga o dispositivo quando inserido em qualquer janela de autenticação do sistema operacional que solicite o PIN/senha do perfil atual
- Funciona não só na tela de bloqueio, mas também em qualquer janela que exija autenticação, como alterações de configurações sensíveis
- Pode ser usado em todos os perfis, incluindo usuário principal, usuários secundários e Private Space
- Também funciona quando inserido como PIN secundário do desbloqueio por impressão digital, mas não se aplica ao PIN do SIM
- Também é possível anotar o PIN/senha de coação em um papel dentro da capinha do celular ou da carteira, mas apagar o dispositivo em uma situação real de coação pode trazer consequências físicas e legais, portanto é preciso avaliar cuidadosamente como usar esse recurso
- O recurso de coação elimina completamente a possibilidade de recuperação dos dados mesmo que os PINs/senhas de todos os perfis sejam conhecidos, mas não é um mecanismo de defesa indispensável; a proteção completa pode ser conferida na lista de recursos do GrapheneOS e no histórico de mudanças das versões
- Atualmente, apenas os Pixel oferecem os recursos de segurança de hardware e as atualizações exigidos pelo GrapheneOS, mas isso deve mudar a partir de 2027 com a colaboração com a Motorola Mobility e os avanços no desenvolvimento da Qualcomm
1 comentários
Opiniões no Hacker News
Este texto parece ter sido publicado em resposta ao caso em que uma pessoa foi acusada após redefinir um Pixel com um PIN de coerção durante uma revista de fronteira nos EUA, para deixar claro que a defesa do GrapheneOS contra extração de dados é forte mesmo sem um PIN de coerção
Recentemente, também saiu uma matéria da Computer Weekly dizendo que a reinicialização automática em 18 horas do GrapheneOS protegeu o material jornalístico e fontes confidenciais de um jornalista ao devolver o aparelho ao estado anterior ao primeiro desbloqueio (BFU), impedindo a extração de chaves
O GrapheneOS precisa de um recurso completo de backup e restauração para que seja possível redefinir preventivamente o celular antes de cruzar uma fronteira. Seria bom poder fazer backup e restaurar todos os apps e dados em um servidor SSH/SFTP pessoal, como no Google Cloud ou no iCloud
Em vez de usar um PIN de coerção e correr o risco de ser acusado, eu preferiria redefinir o celular, colocar apenas alguns contatos, uma cópia do passaporte e o PDF das passagens e, se solicitado na imigração, fornecer o PIN real. Durante a viagem, bastaria lembrar a senha do gerenciador de senhas ou de um servidor SSH remoto para restaurar só os dados necessários e apagá-los novamente a qualquer momento
Por outro lado, se isso virasse um recurso padrão, órgãos de investigação poderiam passar a suspeitar do armazenamento remoto de todos os usuários do GrapheneOS e exigir acesso e restauração, então talvez seja melhor configurá-lo separadamente. Também existe a opção de preparar uma conta Google falsa, usada só para compras comuns e assinaturas do YouTube, para parecer natural
Tenho uma viagem internacional de um mês daqui a 3 semanas e estou em dúvida entre redefinir o celular ou deixar o aparelho principal em casa e levar um dispositivo novo de 150 euros contendo apenas contatos de emergência da família. É um alívio que só pela tela de bloqueio não dê para perceber que não é um Android Pixel comum
allowBackup="false"e também oferece suporte a qualquer serviço de sincronização que forneça uma API compatívelComo o backup é por perfil, também é possível restaurá-lo em um usuário secundário para testar. Há planos para uma reformulação completa a fim de tornar a implementação e a experiência do usuário mais simples e limpas; no momento, outros apps estão sendo reformulados primeiro
Se, na tela de bloqueio, a digitação de um PIN especial inicializasse uma partição-isca após um pequeno atraso, seria possível obter uma negação plausível não só em inspeções de fronteira esperadas, mas também em verificações surpresa
O bloqueio por padrão do Android oferece apenas
Log2(389112) ≈ 18.57 bitsde entropia. É mais fraco até do que 3 caracteres aleatórios, 4 letras minúsculas ou um PIN decimal de 6 dígitosPara senhas longas, dá para usar técnicas de memorização, mas digitá-las é inconveniente. Se forem longas demais, poderiam permitir algo como usar um resumo de hash; bloquear senhas fortes em si só incentiva maus hábitos, como reutilizá-las ou enviá-las para si mesmo
É possível adicionar um segundo PIN de autenticação ao desbloqueio por impressão digital, permitindo usar uma frase-senha forte com praticidade, sem as desvantagens de depender apenas de biometria. O bloqueio por padrão induz o uso de apenas uma fração minúscula das combinações realmente possíveis, tornando-o muito mais fraco do que o cálculo sugere, e foi removido há anos por dar uma falsa sensação de segurança. Também está em desenvolvimento um recurso integrado de geração aleatória de PINs e frases-senha
Ele altera a limitação do AOSP para permitir senhas de até 128 caracteres. A vantagem de frases-senha longas é que só precisam ser digitadas após a reinicialização e continuam protegendo mesmo se o elemento seguro for explorado
Ataques de canal lateral contra o chip de segurança são teoricamente possíveis, mas exigem um método de ataque já validado, desmontagem do aparelho e trabalho preciso e destrutivo
É curioso que querer as mesmas garantias de segurança de dispositivos Apple faça a pessoa ser tratada como criminosa. A Apple também tem reinicialização automática, criptografia completa e Lockdown Mode
O resultado de inserir uma senha de coerção não deveria ser perceptível para quem recebe o telefone. As informações reais da conta devem ser apagadas, mas o sistema deve mostrar um sistema operacional preenchido com conteúdo plausível, como e-mails educados e sem sentido, para que o investigador possa examinar
Vários sistemas operacionais e serviços, como Google Photos ou Samsung, oferecem funções de dados bloqueados
Na exclusão de perfis, metadados que comprovam sua existência permanecem no dispositivo e no armazenamento criptografado do perfil do proprietário. Via ADB, também é fácil verificar se houve redefinição e em que horário, portanto não é possível oferecer uma negação plausível; fazer o usuário acreditar que isso é discreto o colocaria em risco
Mesmo o recurso de ocultar Private Space do Android só o esconde de forma precária na interface do usuário; há vários métodos públicos de detecção, e escondê-lo completamente até do ADB é realisticamente difícil. Recursos incompletos rapidamente se tornam conhecidos em discussões online e serão incorporados a LLMs, ferramentas forenses e guias
Os recursos do GrapheneOS precisam funcionar até contra adversários que saibam da existência do recurso. Como não há como distinguir o PIN de coerção do PIN real, isso faz com que até um PIN recebido de um usuário que não usa o recurso possa ser considerado um possível PIN de coerção
Em dispositivos futuros, pretende-se adicionar suporte a PIN de coerção ao próprio elemento seguro como parte do limite de tentativas do Weaver, para que nem vulnerabilidades do sistema operacional consigam contorná-lo
Fico em dúvida se, após o primeiro desbloqueio (AFU), os dados continuam protegidos mesmo com o dispositivo bloqueado. Como ele é usado com frequência, se os dados AFU não forem protegidos mesmo que você bloqueie antes de a polícia ou um invasor apreender o aparelho, a utilidade é menor; e órgãos de investigação conseguem fazer análise no mesmo dia com ferramentas como Cellebrite
É parecido com usar VeraCrypt, mas deixar o PC ligado porque reiniciar dá trabalho; nesse caso, a extração de memória pode permitir a descriptografia
O valor de 18 horas foi escolhido para quase nunca acionar nem para pessoas que usam o telefone só algumas vezes por dia. Em geral, basta ser um pouco maior que o tempo máximo de sono; reiniciar durante a noite em si não é problema, mas a pessoa pode perder contatos de emergência que não sejam ligações da operadora
Documentos recentes vazados do Cellebrite Premium também mostram que não há meios de atacar dispositivos GrapheneOS bloqueados e atualizados desde um determinado nível de patch de 2022 em diante
Gostaria de saber se a colaboração entre GrapheneOS e Motorola ainda está em andamento e quando os dispositivos Motorola serão lançados
Ao passar pela TSA ou pela imigração, sempre deixo o telefone e o notebook desligados. Nos EUA, entendo que não podem obrigar você a fornecer a senha, e, mesmo que apreendam o dispositivo, se ele estiver desligado será difícil quebrar a senha
A reinicialização automática do GrapheneOS pode ser configurada para no mínimo 10 minutos, e o padrão é 18 horas. Depois disso, Google e Apple também introduziram um temporizador fixo de 72 horas
Ainda assim, seria bom se o GrapheneOS tivesse um atalho mais rápido para desligar. Pelo que sei, hoje é preciso pressionar o botão físico e depois confirmar novamente na tela
xkcd relacionado: https://xkcd.com/538/
Ele até forneceu uma senha, mas aparentemente era uma senha que redefinia o telefone, não que o desbloqueava. É surpreendente que ele não tenha feito backup do dispositivo antes da busca
É possível criar um PIN de coerção atenuado que apague apenas apps selecionados sem deixar sinais. Ou reverter dados de apps para um ponto de restauração definido, fazendo parecer que nada aconteceu, e impedir que a configuração disso seja rastreada, o que ajudaria a reduzir riscos legais
Porém a existência de um perfil específico e o momento da exclusão ficam nos metadados do sistema de arquivos e do sistema operacional, tornando isso claramente visível. Vestígios de arquivos copiados e modificados também permanecem em várias partes do SSD; depois de uso comum por bastante tempo, pedir exclusão segura de um escopo específico já pode ser tarde demais, e os dados podem ser recuperáveis. O próprio fato de metadados e estatísticas que deveriam existir terem desaparecido também vira prova
É possível ter uma função em que todas as frases-senha sejam aceitas como válidas em uma área reservada de armazenamento e, se não estiver configurada ou estiver errada, produzam saída aleatória. Para implementar isso corretamente, seriam necessárias máquinas virtuais e uma área reservada padrão, mas ainda assim uma análise de baixo nível do SSD poderia comprovar que o recurso foi usado