🔒

OpenSSL 3.0.0 が出たので変更点を確認する

2021/09/01に公開

やまゆです。

現在 TLS の実装として一番に挙げられるライブラリは OpenSSL 1.1 ですね。
他に Google fork の BoringSSLLibreSSL などがありますが、もともとはどちらも OpenSSL の実装をベースにしていますので、やはり大元としては OpenSSL になります。

執筆現在の OpenSSL 安定板バージョンは 1.1.1l です。 2.x はリリースされず 3.0 が次のリリースになる予定です。

https://twitter.com/iamamoose/status/1433038108195540998

このツイートによると、 来週火曜 に正式リリースされるようです。

追記 2021/09/07) OpenSSL 3.0.0 がリリースされました!

https://www.openssl.org/blog/blog/2021/06/17/OpenSSL3.0ReleaseCandidate/

こちらの記事から変更点について挙げていきます。

  • ライセンスの変更。今までは OpenSSL と SSLeay のデュアルライセンスでしたが、 Apache License 2.0 に変更されます。
  • バージョニングが MAJOR.MINOR.FIX[PATCH] から MAJOR.MINOR.PATCHSemVer 形式 に変更されます。 OpenSSL FIPS モジュールが既にこの形式で v2.0 を使っているため、本体は v1.1.1 から v3.0.0 にアップグレードされることになります。
  • 新しいプロバイダーベースのアーキテクチャにより、 サードパーティが新しい暗号アルゴリズムを追加できる ようになります。
  • 新しいプロバイダは FIPS 140-2 規格の検証を受ける予定です。
  • プラガブルな TLSv1.3 グループにより、新しい TLS 鍵交換/カプセル化グループを追加できるようになります。
  • 新しいエンコーダとデコーダのサポートにより、 OpenSSL が知らないアルゴリズムを使ったキーの読み書きを追加できるようになります。
  • Certificate Management Protocol(CMP) の完全な実装
  • Message Authentication Codes(MAC), Key Derivation Functions(KDF), EVP_RAND(乱数)を扱う新しいAPIが提供されます。
  • カーネル TLS とのインテグレートサポート。

TLS 1.3 は今後流行するであろう HTTP/3(QUIC) プロトコルで利用できる(今の所)唯一の暗号プロトコルです。 TLS 1.3 時代に向けたリリースになると思われます。

個人的に QUIC プロトコルは非常に興味深いと思っていて、今後 WebSocket や Reliable-UDP と呼ばれるリアルタイム通信などが全部 QUIC に置き換わっていくのではないかと考えています。それを後押ししてくれる OpenSSL 3.0 が非常に楽しみです。

https://www.openssl.org/docs/manmaster/man7/migration_guide.html

ちなみに、こちらにマイグレーションガイドが公開されていますが、凄い量の変更があります。直接使っているライブラリやフレームワークのエンジニアは対応がかなり大変ですね...。

Discussion