Le opzioni SSL gratuite di Cloudflare richiedono di fidarsi di loro; cosa potrebbero fare per cambiarlo?

25

Cloudflare offre 3 opzioni SSL gratuite: SSL flessibile, SSL completo e SSL completo.

L'articolo " Le nuove fantastiche funzionalità di CloudFlare e il motivo per cui I non li userà "esplora le carenze delle opzioni SSL flessibili e complete (non rigide).

L'opzione Full Strict SSL crittografa le connessioni dei client a Cloudflare e anche la connessione di Cloudflare al server di origine, per la quale è richiesto un certificato firmato CA valido. Tuttavia, anche con questa opzione selezionata per il sito, è necessario affidarsi a Cloudflare, in quanto intermediario, ricevere i dati, decrittografarli e quindi crittografarli mentre si dirigono verso il server di origine e viceversa. Inoltre, è necessario affidarsi a in realtà per richiedere certificati validi dai server di origine.

Quindi, questa configurazione consente a Cloudflare di monitorare, registrare e modificare qualsiasi traffico tra client e server di origine.

Il fatto che possano farlo è un enorme problema di sicurezza, no? Riduce il costo del sistema SSL visualizzando (per un utente medio) che la connessione al sito che si sta visitando è crittograficamente protetta end-to-end, piuttosto che la realtà, per cui è necessaria la fiducia in Cloudflare.

Come potrebbe Cloudflare offrire SSL senza richiedere agli utenti di fidarsi di loro?

    
posta Breakhty 27.08.2015 - 14:55
fonte

4 risposte

27

Da quanto ho capito, no, Cloudflare non ha potuto funzionare in nessun altro modo.

Cloudflare analizza la connessione prima di trasmetterla al tuo server web per assicurarti che sia corretta e provenga da un client legittimo. Per fare ciò, deve essere in grado di vedere il contenuto di ogni pacchetto da e verso il tuo server.

Con SSL / TLS, ogni pacchetto è crittografato e quindi non visibile a Cloudflare. Deve essere in grado di decodificare qualsiasi traffico prima che possa analizzarlo. Per fare ciò, deve avere la chiave privata per il certificato utilizzato per crittografare il traffico.

L'unico modo in cui vedo questo è se Cloudflare vendesse la sua applicazione che potevi quindi ospitare autonomamente. Ciò richiede ancora la fiducia dell'applicazione (potrebbe inoltrare le informazioni ai server di Cloudflare, ad esempio), ma almeno non sarebbe ospitata altrove e totalmente fuori dal tuo controllo. Questo sarebbe un compromesso, in quanto perdi la rete distribuita di Cloudflare. Avresti comunque alcuni vantaggi (qualsiasi cosa implementata nel software, ad esempio la protezione dell'iniezione SQL), ma perderei qualsiasi cosa basandosi sulla grande capacità della rete (ad esempio, una certa protezione DDoS).

    
risposta data 27.08.2015 - 15:57
fonte
10

Non può funzionare in nessun altro modo, perché il modo in cui funziona cloudflare è che rispecchiano i file per gli utenti sui propri server. Per richiedere i file, i client si connettono a Cloudflare invece che al tuo server. Ciò significa che i loro browser si aspettano che la connessione sia crittografata con un certificato TLS valido da cdn.cloudflare.com , non dal tuo sito web.

La crittografia end-to-end non è possibile in questo caso perché il protocollo HTTPS non supporta più livelli di crittografia annidati in cui ogni livello è firmato da un server diverso. Quindi Cloudflare deve avere accesso ai file non criptati per servirli ai tuoi utenti.

    
risposta data 27.08.2015 - 16:28
fonte
8

Le altre risposte sono giuste che, in pratica, Cloudflare non è in grado di fornire tutti i servizi completi in modo efficace senza introdurre questo tipo di rischio per la sicurezza.

In parole povere, Cloudflare fa due cose:

  1. Rispecchiano il tuo sito e possono servirlo dai loro server (il loro CDN). In questo modo, se il tuo sito viene colpito da un DDoS, può assorbire il traffico e gli utenti legittimi saranno comunque in grado di raggiungere i loro servizi e vedere il tuo sito.

  2. Effettuano analisi del traffico a livello di applicazione per rilevare attacchi e traffico dannoso. Ciò richiede l'ispezione del testo in chiaro del traffico HTTP.

Ovviamente, il secondo richiede a Cloudflare di essere in grado di vedere il tuo traffico.

Il primo richiede anche che Cloudflare sia in grado di fingere di essere il tuo sito, quindi devi fidarti di loro.

In linea di principio, Cloudflare potrebbe essere in grado di ottenere alcuni dei vantaggi del mirroring del sito, senza richiedere la stessa fiducia in essi. In particolare, si potrebbe immaginare uno schema in cui le pagine di livello superiore del tuo sito sono ancora servite dal tuo server, ma dove sotto-risorse come immagini, fogli di stile CSS, sottopagine IFRAMED, dati dinamici e altre informazioni sono servite dai mirror di Cloudflare. Forse le pagine di livello più alto del tuo sito potrebbero essere pubblicate con un tempo di vita molto lungo in modo che possa essere memorizzato nella cache per un lungo periodo.

In questo modo, un utente che ha visitato il tuo sito in un passato non troppo lontano può ancora avere la pagina di livello superiore nella cache, e il resto del contenuto verrà servito dai server di Cloudflare. Ciò consente all'utente di vedere ancora l'icona di un lucchetto e l'indirizzo del tuo sito nella barra degli indirizzi del browser, e Cloudflare non avrà bisogno della tua chiave privata SSL.

Tuttavia, questo tipo di schema presenta limitazioni importanti e enormi svantaggi. Se il tuo sito viene colpito da un attacco DDoS, gli utenti che non sono mai stati sul tuo sito prima non saranno in grado di visitarlo. Peggio ancora, dovrai cambiare tutte le tue pagine in modo che l'URL di ogni risorsa venga modificato in modo che punti alla rete di Cloudflare invece che ai tuoi server. Questo è un onere enorme e renderebbe difficile per gli operatori del sito adottare la protezione di Cloudflare. Una grande parte del fascino di Cloudflare è che è facile da configurare: basta modificare una riga nel file di configurazione DNS e sei pronto per partire. Il tipo di approccio che ho citato perde tutti questi vantaggi.

In linea di principio, potresti immaginare che il tipo di schema che ho delineato possa essere utile per alcune classi limitate di siti Web che sono AJAX-heavy, dove hanno solo una singola pagina che contiene un gruppo di Javascript che carica tutte le sue risorse attraverso le chiamate AJAX. Tuttavia, quel tipo di sito Web è relativamente raro e viene solitamente creato da sviluppatori piuttosto esperti di tecnologia che potrebbero non aver bisogno di servizi di un'azienda come Cloudflare in ogni caso - probabilmente hanno i propri modi per fornire protezione e protezione DDoS.

Quindi, per tutti questi motivi, il tipo di alternativa che ho delineato non è probabilmente utile o attraente nella pratica.

    
risposta data 27.08.2015 - 23:09
fonte
6

Potenzialmente Cloudflare potrebbe funzionare in modalità SSL pass-through. Tuttavia, non sarebbe altrettanto efficace nella protezione dagli attacchi DDoS.

In modalità pass-thru, i client eseguono una connessione TCP sulla porta 443 su Cloudflare, che viene inoltrata al server web. La configurazione SSL avviene tra il client e il server web, quindi mentre la connessione passa attraverso Cloudflare, tutto ciò che vedono è il traffico SSL crittografato.

In questa configurazione, Cloudflare potrebbe bloccare il traffico che non è per la porta 443, in modo che possano proteggerti dagli attacchi di amplificazione DNS e simili. Potrebbero anche fare alcune protezioni di base, come bloccare indirizzi botnet noti. Tuttavia, non sarebbero in grado di effettuare alcuna ispezione del traffico web, il che è qualcosa che Cloudflare fa davvero bene.

In pratica, devi fidarti del tuo protettore DDoS.

    
risposta data 27.08.2015 - 17:29
fonte

Leggi altre domande sui tag