- 了解PKI、SSL技术的核心原理
- 掌握PKI架构服务器配置
- 掌握证书管理与应用
公钥基础设施(Public Key Infrastructure,PKI)是一个完整的颁发、吊销、管理数字证书的系统,是支持认证、加密、完整性和可追究性服务的基础设施。PKI通过第三方可信任机构------数字证书认证机构(Certificate Authority,CA),将用户的公钥和用户的其他标识信息,如名称、E-mail、身份证号等捆绑在一起,用于网络用户的身份认证。信息在传输过程中应用基于PKI架构与数字证书结合的安全体系,实现对信息的加密与数字签名,从而保证信息在传输过程中的安全性、完整性、真实性和不可抵赖性。
安全套接层(Secure Socket Layer,SSL)是一种以PKI为基础、为网络通信提供安全性及数据完整性的安全协议。SSL协议位于应用层和传输层之间,能够为基于TCP(提供可靠连接)的应用层协议提供安全性保证。目前SSL证书被应用于各个行业,包括金融、医疗、政府等。通过在用户浏览器与服务器之间建立SSL加密通道,将数据进行加密后传输,可以大大降低数据传输在传输过程中被第三方窃取或篡改的风险。
对于电子邮件,目前安全性最高的方式是利用数字证书对邮件进行加密和数字签名。数字证书一般有公用密钥、私人密钥和数字签名3部分组成。对邮件进行数字签名时,邮件会包含数字签名与公用密钥,接收者利用收到的公用密钥检查数字签名并还原邮件内容。另外,接收者还可以利用发送者的公用密钥对邮件进行加密,此时只有发送者的私人密钥能解密邮件内容。
7.1 什么是PKI、SSL
随着信息技术的发展,电子商务已经逐渐被人们所接受,在整个电子商务的交易过程中安全性是否得到保障显得格外重要。首先在网上进行电子交易时,由于交易双方并不在现场,因此无法确认双方的合法身份;其次由于交易信息是交易双方的商业秘密,所以在网上传输的时候必须保证其安全性,防止信息被窃取;另外,在交易过程中一旦发生纠纷,第三方必须能够提供仲裁。因此,电子商务交易过程应能实现身份认证、安全传输,并保证不可否认性、数据完整性。由于数字证书认证技术采用了加密传输和数字签名,能够实现上述要求,因此其在国内外电子商务交易中得到了广泛的应用。
PKI是指用公钥概念和技术来实施和提供安全服务的安全基础设施。它的主要目的是通过自动管理密钥和证书,为用户建立一个安全的网络运行环境,使用户可以在多种应用环境下方便地使用加密和数字签名技术,从而保证网上数据的机密性、完整性和不可抵赖性。数据的机密性是指数据在传输的过程中不会被非授权者窃取,数据的完整性是指数据在传输的过程中不会被非法篡改,数据的不可抵赖性是指数据不能被否认。
安全套接层协议是由网景(Netscape Communication)公司设计开发的,它指定了在应用程序协议(如HTTP、Telnet、FTP)和传输通信协议(TCP/IP)之间提供数据安全性分层的机制,是一种在TCP/IP上实现的安全协议,其采用公开密钥技术,为TCP/IP连接提供数据加密、服务器认证、数据完整性以及可选的客户机认证。由于此协议很好的解决了互联网明文传输的不安全问题,因此很快得到了业界的支持,并已经成为了国际标准。
b站PKI讲解
视频:【证书与PKI】| 公钥证书 | 证书 | PKI |公钥基础设施 | 公开密钥基础设施 | 密钥分发| 密码学| 信息安全_哔哩哔哩_bilibili
ppt:Docs
7.2 PKI、SSL技术核心原理与应用
7.1.2 公钥加密
PKI通过公钥加密(Public Key Encryption)技术确保数据传输的安全性。要使用该技术完成对数据的加密及解密,用户需准备一对密钥,分别是公钥与私钥。
(1)公钥:公钥(Public Key)对其他用户是公开的。
(2)私钥:私钥(Private Key)是用户私有的,且存储在用户的计算机内,只有用户自己可以使用。
下图所示为公钥加密技术的实现过程。


(1)用户A使用用户B的公钥对发送的信息进行加密。
(2)通过Internet将密文发送给用户B。
(3)用户B使用自己的私钥进行解密。
对称加密:
对称加密原理 - 一种古老的加密方式_哔哩哔哩_bilibili
非对称加密:
非对称加密原理 - 公钥和私钥是天生的一对_哔哩哔哩_bilibili
7.2.2 数字签名
用户可以利用公钥验证(Public Key Authentication)技术对发送的数据进行数字签名,从而验证数据的完整性和不可抵赖性。
下图为数字签名的实现过程:

(1)用户A用自己的私钥对数据进行数字签名。
(2)通过Internet将密文发送给用户B。
(3)用户B使用用户A的公钥对数据进行解密,从而验证数据是由用户A发送的,并且在传输的过程中没有被篡改。
这种使用公钥加密、私钥解密或者私钥加密、公钥解密的方法称为非对称式(ASymmetric)加密。如果加密、解密都使用同一个密钥,则称为对称式(Symmetric)加密。
使用密钥(公钥、私钥)既能加密信息,又能实现数字签名,从而保证数据传输的安全性,但是如何保证密钥不被冒充呢?现阶段的解决方案是使用数字证书。因此标准的PKI体系通常具备以下7个部分。
(1)数字证书认证机构CA
CA是PKI的核心执行机构,是PKI的主要组成部分,通常称为认证中心。CA的主要职责包括以下5点:
验证并标识证书申请者的身份。
确保CA用于证书签名的非对称密钥的质量和安全性。
管理证书信息资料。
管理证书序号和CA标识,确保证书主体标识的唯一性。
确定并检查证书的有效期,发布和维护作废证书列表(CRL)
CA是确保电子商务、电子政务、网上银行、网上证券等交易权威性、可信任性和公正性的第三方机构。
(2)证书和证书库
证书是数字证书或电子证书的简称,它符合X.509标准,是具备权威性、可信任性和公正性的第三方机构签发的,因此,它是权威性的电子文档。
证书库是CA颁发证书和撤销证书的集中存放地,可供公众进行开放式查询。证书库支持分布式存放,即可以将与本组织相关的证书和证书撤销列表存放到本地,以提高证书的查询效率。
(3)密钥备份与恢复
由于用户可能将用来解密数据的密钥丢失,从而使已被加密的密文无法打开,所以为避免这种情况发生,PKI提供了密钥备份和密钥恢复的机制。当用户证书生成时,加密密钥即被CA备份存储;当需要恢复密钥时,用户只需要向CA提出申请,CA就会为用户自动恢复密钥。
(4)密钥和证书的更新
一个证书的有效期是有限的,在实际应用中,由于长时间使用同一个密钥会提升密钥被破译的风险性,因此PKI会对已发布的密钥或证书进行更新。证书更新一般由PKI系统自动完成,不需要用户干预。在有效期结束之前,CA会自动启动更新程序,生成一个新证书来替代旧证书。
(5)证书历史档案
对于同一个用户,证书的定期更新会生成多个旧证书和至少一个当前使用的新证书。这些旧证书以及相应的私钥就组成了用户密钥和证书的历史档案。
(6)客户端软件
客户端软件用于实现数字签名、加密传输数据、在认证过程中查询证书和相关证书的撤销信息,以及进行证书路径处理、对特定文档提供时间戳请求等。
(7)交叉认证
交叉认证指多个KPI域之间实现互操作。
7.2.3 SSL网站安全连接协议
SSL是一个以PKI为基础的安全性通信协议,网站拥有SSL证书后,浏览器与网站之间就可以通过SSL安全连接进行通信,此时URL路径中的http改为https。例如,在登录网上银行时,一般会使用SSL协议,如下图所示:

浏览器和网站之间建立SSL安全连接时,通常会采用三次握手的协商过程,建立一个双方都认可的会话密钥(Session Key),并使用该密钥对传输的数据进行加、解密以及验证数据是否被篡改。
下图为SSL协议的三次握手的过程:

7.2.4 PKI和SSL技术的运用
PKI、SSL技术的应用领域包括电子商务、电子政务、网上银行、网上证券等金融业网上交易业务以及电子邮件、文件传输等。PKI作为安全基础设施,可以根据不同的安全需求为不同的用户提供多种安全服务。例如,在电子商务应用中,PKI将公钥加密系统用于加密订货单信息、支付信息以及验证签名等方面。SSL使用数据加密、身份验证和消息完整性验证机制,基于TCP和其他应用层协议提供可靠的连接安全保障。PKI和SSL两者结合,保障了整个交易过程的安全性、可靠性、保密性和不可否认性。
7.3 PKI架构服务器配置及证书的应用(实验)
实例场景:A公司由于业务需要,将基于PKI架构升级内部网络服务,在不改变网络现有环境的情况下,如何使用证书保护Web服务器和FTP服务器,为用户提供安全的SSL连接?如何使用证书对电子邮件进行加密和签名呢?
网络拓扑:A公司网络拓扑图如下图所示。Win2019-1是公司内部网络中的DNS服务器、Web服务器、FTP服务器以及邮件服务器。Win2019-2作为独立根CA。Win2019-3和Win2019-4分别是两台客户端。

解决办法:基于PKI架构配置服务器与客户端,使其均信任独立根CA。Win2019-1服务器向CA申请数字证书并应用于Web服务和FTP服务,客户端与服务器之间建立SSL安全连接。客户端向CA申请电子邮件保护证书,用于对邮件进行加密和签名。
7.3.1 配置证书颁发机构
无论是私钥、公钥,还是SSL安全连接,都需要使用数字证书,因此在进行服务器配置时,首先需要配置的就是证书颁发机构(CA)。
在安装、配置CA之前,需要先安装Web服务器(IIS),用于发布根CA。IIS的安装步骤请参照5.2节相关内容。
1、安装Active Directory 证书服务
(1) 在Win2019-2服务器上,单击"服务器管理器"------>"管理"→"添加角色和功能"中选择"Active Directory证书服务"复选框

(2)其它默认下一步,在"角色服务"栏中,勾选"证书颁发机构""证书颁发机构Web注册"复选框。

(3)持续单击"下一步"按钮,直至安装完成。最后不要点击"关闭"按钮,此时还需要单击"配置目标服务器上的Active Directory证书服务"链接进行相关设置。

(4)如果不小心关闭了该界面,则可以重新打开"服务器管理器"窗口,单击右上角菜单栏中的旗形图标,在弹出的下拉菜单中单击"配置目标服务器上的Active Directory 证书服务"链接

2、配置Active Directory 证书服务
(1)在"AD CS配置"窗口中,持续单击"下一步",直至出现"角色服务"界面,勾选"证书颁发机构""证书颁发机构Web注册"复选框。

(2)单击下一步按钮,在"设置类型"界面指定CA的设置类型,选择"独立CA"单选按钮

(3)单击下一步,指定CA类型,选择"根CA"单选按钮,使其成为本实验中的唯一CA

(4)单击下一步,指定私钥类型,这里创建的是CA的私钥,CA拥有私钥后,才可以为客户端颁发证书。选择"创建新的私钥"单选按钮。

(5)单击下一步,指定加密选项,其中包括"选择加密提供程序""密钥长度""选择对此CA颁发的证书进行签名的哈希算法"等选项。一般采用默认设置即可。

(6)单击下一步,指定CA名称

(7)指定证书有效期,这里设置的是CA生成证书的有效期,默认为5年

(8)指定证书数据库的位置

(9)单击下一步,在"确认"界面中点击"配置"按钮,完成整个配置过程。


(10)在"服务器管理器"面板中,选择"工具"→"证书颁发机构",打开"certsrv-[证书颁发机构(本地)]"窗口

7.3.2 使用数字证书保护Web网站
Web服务器必须信任独立根CA,才能向其申请证书,并将申请成功的证书绑定在网站上。
1、在Web服务器(Win2019-1)上下载CA证书
在Web服务器上下载CA证书,并将其导入服务器"受信任的根证书颁发机构"列表中,这样才能使Web服务器信任由根CA生成并颁发的数字证书。
(1)根据网络拓扑图,CA(Win2019-2)的IP地址为192.168.1.2,因此在Web服务器(Win2019-1)打开IE浏览器,输入网址"http://192.168.1.2/certsrv",在打开的页面中,单击"下载CA证书、证书链或CRL"链接。

(2)单击"下载CA证书"链接,下载并保存根CA证书文件。

这里我自己创建了个文件夹放证书,这个证书还要用,要能找到。

(3)"Win+R"打开运行对话框,输入"mmc",打开"控制台1"窗口,在菜单栏中单击"文件"→"添加/删除管理单元"选项


(4),弹出"添加或删除管理单元"对话框,单击左侧"可用的管理单元"列表中的"证书"选项,单击"添加"按钮,在弹出的"证书管理单元"对话框中

(5),选择"计算机账户"单选按钮,一次单击"下一步""完成"按钮,这样就在控制台中添加了"证书管理单元"



(6)在控制台左侧的列表中,单击展开"受信任的根证书颁发机构"文件夹,右键单击"证书"选项,在弹出的快捷菜单中选择"所有任务"→"导入"

(7)在弹出的"证书导入向导"对话框中,单击浏览,找到我们刚才保存的CA证书

(8)选择"将所有证书都放入下列存储"单选按钮,将证书存储到"受信任的根证书颁发机构"中。


(9)证书导入成功

2、在Web服务器上建立证书申请文件。
(1)在Web服务器(Win2019-1)上配置DNS服务,添加"szpt.com"域,并新建Win2019-1主机记录,详细步骤参考4.2.1节第二步。

(2)在"服务器管理器"中找到"IIS管理器",在Win2019-1主页界面找到"服务器证书"

(3)选择"服务器证书"选项,在右侧的操作列表中单击"创建证书申请"链接

(4)在弹出的"申请证书"对话框中,填写对应的文本框内容。因为在本实例中使用了Windows域,所以"通用名称"必须与域名一致,在第(1)步中,已经为"szpt.com"域设置了相对应的主机记录,因此这里的通用名称填写"Win2019-1.szpt.com"

(5)单击下一步,"加密服务提供程序""位长"用来指定网站公钥的密钥长度,一般使用默认值。

(6)单击下一步,设置证书申请文件名与存储位置(C:\webcert.txt)


3、Web服务器将证书申请文件提交到根CA,根CA审核通过并颁发后,Web服务器再从根CA下载该证书文件。
(1)载Web服务器(Win2019-1)上打开IE浏览器,输入网址"http://192.168.1.2/certsrv"

(2)单击"申请证书"链接,然后点击"高级证书申请链接"

(3)单击"使用base64编码的CMC或PKCS #10文件提交一个证书申请,或使用base64编码的PKCS #7文件续订证书申请"链接

(4)在Web服务器上,双击打开在第二步中生成的证书申请文件(C:\webcert.txt),将该文件的所有内容,复制到保存申请的文本框中

(5)单击"提交"按钮后将会成功发起证书申请,此时证书会被挂起,还需要CA管理员对其进行审核并颁发

(6)在根CA(Win2019-2)中,选择"服务器管理器"------》"工具"------"证书颁发机构"

(7)在证书颁发面板中,点击本机,选择"挂起的申请",在右侧会出现,我们在Win2019-1中申请的证书,这时点击右键,进行"颁发"

(8)在Web服务器(Win2019-1)的IE浏览器中输入"http://192.168.1.2/certsrv",单击"查看挂起的证书申请状态"链接,页面显示证书已经通过审核并颁发


(9)单击"保存的申请证书"链接,将证书下载到Web服务器,证书的保存路径为C:\User\Administrator\Desktop\certnew.cer",就是放桌面上

(10)保存成功

4、Web服务器安装证书并启用SSL
(1)在Web服务器(Win2019-1)中,打开IIS管理器,选择"服务器证书"

(2)单击右侧"操作"列表中的"完成证书申请"链接

(3)在打开的"完成证书申请"对话框中,选择在第三步中保存的证书文件,在"好记名称"文本框中输入"Web",表示这是用于Web服务的证书,最后点击"确认"按钮完成整数的申请。

成功!

(4)在IIS管理其中,双击右侧列表中的"添加网站"

(5)设置网站信息

(6)在网站的物理路径中新建Index.html文件,内容为"这是Win2019-1 Web服务器上的主页"

(7)把Win2019-1的默认文档,设置为"index.html"


(8)点击Win2019-1,选择最右侧"操作"栏中的"绑定"

(9)点击"添加"

(10)在添加网站绑定对话框中,把类型选择为"https",在SSL中选择"Web",点击确定,完成证书绑定

5、客户端浏览器建立与Web服务器之间的SSL链接
1、在客户端浏览器要想实现安全访问,首先客户端必须先信任证书颁发机构,这里需要进行配置,
在Win2019-3中按照7.3.2的第一步"1、在Web服务器(Win2019-1)上下载CA证书",再来一遍。
2、在客户端(Win2019-3)中打开IE浏览器,输入网址"https://win2019-1.szpt.com",出现如下图所示内容,访问成功

7.3.3 FTP over SSL功能
Windows Server 2019的FTP服务支持FTP over SSL功能,即客户端与FTP服务器之间可以利用SSL实现安全连接。
在IIS管理器中设置FTPSSL:
(1)在Web服务器(Win2019-1)上配置DNS服务,在"szpt.com"域中,新建"ftptest"主机记录,详细步骤参考4.2.1节第二步。

(2)打开"Internet Information Services(IS)管理器"窗口,新建FTP站点,名字为"ftptest"

(3)进行FTPSSL设置,在"SSL证书"下拉列表中选择在7.3.2节中申请好的证书("好记名称"为"Web"),"SSL策略"选择"需要SSL连接"单选按钮,单击"应用"链接,如图所示。完成设置后,客户端就可以通过SSL安全连接方式来连接FTP服务器。


(4)新创建一个服务器Win2019-4,作为另一台客户端,IP为"192.168.1.4",把它的防火墙、Lan段配置好。

(5)用win2019-4访问"ftp://ftptest.szpt.com",基于SSL的安全站点FTPS,访问成功!

7.3.4 使用数字证书保护电子邮件(实验略)
对电子邮件进行加密和签名的数字证书需要绑定电子邮箱地址。经过加密的电子邮件可以保证在传输过程中不被篡改,经过签名的电子邮件可以保证邮件具有不可抵赖性,确保邮件通信双方身份的真实性。
数字证书保护电子邮件的原理如图所示:

1、在DNS服务器中添加邮件服务器的主机记录
在DNS服务器(Win2019-1)上打开DNS,在"szpt.com"区域中新建两个主机记录:"pop3""smtp"

2、在Win2019-1上安装邮件服务Winmail
(1)在Winmail官网下载该软件
百度网盘下载链接:百度网盘 请输入提取码 提取码:6666

(2)安装过程使用默认选项,并按照提示要求设置admin账户的登录密码,如下图所示:


(3)打开Winmail服务器程序,在"快速设置向导中新建邮箱,设置密码,下方显示设置成功结果

(4)再创建一个邮箱"[email protected]"

(5)打开Winmail管理端工具,本地登录

(6)这里可以在"用户管理"中看到u1、u2两个用户

3、安装邮件客户端软件
(1)在win2019-4上安装客户端软件Foxmail,安装软件在和上面的Winmail都放在百度网盘中了,上面翻连接。
7.4 证书管理
证书的管理包括CA的备份与还原、CA的证书管理及导入导出证书
7.4.1 CA的备份与还原
CA的备份与还原,主要针对CA的私钥、CA证书、证书数据库以及证书数据库日志进行备份与还原。通过指定备份目录,设置访问密码,提高备份内容的安全性。
1、CA的备份
(1)在根CA服务器上(Win2019-1)选择"工具"------"证书颁发机构",选择"WIN2019-2-CA"------"所有任务"------"备份CA"。

(2)选择要备份的项目,和备份存放路径

(3)设置备份目录访问密码

(4)完成备份

2、CA的还原
和CA备份步骤相似



7.4.2 CA的证书管理
CA的证书管理包括吊销证书、发布证书吊销列表(CRL)等。用户申请的证书有一定的有效期限,但是如果发生密钥泄露、业务终止、证书更新等情况,则需要提前将证书吊销,同时CA会发布一个证书吊销列表,列车被认为是不能再使用的证书的序列号。
(1)在根CA服务器(win2019-2)上,选择"证书颁发",点击左侧列表中的"颁发的证书"选项,在右侧的界面中右键单击需要吊销的证书

(2)设置理由码和"日期时间"后,单击"是"按钮,再去点击"吊销的证书",可以看到已经被我们吊销的证书

CA能够自动或手工发布证书吊销列表(CRL),网络中的计算机通过下载CRL,就可以知道哪些证书已经被吊销。
(3)右键单击"吊销的证书"选项,在弹出的快捷菜单中选择"所有任务"------"发布"命令,可以发布更新的CRL。

(4)在客户端(Win2019-3)打开IE浏览器,输入地址"http://192.168.1.2/certsrv",单击"下载CA证书、证书链或CRL"链接,在打开的页面中单击"下载最新的基CRL"链接即可

(5)下载完成后,右键单击该文件,在弹出的快捷菜单中选择"安装CRL"命令,即CRL更新发布成功。