原文はこちら。
The original article was written by Ana-Maria Mihalceanu (Senior Developer Advocate, Oracle).
https://inside.java/2024/12/10/quality-heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDKビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。このプログラムの詳細と参加方法については、上記wikiをご覧ください。
The quality-discuss Archives
https://mail.openjdk.org/pipermail/quality-discuss/
Include Additional Properties Files
複数の Java Development Kit (JDK) リリースにわたるセキュリティプロパティの管理は、特に集中管理と明確なセキュリティプロファイルを必要とする環境では、困難な場合があります。 この問題に対処するため、Javaプラットフォームでは、メインのセキュリティプロパティファイル(${java.home}/conf/security/java.security)や、java.security.propertiesシステムプロパティで指定された任意のファイルに、追加のファイルを含めることができるようになりました。
# Including files inline in the main security properties file
include /path/to/legacy-config.security
include /path/to/tls-config.security
# Existing security property
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA
# TLS-specific properties in referenced file (tls-config.security)
jdk.tls.legacyAlgorithms=SHA1, DSA
include は、セキュリティプロパティを定義するために使用できない予約語になります。 java.security.Security.getProperty("include") や java.security.Security.setProperty("include", ...) といった呼び出しは、チェック対象外のIllegalArgumentException例外をスローします。このインクルードは再帰的であり、サイクルが発生しない限りネストした構成が可能です。インクルードされるファイルへのパスは、絶対パスまたは相対パスです。 ローカルの場合、JVMは、それのinclude定義を含むベースファイルに対する各相対パスを解決します。
このインクルードのメカニズムは、以下により堅牢なセキュリティを確保します。
- メインの構成ファイルにファイルを明示的にリストアップする。
- ファイルが欠落していたりアクセスできない場合、システムが致命的なエラーを発生させるため、誤った構成を防止できる。
- ディレクトリ(
include non-existent-conf.security)やURL(include file:///etc/crypto-policies/backend/java.config)のインクルードは許可されない - 値を持たないシステムプロパティ(
${system.property})を空文字列に展開する
ユーザーは改ざん防止のため、インクルードされたファイルに適切な権限が設定されていることを確認する必要があります。例えば、以下のように、インクルードされたファイルに安全な権限を設定する必要があります。
$ chmod 600 /path/to/tls-config.security
さらに、他のプロパティ・ファイルをインクルードすることには、いくつかの利点があります。
- インクルードの順序によって、セキュリティ・プロパティのオーバーライドの優先順位が決まる。
- 1つのファイルを更新すると、自動的に依存するすべての構成に反映される。
- プロファイルにより、複数のJDKにわたって一貫したセキュリティポリシーを確保できる。
この拡張により、開発者、システム管理者、インフラストラクチャエンジニアは、Javaセキュリティプロパティをより適切に制御し、適応させることができます。
More Details
このエントリでは概要をまとめています。詳細については、JDK 24リリースノートを確認してください。
JDK 24 Early-Access Release Notes
https://jdk.java.net/24/release-notes
[JDK-8319332] Security properties files inclusion
https://bugs.openjdk.org/browse/JDK-8319332
[JDK-8319333] Security properties files inclusion
https://bugs.openjdk.org/browse/JDK-8319333