源代码审查能否成为国际惯例?

2020 年 10 月 10 日

源代码审查能否成为国际惯例?

最近听说,TikTok 向澳大利亚政府表示,将允许澳政府官员审查其算法并测试源代码,这也在网上引起了热议。以此为契机,我想站在中国的立场上,谈谈开放源代码审查这件事的来龙去脉,从现状、风险和收益几个方面分析一下,看看它对我们到底是福还是祸。

我们先来看看现状。开放源代码给所在国政府审查这事儿,究竟有行业先例呢,还是无理要求呢?

事实上,早在 2003 年,全球软件业的巨无霸微软,就与中国信息安全测评中心签署了“政府安全计划”,中国也成为全球首批参与此计划的国家之一。2014 年 7 月,微软主动增强了“政府安全计划”,允许签约方访问在北京的“微软技术透明中心”并查看及测试微软产品和服务的源代码。而随着 Windows 10 政府版的落地,更是可以看出这种代码审查的正朝着良性互动的方向发展。在微软的示范作用下,IBM 也通过与世纪互联合作,在中国提供其 Bluemix 云计算平台,并开放其源代码审查。

在中国企业走出去的过程中,这样的代码审查也早有先例。在英国、澳大利亚等国,华为都已经建立了安全评估中心,提供 100% 的源代码接受政府的审查,以应对部分持敌意者抛出的“军方背景论”。客观地说,这也是华为在欧洲等地区能够顺利发展壮大的重要原因之一。

在与中国无关的市场上,这样的事而也屡见不鲜。比如,思科、IBM 和 SAP 等欧美科技公司,正接受俄罗斯政府的要求,使其可以获得严格保密的产品源代码,以应对俄罗斯对其从事黑客活动的指控。而俄罗斯的卡巴斯基杀毒软件,也推出了一项全球透明度计划,从 2018 年第一季度开始,将软件源代码提交给更广泛的信息安全社区和其他利益相关者进行独立审查,以表明企业和任何间谍行为无关。

因此,从大背景来看,随着各国政府对信息安全和数据国境越来越重视,向政府开放代码审查,提供数据保护,已经成为不可避免的大趋势。

那么我们再来看看,TikTok 向澳洲政府开放源代码审查,有没有什么严重的风险呢?

首先,TikTok 虽然被称为“海外版抖音”,可是实际上,它们根本就是不同的两款应用。二者的用户和数据,体系也完全不相通,只是产品形态和界面有些相似罢了。根据 TikTok 全球首席安全官罗兰·克劳蒂尔(Roland Cloutier)的说法,TikTok 使用的源代码与中国国内的抖音源代码并不相同。因此,担心开放 TikTok 源码会对国内的抖音产品安全性带来威胁,有点杞人忧天了。

另外,值得特别提醒,这里所说的“开放源代码审查”,只是针对各国的相关政府部门,而非对商业公司或其他机构。在审查的方式上,是有资质的政府人员访问 TikTok 公司在美国洛杉矶的透明与问责中心,或通过虚拟参观的方式来审查算法并测试源代码,而并不能将源代码带走或修改。当然,如果澳洲政府能找个过目不忘的天才,把源代码一行不落地都背下来,回家再原样默写一遍,那算我没说。

其实,就算是真有人能默写出来,也只不过是一项行为艺术罢了。做过互联网的朋友,可能都或多或少有点概念:对这样的内容性产品来说,算法固然重要,但远远不如庞大的用户生态和丰富的数据更有价值。没有了数据,推荐算法毫无用户之地。以为学会源代码就想复制一个 TikTok,也就好比你带上了手套和护牙胶,就跳上拳击台准备和泰森一决雌雄一样可笑。

反而是微软向各国政府开放审查的 Windows 源代码,倒真是他的命根子。多少操作系统秘而不宣的武林秘籍,都可以在代码里一览无余。理论上讲,你只要把代码编译出来,手上就是活色生香刚出炉的 Windows,跟从微软哪里买到的正版,除了少个包装盒以外,没有任何差别。就算不是整体编译,找个高手瞧一瞧内核里的关键代码段,可能也能瞬间解决许多操作系统研发中过不去的坎儿。

于是,微软都还没担心,TikTok 用得着担心么?说句文言,这不是皇上不急太监急么?

所以依我的看法,及时向外国政府开放源代码审查,风险也相当有限,大可不必过于担心。不过,也许或有网友质问我,没有多大风险就要开放么?这不就认怂了么?这倒是问出了我想说的关键:从目前的博弈局面来看,TikTok 开放源代码审查,未必不是一件好事。

这话怎么说的呢?大家要认清这样的现实:在目前全世界的软件和互联网产业中,美国还是一骑绝尘的老大,大多数具有全球影响的软件和网络产品,都还是美国人的天下。虽然微软的 Windows、IBM 等少数企业向中国开放了源代码审查,可是还有很多大家耳熟能详的产品,比如 Office、iOS、Oracle 等等,并没有开放。也就是说,在这些软件和系统中,理论上说,还存在着恶意代码或者留有后门的可能性。

大家想想,中国有多少人在用 iPhone 手机?有多少台电脑上装有 Office?有多少银行的核心系统完全依赖 Oracle?而这些软件在背后做了些什么,我们都是一无所知的。所谓防人之心不可无,这样的现状,细想起来还是让人背后有一丝凉意的。

中国虽然有少数几个产品引起了美国人的注意,可是在这样的博弈局面下,其实还是光脚不怕穿鞋的。换句话说,如果中美之间能够达成这样的一种妥协:互相向对方政府开放源代码审查的权利,那么从信息安全的角度来看,受益者当然是中方无疑。

也就是说,开放源代码审查,从大方向上看,是符合中国利益的。虽然上面说的妥协显然不可能顺利达成,但是我们没有理由拒绝局面朝着这个方向发展。所以,反而应该利用好这次契机,在严格的安全保护机制下,向有关政府开放源代码审查的同时,坚决主张对那些在中国拥有大量个人或企业用户的外国软件和网络服务,也用对等的方式向中国政府开放源代码审查权力。

这么看下来,TikTok 开放源代码审查,虽然在网络上一石激起了千层浪,可是冷静下来分析一下,我认为一则不必过于担心,二则很可能反而是个有利的机会。希望国家有关部门利用此次契机行动起来,在此案例的基础上,探索全球通用的软件安全审查模式,用制度化的方式打破跨国巨头们在中国的代码和信息垄断,一劳永逸地解决数字国境上的安全问题。

作者介绍

北冥乘海生,清华大学信息与通信工程博士、《计算广告》作者。

本文转载自知乎

原文链接

源代码审查能否成为国际惯例?

2020 年 10 月 10 日 10:05 940

评论

发布
暂无评论
发现更多内容

RocketMQ - 如何实现事务消息

Java收录阁

RocketMQ

使用Kotlin语言初始化数组

mengxn

数组 kotlin 初始化

B端产品经理养成记(1):业务场景

涛哥

产品经理 需求 产品开发

工厂模式(四)泛型工厂之MyBatis Mapper代理

LSJ

Java 设计模式 泛型 工厂注册中心

不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...

JackTian

GitHub 程序员 编码 开源项目 学习资源

ARTS打卡Week 02

teoking

objective-c LeetCode WebRTC

如何用CSS选择符(数字开头) 杀死队友

学习委员

JavaScript html css3 Web 前端鬼画符

愚蠢写作术(1):怎么让你的标题被读者忽视

史方远

个人成长 写作

做PO难,难于上青天

刘华Kenneth

敏捷 产品经理 决策 PO

RocketMQ - 高可用设计

Java收录阁

RocketMQ

Kafka系列9:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(上)

z小赵

大数据 kafka 实时计算

draw.io-取代visio的流程图绘制工具

Rice嵌入式开发技术分享

chrome vscode 写文章神器 draw.io

【5月】本月读书学到了什么

Neco.W

创业 读书感悟 阅读量

转行程序员浅谈进程间的socket通信

WB

Linux socket 转行程序员

【ARTS打卡】Week01

Rex

学习笔记

1 ARTS 2020-05-31

3.141516

LeetCode

John 易筋 ARTS打卡Week 02

John(易筋)

ARTS 打卡计划 ARTS活动 arts

时代在变,产品运营能力很重要

夜来妖

程序员人生 程序人生 产品经理 产品推荐 程序媛

MAC OS 下 HomeBrew 使用

耳东

macos brew homebrew

你会写测试用例吗

鱼贩

B端产品经理养成记(2):用户故事

涛哥

产品经理 需求 产品开发

ARTS(2020-05-25/2020-05-31)

天行者

正确阅读

工作 vs 生活

shengjk1

写博客的那些事

shengjk1

ARTS打卡第一周5.25-5.31

我笔盒呢

钢铁侠马斯克之仰望星空

池建强

创业 马斯克 Space X

游戏夜读 | 关于构图的困难

game1night

【openlayers】在vue中使用ol

学习委员

JavaScript html Vue 地图 openlayers

Element-UI实战系列:Table+Pagination组件实现已选和全选功能

brave heart

Vue 前端 Element

ARTS week 2

刘昱

ARTS week2

紫枫

ARTS 打卡计划

易观A10数据智能峰会

易观A10数据智能峰会

源代码审查能否成为国际惯例?-InfoQ