你是否曾有这样的疑虑,像 LINE 这类通讯软体,如果他们愿意,有办法偷看我们传给朋友的讯息或图片吗?
笔者想大部分人的答案是肯定的。只是,这些通讯软体大家都在用,虽然偶尔觉得心里毛毛的,但好像也只能选择「相信厂商」,并告诉自己:「像 LINE 这样的大公司应该不敢做坏事吧?」
越来越多「商业沟通」甚至「政府会议」透过即时通讯传递,COVID-19 疫情爆发以来,Google Meet 每日使用量成长 30 倍,单日参与 Google Meet 会议的人数超过 1 亿人。
如果有一天,人们心中的天秤产生了动摇,人类的技术已经準备好可以不依赖 Google 的善良了吗?
当问题从「资安漏洞」变成「信任崩溃」
今年 4 月视讯会议软体 Zoom 被质疑将资料传送至中国,加上创办人袁征的华裔身分,触动许多人的敏感神经,包含台湾,许多国家及组织下令禁用 Zoom,改以其他视讯软体替代,如 Cisco Webex、微软 Teams 或 Google Meet。
资讯安全的目标是保护资讯及资讯系统免受未经授权的进入或破坏,通常并不考虑主人自己作恶的可能性。
这次事件之所以引起市场这幺大反应,不只所谓的程式漏洞(其他大厂每年漏洞又何曾少过),笔者认为更大程度是:人们心中对 Zoom 这间公司的天秤发生变化,与其说是「资安漏洞」更像「信任崩溃」。
正因为我们对通讯服务厂商的内心契约是「相信你不会这幺做」而非「相信你无法这幺做」,所以当有一天,人们开始不信任服务商时,恐怕就不是资讯安全层级的事了。
难道厂商就不能透过技术手段,彻底证明自己就算想作恶也办不到吗?
信任的极致,是不需仰赖对任何单一主体的信任(Trustless),亦可与之合作。
像 Zoom 这样的服务商,是否能像金庸笔下葵花宝典「欲练神功,引刀自宫」,对自己加诸若干限制,从逻辑直接证明自己不可能作恶?以下我们将花一些篇幅来探讨这个重要的议题。
端对端加密
通讯隐私并不是什幺新鲜诉求,WhatsApp、iMessage、LINE 等主流通讯服务近年来也都不约而同提出「端对端加密」当作技术解方。我们不妨顺着前人的思路,探讨端对端加密的机制是否真能证明厂商无法作恶。如果你对「端对端加密」有基本了解,可以跳过这一段。
讯息加密:服务商让自己变成只是加密讯息的传输者。
似乎不难想像,假设小明与小美用 Zoom 开启视讯会议,只要小明这端在视讯内容传出前都先加密,小美这端收到后再解密,便可防止传输过程有人偷看。
这便是「对称加密法」──目前应用最广泛的加密法,成员之间「共享同一把密钥」,密钥用来加解或解密传输内容,只要保证密钥安全,那幺成员之间通讯基本上就安全了。
重点并不在于 Zoom 有没有储存资料或把资料传到哪里,而是资料是否经过加密,以及密钥是否只有会议成员知道。
问题是……密钥怎幺给对方?
密钥一旦涉及传送,就又会回到老问题:中途被偷看了怎幺办?
难道小明和小美每次沟通密钥时,都得见上一面?(1970 年代,大银行还真的有专门职位,提着保险箱,飞到全世界各地送钥匙给客户)
为了解决密钥传输时被窃的风险,后来人们想到了一个方法:利用「非对称加密法」处理一开始的密钥沟通。现今我们每天使用的各种网路服务,数据加密过程都少不了这个环节,例如网页的传输安全协定 HTTPS。
接下来,为了让所有读者能理解「无信任(Trustless)端对端加密」的可能性,以下先简单介绍非对称加密法应用沟通密钥的原理。
首先,小明和小美会各自电脑端,生成一组非对称金钥;金钥一组两把,透过数学算法同时产生,一把称为公钥,另一把称为私钥(下图)。
非对称加密法有以下特性:若小明使用他的公钥加密资料,则全世界只有小明的私钥才解得开;相反的,若小明使用私钥加密(应用上常当作签名),全世界只有小明的公钥才能解开。
这个方法实行时,所有人都得把自己的公钥公开,好让其他人找得到。我们就先假定大家把自己的公钥上传到服务商 Zoom,并因为服务商知道你是小明或小美,所以这把公钥会跟小明或小美的身分绑定(下图)。
当要交换密钥时,小明先到服务商查询得到「小美公钥」,接着利用「小美公钥」加密密钥,再把结果用「小明私钥」加密一次,然后透过服务商传送给小美(下图)。
这时候小美可利用从服务商取得的「小明公钥」解开第一层,如果成功解密,根据密码学原理,就代表资讯必定是小明私钥加密,因此验证资讯由小明发出。接着,小美再用自己的私钥解开第二层,获得最终资讯──也就是小明要给小美的密钥。只要确保小美私钥只有她自己拥有,那就能确保任何人包括服务商 Zoom 也无法解开(下图)。
至此,小明和小美终于沟通好密钥,可以利用那把密钥展开加密传讯了。当然,实作有更多细节和变化,但大致不脱这个概念。
但只要通讯服务商宣称採用端对端加密,就可以确保他们无法解密通讯内容了吗?
非对称加密神奇解决了密钥沟通的问题。这时候,我们已经可以断定厂商从此无法窥探通讯隐私了吗?仔细思考一下,好像哪里怪怪的……
从密码学逻辑来看,刚刚那套加密机制若要完全发挥效果,还有以下两个条件必须先成立:
- 服务商不可以拿到小明和小美的私钥。
- 小明查询小美公钥时拿到的那把,必须真的是小美的。
1. 服务商不可以拿到小明和小美的私钥
这一点没有技术难度,只要公私钥是在使用者的本地端产生,例如使用者手上的 App,且本地端的程式码必须开源,确保没有任何后门程式偷偷上传私钥,便可以确保服务商拿不到私钥。
虽然本地端程式开源这个要求,对软体公司来讲有点为难,即使 2014 年就开始致力端对端加密的 WhatsApp 都没有做到,不过市面还是有像 Telegram 或 Signal 这种既採用端对端加密又开源客户端的服务。因此我们可以说,要满足第一点已不具备任何技术障碍。
题外话,Signal 是连 Edward Snowden 及密码学大师 Bruce Schneier 都挂保证的通讯软体。如果你对私密通讯有兴趣,那一定不能错过 Signal 创办人 Marlinspike 创立的非营利组织 Open Whisper Systems。
2. 小明查询小美公钥时拿到的那把,必须真的是小美的
这恐怕就没有第一点容易了,假设所有使用者都把公钥上传给服务商,且查询公钥都找服务商询问,那便永远无法确保服务商给你的是真的小美公钥,甚至服务商可以同时假冒小美与小明,从中窃取或修改讯息内容(即中间人攻击,下图)。后端程式是运行在服务商环境,非用户手上,所以即便开源,意义也不大。
这幺一来,似乎又绕回问题的原点「我们还是得信任服务商」,信任他们会诚实保管所有使用者的公钥,并诚实回答所有使用者对公钥的查询。
只要服务商愿意,还是「能」窃听使用者间的私密通讯!
这个结论确实有点令人沮丧……但世界还是可以运作
可以这幺说,通讯软体服务商应该是全世界知道最多祕密的团体了。现今我们仰赖的网路服务,确实完全建立在服务商不会作恶的基本假设之下:
Google 这幺大,应该不会为了我个人这一点小小的隐私,就自毁前程吧!
服务商跟客户之间就靠这薄弱博弈心理达到纳许均衡:相对于作恶,不作恶对服务商更有利;相对于拒绝使用,睁一只眼闭一只眼用下去,对使用者更有利。这个地基搭起的商业信任,还是相当牢固,支撑了世界许许多多商业行为。
难道这就是人类协作技术的极限吗?
当然不是,这只是中心化解法的极限。
我们回顾一下问题核心,最终欠缺完美的公钥布告栏(即公钥基础建设 Public Key Infrastructure,PKI),按照刚才逻辑:
PKI 要可审计追蹤(Audit trail),最好公开透明,因为公钥不怕偷看,就怕偷偷改掉;必须确保高度的可使用性(High Availability and Replication),不可拒绝使用者查询公钥,因为一旦查不到公钥,对方就等于失去身分。
这不正是区块链最擅长的事吗?区块链有纪录透明、可追溯、不可窜改、多节点共同确保 Fault Tolerance、任何节点都可提供查询等特性;若将 PKI 搭建在区块链上,就可确保公钥不被调包且一定查得到,完全可以从技术层面直接限制单一主体作恶的可能性,使通讯服务达到真正的 Trustless(笔者所在公司 BSOS 便曾与重量级客户合作,共同尝试「公钥基础建设结合区块链」的可行性)。
区块链解法和传统解法,最大差别在哪里?
从商业角度来看,这两种解法最大差别在于「维持信任所需的成本」。
当企业与用户的关係是建立在「信任企业」基础上,就注定企业必须不断透过各种「间接」方式撑起信任,且随着天秤另一端持续累积,这成本恐将永无止境扩大。常见的信任成本有:
- 企业的品牌或商誉。
- 合规(企业每年都花费大量支出在符合 ISO27001 这类规範标準)。
- 交由第三方处理(第三方同样也需付出大量成本以维持可信任)。
- 企业使自己越来越大(这是最常见的方式,但效益却逐步递减)。
相反的,Trustless 的信任成本并不是逐年攀升的无底洞。以上述区块链 PKI 来说,可能只需要数十个参与者担任节点,也就是约数十台伺服器的运作成本,就可搭起一个可信的区块链 PKI,服务一家甚至多家企业。若 PKI 是建置在以太坊这类公有链,甚至可省去初期搭建成本,改为纪录上链时支付手续费。如此一来,这些「引刀自宫」的企业,信任成本几乎可恆定,不再需要耗费那幺庞大的资源取信客户。
Trustless 实现,不只降低大企业维持信任的成本,更有价值的是,降低小规模创新服务为人们信任的门槛,整个社会的交易成本及创新价值都可能重新建构。
再扩展一下想像空间
利用区块链为公钥基础建设,也是做到「自主身分」(Self-Sovereign Identity,SSI)的重要路径之一,关乎民众是否能「真正拥有」对身分的支配权及数位行为的控制权。例如:跟着人走的医疗数据、可信赖的公民投票……等,这些常被提起的未来理想,都有赖于可信的公钥基础建设。
关于区块链 PKI 或 SSI 议题,虽技术趋近完备,但达成的路途却十分遥远,如「使用者的社会身分如何绑定公钥」执行难度就非常高,甚至需要政府或公民组织共同参与打造基础建设。本文仅就通讯服务商 trustless 的可能性,提供一条新的思路,未来有机会也可以专文探讨 SSI。
区块链思维
笔者因工作关係,经常在回答朋友这个问题:区块链可以做什幺?
这个问题不易回答的原因在于,区块链解法并不在人们过去熟悉的问题解决框架内,就如同本文提及,中心化解法到达极限、商业信任成本不可承受时,区块链才翩然而至,以分散式的方式化解信任危机。关于区块链思维,BSOS 乐意与大家共同交流。
这篇文章的目的,主要是希望藉由 Zoom 的事件,创造一个场景脉络,与读者共同思考:区块链技术碰撞的,到底是什幺样的问题(虽然 PKI 只是众多区块链应用之一),且提供衡量区块链应用价值的「商业视角」:
降低信任成本(降低交易成本)。
区块链到底是虚幻炒作,还是征服宇宙的黑科技?
看到这里的读者,答案是什幺呢?在第一线从业人员眼中,区块链肯定不是 YouTuber 老高口中说的「21 世纪最大谜团」。对我们来说,区块链一点都不神祕,甚至有时候还有点枯燥,但可以肯定的是,它所要解决的,的确是扎扎实实的硬问题,且这两三年来,全球已有许多像 BSOS 的公司正以区块链思维,解决某些特定问题,并不断推广这个领域的疆界。
(作者:BSOS CEO Daniel Huang)