Es la primera vez que oigo esto, pero no significa que no sea muy conocido.
Suena un poco similar a OATH HOTP / TOTP . OATH se basa en RFC 4226 y parece, al menos a primera vista, más sólido. Por ejemplo, utiliza HMAC en lugar de hash simple (motp usa MD5). OATH también fue adoptado por productos como Yubikey y recientemente Google Authenticator .
Basándome en estos hechos tan poco profundos, diría que personalmente preferiría OATH en lugar de esta solución aparentemente hecha a medida. Requeriría un análisis más profundo para realmente resaltar las ventajas / desventajas de esos esquemas.
Espero que esto responda a tus dos primeras preguntas.
En cuanto a los motivos para elegirlo: la contraseña de un solo uso (OTP) no solo protege contra la interceptación a través de la línea de comunicación. Por lo tanto, si bien SSL garantizará que la contraseña (o la contraseña de un solo uso) se transporta de manera segura, OTP garantiza que, incluso si la contraseña se pierde o se la roban, no se puede reutilizar . Es único para cada sesión. Entonces, incluso si alguien miró por encima de tu hombro cuando escribiste tu contraseña, ya que es una contraseña de un solo uso, no pueden usarla nuevamente.
Hay otros beneficios para los esquemas OTP, en este caso, actúa como autenticación de segundo factor . No solo lo que sabes, sino también lo que tienes. En esos esquemas OTP basados en dispositivos móviles, generalmente se trata de una clave secreta que se almacena en su teléfono y se usa para generar la contraseña. Por lo tanto, un atacante no solo necesitará su contraseña, sino también su teléfono (o la tecla de su teléfono) para autenticarse como usted.
La mayoría de los esquemas de autenticación son complementarios a SSL y no lo reemplazarán. Incluso si el proceso de autenticación es seguro, generalmente se intercambian otros datos o se establece algún tipo de sesión. Por ejemplo, considere iniciar sesión en su cuenta bancaria y luego ver las transacciones o transferir fondos. Proteger la autenticación solo (por ejemplo, a través de OTP) no es suficiente. Lo mismo ocurre con solo proteger la conexión (utilizando SSL sin autenticación). Para protegerlo mejor, por lo general, combinaría SSL con algún tipo de autenticación de usuario.
Con respecto a su preocupación sobre el almacenamiento de PIN / clave en forma reversible en lugar de usar un hash seguro. Yo diría que esta es probablemente una compensación aceptable considerando lo que usted gana. La OTP le brinda una gran protección contra los casos en los que la contraseña estática podría filtrarse (incluido el phishing, el hombro, las personas que escriben sus contraseñas, la ingeniería social, etc.). Incluso si se filtra una contraseña OTP, limita su utilidad, ya que solo se puede usar una vez y dentro de un período de tiempo limitado. El inconveniente es que debe asegurarse de que su servidor de autenticación (y, en cierta medida, los dispositivos de usuario) estén bien protegidos. Si su servidor es su punto débil, entonces, no estoy seguro de que los hash seguros sean suficientes para protegerlo de todos modos. Además, su combinación con SSL y una contraseña estándar (con hash) realmente podría mejorar aún más su protección.