当人们在比较32位的Windows Vista与64位Vista的时候总是将注意力集中在系统内存的问题上。也许这是因为,64位的Vista的地址空间不再受限于4GB,它允许用户最多可扩容至128GB。
但同时,支持大容量内存也带来了一些安全问题。64位版本的Vista提供补丁保护(内核补丁保护)、地址空间布局随机化(ASLR)、堆栈随机化及对堆栈损坏保护等多种保护功能。
大家关注的基于堆缓冲区溢出问题,虽然32位和64位的Vista都提供保护,但只有64位版本的操作系统在默认状态下提供堆栈损坏保护。
微软高级程序安全经理Michael Howard解释说,在32位的Vista系统中,软件开发者为了增强堆栈损坏保护功能,只得调用HeapSetInformation 接口。
相比较而言,64位的Vista不仅默认就检测基于堆的缓冲区溢出,而且还将提供与堆栈相关的非法操作的保护功能。