non-MiTM Reverse SSL

1

Esistono Proxy non invertiti MiTM SSL? Oppure tutti i proxy che eseguono i mapping SSL-SSL decodificano e quindi ricodificano il traffico HTTPS?

Se questo è il caso e voglio mappare link - > link come faccio a costruire una rete in cui solo il server su myprivatedomain.com può decodificare la richiesta HTTPS.

    
posta Gus 02.10.2013 - 19:42
fonte

2 risposte

2

Ci sono due fatti fondamentali da sapere su SSL / HTTPS:

  • HTTPS è HTTP-entro-SSL. In particolare, l'URL non esiste al livello SSL. Dall'esterno, senza decifrare il contenuto, si può vedere che "questo è SSL" e anche "questo è per host www.example.com ", ma non "questo è per l'URL https://www.example.com/foobar/index.html ". Il " foobar/index.html " può essere scoperto solo dal terminale SSL, dove avviene la decrittografia.

    Nel tuo caso, questo significa che qualsiasi reindirizzamento dovrà essere tutto-o-niente: la gerarchia del sito completa, non una sottostruttura di essa.

  • Il client HTTPS (il browser Web) insiste nel trovare nel certificato del server il nome del server che si aspetta, cioè quello dall'URL.

    Nel tuo caso, dal momento che desideri che il client visualizzi un URL che inizia con https://mypublicdomain.com , il certificato del server dovrà contenere mypublicdomain.com . Poiché si desidera che la decrittografia si verifichi sul server privato, significa che il server privato deve utilizzare un certificato con il nome del server pubblico al suo interno. E poiché vuoi che la decrittografia si verifichi solo sul server privato, la chiave privata corrispondente non deve essere nota al server pubblico.

    La linea di fondo è che il server privato possiede e controlla un certificato con il nome di un altro server e che l'altro server non controlla la chiave privata corrispondente. Di solito, l'Autorità di certificazione chiama "truffa" e si sforza seriamente di non permettere che ciò accada. Quindi dovresti essere in grado di farlo solo se possiedi e controlli i entrambi server e la separazione che cerchi di applicare è un qualche isolamento legato alla sicurezza, non una differenza di proprietà.

Quindi quello che cerchi di fare può accadere solo se tu:

  1. Accetta che il proxy si verifichi per un sito completo e esegui il proxy fino al livello dei pacchetti IP o delle connessioni TCP. In effetti, quando ciò accade, normalmente diciamo che questo è hosting virtuale , non proxy (questo può funzionare con SSL, ad esempio vedi questo , a condizione che il client supporti l' Indicazione del nome del server estensione TLS).

  2. In qualche modo trovi un modo per avere un certificato con il nome pubblico, ma la chiave privata è nota solo al server privato. Se possiedi entrambi, allora è facile e dipende da te. Se il server pubblico è un provider di hosting di cui sei solo un cliente, potrebbe essere difficile.

risposta data 02.10.2013 - 19:58
fonte
1

Stai parlando della differenza tra un proxy socket trasparente e un proxy di protocollo non trasparente.

Poiché i nomi di dominio (verificati da SSL) operano a un livello diverso da IP (che utilizzano proxy socket trasparente), è possibile eseguire il proxy di un intero host (per una determinata porta). Tuttavia, come menzionato da Thomas, non è possibile eseguire il proxy di un sottoinsieme di URL specifico poiché questo è incluso nel livello SSL.

Potresti annidare (tunnel) i livelli SSL, con ogni livello di reindirizzamento / inversione del proxy a server diversi, ma i normali browser non supportano questo.

    
risposta data 03.10.2013 - 04:55
fonte

Leggi altre domande sui tag