E 'necessario usare SSL per MySQL?

1

Ho un server web MySQL e Apache (entrambi sono installati sullo stesso computer). Gli utenti interagiranno con esso tramite un'applicazione VB.NET e il web. Il server è accessibile da Internet.

Applicazione VB.NET: compilano i campi e inviano le informazioni al database. Web: gli utenti possono visualizzare le informazioni inviate dall'utente. La pagina web mostra semplicemente il database in un formato tabella.

Le informazioni non sono super-critiche, sono solo statistiche / benchmark (soprattutto perché chiunque nel mondo può visualizzarlo). Chiedo perché questa è la prima volta che distribuisco qualcosa di SQL. È davvero necessario abilitare SSL?

    
posta Tyler Montney 09.06.2015 - 05:25
fonte

2 risposte

3

Hai sostanzialmente risposto alla tua domanda affermando che chiunque nel mondo può leggere queste informazioni. Questo mi fa credere che non sia necessario.

Tuttavia, da un punto di vista della sicurezza, si consiglia sempre di utilizzare le migliori pratiche, ovvero utilizzare la protezione del livello di trasporto.

Client basati sul Web

Poiché il server web e il server database sono eseguiti sulla stessa macchina, le connessioni al database dovrebbero essere eseguite su 127.0.0.1:3306 poiché gli attacchi MiTM non sono possibili. Tuttavia, gli utenti privilegiati (non database) sul server potrebbero acquisire questo traffico

Client VB

Questi specifici client molto probabilmente si connetteranno direttamente al tuo server MySQL. Se questo è il caso, i client inviano le loro credenziali su un livello di trasporto non sicuro.

Se il client VB utilizza i moduli Web del server Web, l'istruzione sopra riportata non si applica e lo stesso vale qui per i client basati sul Web.

Considerazioni e amp; Raccomandazioni

Se i tuoi client VB si connettono direttamente al tuo database su Internet, si consiglia di utilizzare la protezione del livello di trasporto [1].

Pensa se potresti memorizzare più dati sensibili in futuro. Preparati per il futuro.

Un giorno qualcuno potrebbe avere questa "idea brillante" dicendo: "Creiamo un modulo aggiuntivo in cui gli utenti dovrebbero memorizzare i loro dettagli", dove è necessario memorizzare i loro nomi, indirizzi, indirizzi e-mail e indirizzo IP per esempio .

[1] Cerco di evitare di usare il termine SSL a causa di difetti un po 'recenti.

    
risposta data 09.06.2015 - 06:01
fonte
3

I have a MySQL and Apache web server (both are installed on the same machine). Users will interact with it by a VB.NET application and the web. The server is accessible by the Internet.
...
The information is not super critical, it's just stats/benchmarks (especially since anyone in the world is allowed to view it)

Queste due affermazioni sembrano contraddirsi l'una con l'altra. Da un lato, sia MySQL che Apache si trovano sullo stesso host, ma "a chiunque nel mondo è consentito visualizzarlo". Suppongo che tu stia facendo riferimento all'output dei dati dalla tua applicazione web?

Se la prima affermazione è vera e il server Web Apache e il server di database MySQL esistono sullo stesso computer, non c'è alcun vantaggio nell'aggiungere SSL, come Raniz menziona nella sua risposta. Tuttavia, se esistono su macchine diverse o se accedi a MySQL da remoto , devi abilitare SSL.

L'importante è qui modellare ciò contro cui SSL ti protegge, che è principalmente il furto di password. Se ti connetti a un server MySQL su Internet senza usare SSL, chiunque abbia la fortuna di sedersi tra te e la tua destinazione finale (il server MySQL) può facilmente estrarre il tuo nome utente e la password per MySQL. Possono quindi fare quello che vogliono con le credenziali utente che hanno estratto.

Sembri indifferente a questa possibilità nel dire "l'informazione non è super-critica", ma probabilmente dovresti preoccuparti di questa possibilità. Cosa succede se un utente malintenzionato ha cancellato tutto dal database? O dati erroneamente iniettati e distrutto la credibilità del tuo sito? Cosa accadrebbe se fossero in grado di utilizzare un exploit in SQL per ottenere una shell sulla macchina?

Se, tuttavia, come dici tu che il tuo server MySQL vive ed è accessibile solo localmente (mai su WAN), non hai bisogno di SSL. Se è pubblico o condivide i dati su una rete non sicura, utilizza SSL.

Un'alternativa all'utilizzo di MySQL su SSL è l'utilizzo del port forwarding SSH ogni volta che è necessario accedere a MySQL da remoto.

ssh -L 3306:localhost:3306 myhost.com

Questo inoltrerà tutto il traffico alla porta locale 3306 su SSH alla porta locale 3306 di myhost.com. Questo protegge le tue credenziali pur consentendo l'accesso.

SSL in generale non è la cosa più facile da configurare e MySQL non fa eccezione. Tuttavia, se hai bisogno di servizi per accedere a MySQL attraverso la rete, SSL ha uno scopo tanto necessario.

    
risposta data 09.06.2015 - 06:06
fonte

Leggi altre domande sui tag