¿Contraseñas de doble hashing entre microservicios de Java para aumentar la seguridad?

2

Tenemos un microservicio de puerta de enlace Zuul de Java que se ejecuta delante de todos nuestros servicios. Esta puerta de enlace proporciona verificación de seguridad para todo el tráfico entrante.

También contamos con un servicio IAM que proporciona funciones de inicio de sesión / cierre de sesión / creación que se ubican detrás de la puerta de enlace. Estos puntos finales tomarían las contraseñas.

Queremos asegurarnos de que las contraseñas de texto claro viajen en las secciones más pequeñas de nuestros sistemas como sea posible. Podemos tener la puerta de enlace con la contraseña de hashing en un filtro zuul y luego pasar las solicitudes a IAM. Pero si alguien pasa por alto la puerta de enlace de alguna manera, potencialmente puede llegar al punto final con un hash robado y usarlo para obtener acceso, como un tipo de ataque "Pase el hash". Por lo tanto, nos gustaría repetir el hash generado por la puerta de enlace y luego almacenar el valor en la base de datos.

La pregunta es, ¿hay algún problema potencial con el doble hashing entre microservicios? Para nombrar una implementación específica, digamos BCrypt, ¿funcionaría?

    
pregunta Yijiang Zhou 13.06.2017 - 17:58
fuente

1 respuesta

1

No veo un problema con el doble hash per se, pero hay algunas concesiones para hacerlo de esta manera. En primer lugar, si un atacante puede robar una contraseña con hash como se describe, no hay nada que le impida descifrar ese hash, y usar la contraseña como un usuario normal. En segundo lugar, si necesita otro servicio para acceder al servicio de IAM, deberá realizar el mismo hashing de dos pasos. Su solución se vuelve mucho menos flexible en ese punto.

    
respondido por el user52472 13.06.2017 - 19:30
fuente

Lea otras preguntas en las etiquetas