OnionShareの機能
OnionShareを使用すると、あなたのコンピューターで、ウェブサーバーをTorのオニオンサービスとして設定し、これに他のユーザーがアクセスできるようになります。
OnionShareのウェブアドレスは、既定で秘密鍵により保護されます。
OnionShareのアドレスは、以下の形式のものです。
http://oy5oaslxxzwib7fsjaiz5mjeyg3ziwdmiyeotpjw6etxi722pn7pqsyd.onion
また、秘密鍵は以下の形式のものです。
K3N3N3U3BURJW46HZEZV2LZHBPKEFAGVN6DPC7TY6FHWXT7RLRAQ
このURLと秘密鍵を安全に共有することは、ユーザー自身の責任となります。使用に関する脅威モデルを検討した上で、暗号化されたチャットメッセージや、暗号化されていない電子メール(これは前者よりも安全ではありません)など、任意の方法を使用してください。
URLを受け取った相手は、Tor Browserにこれをコピー、ペーストすると、OnionShareのサービスにアクセスすることができます。アクセスしてTor Browserが秘密鍵を入力するように表示したら、これもまたコピー、ペーストなどで入力する必要があります。
ノートパソコンでOnionShareを使って相手にファイルを送信する場合、ファイルが送信される前にノートパソコンをサスペンドすると、サスペンドを終了してインターネットに再度接続するまで、サービスは利用できません。OnionShareはリアルタイムの使用に最もよく適しています。
あなたが所有するコンピューターがウェブサーバーとして機能するため、OnionShareの開発者を含むいかなる第三者も、OnionShare内のコンテンツにアクセスすることはできません。完全にプライベートです。また、OnionShareはTorのオニオンサービスに基づいているため、匿名性も保護されています。詳細についてはセキュリティーに関する設計をご覧ください。
ファイルを共有
OnionShareを使用すると、ファイルやフォルダーを安全に、匿名で送信できます。共有タブを開き、共有したいファイルをドラッグアンドドロップして、「共有を開始」をクリックしてください。
ファイルを追加すると、いくつかの設定が表示されます。共有を開始する前に、適切な設定を行ってください。
相手があなたのファイルのダウンロードを完了すると、OnionShareは自動的にサーバーを終了し、インターネットからウェブサイトを削除します。複数のユーザーがファイルをダウンロードできるようにするには、「ファイル送信が終了したら共有を停止(チェックを外すと個別のファイルのダウンロードを許可)」のチェックを外してください。
また、このチェックを外すと、全ファイルの圧縮されたバージョンの代わりに、各ファイルを個々にダウンロードすることができるようになります。
共有の準備ができたら、「共有を開始」ボタンをクリックしてください。「共有を停止」ボタンをクリックするか、OnionShareを終了すると、ウェブサイトの公開は即座に終了します。また、右上の「↑」アイコンをクリックすると、あなたからファイルをダウンロードしているユーザーの履歴と経過を確認することができます。
以上でファイルの共有を開始しました。次に、アドレスと秘密鍵をコピーして、ファイルを受信してもらいたい相手に送信してください。ファイルの安全性を保ちたい場合、または、相手が何らかの脅威にさらされている場合は、暗号化メッセージングアプリを使用してください。
相手がアドレスをTor Browserで読み込み、秘密鍵でログインすると、角にある「ファイルをダウンロード」をクリックして、あなたのコンピューターから直接ファイルをダウンロードすることができます。
ファイルとメッセージを受信
OnionShareを使うと、他のユーザーが、あなたのコンピューターにファイルを直接、匿名で送信できるようにすることができます。これは本質的に、あなたのコンピューターを匿名のファイル共有ストレージサービスとして使用できるようにするものです。受信用のタブを開き、お好きな仕方で設定してください。
送信されるメッセージやファイルを保存するフォルダを閲覧できます。
ファイルのアップロードのみを許可したい場合は「テキストの送信を無効にする」にチェックを入れてください。また、匿名の連絡フォーム用などにテキストメッセージの送信のみを許可したい場合は「ファイルのアップロードを無効にする」にチェックを入れてください。
「Webhookを使用して通知」にチェックを入れて、webhookのURLを入力すると、ファイルやメッセージがあなたのOnionShareサービスに送信された際に、通知を送信するよう設定することができます。この機能では、ファイルやメッセージがアップロードされたときに、OnionShareがHTTPのPOSTリクエストを、設定したURLに送信します。例えば、メッセージングアプリのKeybaseで暗号化された通知メッセージを受信したい場合は、@webhookbotと会話を開始して、 !webhook create onionshare-alerts
と入力、送信してください。そうするとURLが出力されるので、これをwebhookのURLとして使用してください。あなたのコンピューター上のOnionShareのサービスに誰かがファイルを送信すると、@webhookbotが即座にその旨の通知をあなたに送信します。
準備できたら、「受信モードを開始」をクリックして、OnionShareのサービスを開始してください。Tor Browserでこのアドレスを読み込むと、誰でもあなたのコンピューターにファイルとメッセージを送信できるようになります。
また、右上にある「↓」アイコンをクリックすると、あなたにファイルを送信しているユーザーの履歴と経過を確認することができます。
ファイルとメッセージをあなたに送信しようとするユーザーには、以下のように表示されます。
他のユーザーがあなたの受信サービスにファイルやメッセージを送信すると、あなたのコンピューターのホームフォルダーの OnionShare
フォルダーに既定で保存されます。ファイル、メッセージは、アップロードの時間に応じたサブフォルダーに自動的に分類されて保存されます。
OnionShareのファイル受信サービスは、匿名の情報源から文書を安全に受信する必要があるジャーナリストなどに便利です。そのように使用する場合、OnionShareは、告発文書の提出システムであるSecureDropと同様の仕方で、SecureDropほどには安全ではないものの、軽量でシンプルなバージョンのようなサービスになります。
自己責任でご使用ください
悪意のある電子メールの添付ファイルと同様、悪意のあるファイルをあなたのOnionShareのサービスにアップロードして、あなたのコンピューターを攻撃しようと試みる人が存在する可能性があります。OnionShareには、悪意のあるファイルから、あなたのシステムを保護する仕組みは何も備えていません。
OnionShareでOfficeドキュメントやPDFを受信する場合、Dangerzoneを使用すると、ドキュメントファイルを、安全に開けるPDFファイルに変換することができます。また、TailsやQubesの使い捨て仮想マシンで信頼できないドキュメントファイルを開けば、より高い安全性を確保することができます。
なお、OnionShareで送信されるテキストメッセージに関しては、常に安全に開くことができます。
受信サービスの設定に関するアドバイス
OnionShareで匿名のファイル共有ストレージサービスを運用したい場合には、普段使用しておらず、常に電源が入っていてインターネットに接続しているコンピューターでこれを運用することを推奨します。
OnionShareのアドレスを、あなたのウェブサイトやSNSのプロフィール上で公開する場合には、タブを保存して(詳細はタブを保存をご覧ください)、公開サービスとしてこれを運用してください(秘密鍵を無効にする)。カスタムタイトルを設定するのもいいアイディアです(カスタムタイトル)。
ウェブサイトをホスト
OnionShareでスタティック型のHTMLのウェブサイトをホストするには、ウェブサイトのタブを開き、静的コンテンツを含むファイルやフォルダーをドラッグアンドドロップして、「共有を開始」をクリックしてください。
index.html
ファイルを追加すると、ウェブサイトのロード時にレンダリングされます。サイトを構成するHTMLファイルやCSSファイル、JavaScriptファイル、画像データもここに含めてください(OnionShareはスタティック型のウェブサイトのみをサポートします。コードを実行したり、データベースを使用したりするウェブサイトはホストできません。そのため、例えば、WordPressは使用できません)。
index.html
ファイルが存在しない場合は、代わりにディレクトリのリストを表示します。ウェブサイトを読み込むと、そこからファイルを閲覧したり、ダウンロードしたりできます。
ファイルを追加すると、いくつかの設定が表示されます。共有を開始する前に、適切な設定を行ってください。
コンテンツセキュリティポリシー(CSP)
OnionShareは、既定で厳格なContent Security Policyヘッダーを設定することで、ウェブサイトの安全性を高めています。ただし、その設定のために、第三者が提供するリソースをウェブページで読み込むことはできません。
第三者のウェブサイト、たとえばCDNからJavaScriptのライブラリーやデータなどを読み込みたい場合は、以下の2つの選択肢があります。
サービスを開始する前に「コンテンツセキュリティポリシーヘッダーを送信しない(ウェブサイトで第三者のリソースを使用できるようになります)」にチェックを入れると、コンテンツセキュリティーポリシーの送信を無効にできます。
カスタムのコンテンツセキュリティポリシーヘッダーを送信できます。
ウェブサイトのサービスを管理するアドバイス
長期間にわたって(単に誰かに何かのファイルを見せるだけの目的でなく)OnionShareでウェブサイトを運用しようと考えている場合には、普段使用しておらず、常に電源が入っていてインターネットに接続しているコンピューターでこれを運用することを推奨します。タブを保存すると(詳細はタブを保存をご覧ください)、OnionShareを終了し、改めて開始した場合でも、同じアドレスでウェブサイトのホスティングを再開することができます。
ウェブサイトを公開する場合は、公開サービスとしてこれを運用してください(詳細は秘密鍵を無効にするをご覧ください)。
匿名でチャット
OnionShareを使用すると、ログを残さず、プライベートで安全なチャットルームを設定できます。チャットタブを開き、「チャットサーバーを開始」をクリックしてください。
サーバーを開始したら、OnionShareのアドレスと秘密鍵をコピーして、チャットルームに参加してもらいたい相手に送信してください。誰が参加できるかを厳格に制限したい場合は、暗号化メッセージングアプリを使用して、アドレスと秘密鍵を送信してください。
他のユーザーは、Tor BrowserでOnionShareのアドレスを読み込むことにより、チャットに参加できます。チャットルームはJavaScriptを必要とするため、参加するには、Tor Browserのセキュリティレベルを「最も安全」ではなく「標準」または「より安全」に設定する必要があります。
チャットルームに入る際、ユーザーにはランダムのユーザー名が与えられます。左パネルにあるボックスに新しいユーザー名を入力して「↵」を押すと、ユーザー名を変更できます。チャットの履歴はどこにも保存されないため、既に他のユーザー同士がチャットを行っている場合でも、履歴は表示されません。
OnionShareのチャットルームでは、参加者は全員匿名です。誰でも自由にユーザー名を変更することができ、身元を確認するための方法は存在しません。
しかし、OnionShareのチャットルームを作り、そのアドレスを、信頼できる友人の少人数のグループとだけ安全な方法で共有すれば、チャットルームに入るユーザーが友人であることは、合理的な水準で確信できるはずです。
チャットの利点
既に暗号化メッセージングアプリを使う必要がある場合、そもそもOnionShareのチャットルームの意味は何でしょうか?それは、より少ない痕跡しか残さないという点にあります。
例えば、Signalのグループにメッセージを送信する場合、メッセージのコピーは、グループのメンバーのそれぞれの端末(スマートフォン、デスクトップ版のSignalを使用している場合はコンピューター)に残ることになります。メッセージの自動消去が有効になっている場合でも、メッセージが全ての端末、また、メッセージが保存されている可能性があるその他の場所(例えば通知に関するデータベースなど)から実際に削除されたことを確かめるのは困難です。OnionShareのチャットルームはメッセージを一切保存しないため、この問題は最小限に抑えられます。
また、OnionShareのチャットルームは、アカウントを一切作成せずに、誰かと匿名で、安全にチャットを行いたい場合にも役立ちます。たとえば、情報源となる人が、匿名性を全く犠牲にすることなく、使い捨てのメールアドレスを使用して、OnionShareのアドレスをジャーナリストに送信し、ジャーナリストがそのチャットルームに入室するのを待つ、といった形で使用することができます。
暗号化の仕組み
OnionShareはTorのOnion Serviceに依拠しているため、Tor BrowserとOnionShareの間の接続は全て端末間で暗号化されています(End-to-End Encryption, E2EE)。誰かがメッセージをOnionShareのチャットルームに投稿する際、メッセージは端末間暗号化が施されている接続を通じてサーバーに送信され、サーバーはこのメッセージを、端末間暗号化が施されているOnion Serviceの接続を介し、WebSocketsを用いてチャットルームの他のメンバー全員に送信するという仕組みになっています。
OnionShare自体はチャットの暗号化を行わず、TorのOnion Serviceによる暗号化に依拠しています。