Nota: Bem, a recompensa expirou e um possível motivo pode ser o esforço necessário para resolver, conforme eu recolho os comentários. Vendo o número de votos positivos, parece ser de interesse de outras pessoas também. Eu ainda gostaria de receber uma resposta, então aqui está o que proponho: uma boa resposta em um mês receberá um bônus de 50. Espero que isso dê tempo e incentivo adequados
Estou tentando entender o processo de criptografia do Android e suas vulnerabilidades há um tempo
Existem muitas perguntas abordando partes deste tópico neste site e também no site irmão. Para mostrar meu ponto de vista, essas perguntas tratam de partes e não o todo (remanescente de " cegos e um elefante ?") :)
- O que a criptografia Marshmallow está protegendo?
- A criptografia de dispositivo completo protege meus dados do Google e do governo?
- /android/137334/if-we-encrypt-our-device-can-user-connecting-to-adb-get-it
- Perguntas relacionadas à criptografia do cartão SD
- criptografia do Android quando o telefone está ligado
- android-cyanogenmod-encryption-vs-gnu
- existe material criptográfico em um telefone para cartões sim que pode ser usado com a rsa
- criptografia do dispositivo android
Meu entendimento (ou mal-entendido?)
- A senha de criptografia é gerada a partir de uma combinação de PIN da tela de bloqueio do usuário e algoritmo de criptografia (nela existe uma fraqueza inerente devido ao tamanho limitado do PIN)
- É salgado e armazenado no local raiz, não acessível aos usuários
- Isso é usado para gerar a senha real para criptografar / descriptografar e a senha real é armazenada na RAM
- Isso foi reforçado ao vincular a Etapa 1 ao SoC do dispositivo ( qual versão do Android? Qual é o elemento de hardware que identifica exclusivamente o dispositivo? Isso pode ser substituído por falso? )
- Portanto, não é possível descriptografar dados sem chave e dispositivo de criptografia (também é válido para SD externo)
- Possíveis métodos de recuperação - força bruta, captura de informações de RAM (etapa 3) para obter a chave
- Dispositivos enraizados parecem ser mais suscetíveis a acessar os dados da etapa 2 por meio de recuperação personalizada / possivelmente ROM e kernel piscando? ( se for verdade, por que isso não é considerado um grande risco? )
- Mesmo que essas informações sejam obtidas, acho que não é um esforço trivial gerar a senha real
- O marshmallow pode tratar o SD externo como "armazenamento interno" ou "armazenamento portátil". Logicamente, não deve fazer diferença, mas não tenho certeza
Existem lacunas no meu entendimento, provavelmente perdendo outros aspectos importantes também.
Então, estou procurando uma explicação canônica para entender da perspectiva do usuário
Processo de criptografia inteiro (incluindo SD externo)
Variação de implementação nas versões do Android - do KitKat ao Marshmallow (incluindo opções duplas para SD externo no Marshmallow)
Vulnerabilidades no nível do usuário
Nota
- Estou ciente do risco de a questão ser considerada muito ampla, mas a IMO garante um tratamento abrangente
Tendo alguma experiência em segurança de comunicação, compreendo o desafio de traduzir conceitos criptográficos para o nível de usuário. Eu preferiria a resposta para resolver isso, com dicas explicativas para uma compreensão mais profunda. Exemplos do processo não precisam ser criptograficamente corretos em um sentido rigoroso, mas devem transmitir a essência
Uma possível vantagem poderia ser "enganar" questões futuras sobre aspectos relacionados
À custa da repetição, as respostas devem estar principalmente no nível do usuário , mas com explicações adequadas para um entendimento mais profundo. Dividir a resposta em duas partes pode ser uma maneira adequada.
Eu faria questão de votar em respostas triviais / casuais / de trabalho de patch para incentivar respostas abrangentes
//
Isso pode ser mais adequado para a segurança . Também acho que é muito amplo, porque uma boa parte do que você está perguntando depende do hardware específico e de como o fabricante o implementa.