Condividi tramite


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.

AuthenticationLevel

LegacyAuthenticationLevel