Tox (プロトコル)
From Wikipedia, the free encyclopedia
|
| |
|
GNU/Linux上で動作するToxクライアントのµTox | |
| 最新版 | |
|---|---|
| リポジトリ | |
| プログラミング 言語 | C言語 |
| 対応OS | クロスプラットフォーム |
| 種別 | VoIP、インスタントメッセージ、テレビ電話 |
| ライセンス | GNU GPL v3+ |
| 公式サイト |
tox |
Toxは、エンドツーエンド暗号化を提供するP2Pのインスタントメッセージとテレビ電話のプロトコルである。全ての人に安全で簡単に接続できるコミュニケーションを提供することを目的としている。リファレンス実装はGNU GPL v3+の下で配布されている。
特徴
ユーザーには公開鍵と秘密鍵が割り当てられ、完全に分散されたP2Pネットワークによって互いに直接接続する。ユーザーは友達にメッセージを送ること・友達や見知らぬ人とチャットルームに参加すること・音声と動画によるチャット・互いにファイルを送信することができる。Tox上の全てのやり取りは、NaClによってエンドツーエンド暗号化されており、認証付き暗号と完全な前方秘匿性を提供する。
Toxクライアントは安全で匿名性のある様々な通信機能をサポートすることを目的としている。全てのクライアントがインスタントメッセージをサポートしており、グループメッセージング・VoIP・ビデオ会議・タイピングインジケーター・メッセージの既読確認・ファイル共有・プロファイルの暗号化・デスクトップ共有などの追加機能は、クライアントによってサポートの度合いは異なる。追加機能はコアプロトコルがサポートしている限りは、どのクライアントでも実装することができる。コアネットワークシステムに関連しない機能についてはクライアントに任されている。クライアントの開発者は、クライアントの互換性と最良のセキュリティを維持するために、Tox-Client-Standardに従うことが強く推奨されている。
アーキテクチャ
コア
ToxコアはプロトコルとAPIを確立するためのライブラリである。ユーザーにとってのフロントエンドであるクライアントは、コアの上に構築されている。コアを利用することで誰でもクライアントを作成することができる。主要開発者であるirungentooによって書かれたコアの設計に関する技術文書はMITライセンスの下で公開されており、自由に利用することができる[4]。
プロトコル
Toxの中核となるものはToxプロトコルの実装である。このプロトコルはOSI参照モデルのアプリケーション層の一例であり、恐らくプレゼンテーション層でもある。Toxプロジェクト以外によって作成されたToxプロトコルの実装も存在する[5]。
Toxプロトコルは音声のストリーミングにはOpusを、動画のストリーミングにはVP8を使用する[6]。
暗号化
Toxはlibsodiumを介してNaClに組み込まれている暗号化方式を使用する。具体的には、鍵交換にはCurve25519を、共通鍵暗号にはXSalsa20を、メッセージ認証符号にはPoly1305を採用している[7]。
クライアント
Toxクライアントは、他のToxユーザーと通信するために、Toxコアライブラリを使用するアプリケーションである。様々なクライアントが存在し、多くのシステムに対応している[8]。
| 名称 | オペレーティングシステム | プログラミング言語 | 公式ウェブサイト・リポジトリ |
|---|---|---|---|
| Antidote | iOS | Swift | antidote |
| Antox | Android | Scala | github |
| Cyanide | Sailfish OS | C++、QML | github |
| gTox | Unix系、Windows | C++ (GTK+ 3) | github |
| qTox | Unix系、Windows | C++ (Qt) | qtox |
| Toxic | Unix系 | C言語 (ncurses) | github |
| Toxy | Windows | C# (WPF) | github |
| Toxygen | Unix系、Windows | Python (PySide) | github |
| TRIfA | Android | Java、C言語 | github |
| µTox | Unix系、Windows | C言語 | utox |
| xWinTox | Unix系 | Objective-C | github |
| Isotoxin | Windows | C++ | github |
| ratox | Unix系 | C言語 | ratox |
| WebTox | ウェブベース | HTML5 (クライアント)、Go (サーバ) | github |
PidginとMiranda NGにもToxプロトコル向けのプラグインが存在する[9][10]。
