Estamos ocupados desarrollando un servicio web Java para un cliente. Hay dos opciones posibles:Java: cifrar/descifrar el nombre de usuario y la contraseña de un archivo de configuración
Almacene el nombre de usuario/contraseña encriptados en el cliente del servicio web. Leer desde una configuración archivo en el lado del cliente, descifrar y enviar.
Almacene el nombre de usuario/contraseña encriptados en el servidor web. Leer desde una configuración archivo en el servidor web, descifrar y utilizar en el servicio web.
El nombre de usuario/contraseña es utilizado por el servicio web para acceder a una aplicación de terceros.
El cliente ya tiene clases que proporcionan esta funcionalidad, pero este enfoque implica enviar el nombre de usuario/contraseña en forma clara (aunque dentro de la intranet). Preferirían almacenar la información. dentro del servicio web pero realmente no quieren pagar por algo que ya tienen. (La seguridad no es una gran consideración porque solo está dentro de su intranet).
Necesitamos algo rápido y fácil en Java.
¿Alguna recomendación?
El servidor es Tomkat 5.5. El servicio web es Axis2.
- ¿Qué paquete de cifrado/descifrado deberíamos usar?
- ¿Qué tal un almacén de claves?
- ¿Qué mecanismo de configuración deberíamos usar?
- ¿Será fácil de implementar?
dónde viene "su frase clave secreta" vienen? Si esa fuente es segura, ¿por qué no usarla para contener la contraseña actual? – erickson
Como mencioné, la frase clave está codificada en clase Java, alternativamente podría almacenarse en la base de datos. Usar la contraseña en sí requeriría recompilar el código cada vez que se cambie la contraseña. –
cualquiera que sea capaz de obtener acceso al archivo también puede obtener acceso a su código y descompilarlo (o simplemente usarlo) para obtener la clave. Microsoft intentó algo similar para proteger el SAM y se rompió casi de inmediato. – frankodwyer