Almacenar contraseñas de forma segura en un escenario específico

4

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?

    
pregunta Russian Gepetto 15.04.2016 - 20:47
fuente

1 respuesta

2

Parece que estás reinventando la rueda. El Internet fue diseñado originalmente para clientes que se conectan a intervalos irregulares. El servidor en la tierra es su servidor de correo. La máquina de infraestructura en el barco puede reflejar o almacenar la información a los muchos clientes en el barco. Internet fue diseñado para resolver este tipo de problemas, y hay un montón de software heredado para esto.

Probablemente puede configurar dos servidores de correo que manejarán esto por usted sin que tenga que escribir una sola línea de código. Necesita un servidor de correo en tierra y un servidor de correo en el barco. Cuando el barco tiene acceso a Internet, puede consultar al servidor de correo terrestre para obtener el correo nuevo para los destinatarios del barco. No es necesario que haya un intercambio de contraseñas si el correo en tierra tenía una lista verificada de direcciones de correo electrónico para las personas en el barco.

Dicho de otra manera, puedes configurar un dominio para el barco y todos los que están en el barco son las siguientes: [email protected] o algo así. Luego, el protocolo de enrutamiento de correo normal entregará el correo al barco cuando su servidor de correo se conecte a su red terrestre.

No debería haber ningún problema de contraseña si configura el enrutamiento de correo correctamente. El servidor de correo en el barco verificará la contraseña de cada usuario cuando se conecten para recibir su correo.

    
respondido por el Brent Kirkpatrick 16.04.2016 - 02:08
fuente

Lea otras preguntas en las etiquetas