La mejor manera de almacenar las claves de cifrado del lado del cliente

0

Tengo diferentes aplicaciones cliente que se ejecutan en diferentes sistemas operativos (iOS, Android, Windows Desktop, Windows Phone, Mac, Windows Store -Todas las aplicaciones nativas-) Tengo que descifrar (AES-128) algunos archivos (miles de ellos) en los clientes, así que necesito almacenar claves de cifrado en el lado del cliente. Actualmente lo estoy manteniendo como una cadena codificada que es mala. Entonces, ¿cuál es la mejor manera de almacenar las claves de cifrado en el cliente de manera segura?

    
pregunta Walt S. 24.07.2015 - 21:39
fuente

1 respuesta

2

Para cada uno de los sistemas operativos que ha enumerado, debe aprovechar el almacenamiento seguro integrado del sistema operativo para las claves en lugar de intentar "rodar su propia" solución.

En general, no se considera una práctica recomendada utilizar su propio cifrado, ya que continuará teniendo que admitir y depurar su implementación, lo que puede tener vulnerabilidades imprevistas. En su lugar, es una buena práctica aprovechar las herramientas nativas a su disposición para un almacenamiento seguro.

Para iOS, este sería el llavero. Para Android, esto se conoce como el almacén de claves. Para Windows Phone 8.1+, esto se conoce como el "Bloqueo de credenciales".

Estos sistemas generalmente funcionan cifrando los datos privados en una pequeña base de datos en el dispositivo, y luego restringiendo el acceso a los mismos solo a las aplicaciones autorizadas. Esto hace que sea mucho más difícil obtener la clave privada del dispositivo sin enraizar / hacer jailbreak al dispositivo, etc.

También debe generar claves únicas para cada dispositivo que reciba estos archivos. Tener una cadena codificada en la aplicación (en lugar de en un archivo de configuración) es peligroso porque una vez que la clave está comprometida, todos los usuarios están comprometidos. Compruebe el uso correcto de SecureRandom o bibliotecas criptográficas similares para asegurarse de que está generando claves únicas, casi imposibles de descifrar.

    
respondido por el Herringbone Cat 24.07.2015 - 21:48
fuente

Lea otras preguntas en las etiquetas