セキュリティ サポート プロバイダー インターフェイス( SSPI ) は、認証などのセキュリティ関連の操作を実行するWindows APIのコンポーネントです。
SSPIは、複数のセキュリティ サポート プロバイダー (SSP) への共通インターフェイスとして機能します。[1]セキュリティ サポート プロバイダーは、1 つ以上のセキュリティ パッケージをアプリで使用できるようにする ダイナミック リンク ライブラリ(DLL) です。
プロバイダー
Windows には次の SSP が含まれています。
- NTLMSSP (msv1_0.dll) – Windows NT 3.51で導入されました。Windows 2000より前のWindowsドメインおよびドメインに属していないシステムに対してNTLMチャレンジ/レスポンス認証を提供します。 [2]
- Kerberos (kerberos.dll) – Windows 2000で導入され、Windows VistaでAES をサポートするように更新されました。[3] Windows 2000 以降で Windows ドメインの認証を実行します。[4]
- NegotiateSSP (secur32.dll) – Windows 2000 で導入されました。シングル サインオン機能を提供します。これは、統合 Windows 認証(特に IIS のコンテキスト) と呼ばれることもあります。[5] Windows 7より前では、NTLM にフォールバックする前に Kerberos を試します。Windows 7 以降では、NEGOExts が導入され、クライアントとサーバーで認証用にサポートされているインストール済みのカスタム SSP の使用をネゴシエートします。
- セキュア チャネル (schannel.dll) – Windows 2000 で導入され、Windows Vista で更新されて、より強力な AES 暗号化とECC がサポートされるようになりました[6]このプロバイダーは、SSL/TLS レコードを使用してデータ ペイロードを暗号化します。
- TLS/SSL –インターネット経由でクライアントとサーバーを認証するための暗号化と安全な通信を提供する公開キー暗号化SSP。 [7] Windows 7でTLS 1.2をサポートするように更新されました。
- ダイジェストSSP(wdigest.dll) – Windows XPで導入されました。Kerberosが利用できないWindowsと非Windowsシステム間のチャレンジ/レスポンスベースのHTTPおよびSASL認証を提供します。 [8]
- CredSSP (credssp.dll) – Windows Vistaで導入され、Windows XP SP3でも利用可能。リモートデスクトップサービスにシングルサインオンとネットワークレベル認証を提供します。[9]
- 分散パスワード認証(DPA、msapsspc.dll) – Windows 2000で導入されました。デジタル証明書を使用したインターネット認証を提供します。[10]
- 公開キー暗号化ユーザーツーユーザー (PKU2U、pku2u.dll) – Windows 7で導入されました。ドメインに属していないシステム間でデジタル証明書を使用してピアツーピア認証を提供します。
比較
SSPI は、拡張機能と Windows 固有のデータ タイプを備えた、Generic Security Services Application Program Interface (GSSAPI)の独自のバリアントです。Windows NT 3.51およびWindows 95ではNTLMSSPとともに出荷されました。Windows 2000 では、Kerberos 5 の実装が追加され、公式プロトコル標準 RFC 1964 (Kerberos 5 GSSAPI メカニズム) に準拠したトークン形式が使用され、他のベンダーの Kerberos 5 実装とのワイヤ レベルの相互運用性が提供されます。
SSPI によって生成され受け入れられるトークンは、ほとんどが GSS-API と互換性があるため、特定の状況に応じて、Windows 上の SSPI クライアントは Unix 上の GSS-API サーバーで認証できる場合があります。
SSPI の重大な欠点の 1 つは、チャネル バインディングが欠如していることです。これにより、GSSAPI の相互運用性が一部不可能になります。
IETF定義の GSSAPI と Microsoft の SSPIのもう 1 つの基本的な違いは、 「偽装」の概念です。このモデルでは、サーバーは認証されたクライアントの完全な権限で動作できるため、オペレーティング システムは、新しいファイルを開くときなど、すべてのアクセス制御チェックを実行します。これらの権限が元のサービス アカウントの権限より低いか高いかは、完全にクライアントに依存します。従来の (GSSAPI) モデルでは、サーバーがサービス アカウントで実行される場合、権限を昇格することはできず、クライアント固有およびアプリケーション固有の方法でアクセス制御を実行する必要があります。偽装の概念によるセキュリティ上の明らかな悪影響は、Windows Vista では偽装を特定のサービス アカウントに制限することで防止されています。[11]偽装は、または関連するシステム コールを使用して Unix/Linux モデルで実装できます。これは、権限のないプロセスが権限を昇格できないことを意味しますが、偽装を利用するには、プロセスがルート ユーザー アカウントseteuidのコンテキストで実行されなければならないことも意味します。
参考文献
- ^ Microsoft が提供する SSP パッケージ
- ^ ユーザー認証 - セキュリティ (Windows 2000 リソース キット ドキュメント) : MSDN
- ^ Windows Vista の Kerberos 拡張機能: MSDN
- ^ Windows 2000 Kerberos 認証
- ^ 「Windows 認証」。Windows Server 2008 R2 および Windows Server 2008 のドキュメント。Microsoft。2012 年 7 月 2 日。2020年 8 月 5 日に取得– Microsoft Docs 経由。
- ^ Windows Vista における TLS/SSL 暗号化の強化
- ^ セキュア チャネル: Microsoft が提供する SSP パッケージ
- ^ Microsoft Digest SSP: Microsoft が提供する SSP パッケージ
- ^ ターミナル サービス ログオン用の資格情報セキュリティ サービス プロバイダーと SSO
- ^ DCOM 技術概要: インターネット上のセキュリティ
- ^ 「Windows サービスの強化: AskPerf ブログ」。2010 年 4 月 2 日時点のオリジナルよりアーカイブ。2009 年 12 月 22 日閲覧。
外部リンク
- MSDN の SSPI リファレンス
- SSPI 情報と Win32 サンプル
- HTTP認証におけるSSPIの使用例
