Tutti i server devono utilizzare il protocollo HTTPS o solo server pubblici?


38

Ho un server Web front-end in esecuzione su HTTPS - questo è pubblico - cioè la porta è aperta.

Ho anche un server API back-end al quale il mio server web fa richieste API - questo è pubblico e richiede autenticazione - la porta è aperta.

Questi 2 server funzionano su HTTPS.

Dietro il server API, ci sono molti altri server. Il server API inoltra i proxy a questi server. Le porte per questi altri server non sono aperte al traffico in entrata. Possono essere consultati solo tramite il server API.

La mia domanda ... I "molti altri server" devono funzionare su HTTPS o, dato che non possono accedervi esternamente, possono invece correre su HTTP in modo sicuro?

Ho pensato che sarebbe stata una domanda comune ma non sono riuscito a trovare una risposta. Grazie. Se questo è un duplicato, ti prego di indicarmi la risposta giusta.


35
Alla luce di come l'NSA ha attinto ai collegamenti oltremare che Google e Yahoo erano soliti comunicare tra i loro data center senza crittografia, consiglierei di supporre sempre che una connessione sia sospetta. Non sai mai dove qualcuno potrebbe ascoltare, ed è meglio prevenire che curare. L'unica volta che vorrei prendere in considerazione l'utilizzo di HTTP da solo è un servizio in esecuzione sulla stessa macchina che lo utilizza, aperto solo alle connessioni locali.
figlio del

7
Questo è noto come ssl offloading e ssl termination se si desidera effettuare ulteriori ricerche.
Esben Skov Pedersen,

31
È come chiedere "tutte le porte hanno bisogno di serrature o solo porte rivolte all'esterno"? Solo tu puoi rispondere a questa domanda quando consideri le minacce all'interno e senza la tua rete.
Ryan Griggs,

5
Come afferma la faq Security.SE : "La sicurezza è un argomento molto contestuale: le minacce che sono ritenute importanti nel tuo ambiente possono essere insignificanti per qualcun altro e viceversa. Stai cercando di proteggere qualcosa di valore globale dalle minacce persistenti avanzate? Oppure stai cercando un approccio economico per una piccola impresa di basso profilo? Per ottenere le risposte più utili che dovresti dirci: quali risorse stai cercando di proteggere; chi utilizza la risorsa che stai cercando di proteggere e chi penso che potrebbe voler abusarne (e perché); ...
DW,

2
quali passi hai già intrapreso per proteggere tale risorsa; quali rischi pensi di dover ancora mitigare. "Questo tipo di contesto è essenziale. Ti suggerisco di modificare la tua domanda per includere queste informazioni.
DW

Risposte:


50

Questa è una questione di opinione, e ha anche a che fare con questioni normative (se si affrontano).

Anche se al momento non è necessario, sono un grande sostenitore del mantenimento dell'HTTPS abilitato tra qualsiasi firewall a livello di applicazione / bilanciamento del carico / server front-end e server back-end. È una superficie di attacco in meno. Ho stipulato un contratto con luoghi che dovevano essere convertiti quando sono iniziate le informazioni più sensibili - è meglio iniziare da lì.

Quello che in genere suggerirei è di utilizzare una CA interna (se disponibile) o un auto segno (se nessuna CA interna) i server back-end. Fisseremmo la data di scadenza piacevole e lontana nel futuro per evitare cambiamenti inutili.


1
è meglio iniziare lì - le parole che ti hanno dato i punti :)
danday74

12
Questa è una buona idea. Non vuoi che la NSA stia facendo dei disegni sciocchi sulla tua topologia di rete .
Kevin,

3
La crittografia di tutte le tue comunicazioni salvaguarda anche dalle intercettazioni interne, sia che si tratti della forma del computer del tirocinante che ha raccolto un trojan durante la navigazione di immagini di gatti, o di un piccolo sniffer collegato a una porta di rete dietro una scrivania inutilizzata o una password wifi condivisa un po 'troppo vagamente.
Doktor J,

8
" We'd set the expiration date nice and far into the future to avoid unnecessary changes." e aggiungi una regola alla tua suite di monitoraggio preferita per avvisarti quando sta per scadere. Per favore!
GnP,

2
@GnP Lo faccio anche io - se è un certificato con un periodo di 10 anni la nostra politica impone sempre che il server back-end venga sostituito entro quel periodo .. Lo rende un po 'ridondante e non sembra necessario menzionarlo nella risposta.
Tim Brigham,

19

TL; DR dovresti crittografare il traffico a meno che non si trovi sullo stesso host.

Non puoi fidarti della tua rete. I malware nella propria rete possono intercettare / modificare le richieste http.

Non sono attacchi teorici, ma esempi di vita reale:


16

I "molti altri server" devono funzionare su HTTPS o, dato che non sono accessibili dall'esterno, possono invece funzionare su HTTP in modo sicuro?

Questo dipende davvero da ciò che stai cercando di realizzare. Comprendere lo scopo dell'utilizzo di HTTPS è proteggere i dati in transito tra due punti. Se sei preoccupato per i dati che vengono sniffati all'interno della tua rete, allora forse dovresti occupartene prima. Se devi proteggere i dati in transito all'interno della tua rete, ciò che stai dicendo è che hai una preoccupazione per la sicurezza dei dati che attraversano i tuoi sistemi all'interno della tua rete o c'è qualche motivo relativo alla conformità per crittografare i dati in transito.

Questa è davvero una domanda di opinione, ma la risposta è che dipende. Cosa stai cercando di fare? Che tipo di dati stai crittografando? Quali minacce stai cercando di difendere? Hai un requisito legale (ad es. PCI-DSS, HIPAA, ecc.) Che dice che devi crittografare i dati in transito? Se i dati sono sensibili e si teme che potrebbero essere utilizzati in modo improprio durante la trasmissione all'interno della rete, suggerirei di collaborare con la direzione per risolvere il problema. Quindi, alla fine, cosa stai cercando di proteggere e perché stai cercando di proteggerlo?


13

In passato, la gente pensava che le reti interne fossero sicure come case. Una volta ho avuto una disputa con un supervisore che era sconvolto dal fatto che i miei server interni stessero eseguendo i loro firewall integrati. "Se non puoi fidarti della tua rete interna, di chi puoi fidarti?" Ho sottolineato che avevamo laptop degli studenti sulla nostra rete interna e che non c'erano firewall tra i laptop degli studenti e i miei server. Lui, essendo nuovo al mondo accademico, sembrava avere il suo universo a brandelli su queste informazioni.

Le reti interne non sono più considerate sicure, anche se non hai laptop per studenti sulla tua rete. Vedi la risposta di Tom per alcuni esempi.

Detto questo, sì, dipende da quali informazioni vengono trasmesse, da eventuali problemi di conformità legale, ecc. Potresti decidere che non ti interessa se qualcuno annusa, diciamo, i dati meteorologici. Detto questo, è possibile che, anche se l'inviato i dati non è sensibile ora , qualcuno potrebbe decidere di aggiungere funzionalità alla vostra applicazione in seguito che sono sensibili, quindi vi consiglio di maggiore paranoia (compresi HTTPS).


I dati meteorologici potrebbero essere abbastanza sensibili: qualcuno potrebbe basare le proprie decisioni sbagliate su dati meteorologici manomessi.
Hagen von Eitzen,

1
Abbastanza giusto, dipende da cosa stai usando i dati meteorologici. Stavo cercando di inventare qualcosa di innocuo. :)
Katherine Villyard,

1
@HagenvonEitzen o l'attaccante avrebbero iniettato malware / pubblicità lì, quindi la nonna viene investita quando controlla il tempo usando la sua macchina Windows XP.
André Borie,

8

Oggi con istruzioni CPU specializzate per accelerare la crittografia e nuovi protocolli di trasporto che non funzioneranno affatto o funzioneranno con prestazioni degradate su un collegamento non crittografato (HTTP / 2, gRPC, ecc ...), forse la domanda migliore è: c'è qualche motivo per cui è necessario eseguire il downgrade di un collegamento di rete a HTTP? Se non esiste un motivo specifico, la risposta è rimanere con HTTPS.


Bel processo di pensiero
danday74

5

L'unico motivo per disabilitare la crittografia che mi viene in mente è la prestazione. Tuttavia, nel tuo caso i server interni sono interfacciati tramite HTTP, il che significa che hanno già il costo delle prestazioni di esecuzione di un server Web, che supporta il protocollo HTTP e codifica i dati in HTTP / JSON / qualunque cosa. La disabilitazione della crittografia libererà forse 100 KB di RAM e ti farà guadagnare qualche microsecondo per KB di dati trasmessi, il che non avrà alcun impatto visibile sulle prestazioni complessive. D'altra parte, dovrai prestare molta più attenzione alla sicurezza poiché esegui HTTP nella tua intranet ora. In effetti, è possibile che una configurazione più rigorosa del firewall rallenti le cose più che la disabilitazione della crittografia le abbia accelerate, con conseguente peggioramento delle prestazioni percepite dagli utenti finali.

Sarà come mettere uno spoiler su un trattore: in teoria non guadagni quasi nulla e praticamente molti inconvenienti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.