¿Cómo guardar una contraseña para todos los usuarios sin hash?

0

Estoy trabajando en un complemento para el sitio A que inicia sesión en un sitio externo B.

El complemento necesita almacenar la contraseña en el sitio B, pero no puedo usar el hash porque necesito enviar la información de inicio de sesión a B. Tampoco puedo almacenar información adicional en el dispositivo del usuario, porque solo hay una contraseña para todos los usuarios del sitio A. El administrador establece la contraseña y el script siempre se conecta al sitio B con esa información para cada usuario. Así que tiene que ser accesible 24/7. Además, el complemento debe ser utilizado por otros usuarios, también utilizando sus versiones personales del sitio A. Así que sería bueno, si el administrador no tiene que hacer mucho / nada para configurar el complemento y la contraseña podría configurarse fácilmente.

Leí sobre una solución que usa una VM, pero eso no es aplicable aquí. ¿Hay alguna forma de guardar la contraseña sin crear problemas de seguridad?

    
pregunta Sanshi 22.08.2018 - 12:52
fuente

1 respuesta

2

Mi comprensión de su situación:

  • El sitio A es interno y cada usuario tiene su propia cuenta.
  • El sitio B es externo donde la institución tiene una cuenta de usuario que todos comparten (estoy imaginando el acceso a revistas académicas o algo así).
  • Desea crear un complemento para el sitio A que extraiga el contenido del sitio B al sitio A, por lo que debe iniciar sesión automáticamente en el sitio B.

¿correcto?

Ingenuo veo varias opciones:

  1. Pídale al usuario que escriba la contraseña del sitio B cada vez que la necesite, de esa manera no la almacenará en ningún lugar.
  2. Pídale al usuario que escriba la contraseña del sitio B una vez y la almacene en su caché del navegador local. Esto es menos seguro a cambio de más conveniencia.
  3. El administrador incrusta el nombre de usuario / contraseña en el sitio B en el código fuente del complemento. Esta es la conveniencia más alta, pero la menos segura porque alguien podría realizar una ingeniería inversa de la contraseña del complemento (la dificultad de esto depende del idioma en que se encuentre el complemento, si el complemento se ejecuta en un servidor o en el navegador, etc.) .

Básicamente, puedes almacenar las credenciales en el complemento o no.

Una opción más compleja:

  • ¿Cómo funciona el mecanismo de autenticación del sitio B? Supongo que cuando proporciona el nombre de usuario / contraseña correctos, ¿el Sitio B le devuelve algún tipo de token de autenticación? ¿Es posible instalar un pequeño servidor que tenga las credenciales, que inicie sesión por usted y le devuelva el token?

Me gusta esto:

Browser plugin --log-me-in-plz--> your server --[username/pass]--> Site B

               <-- auth-token--                <--auth-token--

Para ser honesto, su problema real es que todos comparten un nombre de usuario / contraseña. Usted está tratando de asegurar algo que es débil para empezar.

¿Ha hablado con las personas que administran el Sitio B? ¿Es esta la forma en que pretenden usar su sitio? ¿Tienen otros mecanismos de autenticación además de este nombre de usuario / contraseña compartido? ¿Puedes conseguir que cada usuario tenga su propia cuenta?

Su situación parece un poco como que se le pida que instale sistemas de seguridad en una mansión, pero el propietario le dice que nunca cierran las puertas con llave y que no quieren tener que escribir ningún código de seguridad. La respuesta correcta es volver al cliente y decir "No puedo asegurar esto, todo lo que haga será, en el mejor de los casos, un teatro de seguridad".

Dado esto, tal vez su organización esté de acuerdo con la opción 3 anterior y simplemente acepte que si alguien tiene la suficiente determinación, puede obtener la contraseña del script.

    
respondido por el Mike Ounsworth 22.08.2018 - 14:59
fuente

Lea otras preguntas en las etiquetas