Suponiendo que he entendido la pregunta correctamente, normalmente solo se encriptaría durante el tránsito usando TLS.
¿Por qué? Un par de razones:
- para asegurarse de que está hablando con el host correcto, probablemente usaría TLS de todos modos. Si no lo hace (ninguno se basa únicamente en los resultados de DNS), no hay forma real de asegurarse de que está hablando con el punto final correcto.
- A partir del n. ° 1, implementaría el cifrado dentro de su propio código en lugar de utilizar una capacidad estándar en todas las plataformas. Esto aumenta el riesgo de equivocarse y, por lo tanto, afectar su modelo de seguridad
- También debería tener en cuenta cómo se descifran las cosas en el otro extremo, lo que podría llevarlo a un mayor desorden con la administración de claves.
- Dependiendo del tamaño de la carga útil, posiblemente tenga que implementar un cifrado simétrico: ¿cómo sincronizaría las claves entre todos sus clientes y servidores (no, la respuesta es no codificar algunas claves)!
- Incluso si pudiera salirse con la suya con claves asimétricas (p. Ej., Pares de claves públicas / privadas), aún tendría algunas consideraciones de administración de claves, y aún (probablemente) estaría utilizando TLS. Te golpean dos veces en el rendimiento. De nuevo, no es bueno
Espero que esto explique por qué generalmente solo se encripta en tránsito, pero tal vez tenga algunos requisitos especiales que lo obligan a encriptar antes de enviar TLS.
- ¿Cómo almacenar los datos de la aplicación de chat de Android en la nube? ¿Cuál es la mejor manera de almacenar toda la información de chat para una aplicación de Android?
- ¿Debería una aplicación forzar al usuario a actualizarla o admitir compatibilidad con versiones anteriores?
- ¿Android Runtime (ART) reemplazará el concepto y las complejidades del código nativo en Android?
- ¿Cuáles son algunas de las mejores opciones para un servidor back-end para una aplicación móvil multiplataforma?
- ¿Qué debo saber antes de comenzar a aprender el desarrollo de Android?