Openssl は、送信されるデータを暗号化するための適切な環境を提供する API です。
1年半の開発期間と、前バージョンにおける数回の修正を経て、SSL/TLSプロトコルと複数の暗号化アルゴリズムを実装したライブラリの新バージョン「OpenSSL 3.1.0」のリリースが発表されました。
この新しいバージョンの OpenSSL 3.1 のサポートは 2025 年 3.0 月まで継続されますが、従来の OpenSSL バージョン 1.1.1 および 2026 のサポートはそれぞれ 2023 年 XNUMX 月および XNUMX 年 XNUMX 月まで継続されます。
OpenSSLをご存知ない方のために説明すると、これはSSLeayをベースにしたフリーソフトウェアプロジェクトで、OpenSSHやWebブラウザ(HTTPSサイトへの安全なアクセス用)などの他のパッケージに暗号化機能を提供する、堅牢な管理ツールと暗号化関連ライブラリ群で構成されています。
これらのツールは、システムが Secure Sockets Layer (SSL) や Transport Layer Security (TLS) などの他のセキュリティ関連プロトコルを実装するのに役立ちます。 OpenSSL では、Apache などのサーバーに適用できるデジタル証明書を作成することもできます。
OpenSSLは、電子メールクライアントの暗号化検証、クレジットカード決済のためのウェブベースの取引、そしてネットワーク上で公開される情報、いわゆる「機密データ」のセキュリティが求められる多くのシステムで使用されています。
OpenSSL 3.1.0 の主な新機能
OpenSSL 3.1.0のこの新バージョンでは、FIPSモジュールがFIPS 140-3セキュリティ標準に準拠した暗号アルゴリズムのサポートを実装していることが強調されており、 FIPS 140-3準拠認証を取得するためのモジュール認証プロセスが開始されました。
OpenSSL をブランチ 3.1 に更新した後、認定が完了するまで、ユーザーは FIPS 140-2 認定の FIPS モジュールを引き続き使用できることが言及されています。 新しいバージョンのモジュールでの変更のうち、Triple DES ECB、Triple DES CBC、および EdDSA アルゴリズムが含まれていることが際立っていますが、これらは FIPS 要件への準拠についてまだテストされていません。 また、新しいバージョンでは、パフォーマンスを向上させるための最適化が行われ、インストール後だけでなく、モジュールのロードごとに内部テストを実行するように移行されました。
目立つもう一つの変化はそれです デフォルトのソルトの長さを変更しました PKCS#1 RSASSA-PSS 署名の場合、準拠するダイジェスト長以下の最大サイズまで
FIPS 186-4。 これは、`rsa_pss_saltlen` パラメータの新しいオプション `OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX` ("auto-digestmax") によって実装され、現在はデフォルトになっています。
さらに、OSSL_LIB_CTXのコードが改良されました。新しいオプションでは不要なロックがなくなり、パフォーマンスが向上しています。
また、エンコーダおよびデコーダフレームワークのパフォーマンス向上、内部構造(ハッシュテーブル)の使用とキャッシングに関連するパフォーマンス最適化、およびFIPSモードでのRSA鍵生成速度の向上も注目に値する。
AES-GCM、ChaCha20、SM3、SM4、およびSM4-GCMアルゴリズムには、異なるプロセッサアーキテクチャに特化したアセンブラ最適化が施されています。例えば、AES-GCMコードはAVX512のvAESおよびvPCLMULQDQ命令によって高速化されます。
KBKDF(鍵ベース鍵導出関数)にKMAC(KECCAKメッセージ認証コード)アルゴリズムのサポートが追加され、いくつかの「OBJ_*」関数がマルチスレッドコードでの使用に対応しました。
AArch64 アーキテクチャに基づくプロセッサで使用可能な RNDR 命令と RNDRRS レジスタを使用して疑似乱数を生成する機能が追加されました。
一方、「DEFINE_LHASH_OF」マクロは、「OPENSSL_NO_DEPRECATED_3_1」が定義されているかどうかに関係なく、これらの関数の定義に対応するタイプ固有の関数を省略した「DEFINE_LHASH_OF_EX」マクロを支持して非推奨になっていることが言及されています。 これが、`DEFINE_LHASH_OF` のユーザーが、これらの関数を使用しているかどうかに関係なく、これらの関数の非推奨警告を受け取り始める可能性がある理由です。 ユーザーは、新しいマクロ `DEFINE_LHASH_OF_EX` に移行することをお勧めします。
最後に、この新リリースについてさらに詳しく知りたい場合は、以下のリンクから詳細をご確認いただけます。