Arti の最初の安定リリース、Rust での Tor の公式実装

匿名 Tor ネットワークの開発者は、Rust で書かれた Tor クライアントを開発する Arti プロジェクトの最初の安定リリース (1.0.0) を作成しました。 1.0 リリースは、一般ユーザーによる使用に適しているとマークされており、メインの C 実装と同じレベルのプライバシー、使いやすさ、安定性を提供します。 他のアプリケーションで Arti 機能を使用するために提供される API も安定しました。 コードは、Apache 2.0 および MIT ライセンスに基づいて配布されます。

最初に SOCKS プロキシとして設計され、その後他のニーズに合わせて調整された C 実装とは異なり、Arti は当初、さまざまなアプリケーションで使用できるモジュール式の組み込みライブラリの形式で開発されました。 さらに、新しいプロジェクトを開発する際には、過去の Tor 開発経験がすべて考慮されるため、既知のアーキテクチャ上の問題が回避され、プロジェクトがよりモジュール化され効率的になります。

Tor を Rust で書き換えた理由は、メモリセーフな言語を使用して、より高いレベルのコード セキュリティを達成したいという願望でした。 Tor 開発者によると、コードで「安全でない」ブロックが使用されていなければ、プロジェクトによって監視されているすべての脆弱性の少なくとも半分は Rust 実装で排除されるとのことです。 また、Rust を使用すると、言語の表現力と厳格な保証により、C を使用するよりも速い開発速度を実現でき、二重チェックや不必要なコードの作成による時間の浪費を避けることができます。

最初のバージョンの開発結果に基づいて、Rust 言語の使用は正当化されました。 たとえば、各段階で、C での同等の開発よりも Rust コードで発生するエラーが少ないことがわかりました。開発プロセス中に表面化したエラーは、主にロジックとセマンティクスに関連していました。 過度に要求の高いrustcコンパイラは、欠点として指摘される人もいますが、実際には恩恵であることが判明しました。コードがコンパイルされてテストに合格すれば、コードが正しい可能性が大幅に高まるからです。

新しいバリアントに取り組むことで、開発速度の向上も確認されました。これは、機能が既存のテンプレートに基づいて再作成されたという事実だけでなく、Rust のより表現力豊かなセマンティクス、便利な関数ライブラリ、および Rust のコード セキュリティの使用によるものでもあります。能力。 欠点の XNUMX つは、生成されるアセンブリのサイズが大きいことです。標準の Rust ライブラリはデフォルトではシステムに提供されていないため、ダウンロード用に提供されるパッケージに含める必要があります。

1.0 リリースは主にクライアントの役割での基本的な作業に焦点を当てています。 バージョン 1.1 では、ブロッキングをバイパスするためのプラグイン トランスポートとブリッジのサポートを実装する予定です。 バージョン 1.2 では、オニオン サービスと、輻輳制御プロトコル (RTT 輻輳制御) や DDoS 攻撃に対する保護などの関連機能がサポートされる予定です。 2.0 ブランチでは C クライアントとの同等性の実現が計画されており、さまざまなプログラミング言語のコードで Arti を使用するためのバインディングも提供されます。

今後数年間は、リレーとディレクトリ サーバーの実行に必要な機能の実装に重点を置いて作業が行われます。 Rust コードが C バージョンを完全に置き換えることができるレベルに達したら、開発者は Arti に Tor の主要実装の地位を与え、C 実装の保守を停止するつもりです。 C バージョンは、スムーズな移行を可能にするために段階的に廃止されます。

出所: オープンネット.ru

コメントを追加します