对于PKI(公钥基础结构)及证书服务的通俗理解
对于PKI及证书服务的这些概念,相信初学者会有许多迷惑的地方,那是因为其中的某些关键概念没有理解清楚,我力争以通俗易懂的方式给初学者一些启示,也给以后自己忘了的时候一个参考:) !
参考资料:http://technet.microsoft.com
基本概念:
1.接收证书的实体是证书的“使用者”;证书的颁发者和签)。
解读:证书是使用者用来证明自己身份的凭证,实际上是证书的拥有者,这个证书在使用者申请后由CA颁发。证书拥有者可以是人员(例如用户)、设备(例如计算机)和计算机上运行的服务(例如 IPSec)。CA可是不会随便颁发证书给你的,他把证书颁发给你,就说明承认了你的合法性,说明你符合了他的策略。
2.证书包含的信息:
|
? |
使用者的公钥值。 |
|
? |
使用者标识信息(如名称和电子邮件地址)。 |
|
? |
有效期(证书的有效时间)。 |
|
? |
颁发者标识信息。 |
|
? |
颁发者的数字签名,用来证明使用者的公钥和使用者的标识信息之间的绑定关系是否有效。 |
解读:有了颁发者的数字签名,就说明了CA承认了这张证书的有效性,数字签名是使用私钥的,是CA的私钥,也就是谁签名就用谁的私钥,以验证身份,这也正是数字签名的作用。至于使用者的公钥,别人可以用它来加密,加密了的信息只有用使用者的私钥才能解密,这个私钥是保密的,只有使用者知道,除非他泄露了!
这里要理解两个相关的概念:数字签名和加密。
数字签名:验证身份,使用签名者的私钥,因为这个密钥只有签名者自己知道,所以别人也就认为这个签名是由签名者作出的,所以要做好私钥的保密性!
加密:在发送方和接收方之间传递信息,如果对信息进行加密,将会增强安全性。这个加密使用接收方的公钥,但是,只有接收方的私钥能够解密。而公钥是公开的,只要拿到接收方的一张证书,就能知道他的公钥了。为了向发送方证明自己的身份,接收方会向发送方传送自己的证书。注意和数字签名的区别,可以简单理解为数字签名是使用发送方的私钥,而加密是使用接收方的公钥!
3.公钥和私钥
在任何情况下,当您生成了新证书的申请时,该申请中的信息都将先从申请程序传到 CryptoAPI 中。CryptoAPI 会将正确的数据传送到名为加密服务提供程序 (CSP)(安装在您的计算机上或您的计算机可以访问的设备上)的程序中。如果 CSP 是基于软件的,它将在您的计算机上生成一个公钥和一个私钥,这两个密钥通常称为密钥对。如果 CSP 是基于硬件的,例如智能卡 CSP,它将指示由一个硬件生成密钥对。
密钥生成后,软件CSP 将进行加密并保护私钥的安全。智能卡CSP 将私钥存储在智能卡中,并由智能卡控制对该密钥的访问。公钥连同证书申请者信息一起被发送到证书颁发机构。一旦 CA 根据它的策略确认了证书请求,它将使用它自己的私钥在证书上创建数字签名,然后将它颁发给申请人。随后,证书申请人将获得来自 CA 的证书以及相应的选项,以便将它安装在计算机或硬件设备上的适当证书存储区。
加密服务提供程序 (CSP) 是 Windows 操作系统中提供一般加密功能的硬件和软件组件。可以编写这些 CSP 以提供各种加密和签名算法。
解读:主要是针对非对称加密算法,CSP会自动生成密钥对,其中公钥是公开的,但私钥一定要保密。数字证书中包含了公钥信息。
CSP是真正实行加密的独立模块,他既可以由软件实现也可以由硬件实现。但是他必须符合CryptoAPI接口的规范。每个CSP都有一个名字和一个类型。每个CSP的名字是唯一的,这样便于CryptoAPI找到对应的CSP。目前已经有9种CSP类型,并且还在增长。每个CSP有一个密钥库,密钥库用于存储密钥。而每个密钥库包括一个或多个密钥容器(KeyContainers)。每个密钥容器中含属于一个特定用户的所有密钥对。每个密钥容器被赋予一个唯一的名字。在销毁密钥容器前CSP将永久保存每一个密钥容器,包括保存每个密钥容器中的公/私钥对。
4.信任的建立
当两个实体(例如设备、个人、应用程序或服务)试图建立标识和信任时,如果两个实体都信任相同的证书颁发机构(CA),就能够在它们之间实现标识和信任的结合。当某个证书使用者提供了由受信任的 CA 所颁发的证书之后,试图与之建立信任的实体通过将证书使用者的证书保存在它自己的证书存储中,并且(如果适用)使用包含在证书中的公钥来加密会话密钥以便使所有与证书使用者进行的后续通讯都是安全的,就可以继续进行信息交换。
解读:并不是别人给我们一张证书我们就承认他的,就像文凭一样,中国的大学毕业证书到了国外就不承认了,我们要信任证书使用者的身份,必须首先要信任给他颁发证书的证书颁发机构(CA),就像必须先承认大学,才能承认他的证书一样。而要信任CA,机器上必须装有CA证书,即CA Certificate,这个是证明CA身份的证书,可以是其他CA颁发给他的,也可以是自签名的(也就是自己颁发给自己的)。很多CA都是公认的,像我们个人也可以向第三方CA申请证书,比如Verisign,就是需要Money!
一个简单的实例是,通信双方A和B,A可以生成自签名证书(比如像Cisco的ACS),A生成自签名证书后,在A上安装,这样A就信任A颁发的证书了,把这份证书copy到B上并安装,这样B也信任A颁发的证书了,这样A和B就信任相同的CA,就可以相互验证身份了!有自签名证书也免去了单独安装证书服务器或向第三方CA申请证书的麻烦。
对于PKI(公钥基础结构)及证书服务的通俗理解的更多相关文章
- PKI/CA与证书服务
目录 PKI CA RA LDAP目录服务 CRL证书作废系统 数字证书 证书验证 证书撤销 证书更新 PKI系统的构成 PKI PKI(Public Key Infrastructure)公钥基础设 ...
- PKI公钥基础设施简介
PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书.一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的 ...
- 二进制文件安装k8s所需要的证书服务
利用二进制文件安装etcd所需要的证书服务 CFSSL是CloudFlare开源的一款PKI/TLS工具. CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API ...
- 什么是SSL证书服务?
SSL证书服务(Alibaba Cloud SSL Certificates Service)由阿里云联合多家国内外数字证书管理和颁发的权威机构.在阿里云平台上直接提供的服务器数字证书.您可以在阿里云 ...
- Security基础(三):OpenSSL及证书服务、邮件TLS/SSL加密通信
一.OpenSSL及证书服务 目标: 本案例要求熟悉OpenSSL工具的基本使用,完成以下任务操作: 使用OpenSSL加密/解密文件 搭建企业自有的CA服务器,为颁发数字证书提供基础环境 方案: 使 ...
- Windows Server中企业证书服务的安装
目录 企业证书服务的安装 证书服务的应用 企业证书服务的安装 企业证书服务是基于域的,所以需要该服务器是域控服务器. 添加角色,勾选 Active Directory 证书服务 然后后面的一直下一步, ...
- 阿里云配置ssl证书服务遇到的几个问题和解决方法
系统环境: 系统:阿里云ECS CentOS6.5+Apache2.4.10 前提:公司需要将站点升级到使用SSL证书服务(https) 实践执行:在阿里云的证书服务--选择了一个免费的证书服务,毕竟 ...
- 如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件
很久都没写什么博客了,前一段时间学习2008 R2时,在自己的电脑上同时安装AD 和证书 往往会出现一个CertificationAuthority错误,如下: 产生问题的主要原因是: 证书服务器与D ...
- 如何选择SSL 证书服务
从信任等级的角度来说,SSL证书主要分为三类: 1. 域名型https证书(DVSSL):信任等级一般,只需验证网站的真实性便可颁发证书保护网站: 2. 企业型https证书(OVSSL):信任等级高 ...
随机推荐
- 4.python函数基础
一.函数 1.函数简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但 ...
- 一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
在开发中,经常用到选择多张图片进行上传或作其他处理等等,以下DEMO满足了此功能中的大部分功能,可直接使用到项目中. 主要功能如下: 1,图片九宫格排列(可自动设置) 2,图片长按抖动(仿苹果软件删除 ...
- HDU1695 GCD (欧拉函数+容斥原理)
F - GCD Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- w
w --help -f 开启或关闭显示用户从何处登入系统. -h 不显示各栏位的标题信息列. -l 使用详细格式列表,此为预设值. -s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗 ...
- 拷贝Java项目报错
经常需要将一个项目,导出,然后发给同事,或者是自己用另一个Eclipse工具打开. 这时,导入项目后,就会出现各种各样的问题.大牛笔记:www.weixuehao.com 代码相同,环境不同,主要是修 ...
- 【Python】【解决】UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 1: ordinal not in range(128)
1.问题描述 今天在升级Ubuntu到14.04,使用命令行启动软件更新器,进行版本升级,结果开始升级就异常退出了,具体打印如下: $update-manager -d 正在检查新版 Ubuntu 使 ...
- poj 1113:Wall(计算几何,求凸包周长)
Wall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28462 Accepted: 9498 Description ...
- C# 常用正则表达式
// 匹配移动手机号 @"^1(3[4-9]|5[012789]|8[78])\d{8}$"; // 匹配电信手机号 @"^18[09]\d{8}$"; ...
- hdu 1542 扫描线求矩形面积的并
很久没做线段树了 求矩形面积的并分析:1.矩形比较多,坐标也很大,所以横坐标需要离散化(纵坐标不需要),熟悉离散化后这个步骤不难,所以这里不详细讲解了,不明白的还请百度2.重点:扫描线法:假想有一条扫 ...
- H.264 基础及 RTP 封包详解
转自:http://my.oschina.net/u/1431835/blog/393315 一. h264基础概念 1.NAL.Slice与frame意思及相互关系 1 frame的数据可以分为多个 ...