3 セキュリティ・アップデート
この項では、JDKリリースでのセキュリティ・アップデートの詳細を示します。
JDK 19でのセキュリティ・アップデート
JDK 19の重要なセキュリティ・アップデートは次のとおりです:
削除された証明書
次の証明書またはオプションはJava SE 19から削除されました:
セキュリティ関連の変更の詳細は、リリース・ノートを参照してください。
JDK 18でのセキュリティ・アップデート
JDK 18の重要なセキュリティ・アップデートは次のとおりです:
削除された証明書
次の証明書またはオプションはJava SE 18から削除されました:
セキュリティ関連の変更の詳細は、リリース・ノートを参照してください。
JDK 16でのセキュリティ・アップデート
JDK 16の重要なセキュリティ・アップデートは次のとおりです:
- RSASSA-PSSおよびEdDSAの署名付きJARサポート
- SUN、SunRsaSignおよびSunECプロバイダでサポートされているSHA-3-based署名アルゴリズム
- SunPKCS11プロバイダでサポートされているSHA-3関連アルゴリズム
- TLSでサポートされているEdDSA署名アルゴリズム
セキュリティ関連の変更の詳細は、リリース・ノートを参照してください。
JDK 15でのセキュリティ・アップデート
次に、JDK 15での重要なセキュリティ・アップデートを示します:
- 新しい署名スキームEdwards - Curve Digital Signature Algorithm (EdDSA)が実装されています。これは、JDKの既存の署名スキームと比較していくつかの利点を持つ最新の楕円曲線署名スキームです。この新しい署名スキームはECDSAを置き換えません。『JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA)』を参照してください。
- SunJCEプロバイダは、SHA-3ベースのHmacアルゴリズムをサポートするようになりました。
- TLS署名スキームを構成するための新しいシステム・プロパティ
- certificate_authorities拡張機能のサポート
セキュリティ関連の変更の詳細は、リリース・ノートを参照してください。
JDK 11およびJDK 12のセキュリティ更新
JDK 11およびJDK 12では、次のセキュリティ・アップデートが行われました:
JDK 11リリースには、TLS (Transport Layer Security) 1.3仕様(RFC 8446)の実装が含められました。
TLS 1.3はトランスポート層セキュリティ(TLS)プロトコルの最新のイテレーション(2018年8月)であり、JDK 11ではデフォルトで有効化されています。このバージョンでは、速度の向上に重点が置かれているだけでなく、最新の暗号化手法を重視してプロトコルのセキュリティ全体が更新されており、古いまたは脆弱な暗号化アルゴリズムは使用できません。(たとえば、RSAキー交換やプレーンなDSA署名は使用できなくなりました。)
TLS 1.3プロトコルには、下位互換性を向上させるための複数の機能が追加されていますが、いくつかの問題について留意しておく必要があります。詳細は、JEP 332を参照してください。
セキュリティ証明書の削除
JDK 12では、次のルート証明書がキーストアから削除されました:
JDK 11では、次のルート証明書がトラストストアから削除されました:
削除された証明書を使用している製品は機能しなくなる可能性があります。これらの証明書が必要な場合は、無効になった証明書を使用してcacertsを構成し、移入する必要があります。トラストストアに証明書を追加するには、Java Development Kitツール仕様ガイドのkeytoolに関する項を参照してください。
JDK 9およびJDK 10のセキュリティ更新
JDK 9以降では、一部のセキュリティ関連のデフォルトが変更されています。
JCE Jurisdiction Policy FilesのデフォルトはUnlimited
アプリケーションでこれまでJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Filesが必要だった場合、これをダウンロードまたはインストールする必要はなくなりました。これらはJDKに含まれており、デフォルトで有効化されています。
ご使用の国または使用状況によりさらに制限の厳しいポリシーが必要な場合は、制限付きJava暗号化ポリシー・ファイルを引き続き使用できます。
デフォルトで提供されているいずれかのポリシー・ファイルで満たされていない要件がある場合は、これらのポリシー・ファイルを必要に合うようにカスタマイズできます。
<java-home>/conf/security/java.security
ファイルのcrypto.policy
セキュリティ・プロパティまたはJava Platform, Standard Editionセキュリティ開発者ガイドの暗号化の強度の構成に関する項を参照してください。
実際の要件を決定する際は、輸出入管理コンサルタントまたは弁護士に相談することをお薦めします。
PKCS12キーストアの作成
キーストアにはPKCS12形式を使用することをお薦めします。この形式はデフォルトのキーストア・タイプで、RSA PKCS12 Personal Information Exchange Syntax Standardに基づいています。
『Java Platform, Standard Editionセキュリティ開発者ガイド』のJSSEで使用するキーストアの作成に関する項およびJava Development Kitツール仕様のkeytoolに関する項を参照してください。