Asegurar la conexión entre la redirección de dominio A a B

1

Estoy creando una extensión especial (en el dominio B) para el presente comercio electrónico alojado en un dominio A. El objetivo es redirigir al usuario de A a B y viceversa. Similar a la técnica en la que el usuario deja el sitio de comercio electrónico en la interfaz web de pago con tarjeta de crédito y luego lo redirige. Ambos dominios están protegidos con SSL / TLS. El usuario se registra solo en el sitio A. El sitio B necesita saber solo el número de teléfono móvil de los usuarios.

Vine con una solución: La página A codifica los datos de los usuarios y el secreto común en hash. Los datos y el hash se publican en B. La página B recibe datos y hash. Luego hace su propio hash a partir de los datos y el secreto común y lo compara con el hash de la solicitud posterior.

Fallo con esta idea. Cualquier idea mejor. ¿Cookies?

Editar: Estoy tratando de evitar que alguien pueda abordar el dominio B desde otra parte. El sitio B proporciona algún proceso de reserva (número de teléfono móvil como referencia, envío de códigos de check-in a través de sms). Alguien malo podría hacer la reserva y hacer que nuestro sistema se quede sin ranuras vacías o nos envíe un correo basura a nosotros ya otros usuarios, lo que es malo para el negocio.

    
pregunta Gregor Pohajač 01.11.2014 - 12:31
fuente

1 respuesta

2

Lo que ha propuesto es esencialmente un código de autenticación de mensaje basado en hash, o HMAC. Mientras el secreto compartido se mantenga en secreto, nadie podrá pasar datos al sitio B que no sea el sitio A.

Hay algunos matices en el uso de un hash para la autenticación de mensajes, incluido el ataque de extensión de longitud , pero dependiendo del idioma estás usando, probablemente hay una función de biblioteca HMAC ya disponible.

{time pass} Después de haber pensado en esto por un momento, debes incluir una marca de tiempo en los datos. (Y así, la marca de tiempo también se pasará a la función HMAC). Esto es para evitar ataques de repetición, donde un atacante captura un mensaje válido (lo que sería difícil si las conexiones son TLS / SSL) y lo envía nuevamente más tarde. Ambos servidores deben tener una buena idea de qué hora es, lo que puede hacer con NTP. También querrá establecer un período de tiempo de espera, después del cual un mensaje expira. Para evitar un ataque de reproducción durante el período de tiempo de espera, deberá almacenar los mensajes en caché y rechazar los duplicados.

Es posible que desee simplemente confiar en TLS / SSL para evitar los ataques de reproducción, dependiendo de la cantidad de daño que tal ataque podría hacer. Si fuera yo, incluiría la marca de tiempo de todos modos y buscaría mensajes "antiguos" anormales, si no más.

    
respondido por el Bob Brown 01.11.2014 - 15:44
fuente

Lea otras preguntas en las etiquetas