OpenSSL 4.0.0
概要
- OpenSSL 4.0.0での代表的な新機能と変更点のまとめ
- 互換性に影響する変更点や廃止された機能の詳細
- 新規追加機能やセキュリティ強化に関する説明
- APIの仕様変更や構成オプションの扱いについて
- 今後の利用方法や移行時の注意点を簡潔に整理
OpenSSL 4.0.0の主な変更点
- OpenSSL 4.0.0は大規模な新機能追加と機能改善を含むリリース
- RSAモジュラス等の16進数表示で、先頭バイトが0x80以上の場合の余分な'00:'を削除
- 16進数ダンプの幅を署名は24バイト、他は16バイトに標準化(80文字制限対応)
- PKCS5_PBKDF2_HMAC API利用時、FIPSプロバイダーで下限チェックを強化
- X509_V_FLAG_X509_STRICT設定時、AKID検証チェックを追加
- CRL検証プロセスに複数の追加チェックを導入
- libcryptoによるグローバルデータのatexit()経由クリーンアップを廃止
- **BIO_snprintf()**がlibcのsnprintf()を利用
- **OPENSSL_cleanup()**がグローバルデストラクタか、デフォルトで未実行に変更
- ASN1_STRINGが不透明型に変更
- X509関連API関数の引数・戻り値にconst修飾子を追加し、型安全性を向上
- X509_cmp_time()等の関数を非推奨とし、X509_check_certificate_times()に統一
- SSLv2 Client Helloのサポートを廃止
- SSLv3のサポートを完全廃止(2015年から非推奨、1.1.0以降デフォルト無効)
- エンジン機能のサポートを廃止し、no-engineビルドオプションとOPENSSL_NO_ENGINEマクロが常時有効
- RFC 8422準拠の非推奨楕円曲線のTLSサポートをデフォルトで無効化(有効化にはenable-tls-deprecated-ecオプションが必要)
- 明示的ECカーブサポートをデフォルトで無効化(有効化にはenable-ec_explicit_curvesオプションが必要)
- c_rehashスクリプトを廃止し、代わりにopenssl rehashコマンドを使用
- openssl caコマンドのmsie-hackオプションを廃止
- **BIO_f_reliable()**の実装を削除(3.0以降壊れていたが苦情なし)
- カスタムEVP_CIPHER, EVP_MD, EVP_PKEY, EVP_PKEY_ASN1メソッドの非推奨サポートを削除
- 固定SSL/TLSバージョンメソッド関数の非推奨サポートを削除
- **ERR_get_state(), ERR_remove_state(), ERR_remove_thread_state()**等の非推奨関数を削除し、ERR_STATEを常時不透明型に
- darwin-i386, darwin-ppc等のターゲットを構成から削除
新機能・強化点
- **Encrypted Client Hello (ECH, RFC 9849)**のサポート
- **RFC 8998, sm2sig_sm3署名アルゴリズム, curveSM2鍵交換グループ, tls-hybrid-sm2-mlkem(ポスト量子)**のサポート
- cSHAKE関数(SP 800-185準拠)のサポート
- ML-DSA-MUダイジェストアルゴリズムのサポート
- SNMP KDF, SRTP KDFのサポート
- FIPS自己テストの遅延実行とfipsinstallコマンドの-defer_testsオプション対応
- Windows環境での静的/動的VCランタイムリンク選択サポート
- TLS 1.2でのFFDHE鍵交換(RFC 7919準拠)のネゴシエーション対応
利用・移行時の注意点
- 廃止・非推奨APIや機能の削除により、既存アプリケーションの移行時はコード修正が必要な場合あり
- TLS/SSLプロトコルの古いバージョンやエンジン機能は完全に利用不可
- 新しい構成オプションやAPI仕様変更に注意し、ドキュメントやリリースノートの確認が必須
- セキュリティ強化や標準化対応のため、古い慣習や非推奨オプションの見直しが推奨
まとめ
- OpenSSL 4.0.0は大幅な仕様変更と新機能追加により、より安全で最新の暗号基盤を提供
- 移行時の互換性チェックや最新ドキュメントの参照が重要
- 将来的なサポートやセキュリティ対策のため、積極的なアップデートと対応が推奨