Torのソースコードを徹底解説!オープンソースの匿名化ネットワーク

Tor(The Onion Router)は、インターネット上で匿名性を確保するための強力なツールとして知られていますが、その信頼性の根幹となっているのが「オープンソース」という特性です。
ソースコードが公開されているため、誰でも内部の動作を確認でき、セキュリティホールや バックドアがないことを検証できます。

この記事では、Torのソースコードについて、どこで入手できるのか、どのようなプログラミング言語で書かれているのか、どんなライセンスで公開されているのか、そして開発に参加する方法まで、詳しく解説します。
Torの内部構造に興味がある方、オープンソースプロジェクトへの貢献を考えている方は、ぜひ参考にしてください。

スポンサーリンク
  1. Torがオープンソースである意義
    1. オープンソースとは
    2. Torにおけるオープンソースの重要性
    3. 非オープンソースの匿名化ツールとの比較
  2. Torのソースコードの入手方法
    1. 公式リポジトリ:GitLab
    2. GitHubのミラー
    3. Gitを使ってクローンする
    4. ソースコードのダウンロード(Gitなし)
    5. 公式アーカイブから入手
  3. Torのプログラミング言語
    1. メインの実装:C言語
    2. 新しい実装:Arti(Rust)
    3. Tor Browser:JavaScript、C++、Rust
    4. その他のコンポーネント
  4. Torのライセンス
    1. 3-clause BSDライセンスとは
    2. 3-clause BSDライセンスの利点
    3. Torのライセンス表示
    4. 一部のコンポーネントの異なるライセンス
  5. Torのソースコード構造
    1. ディレクトリ構造
    2. src/ディレクトリの詳細
    3. モジュール化の取り組み
    4. 主要なファイル
  6. Torの仕様書(torspec)
    1. torspecリポジトリ
    2. 主要な仕様書
    3. 仕様書の目的
  7. Torのソースコードをビルドする方法
    1. 必要な環境
    2. 必要なライブラリ
    3. Ubuntuでのビルド手順
    4. macOSでのビルド手順
    5. カスタマイズオプション
    6. ビルド後の確認
  8. Torの開発に参加する方法
    1. 開発者コミュニティ
    2. 初心者向けのタスク
    3. 開発の流れ
    4. コーディング規約
    5. テストの重要性
    6. 大きな変更の提案
    7. コントリビューションのベストプラクティス
  9. Torのセキュリティ監査
    1. オープンソースによる自然な監査
    2. 公式のセキュリティ監査
    3. 静的解析ツール
    4. 脆弱性の報告
  10. Torブラウザのソースコード
    1. Tor Browserのベース
    2. Tor Browserのソースコード
    3. Tor Browser Buildプロジェクト
    4. Tor Browserのビルド
  11. Torに関連するその他のプロジェクト
    1. Onion Browser(iOS)
    2. Orbot(Android)
    3. Tails(OS)
    4. OnionBalance
  12. よくある質問
    1. Q1: Torのソースコードを見るだけでも違法ですか?
    2. Q2: ソースコードを改変して配布できますか?
    3. Q3: プログラミング初心者でもTorの開発に参加できますか?
    4. Q4: Torのソースコードに バックドアはありませんか?
    5. Q5: Torのソースコードはどのくらいの規模ですか?
    6. Q6: Rustで書かれたArtiはいつ完成しますか?
    7. Q7: Torのソースコードをビルドするのに何時間かかりますか?
    8. Q8: 商用製品にTorを組み込めますか?
    9. Q9: Torの開発に参加すると報酬はもらえますか?
    10. Q10: Torのソースコードを使って独自の匿名化ネットワークを作れますか?
    11. Q11: Torのソースコードは定期的に更新されますか?
    12. Q12: Torの脆弱性を発見したらどうすればいいですか?
  13. まとめ

Torがオープンソースである意義

Torがオープンソースソフトウェアであることには、重要な意味があります。

オープンソースとは

オープンソースソフトウェア(OSS)とは、ソースコードが公開され、誰でも自由に閲覧、使用、改変、再配布できるソフトウェアのことです。

オープンソースの特徴

  • ソースコードが公開されている
  • 無料で利用できる(多くの場合)
  • 改変・再配布が可能
  • コミュニティによる開発
  • 透明性が高い

Torにおけるオープンソースの重要性

匿名化ツールにおいて、オープンソースであることは特に重要です。

1. 透明性の確保

  • 内部の動作を誰でも確認できる
  • 隠れた機能やバックドアがないことを検証可能
  • 政府機関による操作の可能性を排除

実例:JAP事件
2003年、ドイツの匿名化プロジェクト「JAP」が、ドイツ政府からバックドアの組み込みを強制されました。
しかし、オープンソースコミュニティがソースコードの変更を発見し、この事実が明るみに出ました。

Torの開発者ロジャー・ディングルダインは、「もしTorに同様の要請があっても、オープンソースコミュニティが必ず発見する」と述べています。

2. セキュリティ監査

  • 世界中の専門家による検証
  • 脆弱性の早期発見
  • 迅速なパッチ適用

3. 信頼性の向上

  • 独立した第三者による検証
  • 政府や企業に依存しない
  • コミュニティによる継続的な改善

4. バックドアの不在
NSAのスノーデン文書によれば、「特定の状況下(脆弱性が見つかるか、ユーザーが設定を誤る場合)以外でTorユーザーの匿名性を破ることはできなかった」とされています。
これは、オープンソースであることがTorの信頼性を支えている証拠です。

非オープンソースの匿名化ツールとの比較

一部の匿名化ツールはオープンソースではありません。

例:Ultrasurf

  • Windows用のプロキシシステム
  • アメリカ政府から資金提供を受けている
  • ソースコードは非公開
  • 内部動作を検証できない

Torとは異なり、ソースコードが公開されていないため、バックドアの有無を確認できません。

Torのソースコードの入手方法

Torのソースコードは、複数の方法で入手できます。

公式リポジトリ:GitLab

Torプロジェクトは、2021年以降GitLabをメインのリポジトリとして使用しています。

GitLabのURL

  • メインサイト:https://gitlab.torproject.org/
  • Torコア:https://gitlab.torproject.org/tpo/core/tor
  • Tor Browser:https://gitlab.torproject.org/tpo/applications/tor-browser

GitLabを使う理由

  • 機能が豊富
  • CI/CD機能の統合
  • バグトラッキング機能
  • GitHubより柔軟

GitHubのミラー

GitHubにも非公式のミラーリポジトリがあります。

GitHubのURL

  • https://github.com/torproject/tor(非公式ミラー)

注意点

  • GitHubはミラーです
  • バグ報告やプルリクエストはGitLabに提出する必要がある
  • GitHubのイシューやPRは受け付けていません

Gitを使ってクローンする

開発に参加する場合は、Gitでリポジトリをクローンします。

GitLabからクローン

git clone https://gitlab.torproject.org/tpo/core/tor.git
cd tor

GitHubからクローン(ミラー)

git clone https://github.com/torproject/tor.git
cd tor

ソースコードのダウンロード(Gitなし)

Gitを使わずにソースコードをダウンロードすることもできます。

ダウンロード方法

  1. GitLabのTorリポジトリにアクセス
  2. 「Download source code」ボタンをクリック
  3. zip形式またはtar.gz形式でダウンロード

公式アーカイブから入手

Tor Projectの公式アーカイブサイトからも入手できます。

アーカイブURL

  • https://dist.torproject.org/

ここから、特定のバージョンのソースコードをダウンロードできます。

Torのプログラミング言語

Torは主にC言語で書かれていますが、一部で他の言語も使用されています。

メインの実装:C言語

Torのコア部分(通称「little-t-tor」)は、C言語で実装されています。

C言語が選ばれた理由

  • 高速:低レベルな操作が可能
  • 移植性:多くのOS(Linux、Windows、macOS、BSD)で動作
  • メモリ効率:リソースを効率的に使用
  • 成熟:長年の実績がある

C言語のバージョン

  • C99標準に準拠
  • 一部C11の機能も使用

新しい実装:Arti(Rust)

Tor Projectは、Rustで書かれた新しいTor実装「Arti」の開発を進めています。

Artiとは

  • Rustで書かれたTorの再実装
  • 2020年から開発開始
  • まだ完全なクライアントではない(開発中)

Rustが選ばれた理由

  • メモリ安全性:バッファオーバーフローなどの脆弱性を防ぐ
  • 並行処理:データ競合を防ぐ
  • モダン:現代的なプログラミング言語

ArtiのGitLab

  • https://gitlab.torproject.org/tpo/core/arti

Artiは将来、C言語版のTorを置き換える可能性があります。

Tor Browser:JavaScript、C++、Rust

Tor Browserは、Mozilla Firefoxをベースにしています。

使用言語

  • C++:Firefoxの主要部分
  • Rust:Firefoxの一部(Servoプロジェクト)
  • JavaScript:拡張機能、UIスクリプト
  • Python:ビルドスクリプト

その他のコンポーネント

Torエコシステムには、様々な言語で書かれたツールがあります。

Python

  • ディレクトリサーバー
  • 統計ツール
  • テストスクリプト

Shell Script

  • ビルドスクリプト
  • インストールスクリプト

HTML/CSS

  • Webサイト
  • ドキュメント

Torのライセンス

Torは、オープンソースライセンスの一種である「3-clause BSDライセンス」で配布されています。

3-clause BSDライセンスとは

BSDライセンスは、カリフォルニア大学バークレー校(UCB)で開発された、非常にシンプルで自由度の高いライセンスです。

3-clause BSDライセンスの条件

  1. ソースコード配布時:著作権表示、条件リスト、免責事項を含める
  2. バイナリ配布時:ドキュメントに著作権表示、条件リスト、免責事項を記載
  3. 宣伝での使用禁止:著作権者の名前を無断で使用して宣伝してはいけない

制限

  • 元の開発者を自分だと偽ってはいけない
  • 開発者を訴えてはいけない(ソフトウェアに問題があっても)

3-clause BSDライセンスの利点

1. 非常に寛容

  • 商用利用が可能
  • 改変が自由
  • 再配布が自由

2. GPLとの違い

  • GPL:改変したコードもGPLで公開する必要がある(コピーレフト)
  • BSD:改変したコードを非公開にすることも可能

3. 企業フレンドリー

  • 企業が商用製品に組み込みやすい
  • ライセンス変更の心配が少ない

Torのライセンス表示

Torのソースコードには、LICENSEファイルが含まれています。

ライセンスファイルの内容(抜粋)

Tor is distributed under the "3-clause BSD" license, a commonly used
software license that means Tor is both free software and open source:

Copyright (c) 2001-2004, Roger Dingledine
Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson
Copyright (c) 2007-2024, The Tor Project, Inc.

一部のコンポーネントの異なるライセンス

Torに含まれる一部のコンポーネントは、異なるライセンスで配布されています。

  • src/ext/mulodi4.c:University of Illinois “BSD-Like” license / MIT license
  • getdelim.c:NetBSD Foundation license
  • ドキュメント:Creative Commons Attribution-ShareAlike 4.0

Torのソースコード構造

Torのソースコードは、複雑な構造を持っていますが、明確に整理されています。

ディレクトリ構造

Torのソースコードの主要なディレクトリ構造は以下の通りです。

主要ディレクトリ

tor/
├── src/               # ソースコード
│   ├── core/          # コア機能
│   ├── lib/           # ライブラリ
│   ├── feature/       # 機能別モジュール
│   ├── app/           # アプリケーション
│   └── tools/         # ツール
├── doc/               # ドキュメント
├── scripts/           # スクリプト
├── changes/           # 変更履歴
└── contrib/           # 貢献されたコード

src/ディレクトリの詳細

src/core/

  • オニオンルーティングの中核
  • 回線構築
  • セル処理

src/lib/

  • 独立したライブラリモジュール
  • 暗号化
  • ネットワーク処理
  • データ構造

src/feature/

  • ディレクトリサービス
  • ブリッジ
  • ヒドゥンサービス(.onionサイト)
  • 統計

src/app/

  • メイン関数
  • 設定ファイル解析

モジュール化の取り組み

Torプロジェクトは、ソースコードをモジュール化する取り組みを進めています。

目標

  • 循環依存をなくす
  • 各モジュールの独立性を高める
  • テストを容易にする

.may_includeファイル

  • 各ディレクトリに配置
  • そのディレクトリが使用できるヘッダーファイルを指定
  • 循環依存を防ぐ

チェック方法

make check-includes

このコマンドで、循環依存がないか確認できます。

主要なファイル

README

  • プロジェクトの概要
  • ビルド方法

LICENSE

  • ライセンス情報

ChangeLog

  • バージョンごとの変更履歴

configure.ac

  • ビルド設定(autotools)

Torの仕様書(torspec)

Torには、プロトコルの詳細を記述した仕様書があります。

torspecリポジトリ

Torの仕様書は、別のリポジトリで管理されています。

GitLab

  • https://gitlab.torproject.org/tpo/core/torspec

GitHub(ミラー)

  • https://github.com/torproject/torspec

主要な仕様書

tor-spec.txt

  • Torプロトコルのコア仕様
  • オニオンルーティングの詳細
  • セルフォーマット

dir-spec.txt

  • ディレクトリサービスの仕様
  • ノード情報の配布方法

rend-spec.txt

  • ヒドゥンサービス(.onionサイト)の仕様
  • ランデブーポイント
  • 導入ポイント

control-spec.txt

  • 制御プロトコル
  • Torプロセスとの通信方法

pt-spec.txt

  • プラガブルトランスポートの仕様
  • 検閲回避技術

path-spec.txt

  • 経路選択アルゴリズム
  • ノードの選び方

guard-spec.txt

  • ガードノードの仕様
  • 長期的に使用する入口ノード

仕様書の目的

1. 独立した実装を可能にする

  • ソースコードを読まずにTorを実装できる
  • 仕様書だけで完全な情報を提供

2. 互換性の確保

  • 異なる実装間での互換性
  • プロトコルの明確化

3. セキュリティ監査

  • プロトコルレベルでの検証
  • 脆弱性の発見

Torのソースコードをビルドする方法

Torのソースコードから実行ファイルをビルドする方法を解説します。

必要な環境

対応OS

  • Linux(Ubuntu、Debian、Fedora、Arch Linuxなど)
  • macOS
  • BSD(FreeBSD、OpenBSD、NetBSD)
  • Windows(WSLまたはCygwin)

必要なツール

  • GCC または Clang(Cコンパイラ)
  • make
  • autoconf
  • automake
  • libtool
  • Git

必要なライブラリ

Torのビルドには、いくつかのライブラリが必要です。

必須ライブラリ

  • OpenSSL:暗号化
  • libevent:非同期イベント処理
  • zlib:圧縮

推奨ライブラリ

  • libzstd:高速圧縮
  • liblzma:LZMA圧縮
  • libsystemd:systemd統合(Linux)

Ubuntuでのビルド手順

1. 依存関係のインストール

sudo apt update
sudo apt install build-essential automake autoconf libtool \
  libssl-dev libevent-dev zlib1g-dev libzstd-dev liblzma-dev

2. ソースコードの入手

git clone https://gitlab.torproject.org/tpo/core/tor.git
cd tor

3. ビルドシステムの生成

./autogen.sh

4. 設定

./configure --prefix=/opt/tor

5. ビルド

make -j$(nproc)

-j$(nproc)オプションで、CPUコア数に応じた並列ビルドを行います。

6. テストの実行(オプション)

make check

7. インストール

sudo make install

macOSでのビルド手順

1. Homebrewのインストール

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 依存関係のインストール

brew install openssl libevent automake autoconf libtool zstd xz

3. ソースコードの入手とビルド

git clone https://gitlab.torproject.org/tpo/core/tor.git
cd tor
./autogen.sh
./configure --with-openssl-dir=$(brew --prefix openssl)
make -j$(sysctl -n hw.ncpu)
sudo make install

カスタマイズオプション

./configureコマンドには、様々なオプションがあります。

主要なオプション

  • --prefix=PATH:インストール先(デフォルト:/usr/local)
  • --enable-zstd:zstd圧縮を有効化
  • --enable-lzma:LZMA圧縮を有効化
  • --enable-systemd:systemd統合を有効化(Linux)
  • --disable-asciidoc:ドキュメント生成を無効化

例:すべての機能を有効化

./configure --prefix=/opt/tor --enable-zstd --enable-lzma --enable-systemd

ビルド後の確認

ビルドが成功したかを確認します。

バージョン確認

./src/app/tor --version

出力例

Tor version 0.4.8.10 (git-xxxxx)

Torの開発に参加する方法

Torはオープンソースプロジェクトなので、誰でも開発に参加できます。

開発者コミュニティ

メーリングリスト

  • tor-dev:開発者向けの議論
  • 購読:https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev

IRCチャンネル

  • #tor-dev:OFTC(Open and Free Technology Community)ネットワーク
  • リアルタイムでの議論

週次パッチワークショップ

  • 毎週開催
  • パッチのレビューと議論

初心者向けのタスク

初めて貢献する人向けのタスクがあります。

“easy”タグのチケット

  • 初心者でも取り組みやすい
  • GitLabのイシュートラッカーで見つけられる

“lorax”タグのチケット

  • 比較的大きな機能
  • 開発者が手が回っていないもの

探し方

  1. https://gitlab.torproject.org/ にアクセス
  2. Issues(イシュー)セクションを開く
  3. ラベルで絞り込み

開発の流れ

1. アイデアの相談

  • メーリングリストやIRCで相談
  • 既存のイシューを確認

2. ソースコードのフォーク

  • GitLabでフォーク
  • 自分のブランチで作業

3. コーディング

  • コーディング規約に従う(doc/HACKING参照)
  • ユニットテストを書く

4. コミット

  • 小さな変更ごとにコミット
  • わかりやすいコミットメッセージ

5. マージリクエスト(プルリクエスト)

  • GitLabでマージリクエストを作成
  • レビューを待つ

6. レビューと修正

  • レビュアーからのフィードバックに対応
  • 必要に応じて修正

7. マージ

  • レビュアーが承認
  • メインブランチにマージ

コーディング規約

Torには明確なコーディング規約があります。

主要なルール

  • インデント:スペース2つ
  • 行の長さ:80文字以内
  • 命名規則:スネークケース(my_function_name
  • コメント:明確で簡潔に
  • エラーハンドリング:適切なエラー処理

詳細

  • doc/HACKING/CodingStandards.mdに記載

テストの重要性

新しいコードには、必ずユニットテストを書く必要があります。

テストの種類

  • ユニットテスト:個別の関数のテスト
  • 統合テスト:複数のモジュールの連携テスト

テストの実行

make check

テストの書き方

  • doc/WritingTests.txtを参照

大きな変更の提案

大規模な変更やプロトコル変更には、提案書(Proposal)が必要です。

提案書の書き方

  1. proposals/ディレクトリを確認
  2. 既存の提案書を参考にする
  3. 新しい提案書を作成
  4. メーリングリストで議論

提案書のフォーマット

  • タイトル
  • 概要
  • 動機
  • 設計
  • セキュリティへの影響
  • 互換性

コントリビューションのベストプラクティス

1. 小さく始める

  • 最初は小さなバグ修正から
  • 徐々に大きなタスクに挑戦

2. コミュニティとコミュニケーション

  • 質問は遠慮なく
  • レビューを積極的に依頼

3. ドキュメントも重要

  • コードだけでなくドキュメントも改善
  • 誤字脱字の修正も立派な貢献

4. 継続的な学習

  • Torのアーキテクチャを学ぶ
  • セキュリティの知識を深める

Torのセキュリティ監査

Torのソースコードは、定期的にセキュリティ監査を受けています。

オープンソースによる自然な監査

オープンソースであることで、世界中の専門家が常にコードを監視しています。

貢献者

  • セキュリティ研究者
  • 暗号学者
  • 大学の研究機関
  • ボランティア開発者

公式のセキュリティ監査

Tor Projectは、外部の専門機関に依頼して、定期的にセキュリティ監査を実施しています。

監査の内容

  • ソースコードレビュー
  • 脆弱性の発見
  • セキュリティ改善の提案

静的解析ツール

Torの開発では、複数の静的解析ツールを使用しています。

使用ツール

  • Coverity:静的コード解析
  • Clang Static Analyzer:コード品質チェック
  • AddressSanitizer:メモリエラー検出

脆弱性の報告

脆弱性を発見した場合の報告方法があります。

報告先

  • セキュリティチーム:security@torproject.org
  • 機密情報:PGP暗号化を使用

報告すべき内容

  • 脆弱性の詳細
  • 再現手順
  • 影響範囲

Torブラウザのソースコード

Tor Browserのソースコードも公開されています。

Tor Browserのベース

Tor Browserは、Mozilla Firefox ESR(Extended Support Release)をベースにしています。

Firefox ESRとは

  • 長期サポート版Firefox
  • 企業や組織向け
  • セキュリティ更新が長期間提供される

Tor Browserのソースコード

GitLab

  • https://gitlab.torproject.org/tpo/applications/tor-browser

構成

  • Firefoxのソースコード
  • Torネットワーク接続機能
  • プライバシー保護機能
  • HTTPS Everywhere
  • NoScript

Tor Browser Buildプロジェクト

Tor Browserのビルドシステムは、別のプロジェクトで管理されています。

tor-browser-build

  • https://gitlab.torproject.org/tpo/applications/tor-browser-build

このプロジェクトには、Tor Browserをビルドするためのスクリプトが含まれています。

Tor Browserのビルド

Tor Browserのビルドは複雑です。
公式のビルドスクリプトを使用することを推奨します。

必要な環境

  • Linux(Ubuntu推奨)
  • 大量のディスクスペース(50GB以上)
  • 長いビルド時間(数時間)

Torに関連するその他のプロジェクト

Torエコシステムには、様々な関連プロジェクトがあります。

Onion Browser(iOS)

iOS向けのTorブラウザです。

特徴

  • オープンソース
  • App Storeで入手可能
  • 開発者:Mike Tigas

ソースコード

  • GitHub:https://github.com/OnionBrowser/OnionBrowser

Orbot(Android)

Android向けのTorクライアントです。

特徴

  • Guardian Projectとの共同開発
  • 他のアプリをTor経由で接続可能

ソースコード

  • GitLab:https://gitlab.com/guardianproject/orbot

Tails(OS)

Torを標準搭載したLinuxディストリビューションです。

特徴

  • USBメモリから起動
  • すべての通信がTor経由
  • 2024年9月にTor Projectの一部に

ソースコード

  • GitLab:https://gitlab.tails.boum.org/tails/tails

OnionBalance

負荷分散のためのツールです。

特徴

  • 複数のTorヒドゥンサービスを1つのアドレスに
  • 高可用性

ソースコード

  • GitLab:https://gitlab.torproject.org/tpo/onion-services/onionbalance

よくある質問

Q1: Torのソースコードを見るだけでも違法ですか?

A: いいえ、違法ではありません。
Torのソースコードは完全に合法的なオープンソースソフトウェアです。
誰でも自由に閲覧、学習、使用できます。

Q2: ソースコードを改変して配布できますか?

A: はい、できます。
Torは3-clause BSDライセンスで配布されているため、改変と再配布が自由です。
ただし、ライセンス条項(著作権表示など)を守る必要があります。

Q3: プログラミング初心者でもTorの開発に参加できますか?

A: はい、参加できます。
ただし、C言語の基本的な知識は必要です。
初心者向けの「easy」タグが付いたイシューから始めることをおすすめします。

Q4: Torのソースコードに バックドアはありませんか?

A: オープンソースであるため、世界中の専門家が常に監視しています。
現在まで、意図的なバックドアは発見されていません。
もしバックドアがあれば、コミュニティがすぐに発見するでしょう。

Q5: Torのソースコードはどのくらいの規模ですか?

A: 正確な行数は変動しますが、Torコア(C言語部分)は約30万行のコードです。
これにはコメントやテストコードも含まれます。

Q6: Rustで書かれたArtiはいつ完成しますか?

A: Artiはまだ開発中で、完全なクライアントではありません。
完成時期は明確に発表されていませんが、数年かかる見込みです。

Q7: Torのソースコードをビルドするのに何時間かかりますか?

A: 環境にもよりますが、Torコア自体は10~30分程度です。
ただし、Tor Browserをビルドする場合は、数時間かかります。

Q8: 商用製品にTorを組み込めますか?

A: はい、できます。
3-clause BSDライセンスは商用利用を許可しています。
ただし、ライセンス条項を守る必要があります。

Q9: Torの開発に参加すると報酬はもらえますか?

A: ボランティアベースです。
ただし、Tor Projectは時々有給のポジションを募集しています。
また、Google Summer of CodeやOutreachy経由でインターンシップがあります。

Q10: Torのソースコードを使って独自の匿名化ネットワークを作れますか?

A: 技術的には可能ですが、推奨されません。
Torの強みは、大規模なネットワークと長年の実績です。
独自のネットワークは、ユーザーが少ないため匿名性が低くなります。

Q11: Torのソースコードは定期的に更新されますか?

A: はい、活発に開発されています。
通常、数ヶ月ごとに新しい安定版がリリースされます。
開発版は常に更新されています。

Q12: Torの脆弱性を発見したらどうすればいいですか?

A: Tor Projectのセキュリティチーム(security@torproject.org)に報告してください。
機密情報の場合は、PGP暗号化を使用することを推奨します。

まとめ

Torのソースコードは、オープンソースの匿名化ネットワークとして、透明性と信頼性を確保するための重要な要素です。
誰でも自由にソースコードを閲覧、改変、再配布でき、世界中の専門家によって監視されています。

Torのソースコードの主なポイント

  • オープンソース:3-clause BSDライセンスで配布
  • 主要言語:C言語(Rust版のArtiも開発中)
  • 入手方法:GitLab(メイン)、GitHub(ミラー)
  • 開発参加:誰でも貢献可能、初心者向けタスクあり
  • セキュリティ:定期的な監査、静的解析ツール使用

Torエコシステム

  • Torコア(little-t-tor):ネットワークの中核
  • Tor Browser:Firefoxベースのブラウザ
  • Arti:Rust版Tor(開発中)
  • 関連プロジェクト:Onion Browser、Orbot、Tails など

開発に参加する方法

  1. GitLabでソースコードを入手
  2. ビルド環境を構築
  3. 初心者向けイシューを探す
  4. コーディング規約に従って開発
  5. マージリクエストを提出
  6. レビューとフィードバック

Torのオープンソースという特性は、単なる技術的な選択ではなく、プライバシーと自由を守るための哲学的な選択です。
ソースコードが公開されていることで、バックドアや隠れた機能がないことを誰もが検証でき、世界中のコミュニティによって継続的に改善されています。

プログラミングの知識がある方は、ぜひTorの開発に参加してみてください。
小さなバグ修正から始めて、徐々に大きな機能開発に挑戦することができます。
あなたの貢献が、世界中の人々のプライバシーと自由を守ることにつながります。

コメント

タイトルとURLをコピーしました