您如何获得隐藏服务的特定 .onion 地址?

信息安全
2021-08-11 11:21:47

.onion 地址通常应该由服务器私钥的 SHA1 哈希的前 80 位的 base32 字符串组成(请参阅.onion 地址规范)。

今天我遇到了一个显然没有任意地址的服务:http : //sms4tor3vcr2geip.onion/

它是如何工作的,它是否安全?

4个回答

是一个较旧的程序,现在有更新的替代方案:

Scallion - 使用 GPU 散列,需要 .NET 或 Mono:http: //github.com/lachesis/scallion

Eschalot - 使用词表搜索,需要 Unix 或 Linux:http ://blacksunhq56imku.onion

Eschalot 可以找到更长的人类可读名称,例如 seedneedgoldcf6m.onion、hostbathdarkviph.onion 等。

上面引用的性能图表现在有点过时了,8-10 个字符长的 .onions 很容易找到。

那天有一个讨论,当青葱第一次浮出水面时,隐藏服务的自定义名称是否不好。

问题一:生成的密钥具有比 TOR 生成的标准密钥大得多的公共指数,这给 TOR 继电器带来了更高的负载。

答:得出的结论是,与中继不断执行的其他加密任务相比,差异可以忽略不计。在 eschalot 中,最大的公共指数限制为 4294967295(4 个字节)。

问题二: TOR 开发人员可以决定过滤和阻止所有自定义名称。

回答:是的,他们可以,但他们还没有,他们真的没有理由这样做。他们也可以轻松更改随机名称的标准,并在网络上造成混乱和大量外流。

问题三:生成的名称很容易被欺骗,因为访问者在某处单击链接可能会被看似正确的 .onion 前缀欺骗而无需检查整个内容。演示一下,哪一个才是真正的丝绸之路?

silkroada7bc3kld.onion
silkroadqksl72eb.onion
silkroadcqgi4von.onion
silkroady3c2vzwt.onion
silkroadf3drdfun.onion
silkroadbdcmw7rj.onion

答:两者都没有,我生成了所有这些来演示问题。如果您认识到这些都是假货,那么您在丝绸之路上花费的时间可能比我想知道的要多:)。

公平地说,完全随机的地址更糟糕 - 如果有人编辑其中一个洋葱链接 wiki 并将一个随机地址替换为另一个,则使用该 wiki 的临时访问者不会知道其中的区别。

解决方案:这基本上取决于人们关注他真正访问的是哪个网站,但网站所有者可以创建一个更容易记住的人类可读地址,即使它是一个完全随机的胡言乱语。只要它长且易于记忆和识别。一些例子:

fledarmyusertvmu.onion
wifefeelkillwovk.onion
ladyfirehikehs66.onion
woodcubabitenem2.onion

我没有花时间刻意生成好名字,只是从测试 eschalot 后留下的列表中挑选了一些。使用(非常)大的单词表,很容易生成外观独特的名称,但需要时间来查看结果并手动找到合适的名称。

好吧,那是我的意见,可能是错误的。

——希罗

您可以使用蛮力找到与您想要的哈希部分匹配的密钥。一种工具是Shalot 的自述文件中提到了安全性:

有时声称,Shallot 生成的私钥不如 Tor 生成的私钥安全。这是错误的。尽管 Shallot 生成了一个具有异常大的公共指数 e 的密钥对,但它执行 PKCS #1 v2.1 指定的所有健全性检查(直接在 sane_key 中),然后执行 Tor 在生成 RSA 时所做的所有健全性检查密钥对(通过调用 OpenSSL 函数 RSA_check_key)。

要了解使用葱生成所涉及的时间,也可以从自述文件中了解:

在 1.5Ghz 处理器上生成具有给定初始字符数的 .onion 的时间:

字符 | 生成时间(大约)
-------------------------------------------------- -----------------    
1 | 不到 1 秒    
2 | 不到 1 秒    
3 | 不到 1 秒   
4 | 2 秒    
5 | 1分钟    
6 | 30分钟    
7 | 1天    
8 | 25天  
9 | 2.5年  
10 | 40 年  
11 | 640年  
12 | 10 千年  
13 | 160 千年  
14 | 260万年

添加到 Johan Nilsson 的回答(因为我不能发表评论):似乎甚至已经创建了 13 个字符的名为 .onion 的 URL,对此Tor 博客条目的评论提到了一个 13 个字符的洋葱 URL:(deeproadworksbwj.onion不要连接对它,我不知道它是什么或它是否好)。

我认为他们只是暴力破解私钥生成,丢弃那些不具有所需属性的私钥。

由于我猜他们想要的只是开头的 7 个字符,所以计算量不会太高吗?