Qué es Latch, para qué sirve y ejemplos de uso en Linux, VPN y más

Las contraseñas siguen siendo la forma por excelencia de autenticación en diferentes servicios online, en los últimos años se está popularizando e incluso obligando a configurar un segundo factor de autenticación, con el objetivo de que tengamos que introducir una contraseña (algo que sabemos) y un código generado por una aplicación autenticadora (algo que tenemos). Con el objetivo de proteger las identidades digitales, el equipo de Eleven Paths de Telefónica desarrolló la herramienta Latch, un añadido de seguridad para proteger cuentas de bancos, redes sociales, servidores SSH y OpenVPN que tengamos instalados en casa o la empresa, y otros muchos servicios que podemos configurar. Hoy en RedesZone os vamos a explicar cómo configurar una capa más de seguridad, y bloquear el acceso a los diferentes servicios bajo demanda o en un determinado horario.

 

Qué es Latch y para qué sirve

Latch es un sistema que permite añadir una capa adicional de protección a las identidades digitales, tenemos una aplicación para smartphones que nos permite generar códigos temporales de un solo uso, como cualquier otra aplicación autenticadora (Temporal One Time Password), pero también nos permite bloquear por completo el acceso a la cuenta bajo demanda. Por ejemplo, imaginemos que por la noche no nos vamos a conectar a un determinado servicio, como el servidor SSH o el servidor OpenVPN, podemos programar Latch para que esté bloqueado el acceso (aunque se introduzcan las credenciales correctamente) hasta que desbloqueemos ese «pestillo» de seguridad. Lo mismo ocurre si integramos este sistema en nuestro WordPress, Drupal y una gran cantidad de software con los que es compatible.

Si un ciberdelincuente es capaz de hacerse con nuestros credenciales, usuario y contraseña, y tiene alguna forma de «capturar» el código temporal de un solo uso, ni siquiera así podrá iniciar sesión hasta que «abramos» el pestillo con la aplicación. Además, en el caso de que se detecte un intento de acceso, nos saltará una notificación Push en nuestro smartphone indicándonos que ha habido un intento de inicio de sesión, ya sea legítimo (hemos sido nosotros) o no legítimo (ha sido alguien que no somos nosotros).

latch_main

El funcionamiento de esta herramienta es similar a la autenticación en dos pasos, pero no es lo mismo, porque Latch nos permite bloquear por completo el acceso al servicio hasta que nosotros decidamos desbloquear el servicio y que se pueda iniciar sesión. A través de un programador, tenemos la posibilidad de encender o apagar el acceso a los diferentes servicios, para mantenerlos «bloqueados» cuando no necesitemos acceder a ellos, disminuyendo la superficie de exposición. La app oficial para Android y iOS nos permite generar un código OTP (One Time Password) para añadir una seguridad adicional, además, también tenemos la posibilidad de dar de alta diferentes códigos TOTP de Google, Microsoft y cualquier servicio que utilice la autenticación en dos pasos.

En el siguiente esquema podéis ver cómo funciona Latch de forma simplificada:

General_Latch_ArchitectureActualmente Latch es compatible con una gran cantidad de software para añadirles esta capa de seguridad, por ejemplo, podemos configurarlo en los siguientes sistemas operativos para iniciar sesión:

  • Linux
  • Unix
  • FreeBSD
  • Windows en sus versiones Home, Pro y de servidor
  • MacOS
  • OpenBSD

También podemos integrarlo en los siguientes servicios:

  • Drupal
  • Jira
  • Jenkins
  • Joomla
  • Moodle
  • OpenLDAP
  • OpenVPN
  • ownCloud
  • OpenSSH
  • phpMyAdmin
  • PrestaShop
  • WordPress

Tal y como podéis ver, tenemos compatibilidad completa con una gran cantidad de software, por lo que podremos proteger una gran cantidad de servicios y equipos, añadiendo esta capa de seguridad adicional.

 

Registro como desarrollador

Para poder utilizar Latch como cliente, simplemente tenemos que descargar la app para Android y iOS, las tenemos disponibles en las tiendas oficiales de Google Play y la App Store. Una vez descargada, tendrás que seguir los pasos del servicio para emparejar la cuenta con la aplicación.

Si vas a integrar este servicio en tu sistema operativo o en tus propios servicios, entonces tendrás que registrarte como desarrollador, para ello es necesario que accedas a la web oficial de desarrolladores de Latch. Una vez dentro, podréis ver las últimas noticias sobre el servicio y también qué suscripción queremos adquirir, no obstante, tenemos una versión «Community» que es totalmente gratuita para uso personal y con ciertas limitaciones en comparación con las versiones «Silver», «Gold» y «Platinum».

El registro es completamente gratuito y necesario para la puesta en marcha del sistema, aunque debes tener en cuenta las limitaciones de la cuenta de «Community» que es al única que es completamente gratuita, incluye lo siguiente:

Simplemente tenemos que pinchar en el botón de «Regístrate ahora» y entonces seguiremos los pasos de registro, una vez realizado, tenemos que iniciar sesión con las credenciales que acabamos de crear:

Una vez que ya estamos registrados, si queremos configurar Latch en nuestros servidores, ya sea OpenSSH, OpenVPN o en un WordPress que nosotros tengamos, debemos crear «una aplicación» desde el panel de control, debes tener en cuenta que este servicio soporta casi todos los sistemas operativos y una gran cantidad de software, esto lo podéis ver directamente en la sección de «Plugins y SDK»:

 

Crear una aplicación con Latch

En la parte izquierda de la web de administración tenemos una opción que se llama «Mis Aplicaciones«. En esta sección es donde podemos crear una nueva aplicación, editarla y también eliminarla cuando nosotros queramos.

Lo primero que debemos hacer es pinchar en «Añadir una nueva aplicación«, para posteriormente utilizarla en el servicio que nosotros queramos.

latch_openssh_3

Ahora tenemos que indicar un nombre de la aplicación que queramos que tenga el servicio, por ejemplo, si vamos a proteger el servidor SSH de OpenSSH en nuestro servidor, tenemos que darle un nombre descriptivo para localizarlo fácilmente, en nuestro caso, hemos llamado a la aplicación «OpenSSH-RedesZone».

latch_openssh_3_1

Al pinchar en añadir aplicación, nos llevará a un nuevo menú donde podemos darle una imagen, configurar si es obligatorio un segundo factor de autenticación (One Time Password) y también nos mostrará el ID de la aplicación, el secreto que debemos usar, y también el nombre que le hemos dado a la aplicación.

latch_openssh_4

Lo más importante de aquí es la posibilidad de elegir un segundo factor de autenticación, una clave OTP (One Time Password) donde se nos pedirá la clave generada aleatoriamente en el terminal móvil. Esto es ideal para añadir una capa de seguridad a nuestro servicio, pero no siempre funcionará, depende del servicio donde lo vayamos a integrar. Por ejemplo, en OpenVPN no podemos usar este OTP debido a la arquitectura del propio servidor de red privada virtual, pero en OpenSSH sí es posible hacerlo sin problemas.

En la parte inferior podemos poner los datos de contacto del administrador, su email y teléfono de contacto, para mostrarlo en las alertas que recibe el usuario final, no obstante, estos datos son totalmente opcionales.

latch_openssh_5

Cuando hayamos configurado la aplicación como nosotros queramos, pinchamos en «Guardar cambios» y accederemos al menú principal donde tendremos las diferentes aplicaciones. Vamos a poder editar la aplicación, eliminarla o acceder al panel de control donde veremos los intentos de inicio de sesión y otra información relacionada con la seguridad.

latch_openssh_6

Respecto al panel de control, nos mostrará datos bastante importantes como el número de usuarios pareados con esa aplicación en concreto, también podemos ver los intentos de acceso bloqueados y mucha más información importante para mantener nuestras cuentas protegidas.

latch_openssh_7

Una vez que hemos creado nuestra aplicación, tan sólo tenemos que implementar la funcionalidad en nuestro servicio, ya sea WordPress, OpenSSH, OpenVPN o cualquier otro compatible.

 

Usar Latch para proteger el sistema Linux

Ahora que ya sabemos cómo funciona Latch, sabemos crear una aplicación y ver el estado de la misma en el panel de control, vamos a proceder a configurar un sistema operativo Linux, ya sea Debian, Ubuntu o derivados, con este servicio para tener bajo control el acceso a la hora de autenticarnos en el sistema operativo. Debemos tener en cuenta que este servicio es una medida de seguridad adicional, no sustituye a una buena política de contraseñas ni a una buena política de seguridad en el sistema, es un añadido más.

Una vez que nos hemos registrado, debemos entrar en el GitHub oficial de Telefónica donde está el plugin para la autenticación en sistemas operativos Unix (Linux también, como Debian o Ubuntu).Una vez que descargamos el .ZIP, procedemos a copiarlo y descomprimirlo en el sistema donde vayamos a asegurar la autenticación del sistema operativo. Lo primero que debemos hacer es instalar el típico gcc, make y por supuesto las librerías necesarias.

 

Instalación y puesta en marcha

Todos los comandos que vamos a ejecutar es completamente necesario hacerlo con permisos de superusuario, por lo que ponemos «sudo» en todos ellos. También tienes la posibilidad de ejecutar «sudo su» y así ejecutamos todo como root sin el «sudo» delante. Instalamos gcc, make y todas las librerías relacionadas:

sudo apt install gcc make libpam0g-dev libssl-dev libcurl4-openssl-dev

Cuando instalemos todo lo necesario, nos vamos a la carpeta de Latch para la autenticación en el sistema operativo, nos metemos en la carpeta de «Python» y renombramos el archivo latch-model.conf a latch.conf

cd python/
mv latch-model.conf latch.conf

Ahora ejecutamos el archivo llamado «install» de la siguiente forma:

sudo ./install

Empezará a compilar lo necesario para nuestra distribución y posteriormente lo instalará, en la siguiente captura de pantalla se puede ver este proceso:

auth_ubuntu_latch

Es recomendable reiniciar el sistema operativo una vez que se ha instalado:

sudo reboot

Una vez reiniciado el sistema, procedemos con la configuración.

Ahora tenemos que editar el fichero de texto de latch.conf con la información del ID de aplicación y el secreto que tenemos en la web de desarrolladores.

nano latch.conf

Y editamos el fichero con la siguiente información:

latch_autentication_ubuntu_1

# Configuration file for the latch PAM plugin
# Identify your Application
# Application ID value
app_id = gtqXsLbAFMhxRnvh2kQg
#Secret key value
secret_key = WC22zULbZWFED22mGyq8xBkcQHVcCtBqHJbeF866

A continuación, podéis ver una captura de pantalla de cómo quedaría editado:

latch_autentication_ubuntu_2

Una vez editado guardamos y cerramos, ahora tenemos que parear el dispositivo móvil con Latch y el sistema empezará a funcionar.

 

Enlazar la aplicación con el sistema

Una vez que hemos instalado la app en nuestro dispositivo móvil, la ejecutamos y nos aparecerá un asistente que nos dirá cómo funciona y para qué sirve la aplicación. Después de este asistente, podemos iniciar sesión en la app o registrar un nuevo usuario si es que no nos hemos registrado anteriormente.

Ahora nos saldrá un asistente de configuración para parear el primer servicio, pinchamos en la parte inferior para que nos proporcione un código y parear el teléfono con el servicio de autenticación del sistema operativo Linux.

En el sistema tenemos que teclear por terminal la siguiente orden:

sudo pairSYS CODIGO -f RUTA_ARCHIVO.CONF

En nuestro caso estamos en /python/ por lo que hemos introducido la siguiente orden:

sudo pairSYS CODIGO -f latch.conf

Una vez que ejecutamos esta orden en el ordenador nos aparecerá que el servicio se ha pareado correctamente, a continuación podéis ver el mensaje exacto:

latch_autentication_ubuntu_3

Y de forma instantánea y automática, en nuestro terminal móvil nos aparecerá la confirmación de que se ha pareado correctamente.

En estos momentos ya tendremos pareado nuestro sistema operativo con la app, si entramos en el panel de control vamos a poder verlo:

latch_autentication_ubuntu_6

En la aplicación móvil podremos bloquear y desbloquear el servicio cuando queramos, simplemente tenemos que arrastrar el candado del servicio a bloquear. Esto nos permite bloquear el ordenador o servidor basado en Linux si no lo estamos usando. Si pinchamos sobre el nombre vamos a poder ver las principales opciones que nos proporciona la aplicación Latch para móviles, como programar los bloqueos a unas determinadas horas del día y otras opciones.

Tal y como podéis ver, tenemos una gran cantidad de opciones de configuración disponibles.

 

Probando el funcionamiento y la seguridad

Ahora vamos a simular que somos un usuario malintencionado que quiere acceder a nuestro sistema operativo, nosotros siempre tenemos el pestillo cerrado para tener la mejor seguridad posible, por lo que nos avisará que ha habido un intento de acceso. Si entramos al login del sistema e introducimos la contraseña, en el smartphone nos aparecerá un aviso diciendo que alguien ha intentado acceder con el pestillo cerrado.

Si no desbloqueamos el servicio no podremos iniciar sesión, nos saldrá un error con la autenticación, indicando que la contraseña es incorrecta, por lo que aunque pongamos bien la clave no nos va a dejar acceder.

latch_autentication_ubuntu_prueba

Si entramos en el panel de control de Latch veremos los intentos de intrusión que hemos tenido, aquí no tenemos ninguna clave OTP para iniciar sesión, solamente tenemos configurado el «pestillo» para tener seguridad.

latch_autentication_ubuntu_prueba_panel

Este bloqueo solamente ocurre cuando vamos a iniciar sesión en el sistema operativo, no sirve si ya hemos iniciado sesión y estamos usando el equipo normalmente. Pero sí tendremos que volver a desbloquear el servicio si necesitamos entrar otra vez. Si intentamos hacer login a través del terminal, ya sea en una consola local o en el SSH, tampoco nos dejará si tenemos el pestillo bloqueado.

 

Desparear la app y eliminarlo del sistema operativo

Si queremos desemparejar la app y eliminarlo del sistema operativo, basta con ejecutar la siguiente orden:

sudo python unpair.py

latch_autentication_ubuntu_unpair_ubuntu

En la app podremos ver que el servicio se ha despareado correctamente, y que ya no estará disponible. Para desinstalar Latch del sistema basta con irnos a la carpeta python y ejecutar la siguiente orden:

sudo python uninstall.py

latch_autentication_ubuntu_uninstall

Y a continuación deberemos reiniciar el sistema operativo para que los cambios se apliquen correctamente.

sudo reboot

Tal y como podéis ver, el funcionamiento de Latch en sistemas operativos Linux como Debian o Ubuntu es realmente bueno, ideal para añadir una capa más de seguridad.

 

Configuración para el servidor OpenVPN

El popular servicio OpenVPN también es compatible con Latch, por lo que podremos proteger nuestro servidor de manera muy fácil y rápida gracias a este servicio. Lo primero que debemos hacer es entrar en el GitHub oficial de Telefónica donde tenemos el mismo plugin que hemos usado antes, y es que necesitaremos exactamente el mismo para hacerlo funcionar. El proceso es exactamente igual que antes, lo primero que tenemos que hacer es instalar todo lo necesario para poder instalarlo (si es que no lo has hecho antes).

Instalamos gcc, make y a continuación las librerías necesarias:

sudo apt-get install gcc make libpam0g-dev libcurl4-openssl-dev libssl-dev

Una vez que hemos instalado todo lo necesario, procedemos a irnos a la carpeta de Latch para SSH que hemos descomprimido y ejecutamos el archivo llamado «install» de la siguiente forma:

sudo ./install

Empezará a compilar lo necesario para nuestra distribución y posteriormente lo instalará, en la siguiente captura de pantalla se puede ver este proceso:

latch_install_openvpn

Es recomendable reiniciar el servicio OpenVPN una vez que se ha instalado:

sudo /etc/init.d/openvpn restart

Ahora tenemos que proceder a la misma configuración de antes, renombramos el archivo latch-model.conf a latch.conf y lo editamos para incorporar el ID de la aplicación y la clave secreta que hemos creado en la sección de «Mis aplicaciones».

cd python/
mv latch-model.conf latch.conf
nano latch.conf

Quedaría algo como esto:

#
# Configuration file for the latch PAM plugin
# Identify your Application
# Application ID value
app_id = LlUuYfK2d56O4MqJm6rM
# Secret key value
secret_key = gkRgrzHvMROdhtLtHswVqxDQWkv5NkSPu7meB9k7

A continuación podéis ver una captura de pantalla de cómo quedaría editado:

latch_conf

Una vez editado guardamos y cerramos. Ahora sólo nos quedaría parear nuestro dispositivo móvil con Latch en el sistema para empezar a funcionar. El proceso es exactamente el mismo de antes para sistemas Linux.

Una vez que lo tengamos pareado, es obligatorio realizar una configuración adicional en el archivo OpenVPN.conf que nosotros tengamos para conectarnos, tenemos que añadir la siguiente línea:

plugin RUTA_AUTENTICACION_PAM openvpn

En nuestro caso, tiene el siguiente aspecto ya que le hemos cambiado el nombre:

plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn

No importa en qué sección del archivo de configuración insertes esta línea, lo normal es hacerlo al final del archivo. Una vez que está todo instalado y configurado, si alguien intenta conectarse al servidor OpenVPN con el pestillo cerrado, le dará error en la conexión y nos avisará al móvil de un intento de acceso. Por supuesto, debemos tener en cuenta que esto funcionará única y exclusivamente si tenemos autenticación PAM en el sistema, si nos estamos dando de alta con certificados digitales TLS no funcionará porque no se usa PAM.

Si alguien intenta conectarse al servidor OpenVPN, nos saldrá lo siguiente si tenemos el pestillo cerrado, error en la autenticación.

latch_openvpn_prueba_sistema

En el panel de control de Latch también veremos este intento de intrusión:

latch_openvpn_panel_de_control_bloqueo

Si queremos configurar un segundo usuario con Latch y OpenVPN, lo podemos hacer sin problemas, simplemente tenemos que seguir nuevamente los pasos con el otro usuario nuevo que vamos a crear.

sudo pairOVPN CODIGO -f latch.conf

Si quieres dar de baja el usuario pareado y desinstalar todo, simplemente tienes que seguir estos pasos:

sudo python unpair.py sudo python uninstall.py

Y a continuación, deberemos reiniciar el servicio OpenVPN para que todo funcione correctamente de nuevo.

En el caso de que quieras configurar el servidor OpenSSH con Latch, el procedimiento es exactamente el mismo que para Linux en general, porque el propio OpenSSH utiliza también la PAM para autenticar a los clientes.

 

Conclusiones

Latch es una medida de seguridad adicional para nuestras identidades digitales, aunque actualmente no contamos con muchos servicios públicos que lo usen como un segundo factor de autenticación, sí tenemos los plugins y todo lo necesario para incorporarlo en nuestros propios servidores, con el objetivo de añadir una capa más de seguridad. Gracias a la compatibilidad con sistemas operativos Linux o FreeBSD entre otros, vamos a poder proteger adecuadamente estos sistemas añadiendo un segundo factor, además, también es compatible tanto con OpenSSH como con OpenVPN, los dos software por excelencia para montar un servidor SSH y VPN respectivamente.

Otro aspecto muy positivo de Latch es que tenemos la posibilidad de dar de alta diferentes servicios en la sección de TOTP (Temporal One Time Password), por ejemplo, podemos dar de alta la cuenta de Google, Dropbox, PayPal, Facebook o cualquier otro servicio en el que necesitemos una app autenticadora como segundo factor de autenticación. Lo bueno de todo es que con nuestra cuenta de Latch vamos a poder acceder a todos los token, no necesitamos volver a reconfigurar todo si cambiamos de móvil, simplemente con nuestra cuenta en el servicio los tendremos, ya que se sincronizan directamente con la nube en Telefónica.

¡Sé el primero en comentar!