No estoy 100% seguro de si se supone que esta pregunta debe estar aquí o en el foro de Criptografía, pero lo intentaré de todos modos.
Me gustaría tener una idea de cómo las aplicaciones de autenticación de software como Google Authenticator, Duo, Okta, etc. almacenan el secreto (es decir, la semilla) para la autenticación TOTP y HOTP. Dado que todos pueden funcionar sin conexión, significa que las semillas se almacenan en algún lugar del dispositivo cliente. ¿Están encriptados? ¿O no hay necesidad de protegerlos ya que la propiedad del dispositivo en sí es el único requisito para dicha autenticación OTP?
Respuesta1
Dependen de la seguridad proporcionada por el dispositivo.
Android e iOS tienen un modelo de seguridad mucho más estricto que los ordenadores de sobremesa. Cada aplicación tiene su almacenamiento privado al que otros no pueden acceder. En circunstancias normales, es suficiente almacenar la semilla en este almacenamiento y no agregar ningún medio para extraerla a la aplicación. Este almacenamiento también debe marcarse como no respaldable porque permitiría la extracción de semillas o las almacenaría en un almacenamiento que no se considera lo suficientemente seguro (nube de terceros).
Se puede acceder a este almacenamiento privado si el dispositivo está rooteado o liberado, por lo que usar un dispositivo como token TOTP no es seguro.