拨开“绝对安全”迷雾

时间:2022-10-06 10:06:27

拨开“绝对安全”迷雾

面对众多知名厂商的纷纷树立起“可信”的大旗,“绝对安全”的USB-Key和数字证书,我们仿佛已经置身于安全的信息环境之中,但是,“没有绝对的安全”这一定律真的被颠覆了吗?

从信息安全的历史我们可以了解到,二次大战以前,信息安全的全部含义就是信息保密。人们用加密的手段,让敌手看不懂信息,从而达到信息安全的目的。

随着计算机系统的发展,计算机技术逐步成为信息技术的主流,信息安全技术也就逐步转移到以计算机系统安全技术为主的轨道上来,发展成以保密、完整、可用为基本要求的安全技术。这个时期最主要的安全技术仍是以保护为主的安全技术,安全操作系统就是这一时期的产物,是以系统的存储控制和全面审计为基础的系统技术。

然而,随着计算机技术和网络技术的发展,系统边界逐步模糊,简单的保护技术已经无法保障我们的信息安全。以检测技术为主导的信息保障技术就成为了信息安全的主流。当我们的保护技术不能完全保护系统的时候,我们可以通过异常检测或攻击检测发现攻击,从而采取行动,甚至恢复整个系统。随着病毒、木马、蠕虫以及间谍软件的不断推出,网络连接的无处不在,信息安全就不得不进入一个生存的时代,也就是说,如果我们恢复的系统仍旧会在同样的攻击面前倒下,这样的恢复技术就没有什么意义。

我们希望有这样的安全技术,它保证在病毒攻击不断出现的环境下,系统具有在有效时间内完成使命的能力。这种技术我们称之为可生存性。这样的技术已经忘却了信息系统本身,而关注我们真正的目标。信息安全技术从来就应该关注目标,而不是安全本身。

可信计算≠安全

中国现在一个比较火热的安全技术就是所谓的可信计算技术(TrustworthyComputing)。在对可信计算30多年的研究过程中,其含义不断地拓展,由侧重于硬件的可靠性、可用性到针对硬件平台、软件系统、服务的综合可信,适应了Internet上应用不断拓展的发展需要。

1999年由Intel、Compaq、HP、IBM以及Microsoft发起成立了“可信计算平盟”Trusted Computing Platform Alliance(TCPA),该组织致力于促成新一代具有安全、信任能力的硬件运算平台。2003年,TCPA重组为“可信计算联盟”Trusted Computing Group(TCG)。TCG在原TCPA强调安全硬件平台构建的宗旨之外,进一步增加了对软件安全性的关注,旨在从跨平台和操作环境的硬件组件和软件接口两方面,促进与厂商独立的可信计算平台工作标准的制定。

正是因为可信计算的标准是厂商集团提出的,所以,当你有了“可信计算机”以后,你并不能保证它就做你想做的事情,用户仅仅知道谁是系统开发者,装的是正版操作系统以及安装的是微软批准的应用系统而已。至于系统会做什么,用户只能信任厂商。这就是说,可信可能是对厂家的可信,而不是对用户。当你想在可信计算的机器上安装你自己的软件的时候,你可能做不到,因为你自己开发的软件对厂商来说是不可信的,除非你把你的软件交给厂商,如微软公司进行签名认证。否则,你可能没有办法在自己的可信计算机上安装自己的软件。你想在可信计算机上多次播放一首只能播放一次的歌曲,那肯定也没门儿,因为计算机是可信的,运行的程序是厂家验证过的,程序不会让你不交费就多次播放这首歌。

然而能够让用户或众多厂商喜欢的可信计算的并不是可信计算技术本身,而是“可信”这个词。根据TCG主席对可信的解释,“Trust”其实是指“可知”和“可预测”,即能够预测对方的行为。这位主席还做了一个比喻,说如果一个盗贼真正地去偷,那这个贼也是“可信”的。可信计算就是通过一系列的验证确定控制计算机的程序是经过签名的,通过这种验证同时提供一些加密等服务。这些技术并没有太高的技术含量,美国的学术界基本不讨论这个题目。

“可信”技术促进“国家安全”是有前提的。即必须保证自己拥有一个完整的链条,比如从硬件到BIOS到操作系统最后到应用系统,缺少任何一个环节都不可能构成对产业集团或国家有利的可信计算环境。

然而,我国的可信计算技术过于偏重于硬件,发展很不平衡。如果操作系统只能用微软的,即使是自己的硬件厂商也不得不给微软的操作系统发“可信”证书。当硬件把权力交给可信的微软操作系统的时候,那国内软件厂商也就只能信任微软了。因为操作系统已经是可信的,而用硬件监控操作系统的运行细节是不可能的,硬件仅仅是检查系统的可信,硬件控制系统运行也不是可信计算的初衷。所以可信操作系统有足够的运行权,它可以继续使用硬件的功能,也可以用软件做一些系统想做的事情。由于我们没有自己控制的可信计算的完整链条,所以,我们要对可信计算有正确的态度。

另外,有了可信计算,操作系统和应用软件就可以调用硬件的功能获得唯一标示(可以通过证书和签名),而这种唯一标识是全球编码的。这为可信的操作系统或者可信应用系统提供了准确的机器和用户定位信息。比如,配合可信的播放软件,出版人可能很容易地知道是谁,是哪台机器在播放他的歌。这样的技术对操作系统厂商来说一定是很好的技术,但对用户就另当别论了。

数字签名+USBKEY≠安全

随着《电子签名法》颁布实施,可靠的电子签名与手写签名或者盖章具有同等的法律效力,软件业界开始红红火火地推广数字签名。

目前国际广泛使用的数字签名方法主要有三种:RSA算法、DES算法和Hash算法。这三种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的,用DES算法、RSA算法都可实现数字签名。但三种技术或多或少都有缺陷,或者没有成熟的标准。

数字签名主要包括签名与验证两个部分。

签名操作具体过程是这样的,首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用散列算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即作数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。

接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,接收方进行签名验证。接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原同样散列算法得出一个的数字摘要;将两个摘要进行结果比较,结果相同则签名得到验证,否则签名无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。

目前,经过国家批准的数字签名设备主要是一种USB-Key。许多厂商在游说大家,说这样的东西“绝对安全”,许多为创新而创新的项目开始大量使用USB-Key和数字证书。

然而,实际情况是不会有绝对安全的东西。现在安全是因为我们推广还不够。只要我们用户再扩大,其安全性肯定是有问题的。

举个大家都可以理解的例子。当你在网络上转账时,窗口弹出一个让你签名的提示,转账300元,你能确认送USB-Key的就是300元的交易数据么,你能保证没有间谍软件或病毒多发送一次让你签名的交易给USB-Key?

如果大量使用这样的USB-Key,一定会出现这样的病毒:专在你签名的时候修改数据或增加数据。而USB-Key是个哑巴,对什么内容签名它又读不出来,系统让签就签吧。

由此可见,推广数字签名也是有风险的,需要谨慎。要以应用为驱动,以服务人民为目标。

上一篇:过程改进贵在持之以恒 下一篇:ERP竞争精细化