尽管Windows不再具备往日那样的统治地位,在智能手机领域,甚至已经沦落为一种小众平台,Windows仍然是主要的商业应用运行平台、软件开发平台、硬件及结构等设计软件运行平台。大多数人在学习计算机时,会首先面对一台Windows计算机。多年来,为了应对不断演化的安全环境,Windows发展起来了一套相当完善的,基于严格规范的密码学的加密安全体系。
今天所广泛使用的桌面Windows版本,如7、8以及不再更新的XP、即将发布的版本10,其基本构架都来自开始于1988年11月开发的Windows NT,可以认为它们都是源自NT的同构架演进版本。其演进次序可以认为是这样子的:NT、2000、XP、Vista、7、8、10。这些源于NT架构的Windows的一个基本特性是,利用386以后CPU硬件的特权保护机制,建立了用户态和内核态隔离的系统模型。操作系统核心组件运行在高特权级的内核态,通过硬件机制保证了运行于用户态的一般应用程序无法破坏操作系统的完整性和安全性。遗憾的是,由于这一架构下的大多数硬件设备驱动程序也是运行在内核态,一些恶意软件把自己编译成设备驱动程序的形态,通过盗版、诱骗、系统漏洞等途径渗入系统,仍然严重的威胁着系统的安全。Windows 7以后,特别是64位版本,对驱动程序的加载给予更严格的限制,结合用户态驱动程序框架(UMDF)的逐渐推广,这一问题得到了一定的缓解。
Windows 2000在2002年10月,被认定为满足CC的“受控访问“级别的安全需求,相当于桔皮书TCSEC中的C2安全级别。windowsXP/2003公共安全标准安全目标明确指出了以下加密技术需求:
1.基于密码学的自主访问控制功能;
2.敏感数据保护;
3.VPN;
4.公钥基础设施;
5.数字证书颁发和管理。
这些加密技术在Windows安全机制中的实现,一方面使得Windows系统自身成为一个较强的加密系统;另一方面,基于Windows的加密技术,应用软件比较容易获得一个有着较完整保护机制的加密。Windows加密机制的架构设计也可以作为我们设计自己的加密系统的重要参考。
Windows加密系统有这样一些特性:
1.基于现代密码学理论;
2.与硬件安全机制结合;
3.与系统安全机制紧密结合;
4.符合Kerboros、SSL、IPSec等公开的通用安全协议规范;
5.支持附加的硬件,如智能卡,USBkey等;
6.符合很多国家和地区的法律法规要求,经过了美国、欧洲等国家权威机构安全认证;
7.提供应用软件编程接口(API),第三方应用软件可以调用Windows实现的基本加密函数,也可以直接利用windows的系统加密存储或者传输保护功能
8.支持扩展新的算法,各种加密硬件,一般都有windows驱动,支持windows的加密硬件,是最丰富的。
Windows系统加密功能一个缺点是,出口到北美以外地区的使用的算法不够强,NSA限制了其包含的加密算法强度。就连在其他国家和地区开发实现的加密软件包,如果需要微软签署以加入windows加密体制,都必须符合美国政府的出口限制策略,送到微软总部进行数字签名。这也是一些应用在windows平台使用OpenSSL等第三方加密软件包的原因之一。
尽管如此,对于一般商业用途,windows内置的加密软件包方便够用。Vista以后,美国政府在含有强加密算法产品出口策略上有所改变,像Suite B这样,达到美国政府和军队机密级别信息保护要求的算法套件,也被内置在Windows系统中。除非考虑NSA为对手,Windows内置的加密算法强度是足够的。在商用环境里,使用USB Key等扩展的加密硬件,一般是为了加强密钥保护或是提高加密性能。