日前,维基解密爆料,CIA通过恶意软件等网络武器控制大量美国、欧洲等地企业的电子设备及操作系统产品,包括苹果手机、谷歌安卓系统、微软视窗系统和三星智能电视,把它们变成麦克风进行窃听,并将录音传输到中情局服务器上。 此外,维基解密爆料的一份文件中显示:执行中国任务的特工深受语言障碍的困扰。《参考消息》还以《维基解密网披露代码中的汉字挡住CIA黑客》为标题做了报道。那么,中文挡住CIA黑客究竟是怎么回事呢? 中文并不是抵挡CIA黑客的长远之计 虽然参考消息的报道以《维基解密网披露代码中的汉字挡住 CIA黑客》为标题,且该标题颇有因为中文使CIA黑客束手无策,无法窃取中国秘密资料的含义。但事实上,这仅仅是CIA黑客看不懂中文导致的,若要实现信息安全,仅仅依靠源代码中的中文或中文注释是远远不够的,而且这也非长远之计。 由于绝大多数程序代码都是用通用编程语言写成,这些英文字母组成的代码,全球程序员都认识,但认识代码归认识,能不能彻底解读就是另一回事了——源代码一般都是比较晦涩的,没有注释的代码换了开发这个程序的工程师之外的人来读其实是很难读懂的。 “维基解密”近期公布的文件显示,美国中情局通过各种方式攻击了中国等很多国家的电子设备。外交部回应:敦促美方攻击停止。 因此,注释就伴随源代码而生,注释的作用是便于理解和交接给其他人,告诉别人代码实现的功能,如果看不懂源代码的注释,或者源代码根本就没有注释,那即便拿到了源代码也犹如天书。 国内一些企业和境外企业合资做CPU,或买授权做SOC,以及合资做所谓的Windows 10政府版操作系统,虽然购买了境外企业的授权,有可能获得了部分源代码,但设计文档和注释这些一般是无法从境外国际公司处获取的。 这也是为什么,无论是CPU,还是操作系统,虽然在“十二五”期间,一些企业得到巨额专项资金扶持,但耗费数年时间和巨额资金,至今依旧拿境外技术穿马甲的原因之一。 而这次维基解密曝光的情况,其实是CIA黑客通过特殊手段获得源代码后,发现源代码没有英文注释所以读不懂。 虽然不少科班出身的程序员,一般都是循规蹈矩按部就班的用英文注释。但由于部分中国的软件工程师英文水平不够高,甚至一些程序员的英文其实非常有限,如果用英文注释很可能会出不少问题,因此会在源代码中用中文做注释。
中文注释的代码示例 在英文水平有限的情况下,如果用英文而不是中文注释的话,可能会有翻译错误、字母打错、以及英文专用名词过于生僻等一些问题。举例来说,比如创建时间,一般翻译CreateTime,但是也有人写成BuildDate,甚至有的时候会有字母打错,变成BuildData的情况,这种还是算能够看出来是打错字母的。 更多时候,打错字母的英文单词会导致其他程序员解读难度大幅攀升,怎么猜测都不对。如果用中文的话,不仅方便国内同行理解,也可以少发生产生歧义的情况。 另外,由于英文专业名词都是非常生僻的,非该专业领域的业内人士根本不认识该专业的相关专业术语的英文单词。以电力方面来说,程序员仅仅是码农,不是电力工程师,这就导致国内软件工程师在接国内项目后,根本不知道相关专业术语的英文单词,在这种情况下,就直接用中文或者拼音了。 一位软件工程师告诉笔者,“在XX电网的时候开发一套系统,里面上千个电网专业术语,如果用英文,可以撞头去死了……所以注释一般用中文,程序变量名用拼音”。其实,国内不少大公司也是会用中文拼音的。 而本次CIA黑客受阻于中文的真正原因,是因为中文博大精深,而国内程序员写了中文注释又很随意,没有一定的汉语文化功底的CIA黑客很难理解中文注释,所以出现了拿到了源代码,但是因为无法理解源代码中的中文注释而看不懂的情况。 不过,随着CIA招募掌握中文的黑客参与相关工作,看不懂源代码中的中文而产生的问题将不复存在。 打铁还需自身硬 根据斯诺登的披露,美国政府一直通过各种手段对全球很多国家实施监控和网络攻击,除了传统的攻击服务器和PC获得其他国家机密数据之外,随着物联网和各种智能硬件设备的兴起,网络安全和抵御网络攻击的难度大幅攀升。 (责任编辑:本港台直播) |