对于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(公钥基础结构)及证书服务的通俗理解的更多相关文章

  1. PKI/CA与证书服务

    目录 PKI CA RA LDAP目录服务 CRL证书作废系统 数字证书 证书验证 证书撤销 证书更新 PKI系统的构成 PKI PKI(Public Key Infrastructure)公钥基础设 ...

  2. PKI公钥基础设施简介

    PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书.一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的 ...

  3. 二进制文件安装k8s所需要的证书服务

    利用二进制文件安装etcd所需要的证书服务 CFSSL是CloudFlare开源的一款PKI/TLS工具. CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API ...

  4. 什么是SSL证书服务?

    SSL证书服务(Alibaba Cloud SSL Certificates Service)由阿里云联合多家国内外数字证书管理和颁发的权威机构.在阿里云平台上直接提供的服务器数字证书.您可以在阿里云 ...

  5. Security基础(三):OpenSSL及证书服务、邮件TLS/SSL加密通信

    一.OpenSSL及证书服务 目标: 本案例要求熟悉OpenSSL工具的基本使用,完成以下任务操作: 使用OpenSSL加密/解密文件 搭建企业自有的CA服务器,为颁发数字证书提供基础环境 方案: 使 ...

  6. Windows Server中企业证书服务的安装

    目录 企业证书服务的安装 证书服务的应用 企业证书服务的安装 企业证书服务是基于域的,所以需要该服务器是域控服务器. 添加角色,勾选 Active Directory 证书服务 然后后面的一直下一步, ...

  7. 阿里云配置ssl证书服务遇到的几个问题和解决方法

    系统环境: 系统:阿里云ECS CentOS6.5+Apache2.4.10 前提:公司需要将站点升级到使用SSL证书服务(https) 实践执行:在阿里云的证书服务--选择了一个免费的证书服务,毕竟 ...

  8. 如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件

    很久都没写什么博客了,前一段时间学习2008 R2时,在自己的电脑上同时安装AD 和证书 往往会出现一个CertificationAuthority错误,如下: 产生问题的主要原因是: 证书服务器与D ...

  9. 如何选择SSL 证书服务

    从信任等级的角度来说,SSL证书主要分为三类: 1. 域名型https证书(DVSSL):信任等级一般,只需验证网站的真实性便可颁发证书保护网站: 2. 企业型https证书(OVSSL):信任等级高 ...

随机推荐

  1. BestCoder16 1002.Revenge of LIS II(hdu 5087) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5087 题目意思:找出第二个最长递增子序列,输出长度.就是说,假如序列为 1 1 2,第二长递增子序列是 ...

  2. python scrapy cannot import name xmlrpc_client的解决方案,解决办法

    安装scrapy的时候遇到如下错误的解决办法: "python scrapy cannot import name xmlrpc_client" 先执行 sudo pip unin ...

  3. 原始套接字(SOCK_RAW)

    本文转载:http://www.cnblogs.com/duzouzhe/archive/2009/06/19/1506699.html,在此感谢 原始套接字(SOCK_RAW). 应用原始套接字,我 ...

  4. div img居中的方式

    想让div中的img水平和垂直都居中,可以将img放在div中,img的样式:height:100%;width:100%; 外部定义div的宽度和高度,然后定义line-height行高,div外部 ...

  5. FZU 2183 字符串处理

    Problem Description 现在有一些被简单压缩的字符串,例如:a[120]代表120个a.对于字符串acb[3]d[5]e相对于acbbbddddde 现在给你两个字符串cString, ...

  6. hadoop1.2.1的namenode格式化失败的问题

    最近要开始找工作,就在原来搭建好的hadoop1.2.1的伪分布式跑跑mapreduce 很久没用,就想着格式化一下namode,结果: Format aborted in /uar/local/ha ...

  7. Java入门知识点:

    1.跨平台性主要原理是:在需要运行的java应用程序的操作系统上安装了一个对应操作系统对应版本的JVM(Java Virtual Machine)java虚拟机即可,由JVM来负责Java程序的在该系 ...

  8. Java的线程模型

    并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系. 线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开, ...

  9. Python实践:开篇

    一.概述 Python实践 是应用Python解决实际问题的案例集合,这些案例中的Python应用通常 功能各异.大小不一. 该系列文章是本人应用Python的实践总结,会不定期更新. 二.目录 Py ...

  10. BZOJ1508 : [NOI2003]Game

    a[i][j]:i移动一根变成j是否可能 b[i][j]:i增加一根变成j是否可能 枚举在一个数字中移动的情况以及在两个数字中移动的情况 #include<cstdio> #include ...