¿Por qué se guardan las contraseñas en las redes de grandes servicios de internet?

Nada escrito aquí es desconocido para los expertos en informática, solo aquellos que no saben pueden encontrar esto interesante.

Administré servidores UNIX desde 1996. Puedo decirle que el archivo de contraseña (passwd) no necesita contener la contraseña hash. La contraseña debe estar en un archivo de contraseña .secure (no el punto) en un directorio (carpeta para Windows) que sea de lectura / escritura solo para el administrador.

Primer problema, esto requiere, en algunos sistemas operativos, estar configurado. Quien tiene tiempo

El archivo passwd, cuando contiene la contraseña hash, debe ser read-any, write-only-admin, pero aquí también, si el administrador decide que los DBA también deberían tener acceso root (administrador), el DBA probablemente no sepa que existe son comandos especiales para usar para mantener el archivo seguro y hace que el archivo lea / escriba-cualquiera.

Otro problema que surgió con los años. El programador puede “salir” del usuario de la base de datos y acceder a los archivos del sistema. Si la base de datos está instalada por root, entonces la persona que se desglosa tiene privilegios de root.

La contraseña piratea, usa la contraseña encriptada y un programa que ajusta varias reglas para crear una encriptación coincidente. Por ejemplo, en el sistema que estoy usando ahora mi entrada passwd se ve como (una línea):

super: $ 6 $ wMYOjlt6 $ O6CUFZc9Kmel / 2NGfaUMreK1q8UF06wOGFT / 72VaeKDocgay4zvTCXtSm8k767oh0LfrLy4SBwfnSS5K506qv /: 17145: 0: 99999: 7::

El campo entre dos puntos que comienza $ 6 $ debería traducirse a qwerty.

Todo lo que necesita un hacker es poder leer el archivo cifrado, descifrar una contraseña. Hay muchas formas de acceder al archivo. Pero si solo quiere entrar en un sistema, creo que es más fácil llamar al azar a las personas de una empresa y convencerlas de que proporcionen información. Una vez que tenga suficientes nombres y funciones, generalmente puede convencer a alguien para que también proporcione su contraseña.

Gracias por el A2A. Puedo responder a su pregunta, aunque sus notas a esa pregunta me confunden un poco.

¿Por qué se guardan las contraseñas en las redes de grandes servicios de internet?

Por dos razones:

  1. La gente es perezosa. O si no son perezosos, están bajo la presión de un PHB tecnológicamente analfabeto que les establece plazos poco realistas. Esto lleva a las personas a desarrollar soluciones donde las contraseñas no son saladas + hash sino que se mantienen en texto plano en una base de datos.
  2. Las excusas de “otros son pirateados, no nosotros” o “no tenemos nada valioso aquí para que no nos pirateen”.

Ambos están equivocados, por supuesto. El primero ignora que si sabe lo que está haciendo, implementar una solución de hash de contraseña es tan rápido como almacenar contraseñas de texto sin formato. ¡También ignora que fundamentalmente las contraseñas no tienen ningún negocio en una base de datos ! Los hash son geniales, se basan en una función unidireccional: se puede generar un hash desde una contraseña (o cualquier otro tipo de entrada) pero es imposible generar una contraseña desde un hash. En una base de datos de hash de contraseña bien pensada cuando el usuario inicia sesión, la base de datos le envía la sal a su nombre de usuario, luego, cuando ingresa su contraseña, la sal se concatena invisiblemente a la contraseña. Ambos ahora están en hash, y solo ese hash, nunca la contraseña real, se envía a través de la red al servidor. El servidor luego compara si el hash recibido es idéntico al hash en la base de datos. En caso afirmativo, el inicio de sesión es exitoso.

El segundo ignora que cualquier dato puede ser valioso. La mayoría de las personas usan la misma contraseña en todas partes. Encontrar una base de datos llena de contraseñas de un sitio para bingo en Internet puede conducir a una violación de los sitios de banca electrónica más adelante. Y, por supuesto, piratear objetivos fáciles realmente no cuesta nada, ya que puede automatizarse mediante scripts, lo que significa que no requiere ningún esfuerzo por parte del pirata informático.

Ahora a sus notas sobre esa pregunta:

Almacenaría contraseñas hash en una máquina conectada ópticamente a otra que ejecuta una API para establecer y verificar las contraseñas. No habría conexión a la red interna o internet.

Entiendo la parte de la contraseña hash. Sin embargo, una vez que haya hecho eso, sus contraseñas estarán seguras. Vea mi respuesta arriba.

Su punto sobre las dos máquinas conectadas ópticamente y la API me confunde: ¿Qué quiere decir exactamente con eso?

Para la última parte: si no hay conexión a la red de la empresa ni a Internet, esta máquina está fuera de línea. Esto puede ser excelente para mantener datos como planes, recetas y fórmulas que nunca deben copiarse, pero alguien debe acceder a los hashes de contraseñas cada vez que un usuario intenta iniciar sesión.

Si observa algunos de los volcados de la base de datos que se han lanzado (Adobe, etc.) verá que las contraseñas generalmente están en hash. Pero con un algoritmo de hash bien conocido, son vulnerables a un ataque de diccionario. Si la contraseña de alguien es “123456”, le llevará solo unos segundos o minutos encontrarla. La otra información (correo electrónico, nombre, dirección, etc.) probablemente esté clara porque la necesita para poder enviar productos. La pérdida de información personal suele ser un problema, si no más, que la pérdida de contraseñas.

Si necesita que las personas puedan restablecer sus contraseñas, debe poder acceder al almacén de contraseñas desde Internet. Si no lo hace, los costos de su servicio de asistencia se descontrolan con más de unos cientos de usuarios y tiene serios problemas con cuentas de usuario comprometidas.

Para obtener acceso de comando a múltiples sistemas a través de una red, para desarrolladores en lugar de usuarios web, Kerberos funciona de la manera que usted describe, creo (Active Directory en Windows): el almacén de contraseñas no sería accesible desde una red no confiable.

En entornos más seguros, las contraseñas son parte de la autenticación. Principalmente es el certificado + dirección IP y fqdn + contraseña.