你好,我是范学雷。

今天是我们的一次加餐,我们不讲知识,我要跟你分享一点关于密码学的小感慨。

2011 年的时候,因为要参与解决 BEAST 安全漏洞的国际合作,我得以和一些顶尖的密码学家一块儿工作。当时,幸运的是,我提议的解决方案被广泛采纳,成为了事实上的标准,给 TLS 1.0 续了十年的命。

不幸的是,十多年来,我对密码学一直都很崇拜,但是,它的很完美的印象在我的心底被彻底击碎了,这也彻底改变了我对密码学应用市场的认识。

为了更好地帮助我找到解决方案,当时的一位密码学家分享给我一些他的调查数据。这些数据研究了全球最知名的几十万家公司的公开网站,帮助他们发现了很多和密码学相关的安全问题。

问题很严重,国内公司的问题尤其严重。按理说,大公司有钱有人有技术,能够养得起、请得动密码学专业领域的工程师,信息系统应该没有突出的密码学问题。

很遗憾的是,2011 年的数据表明,那时候的国内大公司,虽然有钱有人有技术,却依然霸占了问题最突出、威胁最严峻的榜单前列。

现实和理想

这是我第一次被密码学现实和理想之间的差距震撼到了。因为这些问题,其实都不是什么技术门槛的问题。技术都是公开的,也都是随手可取的。大部分的安全问题,都来源于这些应用的设计者和实现者没有意识到这些麻烦的存在。

他们没有意识到问题的存在,当然也就不可能解决掉这些问题。在密码学业者眼里的常识,也许是普通软件工程师意识之外的存在。更严重的现实是,由于意识不到这些安全问题,这个公司当然也就不知道这些安全漏洞。

什么时候,他们能知道这些问题呢?要么有善意的研究者告诉他们,要么有恶意的攻击者警告他们。更多的时候,恶意的攻击者已经击破了系统,盗取了数据,也没有留下痕迹,当然也没有敲响警钟。这些被盗取的数据,随时都会是威力巨大的暗雷,不知道什么时候就会引爆!

从 BEAST 安全漏洞开始,随后的几年里,我的工作时间几乎就被不断颠覆的密码算法霸占了。三五年的时间里,几乎所有的主流密码学算法都爆出了或多或少的漏洞。昨天还占据主流地位的算法,今天就被宣布有破解办法,明天就要被扫进历史的垃圾箱了。

大家都忙着给算法打补丁,找替代品,更新产品。这种连环式的暴雷,过了五六年才算消停。但是,能够消停,也是因为业界几乎把 2010 年之前主流的密码学算法都换了一个遍。

隐忧依然存在

2020 年,一切似乎算是可以喘口气了。可是,隐忧依然存在。

第一个隐忧就是,大家都知道老算法有问题,那使用新算法了吗?答案是令人难堪的:并没有。比如,2020 年,Zoom 就被研究者披露使用了二三十年前就已经不安全的加密算法。

第二个隐忧是,如果使用新算法,数据就安全了吗?答案还是令人难堪的:也不一定安全。如果有心者记录了历史数据,如果加密历史数据的算法有一天被破解,历史数据还是有可能被破解。历史数据里有价值的信息,比如用户名和密码,再比如知名人士的行程。尴尬的是,有人认为,不仅存在这样的有心者,而且还有钱有权有势。

第三个隐忧是,如果是新系统、新算法,数据就安全了吗?答案稍微让人欣慰:还有一点风险。这点需要防范的风险就是,如果新算法未来被破解,加密数据能不能被解密?我们要确保即使未来算法被破解,特别是量子时代到来后,数据也没有办法解密。要做到这一点,还是需要有点密码学领域的专业知识积累的。

看看这些隐忧,我心里只有凉凉两个字。因为,大部分的软件工程师还没有掌握密码学的基础知识,当然也不会担心这些问题。不担心这些问题,当然就更不会有人去想解决问题的方法。

不过,我还是听说,有很多学校,在大学一二年级,开设了类似于“密码学 101”这样的基础课,即便学生的专业并不是计算机。但令人欣慰的是,即使不是软件工程师,像密码学 101 这样的基础课程,也可以帮助我们更好地保护自己的隐私,保护自己。

十年后,也许有一个新模样。

极客时间的《实用密码学》这个专栏,就是我为十年后的新模样,添的一块砖。