Implementando la Autenticación de Dos Factores (TFA) en Drupal

Implementando la Autenticación de Dos Factores (TFA) en Drupal
Solucionex
21
Mar 24

La seguridad en línea es una preocupación constante en el mundo digital de hoy. Con el aumento de las amenazas cibernéticas, es fundamental implementar medidas de seguridad sólidas para proteger la integridad de los datos y la privacidad de los usuarios. Una de las formas más efectivas de hacerlo es a través de la autenticación de dos factores (2FA), que agrega una capa adicional de seguridad más allá de la simple contraseña. En este artículo, exploraremos el módulo de Autenticación de Dos Factores (TFA) para Drupal, una herramienta invaluable para fortalecer la seguridad de tu sitio web.

¿Qué es el módulo TFA para Drupal?

El módulo TFA es una solución integral para proporcionar autenticación de dos factores en tu sitio Drupal. Funciona como un módulo base, encargándose de la integración con Drupal y ofreciendo interfaces flexibles y bien probadas para habilitar una elección sin problemas y configurable de varias soluciones de autenticación de dos factores. Estas soluciones incluyen contraseñas de un solo uso basadas en el tiempo, códigos entregados por SMS, códigos de recuperación e integraciones con proveedores de terceros como Authy, Duo, entre otros.

Instalación y Uso

El módulo TFA se obtiene de https://www.drupal.org/project/tfa y se instala a través de Composer con el comando:

composer require 'drupal/tfa'

Además, es necesario instalar un método de encriptación para que el módulo funcione correctamente. Por ejemplo, puedes instalar el módulo Real AES con el comando:

composer require 'drupal/real_aes'

Una vez instalado, puedes activar ambos módulos con el comando:

drush en tfa real_aes

Estos comandos instalarán y habilitarán el módulo TFA en tu sitio Drupal, listo para su configuración.

Configuración

La configuración del módulo TFA se encuentra en la sección de Administración de Drupal. Aquí, se pueden configurar los complementos disponibles junto con su tipo y uso configurado, si se establece.

Además, se expone un permiso a los roles de Drupal que les permite omitir el proceso TFA, independientemente de los complementos y la configuración de "requerir TFA".

Desarrollo de Complementos

Los complementos TFA proporcionan el manejo de formularios y validación para la autenticación de segundo factor de un usuario. El módulo TFA interrumpirá una autenticación exitosa de nombre de usuario y contraseña y comenzará el proceso TFA, pasando el control del formulario y la validación al complemento activo.

Generación de Clave de Encriptación y Configuración del Perfil de Encriptación

Antes de configurar el módulo TFA, es necesario generar una clave de encriptación. Esto puede hacerse con el siguiente comando:

dd if=/dev/urandom bs=32 count=1 | base64 -i

La clave generada puede ser almacenada de tres formas:

  1. Configuración de Drupal: Puedes ingresar la clave directamente en la configuración del módulo TFA dentro de Drupal.
  2. Variable de Entorno: También puedes establecer la clave como una variable de entorno en el fichero .env.
  3. Ruta hacia el Archivo con la Clave: Otra opción es almacenar la clave en un archivo y proporcionar la ruta hacia este archivo en la configuración del módulo TFA.

Para configurar el perfil de encriptación deberemos:

  1. Crear una clave utilizando el módulo Key (en /admin/config/system/keys/add):
    • Seleccionar "Encryption" como tipo de clave.
    • Seleccionar "256" como tamaño de la clave.
    • Seleccionar tu proveedor de clave preferido y proporciona la configuración específica del proveedor.
      • El proveedor de Configuración está bien para usar durante el desarrollo, pero no debe usarse en un sitio web de producción.
      • El proveedor de Archivo es más seguro, especialmente si el archivo se almacena fuera del directorio raíz del sitio web.
      • El proveedor de variable de entorno nos da flexibilidad para tener distintas configuraciones sin comprometer que nuestra clave acabe en sitios no deseados.
      • Una opción aún más segura sería utilizar un servicio de gestión de claves externo, como Lockr.
    • Haz clic en "Guardar".
  2. Crear un perfil de encriptación utilizando el módulo Encrypt (en /admin/config/system/encryption/profiles/add):
    • Seleccionar "Authenticated AES (Real AES)" como método de encriptación.
    • Seleccionar el nombre de la definición de clave que creaste en el paso anterior.
    • Haz clic en "Guardar".

Con la clave y el perfil de encriptación configurados, el módulo TFA podrá utilizarlos para proporcionar una capa adicional de seguridad a tu sitio Drupal.

Configuración de TFA

Una vez generada y asegurada la clave de encriptación, puedes proceder a configurar el módulo TFA:

  1. Instala el módulo TFA.
  2. (Opcional) Instala un módulo que proporcione un complemento adicional de TFA.
  3. Visita la página de configuración del módulo TFA.
  4. Habilita TFA.
  5. Selecciona el(los) complemento(s) de validación deseados.
  6. Selecciona la forma en que deseas gestionar la clave de encriptación.
  7. Ajusta otras configuraciones según sea necesario.

Conclusiones

En resumen, la implementación de la autenticación de dos factores mediante el módulo TFA para Drupal es una medida crucial para fortalecer la seguridad de tu sitio web. Al agregar una capa adicional de protección más allá de las contraseñas convencionales, puedes mitigar considerablemente el riesgo de acceso no autorizado y proteger la información confidencial de tus usuarios. Con una configuración adecuada y la elección de los complementos adecuados, puedes garantizar un entorno en línea más seguro y confiable para tus usuarios y tu sitio Drupal en general.

Drupal