Architettura dell'interfaccia del provider supporto Sicurezza

Questo argomento di riferimento per professionisti IT descrive i protocolli autenticazione di Windows usati nell'architettura SSPI (Security Support Provider Interface).

Microsoft Security Support Provider Interface (SSPI) è la base dell'autenticazione Windows. Le applicazioni e i servizi di infrastruttura che richiedono l'autenticazione usano SSPI per fornirla.

SSPI è l'implementazione dell'API GSSAPI (Generic Security Service) nei sistemi operativi Windows Server. Per maggiori informazioni su GSSAPI, vedere RFC 2743 e RFC 2744 nel database IETF RFC.

I provider di supporto di sicurezza predefiniti (SSP) che richiamano protocolli di autenticazione specifici in Windows vengono incorporati in SSPI come DLL. Tali SSP predefiniti sono descritti nelle sezioni riportate di seguito. È possibile incorporare SSP aggiuntivi se possono operare con SSPI.

Come illustrato nell'immagine seguente, SSPI in Windows fornisce un meccanismo che contiene token di autenticazione sul canale di comunicazione esistente tra il computer client e il server. Quando due computer o dispositivi devono essere autenticati per poter comunicare in modo più sicuro, le richieste di autenticazione vengono indirizzate a SSPI, che completa il processo di autenticazione, indipendentemente dal protocollo di rete attualmente in uso. SSPI restituisce oggetti binari trasparenti di grandi dimensioni. Questi vengono passati tra le applicazioni, a questo punto, possono essere passati al livello SSPI. Di conseguenza, SSPI consente a un'applicazione di utilizzare i vari modelli di sicurezza disponibili in un computer o in una rete senza impostare l'interfaccia sul sistema di sicurezza.

Diagramma che mostra l'architettura dell'interfaccia del provider di supporto per la sicurezza

Le sezioni seguenti descrivono i provider di servizi di configurazione predefiniti che interagiscono con SSPI. Gli SSP vengono usati in modi diversi nei sistemi operativi Windows per promuovere la comunicazione sicura in un ambiente di rete non sicuro.

Incluso anche nell'argomento:

Selezione del Security Support Provider

Security Support Provider Kerberos

Questo SSP usa solo il protocollo Kerberos versione 5 come implementato da Microsoft. Questo protocollo si basa sulla RFC 4120 del gruppo di lavoro della rete e sulle revisioni bozza. Si tratta di un protocollo standard del settore usato con una password o una smart card per un accesso interattivo. È anche il metodo di autenticazione preferito per i servizi in Windows.

Poiché il protocollo Kerberos è stato il protocollo di autenticazione predefinito da Windows 2000, tutti i servizi di dominio supportano l'SSP Kerberos. Tali servizi includono:

  • Query di Active Directory che usano LDAP (Lightweight Directory Access Protocol)

  • Gestione remota del server o della workstation che utilizza il servizio Chiamata di procedura remota

  • Servizi di stampa

  • Autenticazione server-client

  • Accesso remoto ai file che utilizza il protocollo SMB (Server Message Block) (noto anche come Common Internet File System o CIFS)

  • Gestione e segnalazione di file system distribuiti

  • Autenticazione Intranet a Internet Information Services (IIS)

  • Autenticazione dell'autorità di sicurezza per la sicurezza del protocollo Internet (IPsec)

  • Richieste di certificati a Servizi certificati Active Directory per utenti e computer di dominio

Posizione: %Windir%\System32\kerberos.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, oltre a Windows Server 2003 e Windows XP.

Risorse aggiuntive per il protocollo Kerberos e il provider di servizi condivisi Kerberos

Security Support Provider NTLM

Il Security Support Provider NTLM (SSP NTLM) è un protocollo di messaggistica binario usato dall'interfaccia SSPI (Security Support Provider Interface) per consentire l'autenticazione della risposta di verifica NTLM e negoziare opzioni di integrità e riservatezza. NTLM viene usato ovunque venga usata l'autenticazione SSPI, tra cui per l'autenticazione CIFS o il blocco messaggi del server, l'autenticazione HTTP Negotiate (ad esempio, l'autenticazione Web Internet) e il servizio di Chiamata di procedura remota. L'SSP NTLM include i protocolli di autenticazione NTLM e NTLM versione 2 (NTLMv2).

I sistemi operativi Windows supportati possono usare l'SSP NTLM per quanto segue:

  • Autenticazione server/client

  • Servizi di stampa

  • Accesso ai file tramite CIFS (SMB)

  • Servizio di Chiamata di procedura remota sicura o servizio DCOM

Posizione: %Windir%\System32\msv1_0.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, oltre a Windows Server 2003 e Windows XP.

Risorse aggiuntive per il protocollo NTLM e l'SSP NTLM

Security Suppor Provider Digest

L'autenticazione Digest è uno standard di settore usato per LDAP (Lightweight Directory Access Protocol) e l'autenticazione Web. L'autenticazione digest trasmette le credenziali attraverso la rete come hash MD5 o Digest del messaggio.

L'SSP Digest (Wdigest.dll) viene usato per gli elementi seguenti:

  • Accesso a Internet Explorer e Internet Information Services (IIS)

  • Query LDAP

Posizione: %Windir%\System32\Wdigest.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, oltre a Windows Server 2003 e Windows XP.

Risorse aggiuntive per il protocollo Digest e il provider di servizi condivisi Digest

Security Support Provider Schannel

Il canale protetto (Schannel) viene usato per l'autenticazione server basata sul Web, ad esempio quando un utente tenta di accedere a un server Web sicuro.

I protocolli TLS, SSL, PCT (Private Communications Technology) e DTLS (Datagram Transport Layer) sono basati su crittografia a chiave pubblica. Schannel fornisce tutti questi protocolli. Tutti i protocolli Schannel usano un modello client/server. SSP Schannel usa certificati a chiave pubblica per l'autenticazione delle entità. Quando si autenticano le parti, il provider di servizi condivisi Schannel seleziona un protocollo nel seguente ordine di preferenza:

  • Transport Layer Security (TLS), versione 1.0

  • Transport Layer Security (TLS), versione 1.1

  • Transport Layer Security (TLS), versione 1.2

  • Secure Socket Layer (SSL), versione 2.0

  • Secure Socket Layer (SSL), versione 3.0

  • Private Communications Technology (PCT)

    Nota per impostazione predefinita, PCT è disabilitato.

Il protocollo selezionato è il protocollo di autenticazione preferito che il client e il server possono supportare. Ad esempio, se un server supporta tutti i protocolli Schannel e il client supporta solo SSL 3.0 e SSL 2.0, il processo di autenticazione utilizzerà SSL 3.0.

DTLS viene usato quando viene chiamato in modo esplicito dall'applicazione. Per maggiori informazioni su DTLS e sugli altri protocolli usati dal provider Schannel, consultare la sezione Riferimenti tecnici di Security Support Provider Schannel.

Posizione: %Windir%\System32\Schannel.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, oltre a Windows Server 2003 e Windows XP.

Nota

TLS 1.2 è stato introdotto in questo provider in Windows Server 2008 R2 e Windows 7. DTLS è stato introdotto in questo provider in Windows Server 2012 e Windows 8.

Risorse aggiuntive per i protocolli TLS e SSL e SSP Schannel

Security Support Provider Negotiate

Il Meccanismo di negoziazione GSS-API semplice e protetto (SPNEGO) costituisce la base per l'SSP Negotiate, che può essere usato per negoziare un protocollo di autenticazione specifico. Un'applicazione che chiama l'interfaccia SSPI per accedere a una rete può specificare un provider SSP per l'elaborazione della richiesta. Se l'applicazione specifica l'elemento , l'SSP Negotiate analizza la richiesta e sceglie il miglior provider per gestire la richiesta in base ai criteri di sicurezza configurati dall'utente.

SPNEGO è specificato in RFC 2478.

Nelle versioni supportate dei sistemi operativi Windows, l'SSP Negotiate sceglie tra il protocollo Kerberos e NTLM. Negotiate seleziona il protocollo Kerberos per impostazione predefinita, a meno che tale protocollo non possa essere usato da uno dei sistemi coinvolti nell'autenticazione o che l'applicazione chiamante non abbia fornito informazioni sufficienti per l'uso del protocollo Kerberos.

Posizione: %Windir%\System32\lsasrv.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, oltre a Windows Server 2003 e Windows XP.

Risorse aggiuntive per l'SSP Negotiate

Security Support Provider per le credenziali

Credential Security Service Provider (CredSSP) offre un'esperienza utente Single Sign-On (SSO) all'avvio di nuove sessioni di Servizi Terminal e Servizi Desktop remoto. CredSSP consente alle applicazioni di delegare le credenziali degli utenti dal computer client (usando il provider di servizi condivisi lato client) al server di destinazione (tramite il provider di servizi condivisi lato server), in base ai criteri del client. I criteri CredSSP vengono configurati tramite Criteri di gruppo e la delega delle credenziali è disattivata per impostazione predefinita.

Posizione: %Windir%\System32\credssp.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento.

Risorse aggiuntive per l'SSP delle credenziali

Security Support Provider per le estensioni Negotiate

Negotiate Extensions (NegoExts) è un pacchetto di autenticazione che negozia l'uso di SSP, diverso da NTLM o il protocollo Kerberos, per applicazioni e scenari implementati da Microsoft e da altre società software.

Questa estensione per il pacchetto Negotiate consente gli scenari seguenti:

  • Disponibilità client avanzata all'interno di un sistema federato. È possibile accedere ai documenti nei siti di SharePoint e modificarli usando un app Office Microsoft completa.

  • Supporto client avanzato per i servizi di Microsoft Office. Gli utenti possono accedere ai servizi di Microsoft Office e usare un app Office Microsoft completa.

  • Microsoft Exchange Server ospitato e Outlook. Non è stata stabilita alcuna relazione di trust del dominio perché Exchange Server è ospitato sul Web. Outlook usa il servizio Windows Live per autenticare gli utenti.

  • Disponibilità client avanzata tra computer client e server. Vengono usati i componenti di rete e autenticazione del sistema operativo.

Il pacchetto Negotiate di Windows considera l'SSP NegoExts nello stesso modo in cui viene usato per Kerberos e NTLM. NegoExts.dll viene caricato nell'autorità di sistema locale (LSA) all'avvio. Quando viene ricevuta una richiesta di autenticazione, in base all'origine della richiesta, NegoExts negozia tra gli SSP supportati. Raccoglie le credenziali e i criteri, li crittografa e invia tali informazioni all'SSP appropriato, in cui viene creato il token di sicurezza.

Gli SSP supportati da NegoExts non sono SSP autonomi, ad esempio Kerberos e NTLM. Pertanto, all'interno dell'SSP NegoExts, quando il metodo di autenticazione non riesce per qualsiasi motivo, verrà visualizzato o registrato un messaggio di errore di autenticazione. Non sono possibili metodi di autenticazione di rinegoziazione o fallback.

Posizione: %Windir%\System32\negoexts.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, esclusi Windows Server 2008 e Windows Vista.

Security Support Provider PKU2U

Il protocollo PKU2U è stato introdotto e implementato come provider di servizi condivisi in Windows 7 e Windows Server 2008 R2 . Questo SSP consente l'autenticazione peer-to-peer, in particolare tramite la funzionalità di condivisione di file e supporti denominata HomeGroup, introdotta in Windows 7. La funzionalità consente la condivisione tra computer non membri di un dominio.

Posizione: %Windir%\System32\pku2u.dll

Questo provider è incluso per impostazione predefinita nelle versioni designate nell'elenco Si applica a all'inizio di questo argomento, esclusi Windows Server 2008 e Windows Vista.

Risorse aggiuntive per il protocollo PKU2U e l'SSP PKU2U

Selezione del Security Support Provider

Windows SSPI può usare uno qualsiasi dei protocolli supportati tramite i provider di supporto per la sicurezza installati. Tuttavia, poiché non tutti i sistemi operativi supportano gli stessi pacchetti SSP di qualsiasi computer specifico che esegue Windows Server, i client e i server devono negoziare per usare un protocollo supportato da entrambi. Windows Server preferisce computer client e applicazioni per usare il protocollo Kerberos, un protocollo basato su standard sicuri, quando possibile, ma il sistema operativo continua a consentire ai computer client e alle applicazioni client che non supportano il protocollo Kerberos di eseguire l'autenticazione.

Prima di poter eseguire l'autenticazione, i due computer che comunicano devono accettare un protocollo che entrambi possono supportare. Affinché qualsiasi protocollo sia utilizzabile tramite SSPI, ogni computer deve disporre dell'SSP appropriato. Ad esempio, affinché un computer client e un server usino il protocollo di autenticazione Kerberos, devono entrambi supportare Kerberos v5. Windows Server usa la funzione EnumerateSecurityPackages per identificare quali SSP sono supportati in un computer e quali sono le funzionalità di tali SSP.

La selezione di un protocollo di autenticazione può essere gestita in uno dei due modi seguenti:

  1. Protocollo di autenticazione singola

  2. Opzione Negotiate

Protocollo di autenticazione singola

Quando viene specificato un singolo protocollo accettabile nel server, il computer client deve supportare il protocollo specificato o la comunicazione non riesce. Quando viene specificato un singolo protocollo accettabile, lo scambio di autenticazione viene eseguito come segue:

  1. Il computer client richiede l'accesso a un servizio.

  2. Il server risponde alla richiesta e specifica il protocollo che verrà usato.

  3. Il computer client esamina il contenuto della risposta e verifica se supporta il protocollo specificato. Se il computer client supporta il protocollo specificato, l'autenticazione continua. Se il computer client non supporta il protocollo, l'autenticazione non riesce, indipendentemente dal fatto che il computer client sia autorizzato ad accedere alla risorsa.

Opzione Negotiate

L'opzione Negotiate può essere usata per consentire al client e al server di tentare di trovare un protocollo accettabile. Si basa sul meccanismo di negoziazione GSS-API semplice e protetto (SPNEGO). Quando l'autenticazione inizia con l'opzione per negoziare un protocollo di autenticazione, lo scambio SPNEGO avviene come segue:

  1. Il computer client richiede l'accesso a un servizio.

  2. Il server risponde con un elenco di protocolli di autenticazione che può supportare e una richiesta o una risposta di autenticazione, in base al protocollo che rappresenta la prima scelta. Ad esempio, il server potrebbe elencare il protocollo Kerberos e NTLM e inviare una risposta di autenticazione Kerberos.

  3. Il computer client esamina il contenuto della risposta e verifica se supporta qualcuno dei protocolli specificati.

    • Se il computer client supporta il protocollo preferito, l'autenticazione procede.

    • Se il computer client non supporta il protocollo preferito, ma supporta uno degli altri protocolli elencati dal server, il computer client comunica al server quale protocollo di autenticazione supporta e l'autenticazione procede.

    • Se il computer client non supporta alcun protocollo elencato, lo scambio di autenticazione non riesce.

Riferimenti aggiuntivi

Architettura di Autenticazione di Windows