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

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

CryptoAPI架构示意图

CNG架构示意图 

Crypto API和CNG不仅是两组API,也呈现出来了操作系统加密技术架构。以CryptoAPI为例。任何厂商都可以以自己的方式实现加密算法,按照CSP规范,实现CryptoSPI,即可把自己的算法实现加入Windows系统。用户使用操作系统定义的CryptoAPI函数,能够调用已经注册的任何算法的实现。

微软随Windows系统提供了几个CSP,这些CSP所实现的算法任何Windows程序都可以直接使用,无需依赖第三方加密软件。

Windows加密服务架构的更多相关文章

  1. windows网络服务之配置网络负载均衡(NLB)群集

    O首页51CTO博客我的博客 搜索 每日博报 社区:学院论坛博客下载更多            登录注册 家园 学院 博客 论坛 下载 自测 门诊 周刊 读书 技术圈 曾垂鑫的技术专栏 http:// ...

  2. 基于AWS的云服务架构最佳实践

    ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...

  3. Spring Cloud 微服务架构学习笔记与示例

    本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...

  4. Windows加密技术概述

    Windows加密是安全体系的重要基础和组成部分.现代CPU的保护模式是系统安全的硬件基石,基于CPU硬件的特权分级,Windows让自身的关键系统代码运行在高处理器特权级的内核模式,各种应用程序则运 ...

  5. Windows Server服务器之介绍及版本信息

    Windows Server是Microsoft Windows Server System(WSS)的核心,Windows的服务器操作系统.每个Windows Server都与其家用(工作站)版对应 ...

  6. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  7. Windows平台分布式架构实践 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  8. 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端

    在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...

  9. WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例

    最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...

随机推荐

  1. CentOS6.5安装mysql-5.7.18-1.el6.x86_64.rpm-bundle.tar

    本文内容为转载内容,具体作者忘记是谁了,在收藏夹找到的 先去官网(https://dev.mysql.com/downloads/mysql/),在Select Operating System选择R ...

  2. 关于Git的那些事

    以前一直使用tfs 或者svn当做代码管理器,随着GitHub的越来越火,git的使用人说也越来越多,这不我也开始来折腾git .GitHub的连接速度有的时候很慢,在国内不是太稳定,正好看到开源中国 ...

  3. python之爬虫(三) Urllib库的基本使用

    官方文档地址:https://docs.python.org/3/library/urllib.html 什么是Urllib Urllib是python内置的HTTP请求库包括以下模块urllib.r ...

  4. MyBatis框架流程

    Hibernate与Mybatis的本质区别和应用场景 Hibernate:标准的ORM框架,不需要写SQL语句,但是优化和修改SQL语句比较难. 应用于需求变化固定的中小型的项目,例如后台管理系统. ...

  5. Spring AOP 杂谈

    其实AOP的思想现在讲的已经很多了,本身没有什么难点,难的是AOP有自己的一套术语,而我们经常被这套术语搞晕.术语没招,只能理解背诵了,尽管背诵很讨厌,可大家都这么说,不知道,就会被说晕. AOP思想 ...

  6. leetcode-682-Baseball Game

    题目描述: You're now a baseball game point recorder. Given a list of strings, each string can be one of ...

  7. Windows/Ubuntu下,将所有文件名字列举出来并保存到txt文件中

    Windows下 使用如下的DOS命令来实现: dir /s /b > lists.txt 可以将当前路径下的所有文件的"文件路径+文件名"存储在lists.txt中. 其中 ...

  8. weex 自定义Component

    扩展iOS的功能 ~  Component 与UI控件相关 ,即通过原生方法创建UI界面,返回给weex 使用 一. 新建 WXComponent 的子类     在子类实现WXComponent 的 ...

  9. jsoup 抓取省市区

    package com.xazhxc.htjcom.back.controller.base; import cn.hutool.core.util.StrUtil; import com.aliba ...

  10. px,em, rem的区别,在项目中怎么使用rem.

    一.px px像素,绝对单位.像素px是相对于显示器屏幕分辨率而言的,是一个虚拟的长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度单位,需要指定精度DPI. 二.em em是相对长 ...