almacenando las credenciales de terceros en la base de datos / en algún lugar seguro

5

Esta pregunta es sobre el almacenamiento de las credenciales de terceros en la base de datos / en algún lugar seguro para que no puedan acceder a ellas solo usuarios autorizados.

Nuestro sistema se conecta al sistema de terceros con un nombre de usuario y contraseña específicos. Están utilizando la autenticación básica, requieren el valor de nonce y la contraseña de texto sin formato para la autenticación. Tenemos credenciales separadas para diferentes usuarios que se conectan a este sistema de terceros.

Entiendo que es posible autenticar a un usuario en nuestra aplicación para el hash salado y otro cifrado de 1 vía.

Por favor, bríndeme un mejor enfoque para poder almacenar estas credenciales de terceros. nuestro sistema requiere estas credenciales para almacenar localmente, por lo que estoy buscando algunos de los mejores enfoques.

    
pregunta this.josh 26.09.2011 - 08:36
fuente

3 respuestas

3

Bueno, el desafío es que las credenciales en cuestión deben almacenarse de una manera que permita que se lean como texto sin formato. Esto significa que parte de la sabiduría convencional sobre el almacenamiento de contraseñas ( use bcrypt ) no es aplicable.

Su objetivo, entonces, es mitigar el riesgo y compartimentar los datos. Si es posible, desea tener un proceso diferente que se autentique en el sitio externo y que su aplicación web devuelva un identificador de archivo al socket autenticado activo. Eso significa que su sitio web comprometido no perderá las credenciales reales en uso, ya que la aplicación web no tendrá permisos para leer esa parte de la base de datos.

Cifrar los valores de la base de datos es una opinión común, pero puede tener una utilidad limitada dependiendo de cómo diseñe su aplicación de autenticación si se ejecuta en el mismo servidor que la base de datos. Si tiene el tiempo y los recursos, diseñe de tal manera que el cifrado y el descifrado ocurran en la aplicación de autenticación y la base de datos almacene los valores cifrados. La colocación de cada uno de esos roles en diferentes máquinas y el aislamiento de la base de datos y el sistema de autenticación externo proporcionan la mayor segmentación.

    
respondido por el Jeff Ferland 26.09.2011 - 18:45
fuente
1

La mejor práctica para sus requisitos es el uso de OAUTH . Por lo tanto, si la Tercera parte (para ser autenticado) proporciona soporte OAUTH ... entonces esa es la mejor forma preferida, ya que en ese caso no tendría que almacenar el acuerdo con las credenciales sino asegurar la clave OAUTH proporcionada al usuario por Tercero, que es mucho menos responsabilidad.

Aunque para ambas, Clave o Credenciales, puede cifrar los datos confidenciales con la contraseña del Usuario en su portal y también usar Salt con él.

    
respondido por el AbhishekKr 26.09.2011 - 17:55
fuente
0

No estoy familiarizado con Perl. Pero el cifrado SHA es el que viene a la mente después de leer su pregunta para el cifrado / descifrado de 2 vías. Entonces, lo único que necesitas asegurar será el key en lugar de todas las contraseñas.

    
respondido por el mmhan 26.09.2011 - 08:42
fuente

Lea otras preguntas en las etiquetas