Protocolo de autenticación manual público / privado fácil de usar

0

Tengo un servicio remoto que permite a los usuarios iniciar sesión en SSH en la máquina y se envían automáticamente a la aplicación (línea de comando) (sin acceso a un mensaje de bash, por ejemplo).

En el curso del uso de la aplicación, me gustaría solicitar una nueva autenticación.

Por ejemplo, al intentar realizar una operación segura. (Por ejemplo, los bancos requieren una nueva autenticación cuando solicitan una transferencia de dinero).

¿Cómo puedo volver a autenticarme sin tener que re-SSH?

¿Hay algún protocolo de autenticación manual simple que pueda usar? ¿Desafía al usuario, calcula el resultado con su clave privada, etc.? ¿Existen herramientas / bibliotecas de línea de comandos razonables para simplificar la tarea?

    
pregunta ChaimKut 14.10.2014 - 10:52
fuente

1 respuesta

1

¿Supongo que usas claves SSH como autenticación? La reautenticación y los intercambios de claves ocurren todo el tiempo durante el protocolo SSH, por lo que tener una sesión activa es lo suficientemente seguro.

Otra cosa es la confirmación, por ejemplo, desea que el usuario realmente quiera realizar una acción que podría ser irreversible. Digamos que eliminar algo.

Para resolver este problema, sugeriría que simplemente muestre un código aleatorio de 6 dígitos en la pantalla y pida al usuario que vuelva a escribirlo para indicar un "SÍ". (y trate como "NO" si el código de 6 dígitos era incorrecto o si no se escribió ningún código).

Me gusta esto:

Are you really sure you want to delete the database records_2013.db?

If NO, just press ENTER now.
If YES, type the following code - 193619 - here, and press ENTER: _

Esto luego resuelve su problema a la perfección, ya que el servidor / cliente SSH se aseguraría de que tenga una conexión autenticada válida al servidor, lo que significa que un usuario malintencionado no puede secuestrar una sesión SSH autenticada, y el código de confirmación aleatorio, luego asegura la El usuario no se compromete, por error, con una operación peligrosa.

Tenga en cuenta que este código no se considera un captcha, por lo que no obstaculizará las presentaciones automáticas. Pero reautorizar por ssh-keys tampoco resolverá eso. El código está justo ahí para que el usuario se detenga y piense con mucho cuidado si desea continuar antes de continuar.

La razón por la que los bancos usan algún esquema de reautenticación es que las sesiones pueden ser secuestradas ya que HTTP / HTTPS es un protocolo sin estado (la conexión se cierra después de que se envía la página, lo que dificulta el uso del protocolo subyacente para realizar la autenticación de la sesión), pero también por la segunda razón, para evitar que los usuarios cometan un error, enviando dinero a algún lugar que no tenían la intención.

    
respondido por el sebastian nielsen 14.10.2014 - 11:30
fuente

Lea otras preguntas en las etiquetas