Después de año y medio de trabajo y de algunos cambios graduales, por fin se ha presentado la autenticación obligatoria por medio de 2FA de manera general para todos los usuarios en PyPI, ya que desde mediados del 2022 los desarrolladores del repositorio de paquetes Python PyPI (Python Package Index) anunciaron ruta para la transición a la autenticación obligatoria de dos factores para paquetes críticos.
Un año después de dicho anuncio (en junio del 2023) se implementó la autenticación obligatoria de dos factores para todas las cuentas de usuario que mantenían en ese momento, al menos un proyecto o eran parte de una organización que selecciona paquetes para el uso obligatorio de la autenticación de dos factores.
Y ahora, la introducción de la autenticación obligatoria de dos factores se ha aplicado a todos los usuarios en general, por lo cual al no habilitar la autenticación de dos factores, el usuario ahora no podrá cargar archivos ni realizar acciones relacionadas con la gestión de su proyecto.
Esta publicación es un reconocimiento al arduo trabajo que se realizó para hacer esto realidad y un agradecimiento a todos los usuarios que habilitaron 2FA en sus cuentas.
También es un recordatorio para aquellos que aún no han habilitado 2FA, que deberán hacerlo antes de poder realizar cualquier acción de administración o cargar archivos en PyPI.
Una vez que 2FA esté habilitado, podrá realizar acciones de administración, incluida la generación de tokens API o la configuración de editores confiables (preferido) para cargar archivos.
Como se ha señalado en artículos previos, los desarrolladores del repositorio de paquetes Python PyPI han destacado la importancia de implementar la autenticación de dos factores. Esta medida se introduce con el propósito de mejorar la seguridad en el proceso de desarrollo y proteger los proyectos contra posibles cambios maliciosos originados por la filtración de credenciales. La autenticación de dos factores proporciona una capa adicional de protección, mitigando riesgos asociados al uso de contraseñas compartidas, la vulnerabilidad de contraseñas en sitios comprometidos, ataques al sistema local del desarrollador o tácticas de ingeniería social.
La necesidad de fortalecer la seguridad radica en la amenaza significativa de accesos no autorizados debido a la apropiación de cuentas. Este tipo de ataque representa un riesgo considerable, ya que, en caso de éxito, los atacantes podrían introducir cambios maliciosos en otros productos y bibliotecas que dependen del paquete comprometido. Por ende, la autenticación de dos factores se presenta como una medida esencial para salvaguardar la integridad y la confianza en el ecosistema de desarrollo de software en Python, previniendo potenciales consecuencias negativas derivadas de accesos no autorizados y cambios malintencionados en proyectos fundamentales.
Además de ello, los desarrolladores mencionan que la autenticación de dos factores preferida se basa en un esquema que emplea tokens de hardware compatible con la especificación FIDO U2F y el protocolo WebAuthn. Este método se destaca por proporcionar un nivel de seguridad más elevado en comparación con la generación de contraseñas de un solo uso. Los tokens de hardware, alineados con FIDO U2F y WebAuthn, ofrecen una capa adicional de protección, mejorando la seguridad en el proceso de autenticación.
Además de los tokens de hardware, existe la opción de utilizar aplicaciones de autenticación que generan contraseñas de un solo uso y admiten el protocolo TOTP (Time-Based One-Time Password). Ejemplos de estas aplicaciones incluyen Authy, Google Authenticator y FreeOTP. Estas aplicaciones proporcionan otra alternativa segura para la autenticación de dos factores.
Al descargar paquetes, se recomienda encarecidamente a los desarrolladores que utilicen el método de autenticación denominado ‘Editores de Confianza’. Este método se basa en el estándar OpenID Connect (OIDC) o utiliza tokens de API. La elección de este enfoque ayuda a fortalecer la seguridad en las interacciones y transacciones relacionadas con la descarga de paquetes, proporcionando un nivel adicional de confianza mediante la autenticación de los editores involucrados.
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.