Índice:
- Atualizações perfeitas
- Configuração de segurança de rede
- Proteção do servidor de mídia
- Atestado chave
- Criptografia no nível do arquivo
- Inicialização direta
- Acesso ao diretório com escopo
Atualizado em 13 de agosto de 2016, com informações sobre os recursos e APIs finais do Android Nougat.
Há muitas alterações de código no Android N. Algumas delas podemos ver - como as novas notificações - e outras não - (mas ainda são um grande negócio). Vemos a mesma coisa a cada atualização. Existem aprimoramentos e alterações na interface, mas, sob o capô, são feitos ajustes e alterações para tornar o Android melhor e mais seguro.
O Google aprimorou a segurança do Android Nougat em várias áreas diferentes. Alguns são projetados para proteger o próprio Android, enquanto outros são ferramentas para os desenvolvedores usarem, para que permaneçam assim quando instalamos aplicativos. Vamos dar uma olhada nas próprias mudanças.
Atualizações perfeitas
O Google já faz "atualizações contínuas" no Chrome OS e funciona muito bem. As coisas serão muito semelhantes no Android.
As atualizações contínuas usarão duas partições de sistema separadas. Um deles é o sistema que você está executando ao usar seu telefone todos os dias. Quando é hora de uma atualização, a outra partição do sistema é alterada e atualizada, e na próxima vez que você reinicia, você é automaticamente trocado. Na próxima vez que houver uma atualização, a outra partição do sistema será alterada e você voltará.
: Android 7.0: o que são atualizações contínuas e como elas funcionam?
Isso significa que as coisas podem ser feitas enquanto você estiver trabalhando ou jogando e, quando terminar, tudo o que você precisa fazer é reiniciar normalmente. Você ficaria surpreso (eu estava quando o ouvi), mas um grupo bastante grande de pessoas não atualiza o telefone porque leva um tempo. Eles poderiam ter feito isso uma vez, então ficaram lá esperando, e decidiram não fazê-lo novamente. É fácil descartar a notificação. Mas, alterando o procedimento, facilitando as atualizações e eliminando o horrível tempo de espera ao ver a caixa de diálogo "atualizando aplicativos", mais pessoas o farão.
Configuração de segurança de rede
A Configuração de segurança de rede permite que os desenvolvedores de aplicativos criem e usem um arquivo de configuração personalizado para configurações de segurança de rede em vez de solicitar alterações no nível do sistema.O arquivo de configuração pode ser alterado sem modificar o próprio aplicativo e pode ser configurado para usar uma Autoridade de Certificação personalizada em vez do dispositivo padrão e também pode ser configurado para ignorar uma ou todas as autoridades de certificação confiáveis pelo sistema. Isso é importante para conectar-se a um host que possui uma CA autoassinada (para aplicativos corporativos) ou para um aplicativo que deve confiar apenas em uma CA específica.
Além disso, a configuração pode ser definida para desativar qualquer tráfego de rede de texto sem formatação e forçar a comunicação criptografada usando o protocolo HTTPS. Se você é um administrador de rede ou desenvolve aplicativos de rede, sabe como essas alterações são importantes. O resto de nós pode estar feliz por poder ter um tráfego de rede mais seguro em aplicativos mais fáceis de desenvolver.
Proteção do servidor de mídia
Lembra do Stagefright? Embora tenha sido desproporcional por grande parte da mídia, havia um problema real oculto por trás da hipérbole. Reproduzir um arquivo de mídia e ter a capacidade de forçá-lo a reiniciar ou a perder todo o áudio é um problema desagradável, e o fato de que (em teoria) isso poderia ser usado para obter secretamente permissões de root é ainda mais assustador. O Google leva isso muito a sério e vemos patches na biblioteca do servidor de mídia todos os meses para tentar ficar à frente dos bugs e preocupações de segurança que o acompanham.
No Android N, o servidor de mídia recebe uma grande revisão. O Google dividiu o servidor de mídia em componentes menores que podem ser atualizados fora de uma atualização completa do sistema - exatamente como fizeram com o componente WebView. Isso significa que, quando eles tiverem um novo patch, você poderá obter a atualização do Google Play em vez de esperar seis meses ou mais pelas pessoas que fizeram o telefone decidir enviar o patch para você.
Eles também alteraram o modelo de permissão do servidor de mídia, não concedendo mais permissões completas ao sistema. A execução com privilégios baixos torna ainda mais difícil alguém invadir o sistema se entrar no servidor de mídia. Essa é uma grande mudança e tornará ainda mais difícil invadir um telefone Android (o tipo ruim de invasão) do que costumava ser.
Atestado chave
O Atestado de Chaves permitirá que os desenvolvedores garantam que as chaves que possam estar usando em seus aplicativos sejam válidas e armazenadas no keystore suportado por hardware do telefone e não no software. Quando a ferramenta de atestado recebe um alias gerado para uma chave (a chave real nunca deve ser compartilhada), ela gera uma cadeia de certificados que pode ser usada para verificar a chave. Os desenvolvedores podem verificar a chave e o estado de inicialização verificado para garantir que tudo é válido.
Os telefones que acompanham o Android N e usam os serviços do Google terão um certificado emitido pelo Google como autoridade raiz (ou principal), enquanto outros telefones que foram atualizados precisarão de um certificado emitido pela empresa que os criou.
Nem todos os telefones que podem executar o Android N têm um ambiente de hardware confiável para armazenar chaves de criptografia e, nesses casos, o atestado de chave no nível do software é usado. O estado de inicialização verificado ainda pode ser verificado para garantir que o software do sistema não tenha sido violado. Sim, isso significa que um desenvolvedor pode verificar a raiz. Isso é bom, desde que nenhuma penalidade indevida seja aplicada aos usuários que enraizaram o telefone.
Criptografia no nível do arquivo
Anteriormente, o Android usava criptografia em nível de bloco para criptografar toda a partição ou dispositivo de armazenamento de uma só vez. Esse era um método de criptografia muito seguro, e manter os tokens reais fora do armazenamento e do hardware significava que a única maneira de entrar era com a senha ou o PIN certos. Com o Android N, as coisas foram alteradas para criptografia no nível do arquivo.
A Inicialização Direta foi projetada para funcionar com criptografia em nível de arquivo, a fim de fornecer segurança e segurança.
Quando o seu dispositivo Android criptografado é inicializado (ou reinicializado no seu bolso), o dispositivo é criptografado e bloqueado. Somente certos aplicativos podem ser executados, e isso é chamado de modo de inicialização direta. Isso significa que você ainda pode receber chamadas ou ter um alarme disparado (ou até ver algumas notificações de mensagens), mas para fazer mais, será necessário desbloquear e descriptografar o dispositivo. Uma vez desbloqueado, o N usa a criptografia no nível do arquivo para permitir que nós (o usuário) e os aplicativos tenha um pouco mais de controle sobre como os dados são bloqueados.
Há duas vantagens em jogo aqui: o FDE (criptografia de disco completo da camada de bloco) faz com que os dispositivos low-end funcionem muito mal. O Nexus 6 levou algumas tentativas para o Google acertar, e qualquer dispositivo com menos de 50 MB / s de leitura e gravação de hardware de armazenamento flash ainda sofre. A segunda vantagem (e mais importante) é o uso da criptografia em nível de arquivo para criptografia autenticada com dados associados (AEAD). AEAD significa que os dados são mais difíceis para um usuário ou aplicativo não autorizado acessar. Para as pessoas interessadas na AEAD, aqui está uma leitura muito boa do professor da UC Davis, Phillip Rogaway (arquivo.pdf).
Essa abordagem de criptografia em várias camadas permitirá que as empresas que fabricam Androids com preços muito baixos ofereçam criptografia sem degradação do desempenho.
Inicialização direta
A criptografia em nível de arquivo também funcionará melhor com o recurso Inicialização direta. O Direct Boot traz um novo modo que os desenvolvedores podem aproveitar para que seu aplicativo possa ser executado assim que o sistema for ligado, em vez de esperar que o usuário desbloqueie ou descriptografe o telefone.
Isso é feito em conjunto com uma nova área de Armazenamento de dispositivos e os aplicativos que usam a Inicialização direta não terão nenhuma interação com o sistema de arquivos normal protegido por credenciais e com os arquivos ou diretórios criptografados individualmente.
: Android 7.0: O que é a Inicialização direta e como ele melhorará sua experiência?
Acesso ao diretório com escopo
O escopo de acesso ao diretório é uma maneira de um aplicativo obter permissão para acessar um diretório específico no armazenamento externo (o armazenamento externo é uma partição fora do sistema e inclui o armazenamento do telefone e um cartão SD ou outro dispositivo de armazenamento conectado) sem solicitar permissão para todo o volume ou usando uma janela pop-up para solicitar permissões de pasta.
O acesso seguro aos dados armazenados é importante. Um aplicativo que só precisa acessar a pasta de armazenamento Música ou Fotos não deve estar vendo mais nada, e escrever código para usar o Storage Access Framework existente para restringir as coisas provou ser algo que muitos desenvolvedores se recusam a fazer. a nova API de acesso ao diretório com escopo definido facilitará os desenvolvedores a criar aplicativos seguros e proteger seus dados.
Esses recursos cruciais de segurança são uma grande parte do Android N. Embora alguns telefones (especialmente os que não são fornecidos com o Nougat) possam não usá-los todos, cada um ajuda a proteger nossos dados quando usados adequadamente. O Android amadureceu, e a atenção aos detalhes que o Google está mostrando no 7.0 pode não ser tão chamativa quanto novos emojis ou um novo esquema de cores, mas é muito mais importante.