zoukankan      html  css  js  c++  java
  • Windows加密技术概述

    Windows加密是安全体系的重要基础和组成部分。现代CPU的保护模式是系统安全的硬件基石,基于CPU硬件的特权分级,Windows让自身的关键系统代码运行在高处理器特权级的内核模式,各种应用程序则运行在低处理器特权级的用户态,保证了系统层面的基本安全控制逻辑(如内存、文件等系统资源的访问控制机制等)的有效性。加密技术与系统安全控制逻辑的结合,使得用户信息在面对一定程度上不可靠的存储和传输环境时,如计算机失窃、存在网络嗅探的情形下,仍能保持其私密性、不可篡改的完整性等安全属性。

    Windows加密技术可以从两个层面予以讨论。其一是基本的加密算法服务,这是基本的层面,在这个层面上,摘要,对称加密,非对称加密等基本的加密算法可以通过CryptoAPI等操作系统API接口,为应用程序所用。其二是Windows系统加密功能,这个层面的内容包括EFS,用户信息保护,SSL等网络加密协议等等。Windows在其基本加密算法服务的基础上,建立一个较为完善的加密系统。这个加密系统一方面保护Windows系统(单机和域)的安全,另一方面,也提供了可供应用程序直接使用的系统级加密保护服务。

    Windows加密算法以服务提供软件包(CSP)机制组织管理。Windows定义了CSP的架构及其API。通过这些API函数,应用程序可以枚举系统中存在的CSP,选择符合自己需要的CSP,使用CSP所实现的算法进行加密操作。每个CSP包含有来自某个厂商实现的一组加密算法和密钥保护机制,不同的CSP可以含有相同算法的不同实现。有的CSP是与硬件结合的,算法逻辑和密钥保护实现在独立的硬件上,这种CSP起着接口适配作用,使得应用软件与这些加密硬件隔离开来。微软在Windows中预置了几个CSP,这些CSP所包含的加密算法在所有的Windows计算机上都是立即可用的。通过CSP框架,应用软件可以使用Windows定义的统一API,实施加密操作。这样,应用很容易适应不同的加密算法实现方式。看上去差异很大的加密实现方式,对于应用程序来说,只是CSP名称的差异。CSP的选用很容易做成可以配置的选项,有应用系统集中管控或者由终端用户自行选择。

    Windows加密系统的目标有,保护Windows计算机和Windows网络自身、用户账户安全、用户数据安全。Windows系统发行介质含有微软的公钥,使用基于数字签名技术的代码签名机制,来验证系统组件的完整性。这一完整性保证了系统代码的确来自微软官方,不会被第三方篡改。

    在Windows被安装到一台计算机上的时候,会随机生成该计算机的安全标识(SID)和设备主密钥。设备主密钥被用来保护本地计算机边界之内的数据,验证设备在Windows域中成员身份。

    在Windows中创建一个用户帐户时,会产生一个用户SID和用户主密钥。用户主密钥密钥被用户口令加密保护。Windows系统为用户对一些重要的安全数据进行了加密,如数字证书私钥、系统工具保存的网络登录口令等等,这些都是由用户主密钥所保护的。由于用户主密钥使用用户口令加密存储,所以管理员强制重置用户口令时,是无法解密恢复原来的主密钥的。这时,我们会看到这样的提示:“您正在重置xxxx的密码。如果这样做,xxxx将丢失网站或网络资源的所有个人证书和存储的密码”。这也意味着即使是管理员,也不能通过重置口令这一途径读取用户的加密信息。值得注意的是,用户口令本身使用了摘要算法加密,为了对抗字典攻击,Windows在注册表中只保存了摘要值的一半比特。由于还原主密钥需要全部的比特,这使得攻击者即使“碰”上了注册表中的这一半比特,也不能解密还原用户的主密钥。

    Windows加密文件系统(EFS)对用户数据提供了保护。加密文件系统使用混合加密体制保护文件内容。每个EFS加密的文件都使用随机生成的不同对称密钥(FEK)保护。FEK被用户数字证书公钥加密保护,还原FEK需要能够访问用户的文件加密证书私钥。这一私钥又得到用户主密钥的保护,用户主密钥又在用户口令的保护之下。由于重置用户密码会失去原先的主密钥,从而失去EFS的访问能力,所以会导致不再能够打开原先使用EFS加密的文件。这种情况下,唯一的途径是使用在第一次加密文件时,备份的EFS文件加密证书私钥。EFS加密与不加密的区别在于,对于不加密的文件,具有管理员权限的账户,不登录用户账户,也能打开这些文件。设备或者硬盘失窃时,信息窃贼是很容易得到这样一个权限的,把硬盘挂在自己的计算机上就可以了。EFS以强加密阻止这一情况的发生。如果冠希当初勾选了文件夹的加密属性以开启EFS,再配合以一个不易猜测的Windows开机登录口令,他就不会因送修电脑而被那么早的被送上新闻头条。

    在保护本地各种加密要素安全的基础上,Windows实现了一系列网络加密协议,有些是Windows网络专用的,如RDP协议;有些是互联网通用的,如SSL、IPSec等。应用程序可以通过相关的加密API,利用这些系统中实现了的加密协议,加密保护应用程序在网络上传输的信息。

  • 相关阅读:
    Notes about "Exploring Expect"
    Reuse Sonar Checkstyle Violation Report for Custom Data Analysis
    Eclipse带参数调试的方法
    MIT Scheme Development on Ubuntu
    Manage Historical Snapshots in Sonarqube
    U盘自动弹出脚本
    hg的常用配置
    Java程序员的推荐阅读书籍
    使用shared memory 计算矩阵乘法 (其实并没有加速多少)
    CUDA 笔记
  • 原文地址:https://www.cnblogs.com/kodefun/p/4655863.html
Copyright © 2011-2022 走看看