Sembra che le due precedenti risposte a questa domanda raccomandino più o meno strongmente di attivare SSL comunque, ma vorrei suggerire un diverso angolo di ragionamento (anche se non sto raccomandando di non attivare SSL).
I due punti chiave nel valutare se hai bisogno di SSL o meno sono (a) ciò che SSL ti protegge contro e (b) che cos'è il modello di thread: enumerare le potenziali minacce.
SSL / TLS protegge il trasporto di informazioni tra un client (in questo caso, il server web) e un server (in questo caso il server di database) da manomissioni e intercettazioni da parte di chiunque sulla rete in mezzo (compresa la possibilità di salire su quelle due macchine).
Per valutare se il protocollo SSL è utile, è necessario presumere che l'autore dell'attacco sia in grado di eseguire l'attacco che SSL è progettato per proteggerti contro. Cioè, l'utente malintenzionato dovrebbe essere in grado di annusare i pacchetti sulla rete o su entrambe le macchine.
-
Se qualcuno in grado di annusare i pacchetti dal server database, è probabile che abbia accesso root / admin a quel server. L'utilizzo di SSL / TLS in questa fase non farà alcuna differenza.
-
Se qualcuno è in grado di annusare i pacchetti sulla rete tra il server Web e il server del database (esclusi quei computer), l'uso di SSL / TLS impedirà loro di vedere / modificare il contenuto dell'applicazione. Se pensi che sia possibile che sia possibile, attiva SSL . Un modo per mitigare questo sarebbe utilizzare due schede di rete sul server web: una verso il mondo esterno e una verso la LAN interna dove si trova il server DB (senza altre macchine, o in un modo che tu possa trattarle tutte come una singola macchina più grande). Questa rete che costituisce la web farm o il cluster globale (comunque lo si voglia chiamare) sarebbe fisicamente separata e avrà solo un punto di ingresso dall'esterno: il web server stesso (stesso principio per un nodo head proxy inverso).
-
Se qualcuno è in grado di annusare i pacchetti sul nodo principale (il server web) stesso, è probabile che abbia accesso root lì (i processi eseguiti da utenti non-root sulla macchina, non dovrebbero essere in grado di leggere pacchetti che non sono per loro). In questo caso, avresti comunque un grosso problema.
Ciò di cui dubito è se abilitare SSL ti protegga molto in questo scenario.
Qualcuno con accesso root sul server web sarà in grado di leggere la configurazione dell'applicazione, comprese le password DB, e dovrebbe essere in grado di connettersi legittimamente al server DB, anche usando SSL.
In contropartita, se si è supposto che ciò garantisca l'uso di SSL (perché potrebbe essere più difficile esaminare in che modo effettivamente i processi piuttosto che osservare semplicemente la rete, anche se si ha il controllo di root sulla macchina), questo significherebbe che vorresti anche girare per le comunicazioni localhost (ad esempio se hai altri servizi sul tuo server web, o nella situazione in cui sia il server DB che il server web si trovavano sullo stesso computer).
Non è necessariamente una brutta cosa essere cauti, ma devi porre la tua domanda nel contesto di ciò che potrebbero fare gli attaccanti se dovessero essere in grado di eseguire un attacco contro ciò che la misura di sicurezza (SSL) protegge tu contro, e se questa misura di sicurezza potrebbe impedire loro di raggiungere il loro obiettivo comunque, una volta in questa posizione.
Penso che la finestra sia in realtà piuttosto stretta (supponendo che la tua rete di back-end sia effettivamente protetta, fisicamente, non solo da qualche firewall tra un certo numero di macchine).