“Conocimiento Problema>contraseñas

¿Cómo puede restablecer las contraseñas de los usuarios si conoce su contraseña actual?

2015/4/30
Tienes razón en ser cauteloso sobre este escenario. Si bien es técnicamente factible en algunos sistemas, restablecer la contraseña de un usuario cuando ya sabe que su contraseña actual es generalmente una práctica de seguridad muy mala y debe evitarse siempre que sea posible. He aquí por qué y qué debes hacer en su lugar:

Por qué es una mala idea:

* Credenciales comprometidas: Conocer la contraseña existente de un usuario sugiere fuertemente que la cuenta del usuario ya se ha visto comprometida. El atacante probablemente conozca la misma contraseña. Cambiar la contraseña usando la contraseña existente como verificación no elimina el acceso del atacante. Simplemente pueden cambiarlo hacia atrás o continuar usando las sesiones existentes.

* Incumplimiento de la confianza: Los usuarios esperan que sus contraseñas se conozcan solo para ellos mismos (y tal vez copias saladas y hash en el sistema). Demostrar que conoce su contraseña destruye esta confianza y crea un gran riesgo de seguridad.

* Problemas de la pista de auditoría: Restablecer una contraseña "para" un usuario sin su conocimiento o iniciación hace que sea difícil rastrear quién inició el cambio y por qué. Esto puede obstaculizar las investigaciones de incidentes de seguridad.

* Bypass de la autenticación multifactor (MFA): Si MFA está habilitado, conocer la contraseña por sí sola debería * no * ser suficiente para restablecer la cuenta. Restablecer solo con la contraseña existente evita el segundo factor crítico.

* potencial de abuso: Dar a los administradores la capacidad de restablecer las contraseñas Conocer las actuales abre la puerta a los expertos maliciosos que restablecen las cuentas para fines nefastos (espionaje, robo de datos, etc.).

* Violaciones de cumplimiento de seguridad: Muchos estándares de seguridad (PCI DSS, HIPAA, SOC 2) requieren prácticas de administración de contraseñas seguras, incluida la prevención de que los administradores conozcan o usen contraseñas de usuario.

Lo que debe hacer en su lugar (trátelo como una cuenta comprometida):

1. Forzar un restablecimiento de contraseña en el siguiente inicio de sesión: Este es el * mínimo * que debes hacer. Se le pedirá al usuario que cree una contraseña * nueva * la próxima vez que inicie sesión. Esto rompe el acceso actual del atacante (suponiendo que estuvieran utilizando la contraseña comprometida).

2. Fuerza de inicio de sesión todas las sesiones: Termine inmediatamente todas las sesiones activas para el usuario afectado. Esto evita que un atacante que ya haya obtenido acceso continúe utilizando esas sesiones.

3. Revocar las claves/tokens API: Si el usuario tiene claves API, tokens OAuth u otros mecanismos de autorización, revíquelos de inmediato. Un atacante podría haber utilizado la contraseña comprometida para generar nuevas claves/tokens.

4. Investigar: Investigue a fondo cómo se comprometió la contraseña. ¿Fue un ataque de phishing? ¿Contraseña débil? ¿Viaje de datos en otro sitio? Identifique la causa raíz para evitar compromisos futuros. Busque cualquier actividad sospechosa que ocurriera ya que la cuenta se vio comprometida (por ejemplo, acceso no autorizado, exfiltración de datos).

5. Habilitar MFA (si no es aún): Implementar autenticación multifactor para todos los usuarios. Esto agrega una capa crítica de seguridad que hace que sea mucho más difícil para los atacantes obtener acceso incluso si conocen la contraseña.

6. Revisar registros de seguridad: Examine cuidadosamente los registros de actividad del usuario para obtener signos de acceso no autorizado, modificación de datos u otro comportamiento sospechoso.

7. Informe al usuario: Informe inmediatamente al usuario que su cuenta se ha visto potencialmente comprometida y que necesita crear una contraseña fuerte y única. Educarlos sobre el phishing y otras amenazas de seguridad. Explique los pasos que ha tomado para asegurar su cuenta.

8. Considere una auditoría de seguridad completa: Si se compromete una sola cuenta, podría indicar una vulnerabilidad de seguridad más amplia dentro del sistema. Considere realizar una auditoría de seguridad integral para identificar y abordar cualquier otra debilidad potencial.

Consideraciones de implementación técnica (si tiene que, pero nuevamente, *evite esto *):

Si, a pesar de todas las advertencias anteriores, tiene una situación muy específica e inusual en la que cree que * debe * restablecer la contraseña mientras conoce la anterior, el proceso * podría * involucrar lo siguiente (pero estar al tanto de las implicaciones de seguridad):

1. Acceso a la base de datos (altamente arriesgado):

* Si las contraseñas no se almacenan de forma segura (por ejemplo, no saladas y hash), ya está en una situación muy mala.

* Necesitaría acceso directo a la base de datos donde se almacenan las credenciales del usuario.

* Localizaría el registro del usuario y * cuidadosamente * actualizar el campo de contraseña con una contraseña nueva, fuerte y generada al azar.

* Debería asegurarse de que la nueva contraseña esté apropiadamente salada y hash utilizando el mismo algoritmo que las contraseñas existentes.

2. Punto final de API (potencialmente menos riesgoso, pero aún malo):

* Algunos sistemas * podrían * tener un punto final de API administrativo diseñado para restablecer las contraseñas de los usuarios.

* *Idealmente *, este punto final requeriría una autenticación y autorización fuertes para evitar el uso no autorizado.

* El punto final * podría * permitirle especificar el nombre de usuario o la identificación del usuario y proporcionar una nueva contraseña.

* *Incluso en este caso *, asegúrese de que el punto final API esté correctamente asegurado y auditado.

Ejemplo (conceptual, y nuevamente, desanimado):

`` `Python

Muy mala práctica:no use en producción

importar hashlib

importar sistema operativo

Def reset_password_with_existing (UserName, Old_Password, new_password, db_connection):

"" "

No use esto en producción. Esto es solo para fines ilustrativos.

Esta función demuestra cómo podría restablecer teóricamente una contraseña

Conociendo el viejo, pero es una práctica de seguridad terrible.

"" "

cursor =db_connection.cursor ()

# 1. Recupere la contraseña de sal y hash del usuario de la base de datos. (Supone que está almacenado de esa manera)

cursor.execute ("Seleccione sal, hashed_password de usuarios donde username =%s", (nombre de usuario,))))

resultado =cursor.fetchone ()

Si no es resultado:

Imprimir ("Usuario no encontrado")

devolver falso

sal, almacenado_hashed_password =resultado

# 2. Verifique la contraseña anterior (usando el algoritmo de sal y hashmilado).

Hashed_old_password =Hashlib.Sha256 ((Old_Password + Salt) .Encode ('UTF-8')). HexDigest ()

Si hashed_old_password! =stored_hashed_password:

Imprimir ("Contraseña antigua incorrecta").

devolver falso

# 3. Genere una nueva sal y hash la nueva contraseña.

new_salt =OS.urandom (16) .hex () # Generar una saltadora saltadora fuerte

hashed_new_password =Hashlib.sha256 ((new_password + new_salt) .Encode ('UTF-8')). HexDigest ()

# 4. Actualice el registro del usuario en la base de datos con la nueva contraseña de sal y hash.

cursor.execute ("actualizar usuarios de usuarios salt =%s, hashed_password =%s donde username =%s",

(new_salt, hashed_new_password, nombre de usuario))

db_connection.commit ()

Imprima ("Restablecer la contraseña (¡pero esta fue una mala idea!)").

Devolver verdadero

Uso de ejemplo (no ejecute esto):

db =Connect_to_database ()

RESET_PASSWORD_WITH_EXISTING ("testUser", "OldPassword", "NewPassword123", DB)

`` `` ``

Consideraciones importantes:

* Algoritmos de hash: Use algoritmos de hashing fuertes y modernos como Bcrypt, Scrypt o Argon2. SHA-256 (como se muestra en el ejemplo) es mejor que MD5 o SHA-1, pero aún no es la mejor opción para el hash de contraseña.

* Salting: Siempre use una sal única generada al azar para cada contraseña. Las sales evitan los ataques de mesa del arco iris.

* Políticas de complejidad de contraseña: Haga cumplir las reglas de complejidad de contraseña segura (longitud mínima, requisitos de caracteres).

* Rotación de contraseña regular: Anime a los usuarios a cambiar sus contraseñas regularmente.

* Administradores de contraseñas: Promover el uso de administradores de contraseñas para ayudar a los usuarios a crear y almacenar contraseñas fuertes y únicas.

En resumen:la capacidad de restablecer la contraseña de un usuario sabiendo que su contraseña actual es una práctica peligrosa. Siempre trátelo como un signo de compromiso y siga los pasos recomendados para asegurar la cuenta e investigar la violación.

contraseñas
¿Cómo se obtiene la contraseña para PS4 WiFi?
Cómo utilizar mi ordenador sin conocer la contraseña
Cómo proteger con contraseña su ordenador
¿Cómo se recuperan las cookies de Safari en Windows? Las eliminé accidentalmente pero todas las contraseñas almacenadas también desaparecieron y perdí la más importante que contiene otras que la necesitan.
¿Cuáles son los problemas de autenticación?
¿Cómo se crea una página de inicio de sesión con el nombre de usuario y los campos de contraseña?
¿Qué es una cuenta de administrador?
¿Qué debe hacer si olvida su contraseña para Usbank Access Online?
Conocimiento de la computadora © http://www.ordenador.online