Plug-in di sicurezza

L'autenticazione per il sistema di database Db2® viene effettuata utilizzando plug-in di sicurezza. Un plug-in di sicurezza è una libreria dinamicamente loadable che fornisce servizi di sicurezza di autenticazione.

Importante: Il tipo di autenticazione DATA_ENCRYPT è obsoleto e potrebbe essere rimosso in una release futura. Per crittografare i dati in transito tra i client e i database Db2 , consigliamo di utilizzare il supporto del sistema di database Db2 di Transport Layer Security (TLS). Per ulteriori informazioni, consultare Codifica dei dati in transito
Plug-in di richiamo del gruppo
Richiama le informazioni di appartenenza del gruppo per un determinato utente.
Plug-in di autenticazione ID/password utente
I seguenti tipi di autenticazione sono implementati utilizzando un plugin di autenticazione con ID utente e password:
  • CLIENT
  • SERVER
  • SERVER_ENCRYPT
  • DATA_ENCRYPT
  • DATA_ENCRYPT_CMP

Questi tipi di autenticazione determinano come e dove si verifica l'autenticazione di un utente. Il tipo di autenticazione utilizzato è determinato dal seguente metodo:

  • Per le operazioni di connessione o di collegamento, se si specifica un valore per il parametro di configurazione srvcon_auth , tale valore ha la precedenza sul valore del parametro di configurazione authentication .
  • In tutti gli altri casi, viene utilizzato il valore del parametro di configurazione authentication .
Plug-in di autenticazione GSS-API
GSS-API è formalmente conosciuta come Generic Security Service Application Program Interface, Versione 2 (IETF RFC2743) e Generic Security Service API Versione 2: C-Bind (IETF RFC2744). Il protocollo Kerberos è il mezzo predominante per implementare il meccanismo di autenticazione GSS-API. I seguenti tipi di autenticazione sono implementati utilizzando plug-in di autenticazione GSS-API:
  • KERBEROS
  • GSSPLUGIN
  • KRB_SERVER_ENCRYPT
  • GSS_SERVER_ENCRYPT

KRB_SERVER_ENCRYPT e GSS_SERVER_ENCRYPT supportano sia l'autenticazione GSS-API che l'autenticazione ID/password dell'utente. Tuttavia, l'autenticazione GSS - API è il tipo di autenticazione preferito. Il supporto Kerberos lato client è disponibile sui sistemi operativi AIX®, Windows e Linux® . Per i sistemi operativi Windows, il supporto Kerberos è abilitato per impostazione predefinita.

Il database manager Db2 supporta questi plugin sia al client che al server.
Nota: I tipi di autenticazione determinano come e dove viene autenticato un utente. Per utilizzare un particolare tipo di autenticazione, impostare il valore del parametro di configurazione del gestore database authentication .

È possibile utilizzare ciascuno dei plugin in modo indipendente o con gli altri plug - in. Ad esempio, si potrebbe utilizzare un plug-in di autenticazione lato - side specifico, ma accettare i valori predefiniti Db2 per l'autenticazione client e di gruppo. In alternativa, potresti avere solo un richiamo di gruppo, o un plug-in di autenticazione client, ma senza un plugin lato server.

Se si desidera utilizzare l'autenticazione GSS - API, i plugin sono richiesti sia sul client che sul server.

Il comportamento predefinito per l'autenticazione è quello di utilizzare un plugin ID/password utente che implementa un meccanismo di livello operativo per autenticarsi.

Il prodotto database Db2 include plug-in per il richiamo del gruppo, l'autenticazione ID/password dell'utente e l'autenticazione GSS - API. È possibile personalizzare il comportamento di autenticazione Db2 e il funzionamento dell'autenticazione server ulteriormente sviluppando i propri plugin o acquistando plug-in da un terzo.

Distribuzione dei plug-in di sicurezza sui client Db2

I client Db2 possono supportare un plug-in di richiamo del gruppo e un plugin di autenticazione ID/password utente.

In alternativa, i client che utilizzano plug-in di autenticazione GSS-API determinano quale plug-in utilizzare scansando l'elenco dei plug-in GSS-API implementati sul server Db2 . Il primo nome plug-in di autenticazione che corrisponde a un plug-in di autenticazione GSS-API implementato sul client è quello scelto. Specificare l'elenco di plug-in GSS - API del server implementati utilizzando il parametro di configurazione del gestore database srvcon_gssplugin_list . La seguente figura ritrae l'infrastruttura plug-in di sicurezza su un client Db2 :
Figura 1. Distribuzione dei plug-in di sicurezza su Db2 Clienti
Il client Db2 dispone di un'interfaccia plug-in in grado di accettare gli utenti ID/password, Kerberos, GSS-API e i plugin client di gruppo.

Distribuzione dei plug-in di sicurezza sui server Db2

I server Db2 possono supportare un plugin di richiamo del gruppo, un plug-in di autenticazione ID/password dell'utente e più plug-in GSS-API. È possibile specificare i plugin GSS - API disponibili come un elenco di valori per il parametro di configurazione del gestore database srvcon_gssplugin_list . Tuttavia, solo un plug-in GSS-API in questo elenco può essere un plug-in Kerberos .

Oltre a distribuire i plug-in di sicurezza lato server sul proprio server di database, potrebbe essere necessario distribuire i plug-in di autenticazione client sul proprio server di database. Quando si eseguono operazioni a livello dell'istanza, come i comandi db2start e db2trc , il gestore database Db2 esegue il controllo dell'autorizzazione per queste operazioni utilizzando i plugin di autenticazione client. Pertanto, potrebbe essere necessario installare il plug-in di autenticazione client che corrisponde al plug-in di autenticazione sul server. Questo nome plug-in viene specificato dal parametro di configurazione del gestore database authentication sul server.

È possibile impostare i parametri di configurazione authentication e srvcon_auth su valori differenti. Questo scenario provoca un meccanismo da utilizzare per autenticare le connessioni del database e l'altro meccanismo da utilizzare per l'autorizzazione locale.

Il metodo più comune per questo approccio è quello di:
  • Impostare il parametro di configurazione srvcon_auth su GSSPLUGIN; e
  • Impostare il parametro di configurazione authentication su SERVER.
Il parametro di configurazione srvcon_auth è un mezzo per sovrascrivere il tipo di autenticazione utilizzato dalle connessioni in entrata. Queste connessioni utilizzano il metodo di autenticazione specificato dal parametro di configurazione srvcon_auth , ma se questo valore viene lasciato vuoto, viene utilizzato il valore del parametro authentication .

Se non si utilizzano i plugin di autenticazione client sul server di database, le operazioni a livello di istanza, come il comando db2start , hanno esito negativo.

La seguente figura delinea l'infrastruttura plug-in di autenticazione di sicurezza su un server Db2 :
Figura 2. Distribuzione dei plug-in di sicurezza su Db2 Server
Il server Db2 supporta plugin di gruppo, server e client (autorizzazione locale).

Abilitazione dei plugin di sicurezza

È possibile specificare i plugin da utilizzare per ogni meccanismo di autenticazione impostando i parametri di configurazione del database manager. La seguente tabella delinea questi parametri:
Tabella 1. Parametri di configurazione di Database Manager per i plugin di autenticazione della sicurezza
Descrizione Nome parametro
Client Userid - Plugin password CLNT_PW_PLUGIN
Plugin Client Kerberos CLNT_KRB_PLUGIN
Plugin Gruppo GRUPPO_PLUGIN
GSS Plugin per Autorizzazione locale PLUGIN_GSS_LOCALE
Modalità Plugin Server SRV_PLUGIN_MODE
Elenco server dei Plugins GSS SRVCON_GSSPLUGIN_LIST
Userid server - Plugin password SRVCON_PW_PLUGIN
Autenticazione connessione server SRVCON_AUTH
Autenticazione del Database manager AUTENTICAZIONE

Se non si impostano i valori per questi parametri, i plug-in predefiniti forniti dal prodotto Db2 vengono utilizzati per il richiamo del gruppo, la gestione di ID utente / password, e Kerberos (se il parametro authenticationè impostato su KERBEROS sul server). Tuttavia, non viene fornito un plug-in GSS-API predefinito. Pertanto, se specifichi un tipo di autenticazione GSSPLUGIN per il parametro authentication , devi specificare anche un plug-in di autenticazione GSS - API per il parametro di configurazione srvcon_gssplugin_list .

Caricamento dei plugin di sicurezza

Tutti i plugin supportati che vengono identificati dai parametri di configurazione del Database manager vengono caricati quando inizia il Database manager.

Durante le operazioni di collegamento o di collegamento, il client Db2 carica un plugin appropriato per il meccanismo di sicurezza che il client ha negoziato con il server. Un'applicazione client può causare il caricamento e l'utilizzo di più plug-in di sicurezza. Questa situazione può verificarsi, ad esempio, in un programma filettato che ha connessioni simultane a diverse banche dati provenienti da diverse istanze. In questo scenario, il programma client effettua una connessione iniziale al server A che utilizza un plug-in GSS-API (G1). Server A invia un elenco di plugin supportati al client e il plug-in G1 corrispondente viene caricato sul client. Il programma client ha quindi un altro thread, che si connette al server B che utilizza un plug-in GSS-API (G2). Il client viene informato su G2, che viene poi caricato e ora entrambi i plugin G1 e G2 sono contemporaneamente in uso sul client.

Le azioni diverse dalle operazioni di collegamento o di collegamento (come l'aggiornamento della configurazione del Database manager, l'avvio e l'arresto del gestore del database o la trasformazione di una traccia Db2 su e off) richiedono anche un meccanismo di autorizzazione. Per tali azioni, il programma client Db2 carica un plugin che viene specificato da un altro parametro di configurazione del database manager:
  • Se si imposta il parametro di configurazione authentication su GSSPLUGIN, il gestore database Db2 utilizza il plug-in specificato dal parametro di configurazione local_gssplugin .
  • Se si imposta il parametro di configurazione authentication su KERBEROS, il gestore database Db2 utilizza il plugin specificato dal parametro di configurazione clnt_krb_plugin .
  • In alternativa, il gestore database Db2 utilizza il plugin specificato dal parametro di configurazione clnt_pw_plugin .

I plug-in di sicurezza sono supportati per le connessioni effettuate al server di database su entrambi i protocolli di indirizzo IPv4 e IPv6 .

Sviluppo plug-in di sicurezza

Se si sta sviluppando un plug-in di autenticazione di sicurezza, è necessario implementare le funzioni di autenticazione standard utilizzate dal Database manager Db2 . La funzionalità che devi implementare per i tre tipi di plug - in:

Plug-in di richiamo del gruppo
  • Trova e restituisce l'elenco dei gruppi a cui appartiene un utente
Plug-in di autenticazione ID/password utente
  • Identificare il contesto di sicurezza predefinito (solo per un plugin client)
  • Convalidare e, opzionalmente, modificare una password
  • Stabilire se una determinata stringa rappresenta un utente valido (solo per un plugin server)
  • Modificare l'ID utente o la password che viene fornito sul client prima che venga inviato al server (solo per un plugin client)
  • Restituire l'ID di autorizzazione Db2 che è associato a un determinato utente
Plug-in di autenticazione GSS-API
  • Identificare il contesto di sicurezza predefinito (solo per un plugin client)
  • Implementare le funzioni GSS-API richieste
  • Generare credenziali iniziali in base a un ID utente e password e, facoltativamente, modificare una password (solo per un plugin client)
  • Crea e accetta i biglietti di sicurezza
  • Restituire l'ID di autorizzazione Db2 che è associato ad un particolare contesto di sicurezza GSS - API
È possibile passare un ID utente fino a 255 caratteri per una istruzione connect che si emette tramite CLP o tramite un'istruzione SQL dinamica.
Importante: L'integrità dell'installazione del sistema di database Db2 può essere compromessa se i plug-in di sicurezza non sono adeguatamente codificati, revisati e testati. Il prodotto database Db2 prende precauzioni contro molti tipi di errori comuni, ma non può garantire la completa integrità se i plug-in di sicurezza scritti dall'utente vengono distribuiti.