OnionShare の仕組み

OnionShare を使用すると、あなたのコンピューターで、ウェブサーバーを TorOnion Service として設定し、これに他のユーザーがアクセスできるようになります。

OnionShare のウェブアドレスは、既定で秘密鍵により保護されます。

OnionShare のアドレスは、以下の形式のものです。

http://oy5oaslxxzwib7fsjaiz5mjeyg3ziwdmiyeotpjw6etxi722pn7pqsyd.onion

また、秘密鍵は以下の形式のものです。

K3N3N3U3BURJW46HZEZV2LZHBPKEFAGVN6DPC7TY6FHWXT7RLRAQ

この URL と秘密鍵を安全に共有することは、ユーザー自身の責任となります。使用に関する脅威モデルを検討した上で、暗号化されたチャットメッセージや、暗号化されていない電子メール (これは前者よりも安全ではありません) など、任意の方法を使用してください。

URL を受け取った相手は、Tor Browser にこれをコピー、ペーストすると、OnionShare のサービスにアクセスすることができます。アクセスして Tor Browser が秘密鍵を入力するように表示したら、これもまたコピー、ペーストなどで入力する必要があります。

_images/private-key.png

ノートパソコンで OnionShare を使って相手にファイルを送信する場合、ファイルが送信される前にノートパソコンをサスペンドすると、サスペンドを終了してインターネットに再度接続するまで、サービスは利用できません。OnionShare はリアルタイムの使用に最もよく適しています。

あなたが所有するコンピューターがウェブサーバーとして機能するため、OnionShare の開発者を含むいかなる第三者も、OnionShare 内のコンテンツにアクセスすることはできません。 完全にプライベートです。また、OnionShare は Tor の Onion Service に基づいているため、匿名性も保護されています。詳細については セキュリティに関する設計をご覧ください。

ファイルを共有

OnionShare を使用すると、ファイルやフォルダーを安全に、匿名で送信できます。共有タブを開き、共有したいファイルをドラッグアンドドロップして、「共有を開始」をクリックしてください。

_images/share.png

ファイルを追加すると、いくつかの設定が表示されます。共有を開始する前に、適切な設定を行ってください。

_images/share-files.png

相手があなたのファイルのダウンロードを完了すると、OnionShare は自動的にサーバーを終了し、インターネットからウェブサイトを削除します。複数のユーザーがファイルをダウンロードできるようにするには、「ファイル送信が終了したら共有を停止 (チェックを外すと個別のファイルのダウンロードを許可) 」のチェックを外してください。

また、このチェックを外すと、全ファイルの圧縮されたバージョンの代わりに、各ファイルを個々にダウンロードすることができるようになります。

共有の準備ができたら、「共有を開始」ボタンをクリックしてください。「共有を停止」ボタンをクリックするか、OnionShare を終了すると、ウェブサイトの公開は即座に終了します。また、右上の「↑」アイコンをクリックすると、あなたからファイルをダウンロードしているユーザーの履歴と経過を確認することができます。

_images/share-sharing.png

以上でファイルの共有を開始しました。次に、アドレスと秘密鍵をコピーして、ファイルを受信してもらいたい相手に送信してください。ファイルの安全性を保ちたい場合、または、相手が何らかの脅威にさらされている場合は、暗号化メッセージングアプリを使用してください。

相手がアドレスを Tor Browser で読み込み、秘密鍵でログインすると、角にある「ファイルをダウンロード」をクリックして、あなたのコンピューターから直接ファイルをダウンロードすることができます。

_images/share-torbrowser.png

ファイルとメッセージを受信

OnionShare を使うと、他のユーザーが、あなたのコンピューターにファイルを直接、匿名で送信できるようにすることができます。これは本質的に、あなたのコンピューターを匿名のファイル共有ストレージサービスとして使用できるようにするものです。受信用のタブを開き、お好みの設定を選択してください。

_images/receive.png

送信されるメッセージやファイルを保存するフォルダーを閲覧できます。

ファイルのアップロードのみを許可したい場合は「テキストの送信を無効にする」にチェックを入れてください。また、匿名の連絡フォーム用などにテキストメッセージの送信のみを許可したい場合は「ファイルのアップロードを無効にする」にチェックを入れてください。

「Webhook を使用して通知」にチェックを入れて、webhook の URL を入力すると、ファイルやメッセージがあなたの OnionShare サービスに送信された際に、通知を送信するよう設定することができます。この機能では、ファイルやメッセージがアップロードされたときに、OnionShare が HTTP の POST リクエストを、設定した URL に送信します。例えば、メッセージングアプリの Keybase で暗号化された通知メッセージを受信したい場合は、@webhookbot と会話を開始して、 !webhook create onionshare-alerts と入力、送信してください。そうすると URL が出力されるので、これを webhook の URL として使用してください。あなたのコンピューター上の OnionShare のサービスに誰かがファイルを送信すると、@webhookbot が即座にその旨の通知をあなたに送信します。

準備できたら、「受信モードを開始」をクリックして、OnionShare のサービスを開始してください。Tor Browser でこのアドレスを読み込むと、誰でもあなたのコンピューターにファイルとメッセージを送信できるようになります。

_images/receive-sharing.png

また、右上にある「↓」アイコンをクリックすると、あなたにファイルを送信しているユーザーの履歴と経過を確認することができます。

ファイルとメッセージをあなたに送信しようとするユーザーには、以下のように表示されます。

_images/receive-torbrowser.png

他のユーザーがあなたの受信サービスにファイルやメッセージを送信すると、あなたのコンピューターのホームフォルダーの OnionShare フォルダーに既定で保存されます。ファイル、メッセージは、アップロードの時間に応じたサブフォルダーに自動的に分類されて保存されます。

OnionShare のファイル受信サービスは、匿名の情報源から文書を安全に受信する必要があるジャーナリストなどに便利です。そのように使用する場合、OnionShare は、告発文書の提出システムである SecureDrop と同様の仕方で、SecureDrop ほどには安全ではないものの、軽量でシンプルなバージョンのようなサービスになります。

自己責任でご使用ください

悪意のある電子メールの添付ファイルと同様、悪意のあるファイルをあなたの OnionShare のサービスにアップロードして、あなたのコンピューターを攻撃しようと試みる人が存在する可能性があります。OnionShare には、悪意のあるファイルから、あなたのシステムを保護する仕組みは何も備えていません。

OnionShare で Office ドキュメントや PDF を受信する場合、Dangerzone を使用すると、ドキュメントファイルを、安全に開ける PDF ファイルに変換することができます。また、TailsQubes の使い捨て仮想マシンで信頼できないドキュメントファイルを開けば、より高い安全性を確保することができます。

なお、OnionShare で送信されるテキストメッセージに関しては、常に安全に開くことができます。

受信サービスの設定に関するアドバイス

OnionShare で匿名のファイル共有ストレージサービスを運用したい場合には、普段使用しておらず、常に電源が入っていてインターネットに接続しているコンピューターでこれを運用することを推奨します。

OnionShare のアドレスを、あなたのウェブサイトや SNS のプロフィール上で公開する場合には、タブを保存して (詳細はタブを保存をご覧ください) 、公開サービスとしてこれを運用してください (秘密鍵を無効にする) 。カスタムタイトルを設定するのもいいアイディアです (カスタムタイトル) 。

受信モードにおけるその他の注意点

「シルバー」セキュリティモードで動作している場合、iOS デバイス上の Onion Browser が受信モードの OnionShare にファイルをアップロードできないという報告があります。ブロンズまたはゴールドを試して、メッセージまたはファイルをアップロードできるかどうかご確認ください。

ウェブサイトをホスト

OnionShare で静的な HTML のウェブサイトをホストするには、ウェブサイトのタブを開き、静的コンテンツを含むファイルやフォルダーをドラッグアンドドロップして、「共有を開始」をクリックしてください。

_images/website.png

index.html ファイルを追加すると、ウェブサイトのロード時にレンダリングされます。サイトを構成する HTML ファイルや CSS ファイル、JavaScript ファイル、画像データもここに含めてください (OnionShare は *スタティック型*のウェブサイトのみをサポートします。コードを実行したり、データベースを使用したりするウェブサイトはホストできません。そのため、例えば、WordPress は使用できません) 。

index.html ファイルが存在しない場合は、代わりにディレクトリのリストを表示します。ウェブサイトを読み込むと、そこからファイルを閲覧したり、ダウンロードしたりできます。

ファイルを追加すると、いくつかの設定が表示されます。共有を開始する前に、適切な設定を行ってください。

_images/website-files.png

コンテンツセキュリティポリシー (CSP)

OnionShare は、既定で厳格な Content Security Policy ヘッダーを設定することで、ウェブサイトの安全性を高めています。ただし、その設定のために、第三者が提供するリソースをウェブページで読み込むことはできません。

第三者のウェブサイト、たとえばCDNからJavaScriptのライブラリーやデータなどを読み込みたい場合は、以下の2つの選択肢があります。

  • サービスを開始する前に「コンテンツセキュリティポリシーヘッダーを送信しない (ウェブサイトで第三者のリソースを使用できるようになります) 」にチェックを入れると、コンテンツセキュリティポリシーの送信を無効にできます。

  • カスタムのコンテンツセキュリティポリシーヘッダーを送信できます。

ウェブサイトのサービスを管理するアドバイス

長期間にわたって (単に誰かに何かのファイルを見せるだけの目的でなく) OnionShare でウェブサイトを運用しようと考えている場合には、普段使用しておらず、常に電源が入っていてインターネットに接続しているコンピューターでこれを運用することを推奨します。タブを保存すると (詳細はタブを保存をご覧ください) 、OnionShare を終了し、改めて開始した場合でも、同じアドレスでウェブサイトのホスティングを再開することができます。

ウェブサイトを公開する場合は、公開サービスとしてこれを運用してください (詳細は秘密鍵を無効にするをご覧ください) 。

匿名でチャット

OnionShare を使用すると、ログを残さず、プライベートで安全なチャットルームを設定できます。チャットタブを開き、「チャットサーバーを開始」をクリックしてください。

_images/chat.png

サーバーを開始したら、OnionShare のアドレスと秘密鍵をコピーして、チャットルームに参加してもらいたい相手に送信してください。誰が参加できるかを厳格に制限したい場合は、暗号化メッセージングアプリを使用して、アドレスと秘密鍵を送信してください。

_images/chat-sharing.png

他のユーザーは、Tor Browser で OnionShare のアドレスを読み込むことにより、チャットに参加できます。チャットルームは JavaScript を必要とするため、参加するには、Tor Browser のセキュリティレベルを「最大限の保護」ではなく「既定の保護」または「強力な保護」に設定する必要があります。

チャットルームに入る際、ユーザーにはランダムのユーザー名が与えられます。左パネルにあるボックスに新しいユーザー名を入力して「↵」を押すと、ユーザー名を変更できます。チャットの履歴はどこにも保存されないため、既に他のユーザー同士がチャットを行っている場合でも、履歴は表示されません。

_images/chat-torbrowser.png

OnionShare のチャットルームでは、参加者は全員匿名です。誰でも自由にユーザー名を変更することができ、身元を確認するための方法は存在しません。

しかし、OnionShare のチャットルームを作り、そのアドレスを、信頼できる友人の少人数のグループとだけ安全な方法で共有すれば、チャットルームに入るユーザーが友人であることは、合理的な水準で確信できるはずです。

チャットの利点

既に暗号化メッセージングアプリを使う必要がある場合、そもそも OnionShare のチャットルームの意味は何でしょうか?それは、より少ない痕跡しか残さないという点にあります。

例えば、Signal のグループにメッセージを送信する場合、メッセージのコピーは、グループのメンバーのそれぞれの端末 (スマートフォン、デスクトップ版の Signal を使用している場合はコンピューター) に残ることになります。メッセージの自動消去が有効になっている場合でも、メッセージがすべての端末、また、メッセージが保存されている可能性があるその他の場所 (例えば通知に関するデータベースなど) から実際に削除されたことを確かめるのは困難です。OnionShare のチャットルームはメッセージを一切保存しないため、この問題は最小限に抑えられます。

また、OnionShare のチャットルームは、アカウントを一切作成せずに、誰かと匿名で、安全にチャットを行いたい場合にも役立ちます。たとえば、情報源となる人が、匿名性を全く犠牲にすることなく、使い捨てのメールアドレスを使用して、OnionShare のアドレスをジャーナリストに送信し、ジャーナリストがそのチャットルームに入室するのを待つ、といった形で使用することができます。

暗号化の仕組み

OnionShare は Tor の Onion Service に依拠しているため、Tor Browser と OnionShare の間の接続はすべてエンドツーエンドで暗号化 (E2EE) されます。誰かがメッセージを OnionShare のチャットルームに投稿する際、メッセージはエンドツーエンドで暗号化された Onion 接続を通じてサーバーに送信され、サーバーはこのメッセージを、エンドツーエンド暗号化が施されている Onion Service の接続を介し、WebSockets を用いてチャットルームの他のメンバー全員に送信するという仕組みになっています。

OnionShare 自体はチャットの暗号化を行わず、Tor の Onion Service による暗号化に依拠しています。