Security Support Provider Interface
Security Support Provider Interface (SSPI) は、Microsoft Windowsにおいてセキュリティに関する様々な機能を提供するAPIである。
WindowsではSecurity Support Provider (SSP) と呼ばれるアプリケーションにセキュリティ機能を提供するダイナミックリンクライブラリ (DLL) が実装されており、SSPIはこれらSecurity Support Providerの共通インタフェースとして機能する[1]。
Security Support Provider
[編集]Windowsでは以下のSecurity Support Providerが提供されている。
- NTLMSSP(Windows NT 3.51より) (msv1_0.dll) - Windows 2000以前におけるクライアント-サーバドメインでのNTLM チャレンジアンドレスポンス認証と、非ドメイン認証 (SMB/CIFS)[2]
- Kerberos(Windows 2000より。Windows VistaでAESに対応[3]) (kerberos.dll) - Windows 2000以降で推奨されるクライアント-サーバドメイン相互認証[4]
- Negotiate(Windows 2000より)(secur32.dll) - ケルベロス認証とNTLM認証を選択する。Negotiate SSPによってシングルサインオン(統合Windows認証) が提供される[5]。Windows 7以降では、クライアント・サーバの双方で利用可能なカスタムSSPを認証に利用できるようにするNEGOExtsが導入された。
- Secure Channel (SChannel) (schannel.dll) - Windows 2000より導入され、Windows VistaからAESおよび楕円曲線暗号に対応した[6]。TLS/SSLでの暗号化機能を提供する。
- PCT(廃止済)およびMicrosoft TLS/SSL実装 - TLS/SSLにおける公開鍵暗号機能を提供[7]。Windows 7以降でTLS 1.2に対応
- Digest SSP(Windows 2000より)(wdigest.dll) - HTTP認証およびSASLを提供[8]
- Credential (CredSSP)(Windows XP SP3より)(credssp.dll) - リモート デスクトップ サービスのための認証機能を提供[9]
- Distributed Password Authentication (DPA) (Windows 2000より)(msapsspc.dll) - 公開鍵証明書による認証機能を提供[10]
- Public Key Cryptography User-to-User (PKU2U)(Windows 7より)(pku2u.dll) - ドメイン外のシステム間でのピアツーピア認証を提供
GSSAPIとの比較
[編集]この節には独自研究が含まれているおそれがあります。 |
SSPIは、GSSAPIのプロプライエタリな変種であり、Windows独自のデータタイプや拡張が追加されている。
Windows NT 3.51およびWindows 95におけるNTLMSSPがその始まりであり、Windows 2000では、ケルベロス認証 (RFC 1964) が追加された。SSPIでのケルベロス認証で用いられるトークンはGSSAPIのものとほぼ互換性があり、WindowsのSSPIクライアントはWindows以外のGSSAPIクライアントと相互に認証を行うことが可能である。
IETFによって定義されたGSSAPIとWindowsのSSPIの間には、アクセストークンの "impersonation" に関して大きな違いが存在する。このモデルでは、クライアントが「完全な」特権を持っていれば、サーバはその特権により操作を行うことが可能である。すなわち、サービスアカウントの特権レベルは接続/認証されたクライアントに依存する。GSSAPIモデルでは、サーバがサービスアカウントで実行されている場合、アカウントの特権を上昇させることができず、すべてのアクセス制御を有効にする必要がある。このようなセキュリティ上問題のある実装は、WindowsのSSPIではVista以降で解消されている[11]。
脚注
[編集]- ^ “SSP Packages Provided by Microsoft”. 2014年10月5日閲覧。
- ^ “User Authentication - Security (Windows 2000 Resource Kit Documentation) : MSDN”. 2014年10月5日閲覧。
- ^ “Kerberos Enhancements in Windows Vista: MSDN”. 2014年10月5日閲覧。
- ^ “Windows 2000 Kerberos Authentication”. 2014年10月5日閲覧。
- ^ “Windows Authentication”. 2014年10月5日閲覧。
- ^ “TLS/SSL Cryptographic Enhancements in Windows Vista”. 2014年10月5日閲覧。
- ^ “Secure Channel: SSP Packages Provided by Microsoft”. 2014年10月5日閲覧。
- ^ “Microsoft Digest SSP: SSP Packages provided by Microsoft”. 2014年10月5日閲覧。
- ^ “Credential Security Service Provider and SSO for Terminal Services Logon”. 2014年10月5日閲覧。
- ^ “DCOM Technical Overview: Security on the Internet”. 2014年10月5日閲覧。
- ^ “Windows Service Hardening: AskPerf blog”. 2014年10月5日閲覧。