Columnas

Autenticación OTP en linux

 
 

 


La se ha hablado de la inseguridad de las contraseñas y más cuando su creación recae en el usuario, por lo que ahora hablaremos de uno de los esquemas de autenticación más seguros que existen empleado desde hace mucho, no sólo en el tema computacional y que ha vuelto a tomar fuerza sobre todo en la banca.

Se trata de la autenticación OTP (One Time Passwords) o contraseñas de un solo uso, en la que no importa que nuestra contraseña sea interceptada por un atacante, pues ya no se será de utilidad. Los tokens, que utilizan los bancos hoy en día, muestran una clave en la pantalla del dispositivo que sólo sirve para esa sesión.

Pues bien, emplearemos un esquema similar para autenticarnos en nuestro equipo Linux, empleando un proceso de desafío-respuesta, en el que deberemos responder correctamente a éste si es que queremos tener acceso, dicho desafío será distinto para cada ocasión.

El primer punto es la instalación del programa en el servidor Linux.

 

   

 

rpm -Uvh opie-2.4-547.i586.rpm

Posteriormente generaremos el primer desafío:

[root@localhost pam.d]# opiepasswd –c

Adding root:

Only use this method from the console; NEVER from remote. If you are using

telnet, xterm, or dial-in, type C now or exit with no password.

Then run opiepasswd without the –c parameter.

Using MD5 to compute responses.

Enter new secret pass phrase:

Again new secret pass phrase:

ID root OTP key is 499 lo1518

GONE LUSH HALO JOBS ROSE ROSS

[root@localhost pam.d]#

 

   

 

Es de suma importancia la elección correcta del pass phrase, ya que de él se generará la respuesta al desafío.

Necesitaremos editar el archive /etc/pam.d/su para indicarle el nuevo método de autenticación, debiendo quedar el archivo como se muestra a continuación.

 

   

 

#%PAM-1.0

auth sufficient /lib/security/$ISA/pam_unix.so

auth sufficient /lib/security/pam_opie.so

auth required /lib/security/$ISA/pam_deny.so

auth sufficient /lib/security/$ISA/pam_rootok.so

# Uncomment the following line to implicitly trust users in the “wheel” group.

#auth sufficient /lib/security/$ISA/pam_wheel.so trust use_uid

# Uncomment the following line to require a user to be in the “wheel” group.

#auth required /lib/security/$ISA/pam_wheel.so use_uid

auth required /lib/security/$ISA/pam_stack.so service=system-auth

account required /lib/security/$ISA/pam_stack.so service=system-authpassword required /lib/security/$ISA/pam_stack.so service=system-auth

# pam_selinux.so close must be first session rule

session required /lib/security/$ISA/pam_selinux.so close

session required /lib/security/$ISA/pam_stack.so service=system-auth

# pam_selinux.so open and pam_xauth must be last two session rules

session required /lib/security/$ISA/pam_selinux.so open multiple

session optional /lib/security/$ISA/pam_xauth.so

 

   

 

* NOTA: Tal como queda la configuración sigue activa la autenticación por contraseña, la cual es requerida de primera instancia y dando un <enter> (sin teclear la contraseña), se nos presentará el desafío.

 

Configuración del lado del cliente

Necesitaremos ahora que del lado del usuario que se quiera conectar al servidor Linux exista un mecanismo para generar la respuesta al desafío. Ese cliente puede ser MS Windows, MS Windows CE o PalmOS.

En la última sección del presente procedimiento se encuentran las ligas para descarga del programa para generar la respuesta al desafío que presente el servidor.

Ejemplo práctico

Un usuario autorizado (con shell) en el servidor se conecta; éste, a su vez, está autorizado para convertirse en superusuario (root), para lo cual utiliza como de costumbre el comando “su”, sólo que ahora en lugar de la contraseña tradicional, nos presentará un desafío que deberemos sortear, tal y como se muestra en la siguiente figura:

 

   

 

 

   

 

El desafío es: “492 lo9585”. Entonces, con nuestro cliente deberemos obtener la respuesta para lo cual tenemos que introducir tanto ese desafío como el pass phrase, con lo que el programa generará la respuesta que deberemos utilizar para poder acceder al servidor. A continuación se muestran unas pantallas de este proceso en diversas plataformas.

 

Ejemplo de cliente corriendo en asistentes personales utilizando PalmOS y Windows CE:

 

   

 

 

   

 
Bajo plataforma MS Windows:

 

   

 

 

   

 

Como se ve en las pantallas, el programa genera la respuesta al desafío la cual es: IQ RIM RANT WU PER THAT. Con ésta obtendremos acceso al servidor, tal y como se muestra a continuación:

 

   

 

 

   

 

Como es de suponer, la seguridad de este sistema radica en proteger el “pass phrase”.

 

   

 

• Linux

http://rpmfind.net/linux/RPM/suse/9.2/i386/suse/i586/opie-2.4-547.i586.html

• PalmOS

http://astro.uchicago.edu/~valdes/pilot/pilOTP/

• MS WindowsCE

http://www.pocketpcfreeware.com/fr/index.php?soft=1112

• MS Windows

http://www.processlist.com/info/winkey32.html

• A One-Time Password System:

(http://tools.ietf.org/html/rfc2289)

• The S/Key One-Time Password System:

(http://tools.ietf.org/html/rfc1760)

 

   

 

Publicaciones relacionadas

Botón volver arriba


Share via
Copy link
Powered by Social Snap