Estoy estudiando la seguridad en las computadoras y, en particular, en la URL Spoofing. Entiendo que una forma de suplantación de URL es el phishing. Luego leí que una contramedida contra el phishing es la clave de autenticación. Pero lo que no está bien es la clave de autenticcación hocapito.
En las notas que leí:
La clave contiene una semilla relacionada con los usuarios, un temporizador, una clave simétrica secreta y un contador. En su lugar, hay un temporizador en el servidor, la misma clave simétrica es una lista de utilidades relacionadas con semillas y también un contador para cada usuario.
Cuando el usuario hace clic en el botón de la tecla, genera un HMAC (Seed || K || Timer || Counter) que se genera en el servidor de la misma manera: si hay una partida, se concede acceso.
Claramente, el temporizador no se sincronizará perfectamente, y luego el servidor generará algunos códigos HMAC con algunos valores de temporizador (dependiendo de la brecha entre el usuario y el temporizador del servidor) y buscará la coincidencia entre ellos.
Cada clic del usuario es registrado por el contador y, por lo tanto, los dos son contador sincronizado (entre el servidor y la clave). Esto hace que ya no se pueda utilizar un código antiguo (el contador no coincide).
La clave no funciona si el oponente se nota especialmente y realiza un secuestro de sesión que es la información que acaba de ingresar en el sitio de phishing y se reenvía inmediatamente al sitio real del banco.
Es como un hombre en el medio, el oponente hace un intermediario con sus páginas "falsas" entre el banco y el usuario. También es por esta razón que, antes de llevar a cabo algo de importancia, a menudo se solicita otra contraseña.
La clave de autenticación es una clave (que consta de semillas, temporizadores, contadores y clave simétrica secreta), que solo posee el cliente? ¿Qué se entiende por semilla? ¿Y el contador está relacionado con qué? ¿Qué es un HMAC? ¿Cómo puede coincidir si la clave es secreta?
Entendí muy poco. ¿Alguien lo sabría explicarlo de una manera sencilla? ¿O si hay sitios web donde este tema se trata de una manera más completa y fácil?
Leí la página de Wikipedia, pero no he encontrado mucho más.