概要
- 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 は大幅な仕様変更と新機能追加により、より安全で最新の暗号基盤を提供
- 移行時の互換性チェック や最新ドキュメントの参照が重要
- 将来的なサポートやセキュリティ対策 のため、積極的なアップデートと対応が推奨