0x01 byte

Recent content on 0x01 byte

马上订阅 0x01 byte RSS 更新: https://1byte.io/rss.xml

加密货币与区块链(三):什么是信任

blog.incoming@1byte.io (江宏)
2018年5月13日 08:00
Bruce Schneier 的《应用密码学》(Applied Cryptography)是我的密码学启蒙书。我上本科的时候读过一遍影印版。读博士的时候导师说他有本出版社请他写书评时送的,听说我喜欢就送我了,所以又读了一遍。过了几年 Bruce Schneier 又写了一本书叫 Secrets & Lies。即使你没有兴趣看这本书,它的前言也值得一读。这里我只翻译一部分: 七年前我写了另一本书:《应用密码学》。我在其中描绘了一个数学的乌托邦:可以永远保守秘密的算法,以及能安全可靠地执行无监管的赌博、抗检测的认证、匿名货币等美妙的电子化交互的协议。在我眼中,密码学是带来平等的伟大技术;任何有廉价计算机的人都能拥有与最强大的政府同样的安全。在两年后写此书第二版时,我甚至说「仅靠法律保护自己是不够的,我们还需要靠数学保护自己。」 然而我错了。密码学做不到以上的任何一点。 这并不是因为 1994 年以后密码学变弱了;也不是因为书中的技术内容不再正确。而是因为密码学不存在于真空中。 密码学是数学的一个分支。和数学的其它部分一样,它是关于数字、等式、逻辑的。而对于你我来说在生活中能感受到的安全是关于人的:人知道的事、人之间的关系、人和机器的关系。信息安全是关于计算机的:复杂、不稳定、有缺陷的计算机。 数学是完美的;现实是主观的。数学是确定的;计算机是易怒的。数学是有逻辑的;人是不确定、易变和难以理解的。 《应用密码学》的错误在于我没有对上下文做任何讨论。我把密码学当作答案 ™ 来讲述。这是很幼稚的。 […] 一个同事曾和我说,世界上充满了《应用密码学》的读者设计的糟糕的安全系统。[…] 几年前我听过一句话,在这里稍微改动一下:如果你认为技术能解决安全问题,那么你既不懂安全也不懂技术。 有很多关于区块链的文章都说「区块链解决的核心问题是信任问题」,但是我没有看到有人回答了关键的问题:到底什么是信任?什么是所谓「信任问题」,它存不存在?什么算是「解决了信任问题」?事实上如果在 Google 上搜一下这句话,会找到大量的复制粘贴和人云亦云。Brice Schneier 书里那句话改一改也是适用的,如果有人认为技术能解决信任问题,那么他恐怕既不懂信任也不懂技术。 Ken Thompson 1984 年的图灵奖演讲 Reflections on Trusting Trust 很好地从技术的角度解释了信任的本质。读者不妨去看看原文,或者也可以参考我在 XcodeGhost 出现时写的一篇简介。细节在本文就不再复述了,简单地说,他演示了一个不仅通过源码分析无法发现,通过反编译二进制码分析也无法发现的攻击。他在演讲中说「关于一个程序里没有木马的保证到底有多可信呢?或许更重要的是信任开发软件的人。」他展示了除非你使用的整个软硬件栈都是自己制造和开发的,就得信任其他人。 信任是社会存在和运转的基础。我们把钱存在银行,相信需要的时候一定能从取款机取出来;我们每天上班,信任路上的司机不会开车撞我们;乘飞机旅行,信任飞行员技术够好不会坠机,信任其他旅客不是恐怖分子,也信任飞机制造商没有埋下安全隐患。我们经常会在美国电影上看到一个人对最亲密的人说「I trust you with my life.」,然而看起来我们其实每天都在以生命来信任陌生人。事实上我们信任的不是某个个体,而是整个社会系统。这个系统通过道德、价值观、经济体系、法律定义了规则,并让违反规则的人受到惩罚。这个系统保证了大部分司机会尽可能安全驾驶,机场会检查登机旅客,航空公司会严格地审查和培训飞行员。 技术在信任和安全方面扮演的角色就好像门锁。大部分人不偷不抢是因为他们想做被他人接受的社会成员,尽量不做不道德的事;剩下的人中 99% 以上的人是因为担心受到法律的制裁;只有极少数的人是因为打不开锁。所以你从不会听说一个城市通过投资制造更好的锁来降低犯罪率。假设给我两个选择,要么是生活在北京,但是没有门锁,要么生活在一个没有法律、道德约束的地方,但是可以装最好的锁。我一定会选择前者,我多半会丢失一些东西(取决于住什么小区),但如果选择后者肯定会没命。 好的技术是对社会的安全、信任机制的补充,它无法替代这些机制,更不能破坏这些机制。到目前为止,区块链已经实现的可以放在阳光下说的实际应用价值约等于零。当很多区块链公司在苦苦寻找应用场景来讲故事的时候,加密货币倒是成了 Silk Road、Dream Market 等黑产市场的主要交易媒介,最近几年知名的多次 ransomware 攻击也都是让受害者以比特币支付赎金。对于需要逃脱现有社会机制可能带来的惩罚和后果的人来说,加密货币发挥着很大作用,或者说是它真正完成货币功能的最主要场景,所以有很多人直接用黑产交易量来估算加密货币的合理市值。加密货币对现有社会机制的影响,以及它为什么群体带来最多的便利和价值,是值得更多思考的问题。 安全和信任是一个链条,它的强度是由其中最弱的一环决定的。历史上的安全事件几乎没有任何针对密码学算法和协议的攻击,即使是技术上的攻击也大多是针对具体软件实现,更多的是通过欺骗、引诱、胁迫等手段针对人的攻击。当密码被主动交给攻击者的时候,加密算法是用 128 位秘钥还是 2048 位密钥并没有什么差别。2007 年在比利时,有一个人靠个人魅力敲开了银行保险库偷走了接近三千万美元的钻石:他靠经常请大家吃巧克力得到了银行职员的好感和信任。要知道比利时人可不缺巧克力。 电影「猫鼠游戏」(Catch Me If You Can)的真实原型 Frank Abagnale 在 16 岁离家出走后使用过 8 个身份,在很长时间里成功地伪装成各种不同职业人士,包括民航飞行员、医生、政府官员、律师。在最终被抓住后他加入了 FBI 成为反欺诈专家。有一次他在 Google 做讲座,台下有人问他现在警察和 FBI 有很先进的监控和侦破技术,罪犯还有没有可能像他当年那样成功。他的回答是现在唾手可得的信息只会让那些事情简单百倍。有无数的案例说明在安全和信任的链条中,人的因素是最薄弱的一环,而人的问题往往不是靠技术能解决的。