2023 年 03 月 30 日
FIPS 140-3 に準拠した OpenSSL の最新バージョン「OpenSSL 3.1」公開
OpenSSL(オープン・エスエスエル) は、暗号化やセキュリティに関連したオープンソースで開発・提供されているソフトウェアライブラリで、OpenSSL Project によって運営されています。
2023 年 3 月にリリースされた最新版の OpenSSL 3.1 では、暗号化プロバイダーが「FIPS 140-3」に準拠するようにアップグレードされています。
FIPS 140(Federal Information Processing Standardization 140) は、 米国立標準技術研究所 (NIST:National Institute of Standards and Technology)によって策定された情報処理標準規格です。FIPS 140-3 は、執筆時点(2023/3)では最新バージョンです。
OpenSSL 3.1 は、2021 年 9 月にリリースされた「OpenSSL 3.0」以来のマイナーアップデートで、いくつかの要素が新たに追加されています。提供されている OpenSSL のバージョンによってサポート期限があるため、サポート期限が切れる以前にサポートされているバージョンへ移行することが重要です。
<OpenSSL のバージョン履歴(バージョン 1.0.0 以降)>
バージョン | リリース日 | サポート期限 | 最新版 |
---|---|---|---|
1.0.0 | 2010 年 3 月 29 日 | 2015 年 12 月 31 日 | 1.0.0t (2015 年 12 月 3 日 ) |
1.0.1 | 2012 年 3 月 14 日 | 2016 年 12 月 31 日 | 1.0.1u (2016 年 9 月 22 日 ) |
1.0.2 | 2015 年 1 月 22 日 | 2019 年 12 月 31 日 | 1.0.2u (2019 年 12 月 20 日 ) |
1.1.0 | 2016 年 8 月 25 日 | 2019 年 9 月 11 日 | 1.1.0l (2019 年 9 月 10 日 ) |
1.1.1 | 2018 年 9 月 11 日 | 2023 年 9 月 11 日 | 1.1.1t (2023 年 2 月 7 日 ) |
3.0.0 | 2021 年 9 月 7 日 | 2026 年 9 月 7 日 | 3.0.8 (2023 年 2 月 7 日 ) |
3.1.0 | 2023 年 3 月 14 日 | 2025 年 3 月 14 日 | 3.1.0 (2023 年 3 月 14 日 ) |
主な変更点は、以下のとおりです。
※OpenSSL Blog「OpenSSL 3.1 Final Release」をもとに抄訳しています。
FIPS 140-3 準拠の FIPS プロバイダー
FIPS プロバイダーは、FIPS 140-3 に準拠するようにアップグレードされました。FIPS ラボと協力して、3.1.0 リリースに基づいて FIPS 140-3 検証を米国、カナダ政府が運用する暗号化モジュール認証制度 (Cryptographic Module Validation Program:CMVP)に提出しています。CMVP の待機時間のため、検証証明書が発行されるまでにかなりの時間がかかる可能性があります。3.1 にアップグレードして以下のパフォーマンスを改善し、引き続き 3.0 FIPS プロバイダーを使用できることに注意してください。
この準拠を達成するために必要な FIPS プロバイダーへの変更がいくつかあります。最も重要なものは次のとおりです。
- 一部のアルゴリズムはプロバイダーに含まれていますが、使用が承認されなくなりました。これらには、トリプル DES ECB、トリプル DES CBC、および EdDSA が含まれます。下位互換性の理由から、これらは FIPS プロバイダーに残りますが、 fips=no プロパティ クエリでマークされています。fips=yes は、FIPS 準拠を必要とするすべてのアプリケーションは、FIPS プロバイダーのみがロードされている場合でも、明示的に指定する必要があることを意味します(通常は構成を介す、または EVP_default_properties_enable_fips() 関数を使用)。
- モジュールがインストールされるときではなく、モジュールがロードされるたびにセルフテストが実行されるようになりました。NIST による自己テスト プロセスの合理化により、これらのテストは 3.0 FIPS プロバイダーよりもかなり高速に実行されます。
多数のパフォーマンスの改善
OpenSSL 3.0 リリースと比較して、多数のパフォーマンス改善が実装されています。特に重要な点は次のとおりです。
- OSSL_LIB_CTX 過度のロックを回避するためのコードのリファクタリング
- エンコーダーおよびデコーダー フレームワークのパフォーマンスの向上
- 内部データ構造とキャッシングのパフォーマンス修正 ( 例 : ハッシュ構造、IV キャッシング )
- FIPS RSA キー生成のパフォーマンスの向上
- 複数のプロセッサ アーキテクチャにわたる多数の異なるアルゴリズム (AES-GCM、ChaCha20、SM3、SM4、SM4-GCM など ) に対するさまざまなアセンブラの最適化
(出典)OpenSSL Project