OnionShare 如何运作

Web 服务器在计算机上本地启动,并作为 Tor `洋葱服务<https://community.torproject.org/onion-services/>`_供其他人访问。

OnionShare 网址默认受私钥保护。

OnionShare 地址看起来像这样:

http://oy5oaslxxzwib7fsjaiz5mjeyg3ziwdmiyeotpjw6etxi722pn7pqsyd.onion

私钥可能看起来像这样:

K3N3N3U3BURJW46HZEZV2LZHBPKEFAGVN6DPC7TY6FHWXT7RLRAQ

您有责任使用您选择的通信渠道(例如加密的聊天消息)安全地分享该 URL 和私钥,或者使用如未加密的电子邮件等不太安全的方式,具体取决于您的`威胁模型 <https://ssd.eff.org/module/your-security-plan>`_。

然后,您发送 URL 的人会将其复制并粘贴到他们的 Tor 浏览器 中,以访问 OnionShare 服务。然后,Tor 浏览器会提示输入私钥,人们也可以复制并粘贴私钥。

_images/private-key.png

如果您在笔记本电脑上运行 OnionShare 来向某人发送文件,然后在发送文件之前将其暂停,则该服务将不可用,直到您的笔记本电脑取消暂停并再次连接到互联网。OnionShare 在与人们实时合作时效果最佳。

因为你自己的电脑是网络服务器,*任何第三方都不能获知 OnionShare *中发生的任何事情,甚至是 OnionShare 的开发者也不能。它是完全私有的。而 OnionShare 也是基于 Tor Onion service,所以它也保护了你的匿名性。请参阅 security design 以了解更多信息。

共享文件

你可以使用 OnionShare 来安全且匿名地发送文件和文件夹给别人。打开一个共享标签页,拖入你想共享的文件和文件夹,然后点击“开始共享”。

_images/share.png

在你添加了文件后,你会看到一些设定选项。请确保你在开始分享前选中了那些你感兴趣的选项。

_images/share-files.png

一旦有人下载完您的文件,OnionShare 将自动停止服务器,将网站从互联网上移除。要允许多人下载,请取消选中“发送文件后停止分享(取消选中以允许下载单个文件)”框。

如果取消勾选,别人可下载所共享的个别档案而不是全部档案的单一压缩版。

准备要共享了,请点 “开始共享” 按钮,可随时按”停止共享”或是退出 OnionShare, 网站就会立即关闭。也可以点击右上角 “↑” 图标查看分享给别人的记录与下载进度。

_images/share-sharing.png

现在您有了 OnionShare,请复制地址和私钥并将其发送给您希望接收文件的人。如果文件需要保持安全,或者此人面临其他危险,请使用加密消息应用。

然后,此人必须在 Tor 浏览器中加载该地址。使用私钥登录后,可以通过单击角落中的“下载文件”链接直接从您的计算机下载文件。

_images/share-torbrowser.png

接收文件和消息

您可以使用 OnionShare 让人们匿名直接向您的计算机提交文件和消息,本质上将其变成一个匿名 Dropbox。打开接收标签页并选择所需的设置。

_images/receive.png

您可以浏览文件夹来保存已提交的消息和文件。

如果要只允许文件上传,可以选中“禁用提交文本”;如果要只允许提交文本消息(例如匿名联系表),可以选中“禁用上传文件”。

如果您想在有人向您的 OnionShare 服务提交文件或消息时收到通知,您可以选中“使用通知 webhook”,然后选择 webhook URL。如果您使用此功能,OnionShare 会在有人提交文件或消息时向此 URL 发出 HTTP POST 请求。例如,如果您想在消息应用 Keybase 上获取加密文本消息,您可以与 @webhookbot 开始对话,输入 !webhook create onionshare-alerts,它将以 URL 响应。将其用作通知 webhook URL。如果有人将文件上传到您的接收模式服务,@webhookbot 会在 Keybase 上向您发送一条消息,通知您。

准备就绪后,单击“启动接收模式”。这将启动 OnionShare 服务。任何在 Tor 浏览器中加载此地址的人都可以提交文件和消息,这些文件和消息将上传到您的计算机。

_images/receive-sharing.png

也可以点右上角 “↓” 图标 ,即显示别人传送给你的档案记录与进度。

以下是某人向您发送文件和消息的情况。

_images/receive-torbrowser.png

当有人向您的接收服务提交文件或消息时,它们会默认保存到计算机主文件夹中称为 OnionShare 的文件夹中,并根据文件上传的时间自动整理到单独的子文件夹中。

设定 OnionShare 接收服务对新闻记者与安全收取匿名来源文件很实用。在这类用途中,OnionShare 就像轻量、简易但安全性稍弱的 SecureDrop, 揭密举报提交系统。

使用风险自担

就像恶意电子邮件附件一样,有人可能会尝试通过将恶意文件上传到您的 OnionShare 服务来攻击您的计算机。OnionShare 不会添加任何安全机制来保护您的系统免受恶意文件的攻击。

如果您通过 OnionShare 收到 Office 文档或 PDF,则可以将这些文档转换为可以使用 Dangerzone 安全打开的 PDF。您还可以通过在 TailsQubes 一次性虚拟机中打开不受信任的文档来保护自己。

然而,打开通过 OnionShare 发送的文本消息总是安全的。

运行接收服务的诀窍

如果您想使用 OnionShare 托管您自己的匿名 Dropbox,建议您在一台始终开机并连接到互联网的单独的专用计算机上进行操作,而不是在您经常使用的计算机上进行操作。

如果您打算将 OnionShare 地址放在您的网站或社交媒体个人资料中,请保存此标签页(请参阅:ref:save_tabs)并将其作为公共服务运行(请参阅:ref:turn_off_private_key)。为其指定自定义标题也是一个好主意(请参阅:ref:custom_titles)。

接收模式中的其他注意事项

有报告称,iOS 设备上的 Onion Browser 在“白银”安全模式运行时无法在接收模式中将文件上传到 OnionShare。尝试使用青铜或黄金模式,看看您能否上传消息或文件。

架设一个网站

利用 OnionShare 架设静态 HTML 网站,请打开网站标签分页并将静态内容的档案与资料夹拖曳到此,就绪后就可以按下”开始共享”。

_images/website.png

如果有``index.html`` ,有人载入网站时就会呈现这支档案,网站也可加入任何其它 HTML files, CSS, JavaScript 与图片 (请注意 OnionShare 只支援*静态*网站,它无法托管需执行代码或使用资料库,例如不能使用 WordPress.)

如果没有``index.html``则会显示一个目录,人们透过它可看到档案来下载。

在你添加了文件后,你会看到一些设定选项。请确保你在开始分享前选中了那些你感兴趣的选项。

_images/website-files.png

内容安全政策

OnionShare 默认通过设置严格的`内容安全策略 <https://zh.wikipedia.org/wiki/内容安全策略>`_标头来帮助保护您的网站。但是,这会阻止第三方内容加载到网页中。

如果您想从第三方网站加载内容(如来自 CDN 的资产或 JavaScript 库),则有两种选择:

  • 您可以在启动服务之前选中“不发送内容安全策略标头(允许您的网站使用第三方资源)”框,以禁用发送内容安全策略标头。

  • 您可以发送自定义内容安全策略标头。

营运网站服务的诀窍

如果您想使用 OnionShare 托管一个长期网站(意味着不仅仅是快速向某人展示某些内容),建议您在单独的专用计算机上操作,该计算机始终处于开机状态并连接到互联网,而不是在您经常使用的计算机上操作。保存标签页(请参阅:ref:save_tabs),这样如果您关闭 OnionShare 并稍后重新打开它,您就可以使用相同的地址恢复网站。

如果您的网站是面向公众的,您应该将其作为公共服务运行(请参阅:ref:turn_off_private_key)。

匿名聊天

可利用 OnionShare 设定私密安全的聊天室,它不会记录任何数据。请打开聊天标签分页点”启动聊天服务器”。

_images/chat.png

启动服务器后,复制 OnionShare 地址和私钥,并将其发送给匿名聊天室中您想要的人。如果必须严格限制谁可以加入,请使用加密消息应用发送 OnionShare 地址和私钥。

_images/chat-sharing.png

别人可在 Tor 浏览器载入 OnionShare 地址加入聊天室,它需要 JavasScript 因此参与者须把 Tor 浏览器安全等级调成”标准”或”更安全”,”最安全”则不行。

当新人进入聊天室时,系统会随意给个名字,改动可在左侧面板的方框中轮入新名字再按 ↵ 送出。因为聊天记录不会留存所以根本不会显示,即便是其它已在聊天室的人也看不到。

_images/chat-torbrowser.png

OnionShare 聊天室成员都是匿名,人人可随时改名字,没办法确认任何人的身份。

开 OnionShare 聊天室并将聊天室地址讯息加密限定给一小群信任的朋友,则可合理地相信聊天室里都是认识的朋友。

对你很有用吗?

如果已使用加密的聊天通信软件,OnionShare 聊天室有什么胜出的特点值得一试呢? 因为它不易查溯。

例如,如果您向 Signal 群聊发送消息,则该消息的副本将出现在群聊每位成员的每台设备上(智能手机和计算机,如果他们设置了 Signal 桌面版)。即使启用了“消失消息”功能,也很难确认所有消息副本是否确实从所有设备中删除,以及从可能保存消息的任何其他地方(如通知数据库)中删除。OnionShare 聊天室不会在任何地方存储任何消息,因此问题被降到最低限度。

OnionShare 聊天室对于想要匿名安全地与他人聊天而无需创建任何账号的人来说也很有用。例如,消息来源可以使用一次性电子邮件地址向记者发送 OnionShare 地址,然后等待记者加入聊天室,所有这些都不会损害他们的匿名性。

加密如何运作?

OnionShare 须仰赖 Tor 洋葱服务,两者间连接都是端对端加密 (E2EE)。当某人在 OnionShare 聊天室送出讯息,透过 E2EE 洋葱连接送到伺服器,洋葱连接再透过 WebSockets 用各自的 E2EE 洋葱连接把讯息发给聊天室其它成员。

OnionShare 自身不能对聊天加密,须靠 Tor 洋葱服务加密。