En PyPI ya se preparan para la autenticación de dos factores y de manera inicial ya se reportó un incidente
Los desarrolladores del repositorio de paquetes PyPI Python dieron a conocer hace poco mediante una publicación una hoja de ruta para la transición a la autenticación obligatoria de dos factores para paquetes críticos.
La importancia está determinada por la cantidad de descargas y el cambio se aplicará a las cuentas de los mantenedores y propietarios de proyectos asociados con el 1% superior de los paquetes en 6 meses por descargas.
A diferencia de la transición a los proyectos de autenticación de dos factores RubyGems, NPM y GitHub, PyPI implementará inicialmente un esquema que implica el uso deseable de un token de hardware con claves de acceso.
Como razón para el uso recomendado de tokens y el protocolo WebAuthn, se menciona una mayor seguridad en comparación con la generación de contraseñas de un solo uso (la capacidad de usar TOTP en lugar de tokens estará disponible como opción).
Los tokens se pueden obtener de forma gratuita, pues Google patrocinó la iniciativa y asignó 4000 llaves Titan para el proyecto. Cada mantenedor puede solicitar dos tokens USB-C o USB-A sin cargo. El segundo token se envía como respaldo en caso de que el principal se rompa o se pierda, para minimizar el riesgo de perder el acceso al repositorio y evitar que los desarrolladores tengan que pasar por un procedimiento de recuperación de difícil acceso.
Desafortunadamente, los tokens solo se pueden enviar a Austria, Bélgica, Canadá, Francia, Alemania, Italia, Japón, España, Suiza, Reino Unido y EE. UU.
Los acompañantes de otros países pueden comprar de forma independiente tokens compatibles con FIDO U2F, como tokens Yubikey y Thetis. Como alternativa, también es posible utilizar aplicaciones de autenticación basadas en contraseñas de un solo uso que admitan el protocolo TOTP, como Authy, Google Authenticator y FreeOTP, en lugar de un token.
La iniciativa no estuvo exenta de incidentes, pues el autor del paquete Atomicwrites, que tiene 6 millones de descargas al mes y 38 millones en 6 meses, no quiso cambiar a la autenticación de dos factores e intentó restablecer el contador de descargas para excluir su paquete de la lista de críticos.
Para reiniciar, primero eliminó el paquete y luego descargó la nueva versión, hasta este punto él esperaba que tal manipulación solo reiniciara el contador, pero para sorpresa del desarrollador, todas las versiones antiguas también se eliminaron del repositorio, lo que generó problemas para los proyectos dependientes de la biblioteca, que algunos desarrolladores compararon con el incidente resultante de la eliminación del paquete del panel izquierdo en NPM.
El problema se vio agravado por el hecho de que tras la eliminación, el autor de atomicwrites no pudo descargar las versiones antiguas, que no fueron restauradas hasta el día siguiente tras la intervención de los administradores de PyPI.
Después del incidente, el autor del paquete decidió dejar de desarrollar atomicwrites y desaprobar el paquete. La razón aducida es que desarrolla el proyecto como un hobby en su tiempo libre y los requisitos adicionales que complican el trabajo no compensan el tiempo dedicado al mantenimiento gratuito de un paquete con tanta popularidad.
El autor de atomicwrites argumenta que preferiría simplemente escribir código por diversión, y que la protección adicional contra el secuestro por parte de los atacantes se puede cuidar cuando paga por ella.
La biblioteca atomicwrites contiene unas 200 líneas de código y proporciona funciones para escribir archivos de forma atómica. Como reemplazo, puede usar las llamadas regulares os.replace y os.rename (la operación se reduce a escribir en un archivo con un nombre temporal y cambiarle el nombre al archivo de destino cuando esté listo).
Con más de 350 000 paquetes actualmente en el repositorio de PyPI, la autenticación de dos factores se aplicará a aproximadamente 3500 paquetes. Se ha preparado una página especial para verificar si una cuenta está incluida en la lista. Aún no se ha determinado la fecha exacta para la inclusión de la autenticación de dos factores obligatoria, se espera que esto suceda en los próximos meses.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.