Crittografia end-to-end per l'installazione localtunnel / ngrok

3

Questo è quello che sto cercando di fare:

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

Il mio obiettivo è trasmettere in modo sicuro una stringa da device1 a server1 . server1 non è accessibile da Internet, quindi avvia un tunnel tramite ngrok o simile. Tuttavia, non voglio / posso fidarmi del server del tunnel nel mezzo. Se ho capito bene, il server del tunnel potrebbe diventare compromesso (come in MITM che ascolta il socket / proxy tcp).

Quali opzioni devo trasmettere in modo sicuro i dati da un telefono cellulare ad un'app in esecuzione dietro un firewall se non ci si può fidare dell'infrastruttura nel mezzo?

Sto facendo ricerche su link adesso, ma non capisco come possa funzionare in un contesto di tunnel locale.

MODIFICA: le chiavi asimmetriche sembrano essere ciò che sto cercando.

    
posta Mario Tacke 10.01.2018 - 20:46
fonte

1 risposta

2

Sarebbe possibile utilizzare ngrok o qualche altra fonte non attendibile se si cripta il traffico prima di inviarlo. Questo non vuol dire che ngrok è un cattivo servizio, semplicemente che è sconosciuto e quindi non affidabile.

Per crittografare questo traffico è necessario impostare il proprio scambio di chiavi ... sia Sender che Recipient dovranno creare una coppia di chiavi pub / priv e condividere le chiavi pubbliche tra loro. Una volta che le chiavi pubbliche sono state condivise, una o entrambe le parti possono generare casualmente una stringa binaria da utilizzare come chiave simmetrica per ulteriori comunicazioni. Se vuoi che entrambe le parti contribuiscano alla chiave, puoi combinare le stringhe binarie per creare la chiave finale. (Va notato che queste chiavi simmetriche dovrebbero essere crittografate con la chiave pubblica delle parti avverse prima di essere scambiate). Una volta che le chiavi simmetriche sono state scambiate, è possibile utilizzare qualcosa come aes256 per crittografare tutto il traffico successivo.

Questa è una panoramica di alto livello su come cose come SSH gestiscono lo scambio di chiavi e impostano un tunnel sicuro. guarda anche: link

    
risposta data 11.01.2018 - 16:00
fonte

Leggi altre domande sui tag