🔒
OpenSSL 3.0.0 が出たので変更点を確認する
やまゆです。
現在 TLS の実装として一番に挙げられるライブラリは OpenSSL 1.1 ですね。
他に Google fork の BoringSSL や LibreSSL などがありますが、もともとはどちらも OpenSSL の実装をベースにしていますので、やはり大元としては OpenSSL になります。
執筆現在の OpenSSL 安定板バージョンは 1.1.1l です。 2.x はリリースされず 3.0 が次のリリースになる予定です。
このツイートによると、 来週火曜 に正式リリースされるようです。
追記 2021/09/07) OpenSSL 3.0.0 がリリースされました!
こちらの記事から変更点について挙げていきます。
- ライセンスの変更。今までは OpenSSL と SSLeay のデュアルライセンスでしたが、 Apache License 2.0 に変更されます。
- バージョニングが
MAJOR.MINOR.FIX[PATCH]
からMAJOR.MINOR.PATCH
の SemVer 形式 に変更されます。 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 が非常に楽しみです。
ちなみに、こちらにマイグレーションガイドが公開されていますが、凄い量の変更があります。直接使っているライブラリやフレームワークのエンジニアは対応がかなり大変ですね...。
Discussion