Configurare i Certificati SSL per il Proxy di Database DataSunrise
La maggior parte dei database supporta la verifica dell’identità del server tramite certificati. Pertanto, una procedura di verifica viene eseguita durante una connessione a un server: se il certificato ricevuto dal server è autentico, si stabilirà una connessione; altrimenti sarà considerato un attacco man-in-the-middle. Per impostazione predefinita, questo controllo del certificato server può essere abilitato/disabilitato a seconda del DBMS. Tuttavia, consigliamo di abilitare il controllo del certificato per mantenere sicuri i tuoi dati.
Per una connessione diretta tra un database e un’applicazione cliente, il controllo del certificato funziona come segue:
client(CA-cert) <---> server(Server-cert, Server-key)
- CA-cert – certificato root della certification authority,
- Server-key – chiave privata del server
- Server-cert – certificato del server firmato dal CA.
Prendiamo come esempio MySQL.
Il client MySQL è a conoscenza del certificato CA. Sul lato server ci sono certificati come Server-cert e Server-key. Il client può abilitare la modalità SSL. Il valore predefinito di ssl_mode=prefer significa che l’autenticazione del certificato del server è disabilitata. Inoltre, il parametro ssl_mode può essere impostato su:
- Verify-CA (Voglio che i miei dati siano crittografati e accetto l’overhead. Voglio essere sicuro di connettermi a un server di cui mi fido)
- Verify-Identity (Voglio che i miei dati siano crittografati e accetto l’overhead. Voglio essere sicuro di connettermi a un server di cui mi fido e che sia quello specificato)
Di seguito è riportata una stringa di esempio utilizzata per stabilire una connessione diretta con controllo del certificato:
$mysql --host=localhost --port=3306 --user=root --ssl-ca=ca.pem --ssl_mode=VERIFY_CA
[root@3306][(none)]>
Il seguente diagramma mostra il processo di stabilire una connessione con il controllo del certificato abilitato di DataSunrise:

DataSunrise implementa la funzionalità di crittografia end-to-end in una catena client-proxy-server.
Guarda il diagramma sopra: ci sono due connessioni. La prima connessione viene stabilita tra un client e un proxy DataSunrise. La configurazione SSL del proxy DataSunrise viene utilizzata per la connessione. Per configurarlo, devi avere il Proxy-key e il Proxy-cert generati e firmati dal certificato CA. Ciò ti permette di essere sicuro di connetterti a un proxy DataSunrise autentico.
La seconda connessione viene stabilita tra un proxy DataSunrise e un server di database e utilizza la propria configurazione SSL. Il proxy DataSunrise funziona qui come un’app cliente e può anche verificare una connessione a un server autentico.
Si prega di notare che l’autenticazione del certificato è un’opzione aggiuntiva per la crittografia SSL, non funziona se la crittografia SSL è disabilitata.
È anche importante che il proxy DataSunrise sia un proxy trasparente e supporti la modalità di crittografia negoziata dal client e dal server di database. Ciò significa che è impossibile crittografare solo una connessione nella catena. Il proxy DataSunrise non può ricevere il traffico crittografato da un’estremità e inviare traffico non crittografato all’altra estremità e viceversa.
Ecco i passaggi che consentono di configurare il controllo del certificato SSL in DataSunrise:
Prima connessione
1. Vai su Configurazione → Gruppi Chiave SSL e clicca Aggiungi Gruppo

2. Inserisci il tuo Proxy-cert e Proxy-key nei campi corrispondenti. Per questo, devi scegliere il tipo di Proxy.

3. Vai su Configurazione → Database. Apri la tua pagina di istanza del database e clicca sull’icona della “matita” per modificare le impostazioni del proxy.

4. Seleziona il tuo Gruppo Chiave SSL nell’elenco a discesa Chiavi Proxy e salva le impostazioni.

Seconda connessione
1. Vai su Configurazione → Gruppo Chiave SSL e clicca Aggiungi Gruppo. Seleziona il tipo Interfaccia e inserisci il tuo CA-cert nel campo CA.

2. Vai su Configurazione → Database, seleziona la tua istanza e clicca sull’icona “matita” per modificare le impostazioni dell’interfaccia

3. Devi specificare il gruppo creato nel primo passaggio, selezionare la modalità di verifica del certificato e salvare le impostazioni.

- Non verificare – il controllo del certificato non verrà effettuato,
- Verifica solo CA – verrà verificato il certificato CA del server,
- Verifica CA e Identità – verranno verificati il certificato CA del server e il nome host del server nel certificato.
Dopo aver completato i passaggi sopra, la connessione a un proxy attiva il controllo del certificato per i due server ed elimina la possibilità di attacchi MITM.
$mysql --host=localhost --port=3307 --user=root --ssl-ca=CA_Proxy.crt --ssl_mode=VERIFY_IDENTITY
[root@3307][(none)]>