Cómo utilizar una YubiKey como segundo factor de autenticación en Joomla!

yubico2Yubico es la compañía detrás las herramientas de seguridad llamadas YubiKey cuya función principal es proveer de seguridad adicional a las credenciales básicas (generalmente usuario y contraseña). Esto lo hace por medio de la implementación de un segundo factor de autenticación sin el cual, un atacante no podría realizar un inicio de sesión. Esta misma empresa ofrece un servicio de generación de contraseñas de un solo uso (OTP) para el cual Joomla ofrece soporte nativo. Estas, solamente pueden ser generadas si el usuario tiene acceso al dispositivo físico.

Si bien este método no es infalible contra el phishing, ofrece un factor de seguridad adicional y es muy útil contra ataques a fuerza bruta. Antes de continuar es preciso aclarar que Joomla, al momento de escribir este artículo, no ofrece soporte para el estándar FIDO2 (U2F) que es el que utiliza Google o Dropbox, por ejemplo, para habilitar la autenticación de dos factores con YubiKey. El soporte, en este caso, es para el servicio de Yubico OTP (2FA y no U2F). A pesar de esto, el hecho de que se requiera el dispositivo físico para generar el código lo acerca un poco a U2F, pero sigue siendo vulnerable al phishing como todos métodos con contraseñas de un solo uso.

Configuración inicial de la YubiKey

Todos los dispositivos de Yubico son compatibles con autenticación de dos factores pero no todos son compatibles con el servicio de Yubico OTP. La YubiKey Security Key (versión azul) no es compatible con Yubico OTP y por lo tanto, de momento, no es compatible con Joomla.

yubikey

Todas las demás son compatibles y vienen pre-configuradas con el servicio en el primer campo (toque de parte metálica de 0.3 a 2 segundos). Si la configuración predeterminada de la YubiKey no ha sido cambiada no será necesario cambiar nada en el dispositivo.

screenshot 10 01 19 14 38 48

La verificación del funcionamiento de la YubiKey se puede realizar directamente en el sitio web oficial de Yubico. Solo es necesario ingresar al sitio de demostración, colocar el cursor donde dice YubiKey y tocar la parte metálica por un segundo:

screenshot 10 01 19 14 39 23

Si todo funciona correctamente recibiremos un mensaje de confirmación similar a este:

screenshot 10 01 19 14 40 28

Configuración inicial de Joomla

Para hacer uso de este dispositivo como segundo método de autenticación en Joomla primero es necesario activar el plugin correspondiente que viene incluido de forma predeterminada en toda instalación de Joomla:

screenshot 10 01 19 14 35 12

En la configuración del plugin es posible definir si se desea que el segundo factor de autenticación esté disponible tanto para el inicio de sesión en la interfaz de administración como para el sitio web o solo alguno de los dos. En este caso, se decidió activarlo solo para la interfaz de administración.

screenshot 10 01 19 14 35 49

Activación del segundo factor de autenticación

Posteriormente, hay que ingresar a la sección de gestión de usuarios de Joomla:

screenshot 10 01 19 14 41 08

Después, en la configuración del usuario para el cual se desea activar el segundo factor de autenticación hay que elegir la opción YubiKey en la pestaña Autenticación por factor doble:

screenshot 10 01 19 14 41 27

En el campo Código de seguridad se ubica el cursor y se toca la parte metálica de la YubiKey por un segundo:

screenshot 10 01 19 14 41 50

Una vez generado el código se hace clic en Guardar y de esta forma quedará activo el segundo factor de autenticación.

screenshot 10 01 19 14 42 20

De ahora en adelante, cada vez que dicho usuario quiera iniciar sesión en la interfaz de administración o backend de Joomla, deberá usar un OTP que será generado al tocar la parte metálica de la YubiKey por un segundo.

screenshot 10 01 19 14 43 36

Recomendaciones finales

Al activar la YubiKey en Joomla se genera una lista de contraseñas de respaldo de un solo uso. Estas contraseñas serían necesarias en el caso de que la YubiKey no esté disponible, por cualquier razón, para el inicio de sesión. Es importante contar un respaldo seguro de estas contraseñas ya que en caso de pérdida del dispositivo de seguridad estas serán la única opción para inicio de sesión.

screenshot 10 01 19 14 42 52

De momento, no existe la posibilidad de configurar múltiples YubiKey en Joomla. Es posible que esa funcionalidad sea agregada en una futura versión del CMS junto con soporte nativo para FIDO2 y prescindir así del OTP, sino que solo sería necesario que el dispositivo esté conectado para iniciar sesión sin necesidad de generar ningún código vulnerable a phishing.