El socialismo no es otra cosa que la esclavitud universal administrada por el Estado.Murray Rothbard
Ni tu Teléfono ni el Servidor se comunican entre sí cuando se genera ese código. No necesitan hacerlo.
Esto se llama TOTP. Contraseña de un solo uso basada en el tiempo. Y la elegancia de cómo funciona merece ser comprendida correctamente.
Cuando configuras Google Authenticator por primera vez, escaneas un código QR. Ese código QR contiene una clave secreta, esencialmente una cadena aleatoria larga, que se almacena en tu teléfono y simultáneamente se registra en el servidor. Ese único intercambio es el único momento en que tu teléfono y el servidor comparten algo relacionado con la generación de códigos.
A partir de ese momento, ambos lados ejecutan la misma función matemática de forma independiente. La función toma dos entradas. El secreto compartido y la hora actual redondeada a una ventana de 30 segundos. Alimenta esas dos entradas en un algoritmo HMAC-SHA1 y obtienes la misma salida cada vez, independientemente de dónde lo ejecutes.
Tu teléfono realiza el cálculo y muestra seis dígitos. El servidor ejecuta el mismo cálculo con el mismo secreto y la misma ventana de tiempo. Las salidas coinciden porque las entradas son idénticas. No se requiere comunicación. No se requiere internet. El modo avión es completamente irrelevante porque el código nunca se transmitió a ningún lado.
La dependencia temporal es lo que hace que cada código expire después de 30 segundos. La siguiente ventana produce una salida completamente diferente de la misma función. Un código interceptado es inútil 30 segundos después.
El servidor típicamente acepta códigos de la ventana de tiempo anterior y siguiente también, para tener en cuenta el desfase del reloj entre tu teléfono y el servidor. Si el reloj de tu teléfono está significativamente equivocado, los códigos dejan de funcionar, y por eso arreglar la configuración de hora resuelve problemas de TOTP.
Dos dispositivos. Un secreto compartido. La misma matemática. No se necesita comunicación.
La conexión a Internet nunca fue parte de la ecuación.
Que te diviertas!
Esto se llama TOTP. Contraseña de un solo uso basada en el tiempo. Y la elegancia de cómo funciona merece ser comprendida correctamente.
Cuando configuras Google Authenticator por primera vez, escaneas un código QR. Ese código QR contiene una clave secreta, esencialmente una cadena aleatoria larga, que se almacena en tu teléfono y simultáneamente se registra en el servidor. Ese único intercambio es el único momento en que tu teléfono y el servidor comparten algo relacionado con la generación de códigos.
A partir de ese momento, ambos lados ejecutan la misma función matemática de forma independiente. La función toma dos entradas. El secreto compartido y la hora actual redondeada a una ventana de 30 segundos. Alimenta esas dos entradas en un algoritmo HMAC-SHA1 y obtienes la misma salida cada vez, independientemente de dónde lo ejecutes.
Tu teléfono realiza el cálculo y muestra seis dígitos. El servidor ejecuta el mismo cálculo con el mismo secreto y la misma ventana de tiempo. Las salidas coinciden porque las entradas son idénticas. No se requiere comunicación. No se requiere internet. El modo avión es completamente irrelevante porque el código nunca se transmitió a ningún lado.
La dependencia temporal es lo que hace que cada código expire después de 30 segundos. La siguiente ventana produce una salida completamente diferente de la misma función. Un código interceptado es inútil 30 segundos después.
El servidor típicamente acepta códigos de la ventana de tiempo anterior y siguiente también, para tener en cuenta el desfase del reloj entre tu teléfono y el servidor. Si el reloj de tu teléfono está significativamente equivocado, los códigos dejan de funcionar, y por eso arreglar la configuración de hora resuelve problemas de TOTP.
Dos dispositivos. Un secreto compartido. La misma matemática. No se necesita comunicación.
La conexión a Internet nunca fue parte de la ecuación.
Que te diviertas!




No hay comentarios:
Publicar un comentario