首页 -> 安全研究

安全研究

业界动态
微软是否真的留了后门?

发布日期:1999-09-10

1999-9-10

    近来常看到Hotmail被黑、IE浏览器漏洞百出的报导,微软在计算机安全方面的记录是非常糟糕。作为用户的我们,大部分人已经对这些小漏洞习以为常。但是我们发现在每一个微软出售的的Windows拷贝中,可能存在着一个给美国国家安全局(NSA-美国的间谍机构)提供的后门,从而使美国政府可以简单地访问你的计算机。

    在研究 Windows NT 4 安全子系统时,Cryptonym公司的首席科学家Andrew Fernandes发现在Win95/98/NT4.0和Windows 2000中存在为美国国家安全局提供的一个后门。该后门表明微软的加密API(CryptoAPI)结构存在安全漏洞。由于加密API是Windows安全体系的基石,任何的漏洞都将导致Windows遭受外来的电子攻击。

     在CryptoAPI中,我们知道Windows用“加密公钥”在使用CryptoAPI的模块之前来验证这一模块的一致性。

    而在WindowsNT4的补丁5中,微软犯了一个严重的“错误”,忘记将识别安全部件的符号信息移去。这使得Andrew发现了Windows系统中存在两个密钥,一个属于微软,用以认证加密API服务,另一属于美国国家安全局,从而也允许它调用加密API服务,从而无需你的许可访问你的机器。

    结果是,美国国家安全局可以轻而易举地无需经过认证调用所有Windows系统的安全服务。一旦这些服务启动,他们可以完全控制你的机器。对于使用WindowsNT进行安全数据服务的非美国用户而言,这是十分令人担忧地。美国政府正尽量使在美国之外其它国家很难采用“强”加密技术。他们在世界最流行的操作系统中安装安全后门将给我们带来强烈震撼。

    然而,在这个坏消息中有个好消息。在实现这个“加密认证”功能中也存在一个安全问题。加密认证启动后,用户可以简单地删除或替换“美国国家安全局”密钥而不破坏操作系统。由于“美国国家安全局”密钥可以被轻易替换掉,非美国的用户可以方便地在Windows中安装一个更强的加密服务,而无需经过微软与“美国国家安全局”的同意。一个取代“国家安全局”密钥的程序可以在HTPP…. 中取得。

技术细节

微软加密API概况

微软加密API(CryptoAPI)允许独立软件开发商(ISV)动态地加载加密模块(CSP):

    Windows对加密模块进行签名认证的这一体系结构允许在操作系统中加入不同的加密实现方法。除非你同意接受美国的出口许可,否则微软不会对你的加密模块提供数字签名。换言之,微软从不允许非美国的公司在Windows中加入强加密服务。

    幸运地是,在这个图中的“加密服务提供者”的数字签名程序有一个安全问题。

漏洞是怎么发现的

    使用NT4服务器,补丁5(美国版,128位加密版),Visual C++ 6,补丁3。同样的结果可以在Win95osr2, Win98, Win98黄金版,WinNT4(所有版本),与Windows2000(到预发布版1为止)

通过调试器可以看到:

在加密服务提供者装载前 在动态连接库 ADVAPI32.DLL 中
地址 0x77DF5530 A9 F1 CB 3F DB 97 F5 ... ... ...
地址 0x77DF55D0 90 C6 5F 68 6B 9B D4 ... ... ...

在RC4加密方法使用后 可以看到
A2 17 9C 98 CA R S A 1 ... 00 01 00 01 ...(看起来像RSA密钥)
A0 15 9E 9A CB R S A 1 ... 00 01 00 01 ...(看起来像RSA密钥)

检查SP5的补丁中的符号表 在"_CProvVerifyImage@8" 中
地址 0x77DF5530 标记为“_KEY”
地址 0x77DF55D0 标记为 “_NSAKEY”

为什么人们认为这是一个“间谍密钥”呢?

1. 这个密钥令人吃惊地叫候选作“NSA密钥”, 即为美国国家安全局National Security Agency 的缩写“NSA”;
2. 在Windows中存在这第二个密钥是从不为人知的;
3. 这第二个密钥是用来干什么的呢?


    针对微软的软件安全系统中发现的安全漏洞,著名的德国黑客组织Chaos Computer Club(CCC),要求政府立法规定软件公司必须向用户毫无保留地说明其软件产品中的任何“后门”。这种计算机软件后门,可以让知道后门的人在用户不知晓的情况下访问用户的计算机数据。Chaos Computer Club是在上周五发布的一份声明中做上述要求的,声明还要求欧洲的一个开放源代码软件的开发者确保其软件中没有后门。这个黑客组织在声明中声称:“用户不再被任何所谓的安全功能所欺骗了。” 上周,加拿大的Cryptonym声称:微软的密码系统中有一个后门,这个后门可以让美国国家安全部(NSA)秘密访问用户的Windows程序。

    基于Cryptonym的指控,CCC表示用户不能依赖微软的软件产品了,即使这些软件通过公共机构的安全测试也不值得信任,因为NSA完全有可能将这些软件更换成自己的特制的版本。

    CCC的发言人表示,这样的美国软件产品在欧洲所造成的经济和政治损失几乎无法估量。他还批评德国政府让其他人掌握了政府关键部门计算机系统的密钥,并放任政府关键部门的计算机系统采用基于Windows的软件。

    微软的密码系统,可以让外部的程序员或公司为Windows程序提供加密功能。微软也可以用自己的公用密钥来检查加密程序。Cryptonym认为:微软密码系统还有第二个密钥,这个密钥由NSA掌握。

    国内外的新闻组亦比较关注此事,众说不一,也有人指出,美国国家安全局如果真的为了将来的信息战而不得不需要key的话,也不必叫微软再为其定制一个key,可以直接叫微软交出原始key,而不需要冒这么大的风险。

    至于这是否真的是微软为美国国家安全局所预留的一个key呢?还是象微软所说的仅仅是一个后备密钥,而取名是的NSAKEY也仅仅纯属巧合?(微软公司就此事已经在其网站上声明)到目前为止,所发现的也仅仅是其密钥标记为NSAKEY,所有迷底的答案只有让读者自己去思考了!