Qual é a melhor maneira de criptografar os dados do aplicativo Android antes de enviá-los ao servidor?
Assumindo que eu entendi a pergunta corretamente, você normalmente apenas encriptaria durante o trânsito usando TLS .
Porquê? Um par de razões:
- para garantir que você está falando com o host correto, você provavelmente usaria TLS de qualquer forma. se você não o fizer (qualquer depende puramente dos resultados do DNS) não há nenhuma maneira de ter certeza de que você está falando com o endpoint certo.
- Seguir a partir de #1, você estaria implementando a criptografia dentro do seu próprio código ao invés de utilizar uma capacidade padrão através de plataformas. Isso aumenta o risco de errar e, portanto, impactar seu modelo de segurança>li>li> Você também precisaria considerar como as coisas são descriptografadas na outra ponta também, o que poderia potencialmente levá-lo a uma maior confusão com o gerenciamento de chaves.
- Dependente do tamanho da carga útil, você possivelmente teria que implementar alguma criptografia simétrica - como você sincronizaria chaves entre todos os seus clientes e servidores (não, a resposta não é hardcode algumas chaves!!!)
- li>Even se você pudesse escapar com chaves assimétricas (por exemplo, pares de chaves públicas/privadas), você ainda teria algumas considerações sobre gerenciamento de chaves, E você ainda estaria (provavelmente) utilizando TLS. Você está sendo atingido duas vezes no desempenho. Mais uma vez, não é bom
Espero que isto explique porque é que normalmente se encripta em trânsito, mas talvez tenha alguns requisitos especiais que o forcem a encriptar antes de enviar o TLS.
.Artigos semelhantes
- Você deve criptografar um cartão SD?
- Como configurar um servidor SMTP (imap.domain.com) que envia através de uma rotação de outros servidores SMTP (Amazon, Google, etc.)
- Se os dados do seu celular estão desligados e você envia uma mensagem de texto, ela não é enviada até que você ligue os dados?
- Você envia um e-mail para 3 pessoas, e esquece de adicionar 1 pessoa. Qual é a melhor maneira de incluí-lo?
- Por que um servidor privado virtual, comumente chamado VPS, deveria ser melhor do que um servidor de hospedagem?