¿Es seguro almacenar contraseñas con cifrado de 2 vías?

137

Soy un padre que tiene una cuenta de padre en mi distrito escolar local para poder acceder a su sitio web para ver las calificaciones de mi hijo, etc.

Hice clic en el botón "Olvidé mi contraseña" y mi contraseña me fue enviada por correo electrónico en un texto simple. Esto me preocupó, así que envié un correo electrónico al director, incluidos algunos enlaces de parte inferior de esta página . Esta es la respuesta que recibí del departamento de TI de la organización:

  

Las contraseñas de los padres no se almacenan en texto sin formato. Están encriptados. No   Un cifrado de 1 vía, pero un cifrado de 2 vías. Así es como es el sistema.   capaz de presentarlo de nuevo a través de un correo electrónico a través de CoolSpool de Ariande   utilidad.

     

Por razones de soporte, la contraseña principal es visible para cierto personal   hasta que el padre haya iniciado sesión correctamente 3 veces. Despues de eso no   El personal puede ver esa contraseña. Sin embargo, se almacena de tal manera que   El propio sistema puede enviarlo de vuelta al correo electrónico verificado. En el   futuro después de las 3 inscripciones exitosas de un padre, si olvidan su   contraseña, su cuenta de correo electrónico verificada se enviará un enlace para restablecer   su contraseña, este cambio está en las obras.

¿Esta explicación justifica la contraseña de texto simple que se envía por correo electrónico, y mis contraseñas están seguras con ellas?

Si no, ¿con qué referencias o recursos puedo responderles?

    
pregunta 43Tesseracts 22.11.2017 - 22:22
fuente

5 respuestas

191

No, esta no es una buena práctica. Hay dos problemas distintos.

  • cifrar la contraseña en lugar de hacer hashing es una mala idea y está en el límite de almacenamiento de contraseñas de texto sin formato. La idea general de las funciones hash lentas es frustrar la exfiltración de la base de datos del usuario. Por lo general, se puede esperar que un atacante que ya tiene acceso a la base de datos también tenga acceso a la clave de cifrado si la aplicación web tiene acceso a ella.

    Por lo tanto, este es un texto simple en el límite; Casi voté para cerrar esto como un duplicado de esta pregunta , porque esto es casi lo mismo y se aplica la respuesta vinculada. casi directamente, especialmente la parte sobre los delincuentes de texto simple; También hay otra respuesta sobre los delincuentes de texto sin formato.

  • enviar una contraseña de texto simple a través de un correo electrónico de texto simple es una mala idea. Podrían argumentar que no hay diferencia cuando no se reutiliza la contraseña, pero dudo que siquiera sepan qué es eso y por qué se considera una mala práctica. Además, la reutilización de la contraseña es tan común que no sería una buena respuesta.

Además, ya que parecen estar trabajando en la segunda parte (aunque los enlaces para restablecer la contraseña en los mensajes de texto sin formato están en el mismo campo de juego, es decir, una amenaza que puede leer la contraseña del correo de texto sin formato también puede leer el enlace, tal vez antes de que puedas), podrías explicarles el problema de no responder de mi respuesta, también puedes vincular esta respuesta directamente.

Tal vez incluso explique que el cifrado es de una manera, pero siempre puede ser revertido por la función inversa del sistema criptográfico en cuestión, llamado descifrado. El uso de términos como "cifrado unidireccional" y "cifrado bidireccional" en lugar de "hashing" y "cifrado" muestra una falta de comprensión.

El problema real es: implementar un restablecimiento de contraseña no significa que se procesarán (correctamente) en el futuro; no hay mucho que puedas hacer al respecto excepto usar un administrador de contraseñas y crear una frase de contraseña larga y sólida que sea única para este sitio y esperar lo mejor.

Esto es especialmente cierto ya que parecen querer conservar la parte de su sistema que le dice al personal su contraseña (por absolutamente no buena razón). La implicación es que no siguen haciendo hash correctamente: dicen que el personal solo puede ver la contraseña en el momento en que los tres tiempos de inicio de sesión no son ciertos; Si la aplicación web puede acceder a la clave, también puede hacerlo el personal administrativo. Tal vez ya no sea el personal de atención al cliente, pero en primer lugar no deberían poder verlo. Eso es horriblemente mal diseño.

Dependiendo de su ubicación, las escuelas como parte del sector público tienen la obligación de tener un CISO con el que pueda comunicarse directamente, expresando sus inquietudes. Y como es habitual en el sector público, debería haber una organización que supervise la escuela; al menos deberían tener un CISO, que podría estar bastante interesado en este procedimiento.

    
respondido por el Tobi Nary 22.11.2017 - 22:32
fuente
71

Todos se centran en el cifrado frente al hash pero, si bien eso es malo en sí mismo, me parece más atroz:

  

Por razones de soporte, la contraseña principal es visible para cierto personal   hasta que el padre haya iniciado sesión correctamente 3 veces.

Debe interpretar esto como "el personal de TI conoce mi contraseña". Admitieron abiertamente que ciertos miembros de su personal pueden conocer su contraseña. Esto está más allá de lo malo. Supongo que este contador se restablece después de que cambie su contraseña, por lo que usar una contraseña falsa tres veces y luego cambiarla a una contraseña "real" no hará nada. No ponga nada en esa plataforma que no quiera que se conozca públicamente, y si usó la misma contraseña en otros sitios, cámbiela.

    
respondido por el MrZarq 23.11.2017 - 10:26
fuente
20

No, como supuso correctamente, este comportamiento claramente no es seguro.

Lo que puedes y debes hacer es no confiar en su sistema. No use una contraseña en el sistema escolar que sea similar a sus contraseñas bancarias u otras. No ingrese más información de la que es absolutamente necesaria para llevar a su hijo a la escuela. Si su hijo trae a casa una nota que dice "inicie sesión y actualice su información", no ingrese nada que le resulte incómodo.

Al menos su escenario "en el futuro" suena como si estuvieran implementando el comportamiento que necesitan para admitir contraseñas con hash de forma segura; una pregunta diferente será si las contraseñas (después de tres inicios de sesión) en lugar de encriptarlas de manera segura en lugar de cifrarlas serán una pregunta diferente. Y no podrás responder esa pregunta por observación. Si sigue preocupado, puede ponerse en contacto con el proveedor de software y preguntarles cómo funciona.

    
respondido por el John Deters 22.11.2017 - 22:46
fuente
14
  1. No debes asumir que tu contraseña es segura. Hay una razón por la que los administradores de contraseñas son la forma recomendada de hacerlo

      

    La realidad es que en tus intentos de manejar todas esas contraseñas, cometerás el pecado fundamental de reutilizar algunas. Eso es en realidad mucho más riesgoso que usar un administrador de contraseñas. Si cae un solo sitio que usa esta contraseña, todas las cuentas que la usan están comprometidas. Deberá recordar todos los sitios en los que reutilizó esa contraseña y luego cambiarlos todos.

  2. La forma recomendada de hacer un restablecimiento es generar una clave única para que un usuario realice su propio restablecimiento en un sitio web seguro TLS . Correo electrónico, incluso con TLS habilitado, sigue siendo intrínsecamente inseguro

      

    Aunque TLS y SSL sin duda forman una base vital para el enfoque de seguridad de datos de cualquier compañía, todavía hay algunas pruebas que sugieren que es un sistema que conlleva una serie de vulnerabilidades potenciales.

         

    El punto principal de debilidad se debe a la falta de comprensión por parte de las empresas sobre cómo cifrar los correos electrónicos, y muchos creen que el canal de transporte, y por lo tanto el correo electrónico, está completamente protegido con el uso de TLS.

  3. El hash es fundamentalmente diferente del cifrado. Esto fue bien explorado en Stack Overflow

      

    [Las funciones de cifrado] proporcionan una asignación 1: 1 entre una entrada y una salida de longitud arbitraria. Y siempre son reversibles .

    Como señaló SmokeDispenser, si pueden obtener su base de datos, pueden obtener la clave de cifrado. ¿En qué se diferencia esto del hash? Los hash son siempre unidireccionales . Los datos entran y nunca salen. En otras palabras, no hay claves para robar.

      

    Use una función hash cuando esté verificando la validez de los datos de entrada. Para eso están diseñados. Si tiene 2 elementos de entrada y desea verificar si son iguales, ejecute ambos a través de una función hash. La probabilidad de una colisión es astronómicamente baja para los tamaños de entrada pequeños (suponiendo una buena función hash). Es por eso que se recomienda para contraseñas.

    En otras palabras, almacena su contraseña en mi sitio. Lo hago con una cadena aleatoria (llamada sal) una y otra vez con algo lento (como bcrypt). Para validarlo, ingrese su contraseña nuevamente y la lavo a través del mismo hash. Con el mismo algoritmo (además de las muchas veces que lo ejecuté, llamado costo), sal y contraseña, debería obtener el mismo hash que he almacenado. Por lo tanto, no tengo necesidad de almacenar una contraseña cifrada reversible o sin cifrar.

respondido por el Machavity 23.11.2017 - 04:35
fuente
1

Por definición, si una contraseña es almacenada por alguien que no sea usted, entonces no se almacena de forma segura. Nunca hay necesidad de almacenar su contraseña.

Si el personal de TI alguna vez tiene una razón legítima para acceder a su cuenta sin que usted proporcione la contraseña, no es necesario que su contraseña esté almacenada en algún lugar. Pueden hacer un restablecimiento de contraseña, acceder a su cuenta, reemplazar su contraseña con la original. Todo sin saber nunca tu contraseña.

Si pueden enviarle su contraseña, entonces pueden enviarla a alguien que pretenda ser usted. Así que no es seguro.

PS. No necesitan almacenar la contraseña para la autenticación. Pueden almacenar un hash salado, del cual es imposible recuperar la contraseña. Esa es la práctica estándar. ¿Cómo pueden enviárselo a alguien que se hace pasar por ti? Eso se llama ingeniería social. Alguien llama, les convence de que es usted y de que su dirección de correo electrónico ha cambiado y le envían la contraseña a la persona equivocada.

    
respondido por el gnasher729 25.11.2017 - 23:35
fuente

Lea otras preguntas en las etiquetas