TLSRustlsライブラリの開発者であるJosephBirr Pixtonは、その開発について一連のテストを実行しました。 y 後者のパフォーマンスがOpenSSLのパフォーマンスを上回っていることに気づきました さまざまなレベルで。 Rustlsは、Rustで記述されたオープンソースライブラリTLSです。 また、Apache 2.0、MIT、およびISCライセンスで利用できますが、OpenSSLはよく知られたライブラリであり、ほぼすべての主要なカテゴリで業界標準です。
そのドキュメントによると、 Rustlsは、高レベルの暗号化セキュリティを提供することを目的とした最新のTLSライブラリです。。 このセキュリティを実現するために構成を必要とせず、安全でない機能や古い暗号化を提供しません。
それは多くの機能を持っています、 ECDSAまたはRSAサーバークライアント認証、ECDSAまたはRSAサーバーサーバー認証など、サーバー証明書の検証をサポートします。
これは、ルート証明書のセット以外のものを提供する必要がないことを意味します。 メインAPIで証明書の検証を無効にすることはできません。
一方、OpenSSLは、トランスポート層セキュリティ(TLS)およびセキュアソケット層(SSL)プロトコル用の堅牢な商用グレードのフル機能ツールキットです。 また、用途の広い暗号ライブラリです。
Rustlsテストについて
彼の一連のパフォーマンステストでは、 ジョセフ・ビル・ピクストンは、パフォーマンスを評価するためにいくつかのポイントを検討したと述べています TLSライブラリ間で異なる場合があります。つまり、インターチェンジのパフォーマンスと全体的なパフォーマンスです。
ハンドシェイクのパフォーマンスは、新しいTLSセッションを構成できる速度をカバーします。 全体的なパフォーマンスの観点から、アプリケーションデータを構成済みのセッションに転送できる速度をカバーしています。
さまざまなテストの結果、Rustlsは、新しい接続をセットアップして作成するときに10%高速であることが示されました。 サーバーを使用すると、クライアント接続をセットアップするときに20〜40%高速になります。
ただし、新しいTLS接続の速度が速い場合、ほとんどのTLSトラフィックは、すでに確立されている接続の再開に依存しています。
ここでも、 RustlsはOpenSSLライブラリを上回り、サーバー側の接続を10〜20%、クライアント接続を再開するのに30〜70%高速でした。
さらに、Rustlsは、TLS接続を介した全体的なパフォーマンスまたはデータ転送速度の点で優れたパフォーマンスを発揮しました。
Birr Pixton氏によると、RustlsはOpenSSLよりも15%高速にデータを送信できるという そして5%速く受け取ります。 最後に、RustlsライブラリはOpenSSLの実行に必要なメモリの半分しか使用しなかったと彼は言います。これは大きなプラスです。 彼は、この面で、OpenSSLは、その大きなメモリフットプリントと、そのコードに見られる多数のセキュリティ問題について頻繁に批判されてきたことを思い出しました。
結果を要約すると、大まかに言うことができます。
- Rustlsはデータ送信が15%高速です
- Rustlsはデータの受信が5%高速です
- Rustlsは、クライアント接続のセットアップが20〜40%高速です
- Rustlsはサーバー接続のセットアップが10%高速です
- Rustlsは、クライアント接続を再開するのに30〜70%高速です
- Rustlsは、サーバーへの接続を再開するのに10〜20%高速です
- RustlsはOpenSSLメモリの半分未満を使用します
Birr Pixtonは、RustlsはRustでエンコードされているため、セキュリティ上の欠陥の問題が解決されると説明しました。 主にRust言語のデザインです。 この言語は、メモリ関連のセキュリティバグを回避するためにゼロから設計されています。
Rustプログラミング言語で記述されたプログラムがメモリと相互作用する方法は、最も著名な言語解釈のXNUMXつです。 大企業がMozillaResearchによって作成された言語の有用性を認識した場合、その成長は今後数年間で爆発する可能性があります。
FirefoxやBraveなどのブラウザも現在Rustコンポーネントを使用していると考えられていますが、Cloudflare、Dropbox、Yelpなどの大企業も本番システムに採用しています。
Rustlsにはたくさんあります。 なぜ彼らはそれをLibreSSLと比較しなかったのだろうか。
言語の切り替えの複雑さがRustによって追加された構文糖衣構文よりも優れていたことがわかっている限り、RustのパフォーマンスがC ++、さらにはC / Asmを排除するのに十分優れているかどうかは不明です。