Java Generic Security ServicesおよびKerberos

Javaに追加された拡張機能

セキュリティの目次

このページでは、メジャー・バージョン番号v1.4からv1.8でJava Generic Security Services API (Java GSS)およびKerberosに追加されたセキュリティ機能および拡張機能について説明し、一覧表示します。

注: このドキュメントで説明するAPIおよび機能は、変更される場合があります。


Java SE 8用Java Generic Security Services APIおよびKerberosの拡張機能

Java SE 8のJava GSS APIおよびKerberos実装には、次の拡張機能が追加されました。

JDK 8用MS-SFU Kerberosの拡張機能

MS-SFUは、サービスがクライアントに代わってKerberosサービス・チケットを取得できるMicrosoft Kerberos 5の拡張機能を表します。これは、Kerberosによってクライアントとこのサービス間の認証が確立されない(したがって標準Kerberos委任を使用できない)が、サービスがクライアントの名前でKerberosでセキュリティ保護されたバックエンドサーバーにアクセスする必要がある場合に便利です。

MS-SFU拡張機能のサポートはJDK 8で追加されました。これには、MS-SFUで定義するように、S4U2selfおよびS4U2proxyプロトコルのサポートが含まれます。

この機能はセキュアなエンタープライズ・デプロイできわめて便利です。たとえば、一般的なネットワーク・サービスで、フロント・エンド(Webサーバーなど)は、クライアントの代わりにバックエンド(データベース・サーバーなど)にアクセスする必要がある場合があります。標準のKerberos 5は委任をサポートしますが、このチェーン内のすべてのレイヤーが各ステップで明示的にKerberos認証を使用することを必要するため、これは常に可能で、望ましいとは限らない場合があります。

たとえば、クライアントがDigest認証を使用して、Webサーバーにログインした場合、委任されるKerberosクレデンシャルがないため、通常の手順を追ったKerberos 5認証を行うことができません。ただし、MS-SFUでは、フロント・エンドがクライアントのKerberosクレデンシャルを提示しなくてもクライアントの代わりにバック・エンドにアクセスすることができるように、Service for User (S4U2self)拡張を定義しているため、MS-SFUはこの状況でも認証を提供できます。

さらに、標準Kerberos 5委任メカニズム(Microsoftではこれをオープン委任と呼ぶ)には、潜在的なセキュリティ・ギャップがあります。このメカニズムでは、サービス・アカウントがクライアントの委任されたクレデンシャルを持っていると、任意のサービスにアクセスできます。そのため、オープン委任には十分に注意する必要があります。

対照的に、MS-SFU委任(S4U2proxyに実装)ははるかに安全です。ここでは、管理者が、特定のサービスで委任できるサービスを厳密に制御できます。(Microsoftではこれを制約付き委任と呼びます)。

MS-SFUの実装の詳細

元のKerberos 5プロトコルはRFC 4120で定義されています。MS-SFUでは、そのプロトコルに2つの拡張を追加しており、Service for User to Self (S4U2self)はフロントエンド・サービスがユーザーの代わりに自分自身へのKerberosサービス・チケットを取得できるようにし、Service for User to Proxy (S4U2proxy)はユーザーの代わりに2番目のバックエンド・サービスへのサービス・チケットを取得できるようにします。

これらの2つの拡張はともに、フロントエンド・サービスがユーザーに代わってKerberosサービス・チケットを取得できるようにします。結果のサービス・チケットはローカルまたはリモート・マシンのその他のサービスへのアクセスに使用できます。

これらの拡張を実装するために、新しいpublicメソッド(GSSCredential::impersonate)がcom.sun.security.jgssパッケージに追加されました。

Java SE 6用Java Generic Security Services APIおよびKerberosの拡張機能

Java SE 6のJava Generic Security Services API (Java GSS)およびKerberos実装には、次の拡張機能が追加されました。


Java SE 5.0用Java Generic Security Services APIおよびKerberosの拡張機能

Java SE 5.0のJava Generic Security Services API (Java GSS)およびKerberos実装には、次の拡張機能が追加されました。


Java 2 SDK, Standard Edition, v 1.4.2のJava GSSの新機能


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.