第4章 Red Hat build of OpenJDK の機能
最新の Red Hat build of OpenJDK 17 には、新機能が含まれている可能性があります。さらに、最新リリースは、以前の Red Hat build of OpenJDK 17 リリースに由来する機能を強化、非推奨、または削除する可能性があります。
その他の変更点やセキュリティー修正については、OpenJDK 17.0.4 Released を参照してください。
4.1. Red Hat build of OpenJDK の機能強化
Red Hat build of OpenJDK 17 では、以前のリリースの Red Hat build of OpenJDK で作成された機能に拡張が行われました。
Java Generic Security Services (GSS) または Kerberos の HTTPS チャネルバインディングサポート
Red Hat build of OpenJDK 17.0.4 リリースは、Negotiate が javax.net.HttpsURLConnection
を介して HTTPS 経由の Kerberos 認証を選択した場合に、TLS チャネルバインディングトークンをサポートします。
チャネルバインディングトークンは、特定の種類のソーシャルエンジニアリング中間者 (MITM) 攻撃を軽減できる強化されたセキュリティーフォームとしてますます必要とされています。これらは、クライアントからサーバーに、接続セキュリティー (TLS サーバー証明書で表される) とより高いレベルの認証情報 (ユーザー名やパスワードなど) の間のバインディングをクライアントが理解していることを伝えることによって機能します。サーバーは、クライアントが MITM によってだまされたかどうかを検出し、セッション/接続をシャットダウンできます。
この機能は、jdk.https.negotiate.cbt
システムプロパティーで制御されます。このプロパティーは、Oracle のドキュメント で詳しく説明されています。
JDK-8285240 (JDK Bug System) を参照してください。
ProcessBuilder
での引用符付き引数の不適切な処理
Red Hat build of OpenJDK 17.0.4 リリースより前では、二重引用符で始まり、バックスラッシュとそれに続く二重引用符で終わる Windows 上の ProcessBuilder
への引数が、コマンドに正しく渡されず、コマンドが失敗していました。たとえば、引数 "C:\\Program Files\"
は、最後に余分な二重引用符があるものとして処理されました。
Red Hat build of OpenJDK 17.0.4 リリースでは、最後の二重引用符の前のバックスラッシュ (\) が特別に扱われない、以前に利用可能だった動作を復元することで、この問題を解決しています。
JDK-8283137 (JDK Bug System) を参照してください。
IOException
が発生すると、デフォルトの JDK コンプレッサーが閉じる
DeflaterOutputStream.close()
メソッドおよび GZIPOutputStream.finish()
メソッドが変更され、Throwable
をスタックに伝播する前に、関連付けられているデフォルトの JDK コンプレッサーを閉じるようになりました。ZIPOutputStream.closeEntry()
メソッドが変更され、関連するデフォルトの JDK 圧縮プログラムが閉じられてから、タイプ ZipException
ではなく IOException
がスタックに伝播されるようになりました。
JDK-8278386 (JDK Bug System) を参照してください。
java.io.File での Windows 代替データストリームサポートを無効にする新しいシステムプロパティー
java.io.File
の Windows 実装では、デフォルトで NTFS 代替データストリーム (ADS) へのアクセスが許可されます。これらのストリームは、filename:streamname の形式で構造化されています。Red Hat build of OpenJDK 17.0.4 リリースでは、java.io.File
で ADS サポートを無効にできるシステムプロパティーが追加されています。java.io.File
で ADS サポートを無効にするには、jdk.io.File.enableADS
システムプロパティーを false
に設定します。
java.io.File
で ADS サポートを無効にすると、より厳密なパスチェックが行われ、NUL:
などの特殊なデバイスファイルの使用が防止されます。
JDK-8285660 (JDK Bug System) を参照してください。
改訂日時: 2024-05-04