Security Support Provider Interface

Versione del 4 mar 2022 alle 15:40 di Edarof (discussione | contributi) (Creata dalla traduzione della pagina "Security Support Provider Interface")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Security Support Provider Interface (SSPI) è un componente dell'API di Windows che esegue operazioni relative alla sicurezza come l'autenticazione.

SSPI funziona come un'interfaccia comune a diversi Security Support Provider (SSP):[1] Un Security Support Provider è una libreria a collegamento dinamico (DLL) che rende uno o più pacchetti di sicurezza disponibili per le app.

Providers

I seguenti SSP sono inclusi in Windows:

  • NTLMSSP (msv1_0.dll)– Introdotto in Windows NT 3.51. Fornisce l'autenticazione di verifica/risposta NTLM per i domini Windows precedenti a Windows 2000 e per i sistemi che non fanno parte di un dominio.[2]
  • Kerberos (kerberos.dll) – Introdotto in Windows 2000 e aggiornato in Windows Vista per supportare AES.[3] Esegue l'autenticazione per i domini Windows in Windows 2000 e versioni successive.[4]
  • NegotiateSSP (secur32.dll) – Introdotto in Windows 2000. Fornisce funzionalità di accesso singolo, a volte denominata autenticazione integrata di Windows (soprattutto nel contesto di IIS).[5] Prima di Windows 7, prova Kerberos prima di ricadere su NTLM. In Windows 7 e versioni successive viene introdotto NEGOExts, che negozia l'uso di SSP personalizzati installati che sono supportati sul client e sul server per l'autenticazione.
  • Secure Channel (schannel.dll) – Introdotto in Windows 2000 e aggiornato in Windows Vista per supportare una crittografia AES più avanzata e ECC[6] Questo provider utilizza i record SSL/TLS per crittografare i payload di dati.
  • TLS/SSL – SSP di crittografia a chiave pubblica che fornisce crittografia e comunicazione sicura per l'autenticazione di client e server su Internet.[7] Aggiornato in Windows 7 per supportare TLS 1.2.
  • Digest SSP (wdigest.dll) – Introdotto in Windows XP. Fornisce l'autenticazione HTTP e SASL basata su challenge/response tra sistemi Windows e non Windows in cui Kerberos non è disponibile.[8]
  • CredSSP (credssp.dll) – Introdotto in Windows Vista e disponibile su Windows XP SP3. Fornisce Single Sign-On e autenticazione a livello di rete per Servizi Desktop remoto.[9]
  • Autenticazione con password distribuita (DPA, msapsspc.dll) – Introdotta in Windows 2000. Fornisce l'autenticazione Internet tramite certificati digitali.[10]
  • Crittografia a chiave pubblica da utente a utente (PKU2U, pku2u.dll) – Introdotto in Windows 7. Fornisce l'autenticazione peer-to-peer utilizzando certificati digitali tra sistemi che non fanno parte di un dominio.

Confronto

SSPI è una variante proprietaria di Generic Security Services Application Program Interface (GSSAPI) con estensioni e tipi di dati molto specifici di Windows. Viene fornito con Windows NT 3.51 e Windows 95 con NTLMSSP. Per Windows 2000 è stata aggiunta un'implementazione di Kerberos 5, utilizzando formati di token conformi allo standard di protocollo ufficiale RFC 1964 (il meccanismo Kerberos 5 GSSAPI) e fornendo interoperabilità a livello di cavo con le implementazioni di Kerberos 5 di altri fornitori.

I token generati e accettati da SSPI sono per lo più compatibili con GSS-API, quindi un client SSPI su Windows potrebbe essere in grado di autenticarsi con un server GSS-API su Unix a seconda delle circostanze specifiche.

Un difetto significativo di SSPI è la sua mancanza di channel binding, che rende impossibile una certa interoperabilità GSSAPI.

Un'altra differenza fondamentale tra la GSSAPI definita da IETF e la SSPI di Microsoft è il concetto di " impersonificazione ". In questo modello, un server può funzionare con tutti i privilegi del client autenticato, in modo che il sistema operativo esegua tutti i controlli di controllo degli accessi, ad esempio quando si aprono nuovi file. Il fatto che si tratti di meno privilegi o di più privilegi rispetto a quello dell'account di servizio originale dipende interamente dal client. Nel modello tradizionale (GSSAPI), quando un server viene eseguito con un account di servizio, non può elevare i propri privilegi e deve eseguire il controllo dell'accesso in modo specifico del client e dell'applicazione. Le ovvie implicazioni negative sulla sicurezza del concetto di rappresentazione vengono impedite in Windows Vista limitando la rappresentazione agli account di servizio selezionati.[11] La rappresentazione può essere implementata in un modello Unix/Linux usando seteuid o chiamate di sistema correlate. Sebbene ciò significhi che un processo senza privilegi non può elevare i propri privilegi, significa anche che per sfruttare la rappresentazione il processo deve essere eseguito nel contesto dell'account utente root .

Riferimenti