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,利用这些系统中实现了的加密协议,加密保护应用程序在网络上传输的信息。
Windows加密技术概述的更多相关文章
- .NET加密技术概述
微软.NET 的System.Security.Cryptography中的类实现了各种具体的加密算法和技术.这些类,有一些是非托管 Microsoft CryptoAPI 的包装,而另一些则是纯粹的 ...
- IM-即时通讯技术概述
IM-即时通讯技术概述 简述 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.大多数常用的即时通讯发 ...
- android 数据加密——加密的概述
数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文.数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法.它利 ...
- 【云安全与同态加密_调研分析(8)】同态加密技术及其应用分析——By Me
◆同态加密技术(Homomorphic Encryption, HE)及其应用◆ ◆加密方案◆ ◆应用领域◆ ◆厂商◆ ◆同态加密现有产品形态和工程实现◆ ◆参考链接◆ ◆备注(其他参考信息)◆ 同态 ...
- Windows加密API的功能分类
本地数据加密保护本地数据加密保护机制提供了简单的DAPI调用接口,密钥管理等等一概由系统来处理.DAPI的数据加密保护机制在用户登录会话范围或者本地计算范围,使用操作系统设计的方式加密保护数据和解密还 ...
- Windows加密API的层次
Windows平台下的应用程序可以分为托管的.NET程序和本机的Win32(以及Win64)两大类..NET有着类似于JAVA的虚拟机和二进制码托管运行环境,提供了在不同Windows平台上的代码可携 ...
- Windows加密服务架构
Windows加密是安全体系的重要基础和组成部分.现代CPU的保护模式是系统安全的硬件基石,基于CPU硬件的特权分级,Windows让自身的关键系统代码运行在高处理器特权级的内核模式,各种应用程序则运 ...
- PHP加密技术
一.MD5加密 直接干,这里以一个登录页面为例: <?php require_once 'config/database.config.php'; $act=$_REQUEST['act']; ...
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC 博客分类: Java/Security Javabase64macmd5sha 加密解密,曾经是我一 ...
随机推荐
- EF 完成指定数据迁移
Update-Database -ConfigurationTypeName Bmw.Services.DealerService.WebApiHost.MigrationsOfDealerDB.De ...
- c++最短路经典问题
一提起最短路,各位oier会想到什么呢? floyd,spfa,dij,或是bellman-ford? 其实,只要学会一种算法,大部分最短路问题就能很快解决了. 他就是堆优化的dijkstra. 首先 ...
- C# 继承(4)
接上章: class NameList { public NameList() => Console.WriteLine("这个是NameList的构造函数"); publi ...
- PHP的Composer 与 Packagist,简单入门
[转]http://www.php.cn/manual/view/34000.html Composer 是一个 杰出 的依赖管理器.在 composer.json 文件中列出你项目所需的依赖包,加上 ...
- Mysql的用户基本操作
创建用户: mysql> create user 'cai'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.0 ...
- 【spring】@Qualifier注解
近期在捯饬spring的注解,现将遇到的问题记录下来,以供遇到同样问题的童鞋解决~ 先说明下场景,代码如下: 有如下接口: public interface EmployeeService { pub ...
- kibana安装汉化包
kibana安装汉化包其实很简单!但要找到汉化包可能就很麻烦了.我这里提供了6.2的版本的汉化包!至于能不能在其他版本用,我就没试过了.但6.2的kibana本人亲测.没问题!!!! 下载——解压.这 ...
- java 实现在线阅读 .pdf
1.资源的本地地址 2.设置响应头 3.代码实现 @ResponseBody @RequestMapping(value = "/read") @ApiOperation(valu ...
- 用IDM下载博客图片
前言 写博客的人一定都会有一个图床,将图片存在那里.发现自己以前没有注意图片来源问题,随手就贴在博客上面了.现在有不少图片都挂了,换句话来说有可能自己目前用的图床不提供服务了,那所有的图片都有可能丢失 ...
- HLS-搭建Nginx流媒体服务器
Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒 ...