セキュリティサポートプロバイダーインターフェイス(SSPI )は、認証などのセキュリティ関連の操作を実行するWindows APIのコンポーネントです。
SSPI は、複数のセキュリティ サポート プロバイダ (SSP) への共通インターフェースとして機能します。[ 1 ]セキュリティ サポート プロバイダは、1 つ以上のセキュリティ パッケージをアプリケーションで使用できるようにするダイナミック リンク ライブラリ(DLL) です。
Windowsには以下のSSPが含まれています。
SSPIは、拡張機能とWindows固有のデータ型を備えた、汎用セキュリティサービスアプリケーションプログラミングインターフェイス(GSSAPI)の独自バージョンです。Windows NT 3.51およびWindows 95にNTLMSSPとともに同梱されていました。Windows 2000では、公式プロトコル標準RFC 1964(Kerberos 5 GSSAPIメカニズム)に準拠したトークン形式を使用し、他のベンダーのKerberos 5実装とのワイヤレベルでの相互運用性を提供する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。これは、非特権プロセスが権限を昇格できないことを意味しますが、なりすましを利用するには、プロセスがroot ユーザー アカウントのコンテキストで実行されなければならないことも意味します。