Cifrado de extremo a extremo para la configuración localtunnel / ngrok

3

Esto es lo que estoy tratando de hacer:

local                    web                  local
Recipient <--- local tunnel host server <--- Sender
server1            ngrok or other            device1

Mi objetivo es transmitir de forma segura una cadena desde device1 a server1 . No se puede acceder a server1 desde Internet, por lo que se inicia un túnel a través de ngrok o similar. Sin embargo, no quiero / puedo confiar en el servidor de túnel en el medio. Si entiendo correctamente, el servidor del túnel podría verse comprometido (como en MITM escuchando el socket / proxy tcp).

¿Qué opciones tengo para transmitir datos de forma segura desde un teléfono móvil a una aplicación que se ejecuta detrás de un firewall si no puedes confiar en la infraestructura del medio?

Estoy investigando enlace en este momento, pero no entiendo bien cómo podría funcionar en un contexto de túnel local.

EDITAR: las claves asimétricas parecen ser lo que estoy buscando.

    
pregunta Mario Tacke 10.01.2018 - 20:46
fuente

1 respuesta

2

Sería posible usar ngrok o alguna otra fuente no confiable siempre que cifres el tráfico antes de enviarlo. Esto no quiere decir que ngrok sea un mal servicio, simplemente que es desconocido y, por lo tanto, no confiable.

Para cifrar este tráfico, necesitaría configurar su propio intercambio de claves ... tanto el Sender como el Recipient necesitarían crear un par de claves pub / priv y compartir las claves públicas entre sí. Una vez que se han compartido las claves públicas, una o ambas partes pueden generar aleatoriamente una cadena binaria que se utilizará como clave simétrica para una mayor comunicación. Si desea que ambas partes contribuyan a la clave, puede juntar las cadenas binarias para crear la clave final. (se debe tener en cuenta que estas claves simétricas deben cifrarse con la clave pública de las partes opuestas antes de ser intercambiadas). Una vez que las claves simétricas se hayan intercambiado, se podría utilizar algo así como aes256 para cifrar todo el tráfico adicional.

Este es un resumen de alto nivel de cómo cosas como SSH manejan el intercambio de claves y configuran un túnel seguro. vea también: enlace

    
respondido por el CaffeineAddiction 11.01.2018 - 16:00
fuente

Lea otras preguntas en las etiquetas