Total Pageviews

Saturday 25 April 2020

你真的了解端到端加密么?

时至今日,很多注重信息安全的使用者都多少听说过或正在使用「端到端」加密技术,但恐怕并没有很多人真正了解端到端的本义,否则你们的使用方式将会有很大不同。
网络上关于「端到端」的介绍已很多,读者可以参考 EFF 的自我防御手册非官方中文版)。
但很多介绍都没有清楚地讲出来,「端到端」到底跟非端到端的加密有什么不同?
 一句话:端到端技术可以让加密解密用的密钥(key)真正由用户所掌握!
也就是说非端到端的技术并不能把密钥从程序代码和算法里解耦出来,用户必须完全信任TA所使用的软件,来为TA进行加密、解密。反过来说端到端的加密技术做到了把密钥和软件程序拆开,让密钥真的像一把钥匙一样握在用户手里而不被别人所控制,因此更加安全。而非端到端的技术,用户不仅需要信任软件的作者好好地为其加密解密,还得信任运行软件的人(如邮件服务商),如此中间环节太多,掌握用户密钥的人太多,不安全。(如TLS就不是端到端的)
实际上端到端加密和非端到端的加密可能使用的相同的算法(包括对称加密:AES,非对称加密:RSA),但端到端加密这么值得推崇的价值就在于它带来的社会层面的应用:让密钥跟着用户走,除了密钥的所有者谁也无法掌控TA的密钥,就像物理世界里的钥匙一样
这样在数字世界里的加密才有真正私密的意义(即开发软件的、算法的程序员也无法窥视你的秘密~)。这个意义也正是「端」(end)的意义。
如果您看懂了我的观点,您会否恍然觉得自己过去并没有在追求真的信息安全?
您真的掌控了自己的密钥了吗?各种五花八门的声称「端到端」加密的安全软件,都让你掌控了你的密钥了吗?呵呵,大多数可能连你的密钥在哪里、叫什么名字都没有告诉你。
这就不是技术问题了,密钥在谁手里,这其实是个政治问题。当然,对于初学者直接使用PGP等端到端加密会很难,有些用户又觉得用起来麻烦,很多安全软件服务商或开发者也为了更易用(或者有其他目的?)而对用户的密钥代为生成、管理(有时甚至不告诉用户关于TA的密钥的事)。这样就使得「端到端」的意义丧失,跟非端到端的技术没有区别了。服务商说,他使用的是端到端技术,说没有其他人(包括他们自己)能控制得了你的密钥,但你能做什么呢?你只能靠道义上的信任了。毕竟你的密钥是人家给你生成的,也放置在人家的服务器上。
注:正如维基百科的页面上的介绍,有的服务商(如 Lavabit, Hushmail)尽管声称用了端到端加密但实际上没有使用。不把密钥的使用、处置权还给用户,就很容易耍流氓。
所以,如果你意识到这个问题,你已经知道如何做了。自己的密钥自己生成、管理,私钥一定要自己保管于很私密的地方(具体技巧参见:如何验证他人的数字身份数字签名最佳实践)。
  • 对于技术型用户:直接使用GnuPG管理密钥,在任何邮件服务上使用;
  • 对于一般但追求隐私和安全的用户:
  • 用邮件客户端(如Thunderbird)+ Enigmail插件(后者用来管理密钥,不会上传给第三方);
  • 用网页版邮件服务的话,有浏览器插件Mailvelope也可本地管理自己的密钥。
  • 如果你非常信任邮件服务商,据作者所知目前只有ProtonmailMailfence能让用户上传和下载自己的密钥,但仍然需要将自己的私钥放置于服务商那里才能使用加密/解密/签名等功能。

No comments:

Post a Comment