第17节 PKI公钥基础设施及部署HTTPS服务器

0 摘要

本节介绍PKI的相关概念、公钥加密技术,数字签名及数字证书。并从加密技术的原理出发重点介绍了PKI如何保障信息的机密性、完整性、身份验证与操作的不可否认性。最后以win2008为例,介绍了如何部署https服务器。

1 PKI概述

(1)PKI:Public Key Infrastructure 公钥基础设施。
(2)作用:通过加密技术数字签名保证信息的安全
(3)PKI的组成:公钥加密技术、数字证书、CA(Certificate Authority 证书颁发机构)、
RA(Registration Authority注册机构、为CA的分支,一般用不上)。
(4)信息安全的三要素:机密性、完整性、身份验证与操作的不可否认性。
(5)应用场景:1)SSL/HTTPS;2)IPsevVPN;3)部分远程访问VPN;4)电子商务、电子政务、网上银行、网上证券等。

2 公钥加密技术

(1)作用:实现对信息加密、数字签名等安全保障。
(2)加密算法:

  • 1)eg:x+10=y,x为原数据/原文,y为密文,10为密钥,整个公式称为加密算法。发送一个密文,需要使用密钥将其解密得到原文。
  • 2)加密算法分为对称加密算法、非对称加密算法、Hash算法。

2.1 对称加密算法

(1)特点:加解密的秘钥一致。
(2)常用算法:DES(Data Encryption Standard)、3DES(Triple DES)、AES(Advanced Encryption Standard) 。

2.2 非对称加密算法

(1)特点:

  • 1)通信双方各自产生一对公私钥;
  • 2)双方各自交换公钥;
  • 3)公钥和私钥为互相加解密关系;
  • 4)公私钥不可互相逆推。

(2)公私钥的作用:

  • 1)公钥提供给对方,让对方给信息加密,加密结果仅自己的私钥能解密。
  • 2)私钥自己用,对摘要加密得到数字签名,对方有公钥可以验证签名是否正确,可以用于进行身份验证/操作的不可否认性。

(3)常用算法:RSA、DH。

tips:
(1)公钥是指公开密钥,是公开的;
(2)私钥是指私人密钥,是保密的,只有自己知道。

2.3 Hash算法(不可逆)

(1)作用:计算得到信息的“摘要”,用于验证信息的完整性
(2)常用算法:MD5、SHA。

3 数字签名及数字证书

3.1 数字签名

数字签名:用私钥摘要(Hash值)加密得到的密文就是数字签名

3.1 数字证书

(1)证书由权威公正的第三方机构CA签发,用于公证公钥的合法性。
(2)证书格式遵循X.509标准( 证书都长一个模样)。
(3)数字证书包含信息如下:

  • 1)使用者的公钥信息
  • 2)使用者的标识信息(名称、IP、电子邮件地址等)
  • 3)有效期
  • 4)颁发者标识信息——即颁发者的名称
  • 5)颁发者的数字签名(颁发者采用私钥加密过,其他人员可以采用颁发者提供的公钥验证证书真伪)

4 PKI工作原理与过程——以非对称加密技术、数字证书为例

4.1 公钥与私钥配合保证信息机密性

相比于对称加密算法,非对称加密算法利用公钥与私钥相互配合,才能够保证信息的机密性。

(1)在通信开始前,用户AB需要互换公钥。
(2)A发出信息,并采用B的公钥(由于公钥与私钥间可以互相加解密,为保证信息只有用户B能够解密)对信息进行加密,发出密文。
(3)B收到信息后,采用自己的私钥对密文进行解密,得到原信息。
在这里插入图片描述

4.2 用A的私钥对摘要(Hash值)加密保证信息完整性和进行身份验证

虽然利用公钥与私钥配合能够保证信息机密性,不被他人破解而导致信息泄露,但是该方法无法保证信息的完整性(即该信息是否被非法改动)以及无法进行身份验证。

(1)在通信开始前,用户AB需要互换公钥。
(2)A发出信息,并采用B的公钥(由于公钥与私钥间可以互相加解密,为保证信息只有用户B能够解密)对信息进行加密,发出密文。
(3)A对密文利用不可逆算法得到信息摘要,并用自己的私钥对摘要进行加密。
(4)A将密文和加密的摘要发给B。
(5)B用户利用A的公钥对加密摘要进行解密,可以解密,证明信息确实是A发的。同时利用不可逆算法得到密文的摘要,对比两个摘要是否一致。一致时则验证了信息的完整性,不一致时则表明信息被篡改。
(6)B用户用自己的私钥对密文进行解密,得到原信息。
在这里插入图片描述
tips:
(1)公钥加密技术已经可以保证信息的机密性、完整性、身份验证/操作的不可否认性,且还可以完成数字签名。但为了公证公钥的合法性,需要引入第三方机构CA以及数字证书。
(2)对信息采用对方的公钥加密,是为了保证信息的机密性。保证这个信息只有用户B可以看到。若用用户A的私钥对信息加密,则大家都可以看到信息,无法保证信息的机密性。
(3)采用Hash值是为了保证信息的完整性
(4)用自己的私钥对Hash值进行加密,是为了实名认证,即进行身份验证/操作的不可否认性
(5)总结:
机密性:使用对方的公钥加密;
身份验证/数字签名:使用自己的私钥。
完整性:用自己的私钥对Hash值进行加密。

4.3 数字证书公正公钥A的合法性

以上步骤保障了信息的机密性、完整性、身份验证/操作的不可否认性,但是是建立在用户AB至今彼此确信对方的公钥准确可靠的前提下,在实际环境中,任何用户都不可能存有所有机器的公钥,如果临时对话时才交换公钥,该过程若是黑客用自己的公钥替换了A或B的公钥,那么后续信息黑客可以随意传递。因此,需要有权威机构对每个用户的公钥做公证,确保用户身份与公钥对应,就像人与身份证对应一样。

(1)用户A向CA申请注册数字证书。
(2)制做证书:CA将使用者相关信息及公钥写入证书,并用Hash算法得到证书内容的摘要(hash值1),用CA的私钥对hash值进行加密,得到颁发者签名,并附在数字证书上。
(3)CA将证书颁发给用户A。
(4)其余步骤与4.2节类似,用户A将密文、加密的摘要、数字证书发给B。
(5)用户B先验证证书真伪。用户B用Hash算法得到证书内容的hash值2,同时用CA的公钥解密数字证书上颁发者签名,对比两者是否一致。一致时则验证了证书的完整性,不一致时则表明证书信息被篡改。
(6)一致后用CA的公钥解密数字证书,将数字证书上用户A的公钥与交换得到的用户A的公钥进行对比,验证交换得到的公钥确实属于用户A。
(7)用户B再验证信息完整性、进行实名认证及解密密文。
在这里插入图片描述

5 部署HTTPS服务器

以win2008为服务器,win7为客户机,完成以下三个小实验:①客户机可以访问服务器的http网站和https网站;②客户机只能访问服务器的https网站,不能访问http网站;③客户机必须提供证书才能访问服务器的https网站。
win2008中需要配置以下服务器:
(1)IIS服务器→提供web服务;
(2)DNS服务器→提供域名解析服务;
(3)CA证书颁发机构→公证WEB服务器证书;

5.1 win2008配置WEB服务器

(1)打开win2008、win7,连接至同一交换机,配置IP,win2008IP为10.1.1.1、win7IP为10.1.1.2。查看是否能够互相ping通。其中win2008的DNS需要指向自己,可以使用自己的IP地址也可以设置回环地址127.0.0.1。(注意,再配置IP时,遇到IPV6一般将IPV6取消勾选)
在这里插入图片描述
在这里插入图片描述
(2)win2008右键我的电脑→管理→点击角色→添加角色→弹出向导下一步→勾选WEB服务→下一步。
在这里插入图片描述
(3)选择为web服务器安装的角色服务,勾选动态网站功能→下一步→安装。
在这里插入图片描述
tips:
CA的服务窗口是一个网页形式,是个动态网页,需要基于IIS,因此需要把“应用程序开发”勾选上。

(4)查看默认网站。开始→管理工具→IIS→右键默认站点→编辑绑定。
在这里插入图片描述

tips:
默认网站不能停用,更不能删除,因为当安装CA后,CA会自带站点,且自带的站点会放入WEB服务器的默认站点路径里面去,利用WEB服务器的默认站点发布CA的网站,因此不能动。

(5)发布动态网站。右键网站→添加网站→填写名称路径等信息→确定。
在这里插入图片描述
(6)设置默认首页。相比于win2003服务器,win2008服务器搭配网站时,点击该网站就能在右边出现属性窗口,找到默认文档等需要设置的属性。双击默认文档,将需要发布的网站首页添加进去,并置为最优。
在这里插入图片描述
在这里插入图片描述

5.2 win2008配置DNS服务器

(1)win2008右键我的电脑→管理→点击角色→添加角色→弹出向导下一步→勾选DNS服务→下一步→新建主分区→添加主机。具体参考《第12节 DNS服务器部署与安全》
在这里插入图片描述
(2)win7验证网站是否发布成功。发布的静态网页和动态网页都成功。
在这里插入图片描述
在这里插入图片描述

5.3 win2008部署CA服务器

(1)win2008右键我的电脑→管理→点击角色→添加角色→弹出向导下一步→勾选AD证书服务→下一步。
在这里插入图片描述

(2)勾选所需要的服务类型→下一步→选择独立→选择根CA→新建私钥→选择算法→CA机构命名(可以不改或根据域名修改)→设置CA机构证书有效期→设置文件位置(保持默认)→角色服务(保持默认)→安装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)验证CA是否安装成功。可以检查服务器已安装的角色或者在开始→管理工具中查看是否可以找到。
(4)安装完成后在默认网页可以看到新增许多内容。
在这里插入图片描述

5.4 WEB服务器注册证书

(1)以服务器的名义申请证书文件。打开IIS服务→选择服务器→找到服务器证书→创建证书→填写用户单位信息→设置用户公钥类型→设置申请证书名称及存放位置→完成。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)将证书提交给CA。win2008打开IE浏览器→输入10.1.1.1\CertSrv(输入的地址为CA的证书申请默认窗口,放在WEB服务器的默认网站中-微软服务器默认生成的都是这个)→申请证书→高级证书申请→选择以base64编码的…→打开上一步完成的IIS-SQ证书,通过ctrl+a全部复制,并粘贴→提交。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tips:
win2008访问IE时经常会弹出这个框,可按如下方法关闭,右键计算机→管理→选中最上面的服务器→选则配置IE ESC→勾选禁止。
在这里插入图片描述
在这里插入图片描述

(3)CA机构颁发证书。开始→管理工具→证书颁发机构→挂起的申请→选中右键→所有任务→颁发→查看颁发。
在这里插入图片描述
(4)去CA官网上下载证书。win2008IE浏览器→输入10.1.1.1\CertSrv→查看挂起的证书申请状态→保存的申请证书→选则保存位置并为证书命名。
在这里插入图片描述
在这里插入图片描述
tips:
证书链:当有多个证书,如A、B、C,且依次信任时,形成了一个证书链。

(5)将证书导入到服务器中。打开IIS服务→选择服务器→找到服务器证书→完成证书申请→选中证书路径并自定义名称。
在这里插入图片描述
(6)查看当前证书类型。
在这里插入图片描述
(7)win2008选中需要设置为https的网站→编辑绑定→添加→确定。
在这里插入图片描述
(7)上win7客户机上尝试用https形式访问相应的网站。在IE浏览器地址栏中输入piaoliang.zz.com。
在这里插入图片描述
在这里插入图片描述

5.5 限制网站使用https协议

(1)要求客户只能用https方式访问(通过443端口)。该网站既提供80端口又提供443端口,选中网站→找到SSL设置并双击→勾选要求SSL,客户证书忽略→应用。
在这里插入图片描述
在这里插入图片描述

(2)win7访问网站。输入piaoliang.zz.com,无法访问网站,因为使用的是80端口,需要在前面加上https:\.访问,则弹出以下警告,因为浏览器不信任该CA机构,可以选择继续浏览此网站。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tips:
(1)百度等网站没有弹出不安全的窗口,是因为他们的证书是由中国通用的CA颁发的,浏览器中已经内置信任过的CA.
(2)查看浏览器中内置了的CA。可以在工具→浏览器选项→内容→证书颁发者查看。
在这里插入图片描述
(3)公司小范围内做加密了的网站,没必要去公网的CA去注册证书,因为要花钱,可以自己搭CA。

5.6 限制客户机必须有证书才能访问https网站

(1)更改网站(piaoliang)的SSL设置。选中网站→找到SSL设置并双击→勾选要求SSL,客户证书必须→应用。
在这里插入图片描述
(2)客户机尝试访问该网站。在IE浏览器地址栏中输入https:\piaoliang.zz.com,访问被拒绝。
在这里插入图片描述

(3)为客户机浏览器申请证书。win7客户机打开IE浏览器→输入10.1.1.1\CertSrv(输入的地址为CA的证书申请默认窗口,放在WEB服务器的默认网站中-微软服务器默认生成的都是这个)→申请证书→WEB浏览器证书→弹出一个窗口,该窗口的意思是CA那个办理证书的窗口网页也应设置为https网页,即默认网站也需要注册证书。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)为默认网站注册证书。重复5.4节步骤,为默认网站申请一个名称为CA.zz.com的证书,下载完成后将该证书导入到服务器。并选中默认网站→编辑绑定→添加→确定。注意,在为默认网站编辑绑定证书前先停用上述的piaoliang网站(选择piaoliang网站→右键选择→管理网站→停止),不然添加证书时两者会同步更新,容易出错。
在这里插入图片描述
在这里插入图片描述
(5)为客户机浏览器申请证书。打开win7客户机浏览器,在地址栏输入“https://10.1.1.1/certsrv"→继续浏览此网站→申请证书→web浏览器证书→弹出窗口后点击是→填写信息后点击提交。
在这里插入图片描述
(6)CA机构颁发证书。开始→管理工具→证书颁发机构→挂起的申请→选中右键→所有任务→颁发→查看颁发。
(7)安装证书。win7客户机IE浏览器→输入https://10.1.1.1/CertSrv→查看挂起的证书申请状态→web浏览器证书→弹出窗口后点击是→安装此证书→点击请安装CA证书→选择保存路径及命名→IE工具→internet选项→内容→证书→受信任的根证书颁发机构→导入→根据向导将CA证书导入→导入完成后再点击安装证书→安装成功。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
(8)win7访问网站。去服务器将piaoliang网站启动(选择piaoliang网站→右键选择→管理网站→启动),打开IE浏览器,输入https://piaoliang.zz.com,弹出以下警告,因为浏览器不信任该CA机构,可以选择继续浏览此网站,但是访问仍被拒绝。(目前找不到原因)。
(9)换WINXP为客户机,再尝试。先连接到同一个交换机上,并配置静态IP为10.1.1.3。按上述步骤为winxp浏览器申请证书并安装证书→安装证书成功后,在IE浏览器输入https://piaoliang.zz.com→弹出窗口点击是→选中证书后点击确定,访问成功。在这里插入图片描述在这里插入图片描述

在这里插入图片描述

参考文献

[1] 网络安全笔记-07.2-PKI与非对称加密过程
[2] 第17节 PKI公钥基础设施

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值