Tengo un entorno de red específico. Es una red DTN (Delay Tolerant Network) sin conectividad continua, situada en el mar, donde los nodos son barcos. También hay un servidor que forma parte de la infraestructura de la tierra, para mayor claridad, llamémoslo servidor B . En cada barco hay una computadora que tiene instalado un software de enrutamiento personalizado y también actúa como un servidor www. En el servidor www hay un servicio de correo electrónico web, donde los usuarios se registran e inician sesión con sus cuentas de correo electrónico. Deben poder leer sus correos y enviar nuevos correos electrónicos. Debido a que la conectividad de la red no es continua, no podemos utilizar directamente los protocolos IMAP, POP, SMTP para comunicarnos con los servidores de correo. La idea es que el servidor B en la infraestructura terrestre realizará la comunicación en nombre del usuario. Por lo tanto, el servidor web en el barco enviará un mensaje con información del correo cifrada con el certificado servidor B a algunos nodos de tránsito en la red cuando se encuentren y el servidor B descifre ese mensaje y lo haga La comunicación IMAP. El usuario también puede registrarse en servidor B y decirle que debe revisar los mensajes de la bandeja de entrada cada 5 minutos y, si hay nuevos correos electrónicos, envíelos a la nave.
El problema es que las contraseñas almacenadas en la base de datos no pueden ser hashes, ya que server B no podría hacer que el SMTP, el cuadro de diálogo IMAP donde los hashes son inaceptables. Mi soution es almacenar en la base de datos en los servidores las contraseñas encriptadas con el certificado servidor B . Cuando servidor B no quiere que SMTP descifre las contraseñas con su clave privada. El inconveniente de esta solución es que es lenta y cuando se revela la clave privada del servidor B , todas las contraseñas de los usuarios pueden descifrarse.
¿Hay alguna solución mejor para este problema?