Creo que la respuesta general es "Debería estar bien, pero TOTP no fue diseñado para que no tengas ninguna garantía".
Si nos sumergimos en cómo funciona TOTP (descripción general en wikipedia , especificación completa en RFC 6238 ), el valor TOTP se calcula como (ejemplo, simplificado)
SHA2_HMAC( secret_seed, system_time_rounded_to_30s )
En general, los servidores de inicio de sesión verifican todos los valores de tiempo dentro de una ventana de +/- 5 minutos en caso de que el reloj del sistema del dispositivo esté apagado (lo que se necesita para los tokens TOTP de hardware como los que se muestran a continuación que no tienen forma de sincronizar).
Por lo tanto, sus valores TOTP pueden ser válidos por unos 5 minutos. Además, como señala @AndrolGenhald, pueden volver a ser válidos si se retrasa el reloj del sistema del servidor.
Esta pregunta hace un buen trabajo al abordar la parte de la pregunta "¿se puede derivar la semilla original?", la respuesta general es "no debería ser posible siempre y cuando el secret_seed
compartido sea de 32 bytes o más" .
También es posible que la implementación del sitio web tenga algunos casos extremos que rompan este consejo general. Por ejemplo, algunos sitios web emiten códigos de recuperación de cuentas que parecen códigos TOTP, pero no sé si realmente están relacionados con su semilla TOTP o no.
Conclusión: no puedo pensar en ningún ataque por publicar una lista de códigos OTP caducados, pero tampoco puedo garantizar que sea seguro.
Si estás en una cafetería, probablemente lo mejor sea tener cuidado de quién puede navegar por tus códigos TOTP. Si desea publicar códigos antiguos en línea, probablemente sea mejor registrar un nuevo generador de códigos y desvincular el otro de su cuenta antes de publicar.