1、概述

PKI:公钥基础设施。public key instruction。作用是通过加密技术和数字签名保证信息的安全。PKI是一套安全架构的总称,并非特指某一个软件或者某一台设备,其组成包括公钥加密技术、数字证书、CA(证书颁发机构)、RA(注册机构)

那么PKI保证了哪些信息的安全性呢?在此之前,我们需要简单了解一下信息安全这个概念。我们讨论信息安全的时候,一般使用三个主要要素来定义我们的信息或者信息系统是否安全。

2、信息安全三要素

机密性:防止信息被不该知道的人知道

完整性:防止信息被不该修改的人修改

可用性:保证信息被应该知道的人知道


这些要素可以看作是衡量指标,同时也是我们的目标和需求,那么为了实现我们的以上需求,我们可以通过加密/解密技术以及签名/认证技术来分别实现。


3、应用领域

1)SSL/HTTPS

网站运营、电商银行支付

2)IPSecV*P*N

3)部分远程访问V*P*N



4、公钥加密技术


作用是实现对信息的加密、数字签名等安全动作。

公钥加密的加密算法主要有RSA等非对称算法。这种算法的特点是加密密钥和解密密钥是不同的,我们不需要向对方通告我们的私钥,而只需要向对方通告对应的公钥,这样我们使用我们的私钥进行加密(也叫签名),对方就可以使用对应的公钥进行解密(也叫认证)来对信息的发送方也就是我们的身份进行验证,防止公鸡者给我们发送虚假信息或者我们事后对发送过的信息进行抵赖。

RSA的核心在于一个公钥只能对应一个私钥,但是持有一种密钥很难推断出其对应密钥的具体数值。

我们通过一张图简单了解一下rsa的工作原理。#yyds干货盘点# web安全day12:PKI_信息安全

关于公钥加密体系的更多内容,可以移步​​https://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html​

讲的非常清楚。

5、数字证书


通过公钥加密技术,我们已经可以实现身份的认证。但是作为认证方,我们也会产生疑问,公钥是否真的属于被认证方呢?如果有人冒充了我们的被认证方,即替换了公钥信息,我们如何验证呢?

我们想到,可以建立一个所有人都信任的机构,专门用来存放大家的公钥信息,存放的同时,还可以对大家的身份进行确认,即为公钥做认证,这个机构就是CA(certificate authority),证书中心。具体的方法就是同样使用公钥加密技术,为公钥进行签名,签名时使用该机构的私钥,而将机构的公钥公之于众,便于大家使用它对别人的公钥进行验证。这个被CA的私钥签名后的用户公钥就是数字证书,它的真实性由CA为其背书。

证书的格式遵循X.509标准,证书包含:使用者的公钥值、使用者的标识信息(如名称和电子邮件地址)。


6、CA

证书机构CA用于创建和发布证书,它通常为一个称为安全域(security domain)的有限群体发放证书。创 建证书的时候,CA系统首先获取用户的请求信息,其中包括用户公钥(如果用户端是个人使用或者测试用,则公钥一般由用户端产生,如电子邮件程序或浏览器等 或者使用第三方开发的具有独立CSP的智能终端如USBkey),CA将根据用户的请求信息产生证书,并用自己的私钥对证书进行签名。其他用户、应用程序或实体将使用CA的公钥对证书进行验证。如果一个CA系统是可信的,则验证证书的用户可以确信,他所验证的证书中的公钥属于证书所代表的那个实体。

一句话说:就是CA是权威的证书颁发机构,为了公正“公钥”的合法性。

7、RA

注册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。它主要完成收集用户信息和确认用户身份的功能。这里指的用户,是指将要向认证中心(即CA)申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。注册管理一般由一个独立的注册机构(即RA)来承担。它接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只是对用户进行资格审查。因此,RA可以设置在直接面对客户的业务部门,如银行的营业部、机构认识部门等。当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完成,而不设立独立运行的RA。但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。PKI国际标准推荐由一个独立的RA来完成注册管理 的任务,可以增强应用系统的安全。



8、实验一:部署http服务

我们需要一台windows7客户机和一台windows2008服务器,我们将windows7的ip地址设置为10.1.1.4/24,将windows2008的ip地址设置为10.1.1.5/24,并且将windows2008设置为我们实验环境的dns服务器,即在windows7中将dns指向10.1.1.5,特别需要注意的是我们的服务器和客户机都需要关闭防火墙。

#yyds干货盘点# web安全day12:PKI_公钥加密_02


#yyds干货盘点# web安全day12:PKI_公钥加密_03


测试防火墙是否关闭最简单的方式是ping,防火墙打开时默认会deny ping数据包。

#yyds干货盘点# web安全day12:PKI_数字证书_04


我们希望使用windows2008搭建一个网页服务器。


#yyds干货盘点# web安全day12:PKI_数字证书_05

根据我们今天的实验,我们需要勾选应用程序开发这一项。

#yyds干货盘点# web安全day12:PKI_公钥加密_06


安装完毕后,同样在开始--管理工具--iis管理器中打开。

#yyds干货盘点# web安全day12:PKI_服务器_07


我们可以尝试在windows7中检查iis服务有没有正常运行。

#yyds干货盘点# web安全day12:PKI_注册机构_08


出现以上界面说明服务正常开启。

我们尝试添加一个网站,在网站右键新建网站。

#yyds干货盘点# web安全day12:PKI_公钥加密_09


为了能够在windows7中访问该网页,还需要配置dns服务。此处略过。

最终,我们的windows7中可以访问该网站。

#yyds干货盘点# web安全day12:PKI_数字证书_10



9、实验二:升级https服务

点击服务器管理器--添加角色--active directory证书服务



#yyds干货盘点# web安全day12:PKI_服务器_11

我们知道证书颁发机构就是ca,但是只有ca还不够,还需要证书颁发机构web注册。

#yyds干货盘点# web安全day12:PKI_数字证书_12

企业选项适用于存在域的情况,而独立是没有域的情况。

#yyds干货盘点# web安全day12:PKI_服务器_13


指定ca类型--选择根ca

#yyds干货盘点# web安全day12:PKI_注册机构_14

设置私钥--选择新建私钥

#yyds干货盘点# web安全day12:PKI_数字证书_15


为ca配置加密--默认不变

#yyds干货盘点# web安全day12:PKI_数字证书_16

配置ca名称

#yyds干货盘点# web安全day12:PKI_服务器_17

设置有效期--表示ca的权威性的有效期

#yyds干货盘点# web安全day12:PKI_服务器_18

配置证书数据库--保持不变

#yyds干货盘点# web安全day12:PKI_服务器_19

安装完成

#yyds干货盘点# web安全day12:PKI_注册机构_20

进行验证

开始--管理工具--证书颁发机构

#yyds干货盘点# web安全day12:PKI_服务器_21


申请证书

#yyds干货盘点# web安全day12:PKI_数字证书_22

点击服务器证书--创建证书申请


#yyds干货盘点# web安全day12:PKI_数字证书_23

完成后会产生一个加密后的申请文本




#yyds干货盘点# web安全day12:PKI_注册机构_24


在浏览器中输入ca的站点即本iis ip地址加certsrv

#yyds干货盘点# web安全day12:PKI_公钥加密_25

选择申请证书--高级证书申请--使用base64编码的cmc或者pkcs提交申请--然后将此前的txt文本内容复制粘贴到内,点击提交申请。


回到开始--管理工具--证书颁发机构--挂起的申请--颁发#yyds干货盘点# web安全day12:PKI_公钥加密_26

就可以为我们的iis服务器颁发证书了。

作为iis服务器,我们再次回到ca申请网站。

点击查看挂起的证书申请状态--保存的申请证书--下载证书,将其保存到我们本地。

#yyds干货盘点# web安全day12:PKI_数字证书_27

这就是我们的证书了,它里面包含了ca的签名和我们iis服务器的信息和公钥。现在需要将证书导入iis中。

iis管理器--服务器证书--完成证书申请

#yyds干货盘点# web安全day12:PKI_信息安全_28

右键网站xdf--点击编辑绑定

#yyds干货盘点# web安全day12:PKI_信息安全_29

添加https的网站类型

#yyds干货盘点# web安全day12:PKI_数字证书_30

点击ssl设置

#yyds干货盘点# web安全day12:PKI_数字证书_31

点击应用。

回到windows7中进行验证。


#yyds干货盘点# web安全day12:PKI_数字证书_32

出现此界面说明此前的配置正确。点击继续就可以正常浏览网页。

为什么会出现这个界面呢?因为作为客户机, 我们并不知道ca的存在,即为服务器颁发证书的ca在我们这里是不权威的。那么为什么百度这些网站是没有问题的呢?因为我们本地已经保存了它们的证书。

#yyds干货盘点# web安全day12:PKI_数字证书_33