La autenticación se basa en lo siguiente: ( source )
- Algo que sabes
- Algo que tienes
- Algo que eres
Una buena razón para usar TOTP es aumentar la seguridad utilizando múltiples factores de la lista anterior. Por ejemplo, si otra persona conoce su contraseña, aún necesitarán acceso a su dispositivo TOTP para autenticarse.
Sin embargo, eso no significa que los dispositivos TOTP sean invulnerables a los ataques.
RFC 6238 declara que:
Las llaves PUEDEN almacenarse en un dispositivo a prueba de manipulaciones y DEBEN estar protegidas contra el acceso y el uso no autorizados.
Esto significa que no se requiere que las implementaciones de TOTP protejan el secreto compartido para que sea compatible con RFC. Sin embargo, puede considerar buscar una aplicación TOTP que requiera una contraseña para descifrar los secretos compartidos. Esto proporciona alguna protección adicional, pero si la seguridad de su teléfono se ve comprometida por una vulnerabilidad o un acceso físico malintencionado, los ataques del keylogger son posibles.
También preguntó cuántas claves necesitaría ver un atacante para descubrir su secreto compartido. De RFC 4226 , Apéndice A.4.3:
Independientemente de la estrategia que utilice el adversario, e incluso si ve y trata de explotar a los autenticadores de los intentos de autenticación del usuario, su probabilidad de éxito no será superior a la del ataque de fuerza bruta. siempre que la cantidad de autenticaciones que observe no sea increíblemente grande.
Entonces, en general, un ataque de fuerza bruta es lo mejor que podría ocurrir. Sin embargo, si el adversario puede generar los códigos a voluntad (y por alguna razón aún no tienen el secreto compartido), esto no se cumple. Más información sobre las influencias de este ataque están disponibles en el RFC.