Tengo un servidor SMTP donde todos los usuarios (por un motivo no relacionado) tendrán claves públicas vinculadas a su nombre de usuario y registradas con el servidor. Quiero agregar una extensión no estándar que usa estas claves existentes para la autenticación. Mi entendimiento de la autenticación basada en la clave SSH es que el servidor cifra un número aleatorio y lo envía al cliente, luego el cliente descifra el número y lo envía de vuelta al servidor. Se considera que el usuario ha tenido éxito solo si el número original y el número devuelto por el cliente coinciden. Creo que también hay negociación de una clave de sesión en algún lugar, pero eso no será necesario para mis propósitos.
Suponiendo que el algoritmo de clave asimétrica (elGamal en este caso) y el generador de números aleatorios son seguros, ¿existen complejidades adicionales del modelo de autenticación SSH que debo tener en cuenta?
Además, ¿esto viola el principio de "no hagas tu propio rollo"? Todos los componentes no están hechos en casa y su composición es, al menos, una imitación de un estándar de confianza, pero parece ir más allá al incluir una biblioteca y llamarla un día.