Windows Update存在隐私问题? | ||
---|---|---|
http://www.sina.com.cn 2003年03月04日 11:23 计算机世界网 | ||
刘彦青 编译 Windows Update的隐私政策过去一直比较简单明了,它声称任何操作“都不会向微软公司发送任何数据”,使我们确信微软公司非常尊重我们的隐私。但这一状况已经改变了。 新版Windows Update向微软公司的升级服务器发送大量的信息,不幸的是,传输的确 Windows Update包含一些有大量嵌入Java脚本代码和一个COM组件组成的HTML网页。当用户在IE中打开Windows Update的链接━━http://v4.windowsupdate.microsoft.com/default.asp时,这些组件就会下载到用户的计算机上。Java脚本代码的主要任务是与用户进行交互,更有趣的功能隐藏在COM组件内部。 当用户选择显示可供安装的升级包时,Windows Update不仅仅会从微软公司的服务器向用户的计算机上传输数据,还会从用户的计算机上向微软公司的服务器传输数K字节的数据,这才是我们真正感兴趣的部分,但不幸的是,这一数据是通过一个加密的SSL连接传输的,因此我们无法使用网络数据包分析器对它进行分析。 我们的第一种方法利用了Windows Update使用WinInet API处理SSL连接和数据传输的事实。通过分析HttpOpenRequest()函数和传递的参数,我们可以知道,这些数据是通过由HTTP POST请求组成的SSL连接由用户的计算机传向微软公司的服务器的。通过进入InternetWriteFile()函数,我们就能够看到要传输到微软公司服务器的加密前的数据。 这一任务是由tecDump工具完成的。它需要一个日志文件,启动IE,打开Windows Update的链接地址,进入InternetWriteFile()函数。当在Windows Update中选择“scan for updates(扫描升级包)”,tecDump就会开始“活动”,将截听到的数据以二进制的形式写到指定的日志文件中。 需要指出的是,我们在本篇文章中利用了Windows Update中没有公开的功能,如果一个升级包,例如新的服务包或补丁软件,改变了这一特性,这一工具就会失效。 tecDump工具显示,Windows Update使用了POST请求来向微软公司的服务器传输SOAP消息。截取的消息格式如下: > 和标志是SOAP封装要传输的信息所必需的,Windows Update使用这些信息来实现一个RPC(远程过程调用)机制。Windows Update传输给微软公司服务器的SOAP消息包含在服务器上执行的函数名字以及传递给该函数的参数。当从Windows Update接收到一个消息时,服务器就会运行一个带有特定参数的特定函数,将将结果封装进另一个SOAP消息,该SOAP消息将在对POST请求的HTTP应答中传输给Windows Update。 这些工具使用了Windows-API和Windows Update服务中没有公开的功能,新的服务包或软件补丁可能使这些工具失效。 我们在本篇文章中提到的资料与微软公司提供的不大清晰的资料是一致的。我们认为,Windows Update在隐私方面最大的问题就是传输回微软服务器的硬件清单。老版本的Windows Update采取的方法是先下载一个完整的升级包清单,然后挑选出用户计算机需要的升级包,而不向微软公司的服务器发回任何机密资料。 这一方法不仅仅适用于驱动程序升级,服务器端过滤也可以用来判断用户的计算机上安装了哪些软件。想象一下微软公司将知道你是否在运行Mozilla 1.0。当Windows Update向微软公司的服务器发出一个提供者级的请求时,它就会为Mozilla 1.0创建一个产品类,例如mo10,添加一个判断是否安装了Mozilla 1.0的规则,并返回该产品类。 新产品类也可以用于好的动机,从技术角度看,它们使得Windows Update更容易向软件厂商开放。目前,Windows Update还没有利用COM组件的显示所有安装软件的开发商的能力,但在未来,这可能是一个隐私问题。
|