vernam para librerias encriptar encriptacion ejemplos desencriptar criptografia codigos codigo cifrado afin java encryption keystore

para - encriptar y desencriptar rsa en java



¿Cómo almaceno de forma segura las claves de cifrado en Java? (4)

Tengo un objeto de propiedades java con información de autenticación para un servicio web. Necesito cifrar esos datos, pero no sé dónde debo guardar la clave de cifrado para que permanezca segura.

¿Cuáles son las mejores prácticas para cifrar estos datos y recuperarlos de forma segura?

¿Hay alguna ventaja de usar un almacén de claves?

ws_user=username ws_password=password ws_url=https://www.whatever.com/myservice


Este es un problema de huevo de gallina.
A continuación, deberá encontrar dónde almacenar la contraseña para el almacén de claves, etc., etc.

Dependiendo de sus requisitos y necesidades de seguridad, puede encriptar los datos utilizando un cifrado simétrico y recuperar la contraseña a través de un servidor remoto (su servidor) usando la autenticación de certificado del lado del cliente.

O puede cifrar los datos utilizando la encriptación simétrica y tener la contraseña codificada en su archivo, lo cual no es seguro pero requiere un esfuerzo para encontrarla y podría delegar la responsabilidad a los permisos del sistema de archivos sobre quién puede acceder a sus archivos.


He tenido éxito usando el Jasypt de StringEncrytor para cifrar información confidencial en archivos de propiedades y algunos procedimientos internos para generar sales y recuperar la contraseña. Ya que está usando un servicio web, puede usar la configuración de PBE web de Jasypt para ingresar manualmente la contraseña en el momento del despliegue o incluso lanzar su propia solución similar.


La conclusión es que en algún lugar se debe tener la contraseña de "raíz de la cadena" en forma no cifrada. Un archivo local protegido por sistema operativo, un archivo remoto protegido por sistema operativo, codificado en la fuente, etc.

La única forma de evitarlo es requerir que un humano escriba la contraseña inicial al inicio de la aplicación, lo que obviamente no es posible para las aplicaciones que necesitan iniciarse automáticamente.


Su problema es común. En Linux, las contraseñas de los usuarios se almacenan en un archivo de texto plano. Aunque solo se almacenan los hashes de contraseñas, si un atacante tiene acceso a ese archivo, no tardará mucho en descubrir alguna contraseña mediante un ataque de diccionario sin conexión. En este caso, el sistema operativo se basa en permisos de archivos para denegar el acceso a usuarios no autorizados. En tu caso, no es muy diferente. Debe configurar los permisos del archivo de contraseña correctamente y garantizar la seguridad física del servidor.