Se acepta generalmente que los mecanismos de cambio de contraseña deben solicitar al usuario su contraseña anterior (por ejemplo, OWASP ) La razón es que un atacante que tiene acceso temporal a la sesión de un usuario (ya sea a través de XSS, la computadora que haya iniciado sesión, lo que sea) solo tendrá acceso a esa sesión.
Es de suponer que este principio debería extenderse a otros mecanismos de autenticación: certificados, tokens, etc. (aunque nunca he visto esto discutido)
Sin embargo, considera cómo funciona SSH authorized_keys. Si tiene acceso a la sesión de inicio de sesión de un usuario, pero no a sus claves (por ejemplo, dejaron su computadora conectada), puede modificar el archivo authorized_keys. Puede agregar su propia clave al archivo, para poder acceder a la cuenta en el futuro. También puede eliminar las claves legítimas para bloquear el propietario de la cuenta.
Entonces, ¿deberían los diseñadores de SSH buscar formas de restringir esto? ¿Y qué enfoques podríamos tomar para detener esta vulnerabilidad?