第2章 Eclipse Temurin の機能
Eclipse Temurin には、OpenJDK のアップストリームディストリビューションの構造の変更は含まれません。
新機能および機能拡張
Eclipse Temurin 17.0.13 には、以下の新機能と機能拡張が含まれています。
Debian Linux に必要なパッケージのリストを生成する jpackage
ツールが修正
以前のリリースでは、Debian Linux プラットフォームでは、jpackage
ツールが、パス内のシンボリックリンクを使用して、共有ライブラリーから必要なパッケージの不正確なリストを生成することができました。
OpenJDK 17.0.13 はこの問題を解決して、共有ライブラリーの欠落によるインストールの失敗を排除します。
JDK-8295111 (JDK Bug System) を参照してください。
TLS_ECDH_* 暗号スイートはデフォルトで無効になっています。
TLS Elliptic-curve Diffie-Hellman (TLS_ECDH)暗号化スイートは、転送機密性を保持しないため、ほとんど使用されません。OpenJDK 17.0.13 は、java.security
設定ファイルの jdk.tls.disabledAlgorithms
セキュリティープロパティーに ECDH
オプションを追加して、TLS_ECDH 暗号スイートを無効にします。TLS_ECDH 暗号化スイートの使用を試みると、OpenJDK は SSLHandshakeException
エラーを出力するようになりました。
TLS_ECDH 暗号スイートを引き続き使用する場合は、java.security
設定ファイルを変更するか、java.security.properties
システムプロパティーを使用して、jdk.tls.disabledAlgorithms
セキュリティープロパティーから ECDH
を削除できます。
TLS_ECDH 暗号化スイートの継続には、独自のリスクがあります。
RC4 を使用する ECDH 暗号スイートは以前のリリースで無効になっていました。この変更は、TLS_ECDHE 暗号化スイートには影響しません。これはデフォルトで有効なままです。
JDK-8279164 (JDK Bug System) を参照してください。
2024 年 11 月 11 日に発行され、Entrust ルート CA にアンカーした後に発行された TLS サーバー証明書の要求
同様に、Google および Mozilla が最近発表されたという計画に従い、OpenJDK 17.0.13 は、2024 年 11 月 11 日以降に発行された TLS 証明書を Entrust ルート認証局(CA)で信頼します。この動作の変更には、Entrust によって管理される AffirmTrust としてブランド化された証明書が含まれます。
OpenJDK は、これらの証明書が期限切れになるまで、2024 年 11 月 11 日より前に発行された証明書を信頼します。
サーバーの証明書チェーンが影響を受ける証明書でアンカーされている場合、TLS セッションのネゴシエートの試行は例外で失敗し、トラストアンカーが信頼できないことを示します。以下に例を示します。
TLS server certificate issued after 2024-11-11 and anchored by a distrusted legacy Entrust root CA: CN=Entrust.net CertificationAuthority (2048), OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net
次の keytool
コマンドを使用して、この変更が JDK キーストア内の証明書に影響するかどうかを確認できます。
keytool -v -list -alias <your_server_alias> -keystore <your_keystore_filename>
この変更がチェーン内の証明書に影響する場合は、この証明書を更新するか、証明書を管理する組織にお問い合わせください。
Entrust ルート証明書でアンカーされた TLS サーバー証明書を引き続き使用する場合は、jdk.security.caDistrustPolicies
セキュリティープロパティーから ENTRUST_TLS
を削除するには、java.security
設定ファイルを変更するか、java.security.properties
システムプロパティーを使用します。
信頼できない TLS サーバー証明書の使用は自己責任を負います。
これらの制限は、OpenJDK に含まれる次の Entrust ルート証明書に適用されます。
- 証明書 1
- エイリアス名:entrustevca [jdk]
- 識別名:CN=Entrust Root Certification Authority, OU=(c) 2006 Entrust, Inc., OU=www.entrust.net/CPS は参照 O=Entrust, Inc., C=US で組み込まれています。
- SHA256: 73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:8D:E5:8D:E5:76:16:C1:E6:E6:14:1A:2C:7D:8E:4C
- 証明書 2
- エイリアス名:entrustrootcaec1 [jdk]
- 識別名:CN=Entrust Root Certification Authority - EC1, OU=(c) 2012 Entrust, Inc. - 承認済みの使用のみ、OU=See www.entrust.net/legal-terms、O=Entrust, Inc., C=US
- SHA256: 02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5
- 証明書 3
- エイリアス名:entrustrootcag2 [jdk]
- 識別名:CN=Entrust Root Certification Authority - G2, OU=(c) 2009 Entrust, Inc. - 承認済みの使用のみ、OU=See www.entrust.net/legal-terms、O=Entrust, Inc., C=US
- SHA256: 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39
- 証明書 4
- エイリアス名:entrustrootcag4 [jdk]
- 識別名:CN=Entrust Root Certification Authority - G4, OU=(c) 2015 Entrust, Inc. - 承認済みの使用のみ、OU=See www.entrust.net/legal-termsO=Entrust, Inc., C=US
- SHA256: DB:35:17:D1:F6:73:2A:2D:5A:B9:7C:53:3E:C7:07:79:EE:32:70:A6:2F:B4:AC:42:38:37:24:60:E6:F0:1E:88
- 証明書 5
- エイリアス名:entrust2048ca [jdk]
- 識別名:CN=Entrust.net 認証局(2048)、OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. (limits liab.)、O=Entrust.net
- SHA256: 6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
- 証明書 6
- エイリアス名:affirmtrustcommercialca [jdk]
- 識別名:CN=AffirmTrust Commercial, O=AffirmTrust, C=US
- SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:8D:60:C9:6F:5F:A7
- 証明書 7
- エイリアス名:affirmtrustnetworkingca [jdk]
- 識別名:CN=AffirmTrust Networking, O=AffirmTrust, C=US
- SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:CD:31:05:8B:0E:17:F3:F0B4:1B
- Certificate 8
- エイリアス名:affirmtrustpremiumca [jdk]
- 識別名:CN=AffirmTrust Premium, O=AffirmTrust, C=US
- SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
- 証明書 9
- エイリアス名:affirmtrustpremiumeccca [jdk]
- 識別名:CN=AffirmTrust Premium ECCO=AffirmTrust, C=US
- SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
JDK-8337664 (JDK Bug System) および JDK-8341059 (JDK Bug System) を参照してください。
XshowSettings ランチャーオプションの
詳細なロケール出力を削減
以前のリリースでは、-XshowSettings
launcher オプションは、利用可能なロケールの長いリストを出力し、他の設定を隠していました。
OpenJDK 17.0.13 では、-XshowSettings
launcher オプションはデフォルトで利用可能なロケールのリストを出力しなくなりました。利用可能なロケールに関連する設定をすべて表示する場合は、the -XshowSettings:locale
オプションを使用できます。
JDK-8310201 (JDK Bug System) を参照してください。
ssl.com ルート証明書が追加される
OpenJDK 17.0.13 では、cacerts
トラストストアに 2 つの SSL.com TLS ルート証明書が含まれています。
- 証明書 1
- 名前:SSL.com
- エイリアス名:ssltlsrootecc2022
- 識別名:CN=SSL.com TLS ECC Root CA 2022, O=SSL Corporation, C=US
- 証明書 2
- 名前:SSL.com
- エイリアス名:ssltlsrootrsa2022
- 識別名:CN=SSL.com TLS RSA Root CA 2022, O=SSL Corporation, C=US
JDK-8341057 (JDK Bug System) を参照してください。
java.security.debug
システムプロパティーの追加の タイムスタンプ
および スレッド
オプション
OpenJDK 17.0.13 は、指定されたコンポーネントに適用できる java.security.debug
プロパティーに次のオプションを追加します。
-
+timestamp
オプションは、各 debug ステートメントが含まれるタイムスタンプを出力します。 -
+thread
オプションは、デバッグステートメントごとにスレッドおよび呼び出し元情報を出力します。
たとえば、-Djava.security.debug=all+timestamp+thread
を使用すると、タイムスタンプとスレッド情報の両方を持つすべてのコンポーネントのデバッグ情報が有効になります。または、-Djava.security.debug=properties+timestamp
は、セキュリティープロパティーのデバッグ情報のみを有効にし、タイムスタンプが含まれます。Djava.security.debug=help
を使用して、サポートされているコンポーネントおよびオプションの完全なリストを表示できます。
JDK-8051959 (JDK Bug System) を参照してください。
Java Abstract Window Toolkit (AWT)ロボット仕様の緩和
OpenJDK 17.0.13 は、Java 17 仕様の最新のメンテナンスリリースに基づいています。このリリースでは、java.awt.Robot
クラスの次の 3 つのメソッドの仕様が緩和されます。
-
mouseMove(int,int)
-
getPixelColor(int,int)
-
createScreenCapture(Rectangle)
この仕様の緩和により、デスクトップ環境でマウスポインターの移動や画面コンテンツのキャプチャーが許可されない場合に、これらのメソッドが失敗することが可能になります。
JDK-8307779 (JDK バグシステム) を参照してください。
com.sun.jndi.ldap.object.trustSerialData
システムプロパティーへの変更
LDAP プロバイダーの JDK 実装は、デフォルトで Java オブジェクトのデシリアライズをサポートしなくなりました。
OpenJDK 17.0.13 では、com.sun.jndi.ldap.object.trustSerialData
システムプロパティーはデフォルトで false
に設定されています。このリリースでは、com.sun.jndi.ldap.object.trustSerialData
プロパティーの範囲も増加し、javaRemoteLocation
LDAP 属性からの RMI リモートオブジェクトの再構築も対応しています。
これらの変更により、Java オブジェクトの透過的なデシリアライズに明示的なオプトインが必要になりました。OpenJDK 17.0.13 以降では、アプリケーションが LDAP 属性から Java オブジェクトと RMI スタブを再構築できるようにする場合は、com.sun.jndi.ldap.object.trustSerialData
プロパティーを true
に明示的に設定する必要があります。
JDK-8290367 (JDK バグシステム)および JDK バグシステムリファレンス ID: JDK-8332643 を参照してください。
HTTP クライアントの機能強化
OpenJDK 17.0.13 は、サポートされているすべてのバージョンの HTTP プロトコルに対して、HTTP クライアントが JDK 内で受け入れる最大ヘッダーフィールドサイズを制限します。ヘッダーフィールドサイズは、圧縮されていないヘッダー名のサイズ、圧縮されていないヘッダー値のサイズ、および各フィールドセクション行に 32 バイトのオーバーヘッドとして計算されます。ピアがこの制限を超えるフィールドセクションを送信すると、java.net.ProtocolException
が発生します。
OpenJDK 17.0.13 では、ヘッダーフィールドの最大サイズ(バイト単位)を変更するために使用できる jdk.http.maxHeaderSize
システムプロパティーが導入されています。または、jdk.http.maxHeaderSize
プロパティーをゼロに設定するか、負の値を設定することで、最大ヘッダーフィールドサイズを無効にすることができます。jdk.http.maxHeaderSize
プロパティーはデフォルトで 393,216 バイト(つまり 384KB)に設定されます。
JDK バグシステムリファレンス ID: JDK-8328286
ClassLoadingMXBean
および MemoryMXBean
API の set Verbose ()メソッドと合致する is
Verbose ()
メソッドがあります
Verbose ()メソッドと合致する is
Verbose ()
ClassLoadingMXBean
API の setVerbose (boolean enabled)
メソッドには次の動作が表示されます。
-
enabled
がtrue
の場合、setVerbose
メソッドはInfo
レベルの標準出力(stdout)のclass+load*
ロギングを設定します。 -
false
の
場合、setVerbose
メソッドは stdout のclass+load*
ロギングを無効にします。
以前のリリースでは、ClassLoadingMXBean
API の isVerbose ()
メソッドは、stdout だけでなく、任意のタイプのログ出力で クラス+ロード
ロギングが Info
レベルで有効になっているかどうかをチェックします。この状況では、java -Xlog
オプションを使用してファイルへのログインを有効にすると、set
メソッドは Verbose (false)
が呼び出されても isVerbose ()true
を返し、これにより直観的な動作が発生します。MemoryMXBean
API の isVerbose ()
メソッドには、同様のカウンター的動作も表示されます。
OpenJDK 17.0.13 以降では、ClassLoadingMXBean.isVerbose ()メソッド
と MemoryMXBean.isVerbose ()
メソッドに以下の動作を表示します。
-
ClassLoadingMXBean::isVerbose ()
は、特に標準出力(stdout)でクラス+load*
ロギングがInfo
レベル(以上)で有効になっている場合にのみtrue
を返します。 -
MemoryMXBean::isVerbose ()
は、stdout のInfo
レベル(またはそれ以降)でガベッジコレクターのロギングが有効になっている場合にのみtrue
を返します。
JDK-8338139 (JDK Bug System) を参照してください。
鍵カプセル化メカニズム API
OpenJDK 17.0.13 では、主要なカプセル化メカニズム(KEM)用の javax.crypto
API が導入されています。KEM は、公開鍵暗号を使用して対称鍵を保護するための暗号化手法です。javax.crypto
API は、公開鍵暗号の使用を容易にし、シークレットやメッセージを処理する際のセキュリティーを強化するのに役立ちます。
JDK-8297878 (JDK Bug System) を参照してください。
改訂日時: 2024-10-30