Come viene crittografata una connessione ODBC?

4

La maggior parte delle conversazioni su ODBC sono centrate su Microsoft, ma il protocollo viene spesso utilizzato in ambienti eterogenei, come un client Windows che si connette a un database su un server * nix. Mentre la mia domanda è aperta, sono più interessato allo scenario eterogeneo.

Nella ricerca di un caso d'uso specifico, sono stato sorpreso di trovare quasi nessun controllo specifico di crittografia nei driver. C'era una casella di controllo per attivare la crittografia, ma non ho trovato alcuna documentazione sul controllo degli algoritmi utilizzati o per specificare / fornire certificati. Le luci rosse hanno iniziato a lampeggiare. "Utilizza TLS 1.2 o una versione precedente?" "Esiste l'autenticazione reciproca?" "I certificati sono convalidati o i certificati autofirmati sono attendibili?" "Che certs sono usati?" Sì, così ...

Ho trovato alcune informazioni su come funziona in un ambiente Microsoft. Anche questa informazione non è stata del tutto soddisfacente, ma la documentazione per il protocollo stesso o per driver specifici del mondo * nix sembra quasi del tutto mancante.

    
posta JaimeCastells 10.11.2015 - 22:52
fonte

1 risposta

6

Dipende dal driver ODBC. Se il driver ha crittografia interna, è possibile attivarlo. Tuttavia, dipende anche dal database di back-end. ODBC può essere utilizzato per connettersi a database diversi dal server SQL. Ad esempio, un driver ODBC Oracle nativo scritto sopra il client DB di Oracle può utilizzare la sicurezza della rete oracle durante la connessione. Altri driver ODBC non possono utilizzare o avere la sicurezza nativa.

MODIFICA per la chiarificazione

ODBC - Open Database Connectivity - è un'API (libreria) all'interno di un programma, non è un protocollo di rete. C'è il Driver Manager, che è ciò che è collegato al programma e poi ci sono Driver che si connettono a vari database che sono caricati dinamicamente (spesso) o collegati staticamente (raramente) al programma.

Il programma può esistere sulla stessa macchina del database (e utilizzare la comunicazione tra processi) o in remoto su un'altra macchina (e utilizzare la comunicazione di rete). Poiché non esiste un protocollo di rete universale per accedere a ogni tipo di database, ogni driver ha il proprio protocollo di rete, se è in grado di funzionare in rete. Ad esempio, nel caso di ODBC / Oracle, ci sarebbe uno specifico driver Oracle ODBC che si inserisce sotto lo stack di chiamate ODBC e converte le chiamate ODBC in chiamate SQL * Net. Queste chiamate potrebbero essere protette (il punto della tua domanda) utilizzando l'Advanced Security Option di Oracle (la sua sicurezza di rete nativa).

Probabilmente stai usando un database diverso. In tal caso, avrai bisogno di un driver ODBC diverso che, si spera, abbia incorporato un livello di rete sicuro.

Anni fa, ho lavorato per una startup specializzata nella creazione di driver ODBC sicuri per Oracle, Sybase e reti ODBC generiche. Per il driver ODBC generico, abbiamo scritto il nostro protocollo di rete client / server che ha utilizzato Kerberos e DCE RPC per proteggere le comunicazioni di rete e il lato server avrebbe chiamato nel database tramite un altro gestore driver ODBC.

    
risposta data 11.11.2015 - 06:50
fonte

Leggi altre domande sui tag