一次对“电报”开发人员的加密挑战

开发 前端
这周早些时候,一家叫做“电报”的公司发布了一种“安全”移动信息产品。多安全呢?用他们在常见问题解答中的话来说,“非常安全”。出于好奇,为了 了解更多,我查看了他们的协议,然后立即产生了一些问题和担忧。然而,当触及技术细节时,他们用开发人员的学历(数学博士)来回答,而不是进行一次更讲道 理的对话。他们同时谢绝了我以任何形式与之合作的尝试。

这周早些时候,一家叫做“电报”的公司发布了一种“安全”移动信息产品。多安全呢?用他们在常见问题解答中的话来说,“非常安全”。出于好奇,为了 了解更多,我查看了他们的协议,然后立即产生了一些问题和担忧。然而,当触及技术细节时,他们用开发人员的学历(数学博士)来回答,而不是进行一次更讲道 理的对话。他们同时谢绝了我以任何形式与之合作的尝试。

最近,他们选择了用一次加密破解挑战赛对安全社区的忧虑作出回应!

加密测试的谬误

一如既往,这些东西都是不好的信号。通过用他们的方式设计的测试,“电报”开发人员正利用一个作弊的挑战来欺骗公众。他们没有花费时间更新他们的常见问题解答,以说明他们举办的比赛是他们绝对安全的坚实证据,即便这基本上已毫无意义。

所以,“电报”开发人员们,作为一种回应,我为你们准备了我自己的加密破解测试。下面展示一个极差的“安全”协议,它在实际环境中面对攻击连一秒都不能坚持,但是在与“电报”挑战赛完全一样的测试框架中却变得“牢不可破”。

  1. Alice使用了一个美国国家安全局(NSA)有后门的随机数生成器,叫做Dual_EC_DRBG,并用它生成一段随机的32字节值作为超级密钥,叫做super_secret
  2. Alice向Bob发送一条消息请求他的公钥。
  3. Bobbob_public——一个896bit的RSA公钥——来回复。没有签名,没有验证,我们仅寄希望于不会有中间人攻击。
  4. Alicebob_public作为公钥,采用“教科书RSA”(译者注:主要与生产环境中更安全的“部署用RSA”相比,这种RSA有明显弱点)加密super_secret,然后发送给Bob。没有任何随机填充,仅仅是全零填充。e=65537。
  5. AliceBob现在用super_secret计算出短信密码 message_key=MD2(super_secret)(我们知道你们喜欢过时的加密方式,所以我们觉得你们应该会喜欢用MD2作哈希函数)。
  6. Alice给Bob发信息时,这样计算密文:ciphertext = message xor message_key。陈旧到完美的方案,我们的异或加密方式甚至比你们的70年代加密方式更古老,那么现在会发生什么呢?

这样,我们就构建了一个信息协议,它使用了NSA有后门的随机数生成器(Dual_EC_DRBG),弱公钥算法(896位RSA,没有填充,没有签名,没有认证),尽可能最差的加密哈希函数(MD2),以及用异或作为加密算法。AliceBob之间通信的全部副本在下面附录中,Alice每天都会把同一条信息发给Bob一次(正如“电报”公司的测试一样)。

测试框架完全与“电报”的一样(没有中间人攻击,没有已知明文攻击,没有选择明文攻击,没有选择密文攻击,没有篡改,没有重放,等等)。如果“电报”想要证明他们的协议比这个绝对的垃圾协议更好,那么我质疑他们能否发布Alice信息中的明文。如果他们使用他们建立的框架,不能在这个明显残缺的协议中展示一次破解,那么,我们就会明白他们的测试在胡说。

按照他们的逻辑,这个测试“证明”了这个残缺协议令人费解的安全,尽管他所能证明的只是这样的测试不过是用于骗人的工具。

对于我们其余的人

让我们来把这件事做好,并且建立一个真正的开源安全异步信息传输解决方案,使它不只是骗人的万灵油或营销噱头。

我们在OpenWhisperSystems开发了开源应用TextSecure,并使用了我们认为能够代表当今安全异步信息传输解决方案的精髓。 我们已经与Cyanogen公司合作,将TextSecure协议,透明的集成到他们的产品CyanogenMod中,这给了我们1000万脱离了像“电 报”这样不诚信开发者的用户。

请加入我们这次集体开源的努力。加入邮件列表并帮助开发,设计或者编写文档的工作。如果你想要赞助我们,你可以资助我们的BitHub实例,这会给任何无偿贡献者一个获得赞助的机会,同时我们会提供机会让你能够精确的查看你的钱是怎么花的。

不论多少,任何你能提供的帮助都使我们向着一个真正的隐私信息传输解决方案更进一步,这会让如“电报”这样的骗子更容易消失于大众视野。这需要我们所有人。

附录——测试传输日志

  1. Alice: 7075 626c 6963 206b 6579 2070 6c7a    
  2. Bob  : 3081 8c30 0d06 092a 8648 86f7 0d01 0101  
  3.        0500 037b 0030 7802 7100 acc3 ec17 9fea 
  4.        0d19 b29d f347 cc62 423c 02d9 e49b ba54 
  5.        b9a7 4cea 7c82 0f99 dcf1 c221 fca2 7882 
  6.        0b67 4c7e 8d67 b0e5 4a2b 8873 438d ef0b 
  7.        f5d1 6862 fecc ae0d 8736 5e69 cb5e 1346 
  8.        f612 49d2 e8ce 1463 8be0 8022 8ef2 01d9 
  9.        6917 6a03 19fc 2a03 ddad aad4 eb28 d655 
  10.        107c 52bf c1ae e800 a501 0203 0100 01       
  11. Alice: 53ce e8e4 f6c4 b330 a6aa 0830 81f2 c5e3 
  12.        00b2 c3ac 0e54 7cee c9a6 be0e 7a54 9bf0 
  13.        dbf2 11c2 853a 8443 da72 4dcf 96ad bc9a 
  14.        9373 5f68 6a33 0f5b ea49 f40b 8324 3f8a 
  15.        168a 7d78 3e08 85a1 f774 7c6a 10f9 646c 
  16.        a13e d6c3 00b3 670a 2af3 d2d6 b153 20b2 
  17.        5b1c 2fd1 6599 989a 1938 2c18 1acf 68a5 
  18. Alice: 12a6 077f 4625 5523 c23b 2c43 e60f dd39 

原文链接:http://thoughtcrime.org/blog/telegram-crypto-challenge/

译文链接 :http://blog.jobbole.com/53759/

责任编辑:陈四芳 来源: 伯乐在线
相关推荐

2013-03-22 10:42:09

开发人员软件开发

2009-12-07 16:07:19

WCF编程

2021-11-30 17:37:14

ReactRedux

2009-12-25 10:11:22

.NET Framew

2012-02-15 09:17:02

Python编程

2010-02-02 16:07:17

Python开发人员

2012-07-12 00:09:34

2023-08-30 08:01:37

前端CSS

2023-05-22 14:57:47

2022-10-09 19:02:16

JavaScript开发测验

2021-11-02 08:54:10

开发编程测试

2021-11-06 23:07:47

开发网站编程

2010-08-09 16:09:25

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企业开发人员提供商

2009-12-11 14:50:14

Visual Basi

2009-11-23 20:07:51

ibmdw开发

2021-02-19 09:33:01

kubernetesJAVA服务

2020-08-14 08:11:17

编程语言PythonIT

2023-06-20 07:30:46

CSS3HTML5Web
点赞
收藏

51CTO技术栈公众号