Yubico 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.
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.
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:
Si todo funciona correctamente recibiremos un mensaje de confirmación similar a este:
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:
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.
Activación del segundo factor de autenticación
Posteriormente, hay que ingresar a la sección de gestión de usuarios de Joomla:
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:
En el campo Código de seguridad se ubica el cursor y se toca la parte metálica de la YubiKey por un segundo:
Una vez generado el código se hace clic en Guardar y de esta forma quedará activo el segundo factor de autenticación.
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.
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.
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.