Livello di autenticazione
Il livello di autenticazione controlla la sicurezza desiderata da un client o un server dal provider di servizi condivisi. Il livello di autenticazione viene impostato passando un valore di RPC_C_AUTHN_LEVEL_xxx appropriato a CoInitializeSecurity o CoSetProxyBlanket tramite il parametro dwAuthnLevel. I livelli di autenticazione del client e del server vengono confrontati durante l'handshake e l'impostazione di protezione di livello superiore viene usata per la connessione.
I diversi livelli di autenticazione sono descritti di seguito, dalla protezione di livello più basso al massimo:
-
Nessuno (RPC_C_AUTHN_LEVEL_NONE)
-
Durante la comunicazione tra client e server non viene eseguita alcuna autenticazione. Tutte le impostazioni di sicurezza vengono ignorate. Questo livello di autenticazione può essere impostato solo se il livello di servizio di autenticazione è RPC_C_AUTHN_NONE.
-
Impostazione predefinita (RPC_C_AUTHN_LEVEL_DEFAULT)
-
COM sceglie il livello di autenticazione usando la normale negoziazione coperta di sicurezza. Non sceglierà mai un livello di autenticazione nessuno.
-
Connessione (RPC_C_AUTHN_LEVEL_CONNECT)
-
L'handshake di autenticazione normale si verifica tra il client e il server e viene stabilita una chiave di sessione, ma tale chiave non viene mai usata per la comunicazione tra il client e il server. Tutte le comunicazioni dopo l'handshake non sono sicure.
-
Chiamata (RPC_C_AUTHN_LEVEL_CALL)
-
Vengono firmate solo le intestazioni dell'inizio di ogni chiamata. Il resto dei dati scambiati tra il client e il server non è firmato né crittografato. La maggior parte dei provider di servizi di sicurezza non supporta questo livello di autenticazione e la alza di livello automaticamente a Packet.
-
Pacchetto (RPC_C_AUTHN_LEVEL_PKT)
-
L'intestazione di ogni pacchetto è firmata ma non crittografata. I pacchetti stessi non sono firmati o crittografati.
-
Integrità dei pacchetti (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY)
-
Ogni pacchetto di dati viene firmato interamente, ma non crittografato. Poiché tutti i dati sono firmati dal mittente, il destinatario può essere certo che nessuno dei dati sia stato manomesso durante il transito.
-
Privacy dei pacchetti (RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
-
Ogni pacchetto di dati è firmato e crittografato. Ciò consente di proteggere l'intera comunicazione tra il client e il server.
Argomenti correlati