È ragionevole effettuare il tunneling del traffico TLS su un altro TLS?

4

Desidero proteggere il traffico della mia applicazione utilizzando TLS con certificati autofirmati pre-distribuiti (come sostituzione drop-in di TCP normale).

In alcuni casi, due clienti non saranno in grado di parlare tra loro direttamente a causa della presenza di NAT e dovranno ricorrere a un relè accessibile per scavare il traffico tra di loro. Mi piacerebbe proteggere la connessione tra client e relay e inoltre non voglio che il relay veda il testo in chiaro destinato ai clienti.

Sembra che un client debba connettersi al relay tramite TLS e quindi stabilire un'altra sessione TLS al secondo client sulla connessione TLS esistente. So che la crittografia due volte non è più strong della crittografia una volta , ma quanto sarebbe un cliente in difficoltà in questo caso?

    
posta aitap 18.01.2017 - 14:05
fonte

1 risposta

3

Se ho capito bene, questo è un diagramma di rete approssimativo della tua situazione:

StaidicendocheAeBvoglionoparlare,manonpossonofarlodirettamente,quindiusanolafunzionediinoltro.StaipensandodiavereAimpostareunaconnessionecrittografata(TLS)aRelayequindiutilizzareRelaycomeproxyperlaconnessione(oltreunaltrotunnelTLS)aB.

Sembracomplicato,mafondamentalmentesesiutilizzaunproxyhttpsoqualsiasiserverVPN(adesempio,mycompany.example)ecisiconnetteaunaltrositohttps(adesempio,bank.example),sistagiàstratificandolacrittografiasullacrittografia.Vediamocomefunzionanoleopzionipossibili(stratificazioneononstratificazione).

Opzione1:encryptA<->BmanonA<->RelaynéB<->Relay

Senoneseguiiltunnelall'internodeltunnel,invieraipacchettidaAaRelayedaRelayaBnoncrittografati.MapoichésonodestinatiaB,iltrafficoverràcrittografatoperB,nessunopuòleggereilcontenutodellaconnessione(soloAeBstessi).L'unicainformazionechestaiperdendoachiunquestaascoltandosulpercorsotraA<->RelayandRelay<->BècheAeBstannocomunicando.Ilrelènonsaràingradodileggereilcontenutodellaconnessione.

Opzione2:crittografareA->RelayeA->B

Se,comechiedete,c'èuntunneltraAeRelayetraAeB,quindilepersonecheascoltanosuA<->RelaypossonosolovederecheAstacomunicandoconRelay;elepersonecheascoltanosuRelay<->BvedrannodinuovosoloRelaychecomunicanoconB.IlRelaynonsaràingradodileggereilcontenutodellaconnessione.

Opzione3:crittografareA->RelayeB->Relay

Infinec'èlapossibilitàdicrittografarelaconnessionedaAaRelaymanondaAaB(esupponendocheBcontinuiaconfigurareunaconnessione(TLS)aRelayperchéèdietroNAT).InquestocasoiltrafficoètrasparenteperRelay,machiunqueosservivedràsololaconnessionedaAaRelayedaBaRelay.

Quindidipendedalfattochesitrattidiunproblemaselepersonecheintercettanolelineepossonovedereladestinazionedeipacchetti(valeadireAeB).DoppiacrittografiasignificadoppiapotenzaCPUperAeB(solosingolareperRelaypoichénondecodificailcontenuto,soloillivelloesterno),manonsonosicurochefacciaunagrandedifferenzaoloavrestimenzionato.

(Crediti:l'immagineèstatacreatacon link . L'XML è nella fonte di questo post.)

    
risposta data 18.01.2017 - 14:54
fonte

Leggi altre domande sui tag