《信息安全技术》实验三 数字证书应用

《信息安全技术》实验三 数字证书应用

实验目的

  • 了解PKI体系
  • 了解用户进行证书申请和CA颁发证书过程
  • 掌握认证服务的安装及配置方法
  • 掌握使用数字证书配置安全站点的方法

实验内容

  • 利用数字证书建立安全Web通信

实验人数

  • 每组3人,本组为20155314 20155332 20155228

实验环境

  • 系统环境
    • Windows Server 2003虚拟机
  • 网络环境
    • 交换网络结构

实验工具

  • Windows CA
  • 网络协议分析器

实验类型

  • 验证型

实验原理

一.PKI简介

       PKI是Public Key Infrastructure的缩写,通常译为公钥基础设施。称为“基础设施”是因为它具备基础设施的主要特征。PKI在网络信息空间的地位与其他基础设施在人们生活中的地位非常类似。电力系统通过延伸到用户端的标准插座为用户提供能源;PKI通过延伸到用户的接口为各种网络应用提供安全服务,包括身份认证、识别、数字签名、加密等。一方面PKI对网络应用提供广泛而开放的支撑;另一方面,PKI系统的设计、开发、生产及管理都可以独立进行,不需要考虑应用的特殊性。

       目前,安全的电子商务就是采用建立在PKI基础上的数字证书,通过对要传输的数字信息进行加密和签名来保证信息传输的机密性、真实性、完整性和不可否认性(又称非否认性),从而保证信息的安全传输和交易的顺利进行。PKI已成为电子商务应用系统、乃至电子政务系统等网络应用的安全基础和根本保障。

       PKI的主要目的是通过自动管理密钥和证书,为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的完整性、机密性、不可否认性。数据的完整性是指数据在传输过程中不能被非法篡改;数据的机密性是指数据在传输过程中,不能被非授权者偷看;数据的不可否认性是指参加某次通信交换的一方事后不可否认本次交换曾经发生过。

二.证书申请

PKI组件

       PKI主要包括认证中心CA、注册机构RA、证书服务器、证书库、时间服务器和PKI策略等。

  1. CA

           CA是PKI的核心,是PKI应用中权威的、可信任的、公正的第三方机构。

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

           CA还负责维护和发布证书废除列表CRL。当一个证书,特别是其中的公钥因为其他原因无效时,CRL提供了一种通知用户和其他应用程序的中心管理方式。CA系统生成CRL以后,可以放到LDAP(轻量级目录访问协议)服务器中供用户查询或下载,也可以放置在Web服务器的合适位置,以页面超级连接的方式供用户直接查询或下载。

           CA的核心功能就是发放和管理数字证书,具体描述如下:

    • 接收验证最终用户数字证书的申请。
    • 确定是否接受最终用户数字证书的申请。
    • 向申请者颁发或拒绝颁发数字证书。
    • 接收、处理最终用户的数字证书更新请求。
    • 接收最终用户数字证书的查询、撤销。
    • 产生和发布证书吊销列表(CRL)。
    • 数字证书的归档。
    • 密钥归档。
    • 历史数据归档。

           根CA证书,是一种特殊的证书,它使用CA自己的私钥对自己的信息和公钥进行签名。

  2. RA

           RA负责申请者的登记和初始鉴别,在PKI体系结构中起承上启下的作用,一方面向CA转发安全服务器传输过来的证书申请请求,另一方面向LDAP服务器和安全服务器转发CA颁发的数字证书和证书撤消列表。

  3. 证书服务器

           证书服务器负责根据注册过程中提供的信息生成证书的机器或服务。

  4. 证书库

           证书库是发布证书的地方,提供证书的分发机制。到证书库访问可以得到希望与之通信的实体的公钥和查询最新的CRL。它一般采用LDAP目录访问协议,其格式符合X.500标准。

  5. 时间服务器

           提供单调增加的精确的时间源,并且安全的传输时间戳,对时间戳签名以验证可信时间值的发布者。

  6. PKI策略

           PKI安全策略建立和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则。它包括一个组织怎样处理密钥和有价值的信息,根据风险的级别定义安全控制的级别。

           一般情况下,在PKI中有两种类型的策略:一是证书策略,用于管理证书的使用,比如,可以确认某一CA是在Internet上的公有CA,还是某一企业内部的私有CA;另外一个就是CPS(Certificate Practice Statement证书操作管理规范)。一些商业证书发放机构(CCA)或者可信的第三方操作的PKI系统需要CPS。这是一个包含如何在实践中增强和支持安全策略的一些操作过程的详细文档。它包括CA是如何建立和运作的,证书是如何发行、接收和废除的,密钥是如何产生、注册的,以及密钥是如何存储的,用户是如何得到它的等等。现在为防止CPS泄露太多的信息,准备使用一种新的文件类型,即PKI信息披露规范PDS。

三.证书应用

       数字证书是由权威、公正的第三方CA机构所签发的符合X.509标准的权威的电子文档。

  1. 数据加密

           数字证书技术利用一对互相匹配的密钥进行加密、解密。当你申请证书的时候,会得到一个私钥和一个数字证书,数字证书中包含一个公钥。其中公钥可以发给他人使用,而私钥你应该保管好、不能泄露给其他人,否则别人将能用它以你的名义签名。

           当发送方向接收方发送一份保密文件时,需要使用对方的公钥对数据加密,接收方收到文件后,则使用自己的私钥解密,如果没有私钥就不能解密文件,从而保证数据的安全保密性。这种加密是不可逆的,即使已知明文、密文和公钥也无法推导出私钥。

  2. 数字签名

           数字签名是数字证书的重要应用之一,所谓数字签名是指证书用户使用自己的私钥对原始数据的哈希变换后所得消息摘要进行加密所得的数据。信息接收者使用信息发送者的证书对附在原始信息后的数字签名进行解密后获得消息摘要,并对收到的原始数据采用相同的杂凑算法计算其消息摘要,将二者进行对比,即可校验原始信息是否被篡改。数字签名可以提供数据完整性的保护,和不可抵赖性。

           使用数字证书完成数字签名功能,需要向相关数字证书运营机构申请具备数字签名功能的数字证书,然后才能在业务过程中使用数字证书的签名功能。

  3. 应用范围

           PKI技术的广泛应用能满足人们对网络交易安全保障的需求。作为一种基础设施,PKI的应用范围非常广泛,并且在不断发展之中,下面给出几个应用实例:

    • Web应用

             浏览Web页面是人们最常用的访问Internet的方式。如果要通过Web进行一些商业交易,该如何保证交易的安全呢?为了透明地解决Web的安全问题,在两个实体进行通信之前,先要建立SSL连接,以此实现对应用层透明的安全通信。

             SSL是一个介于应用层和传输层之间的可选层,它在TCP之上建立了一个安全通道,提供基于证书的认证,信息完整性和数据保密性。SSL协议已在Internet上得到广泛的应用。

             安全Web服务的流程(SSL协议工作流程)如下图所示。
      B6ebD.png

    • 安全电子邮件

             电子邮件凭借其易用、低成本和高效已经成为现代商业中的一种标准信息交换工具。随着Internet的发展,商业机构或政府机构都开始用电子邮件交换一些秘密的或是有商业价值的信息,这就引出了一些安全方面的问题,这些问题包括:消息和附件可以在不为通信双方所知的情况下被读取、篡改或截取;发信人的身份无法确认。电子邮件的安全需求也是机密性、完整性、认证性和不可否认性,而这些都可以利用PKI技术来获得。目前发展很快的安全电子邮件协议是S/MIME,这是一个允许发送加密和有签名邮件的协议。该协议的实现需要依赖于PKI技术。

四.Microsoft证书服务

       Windows Server 2003有一个非常健壮的公钥基础结构。它提供了一整套服务和工具,用以支持公钥应用程序的部署和管理,它的关键部分是Microsoft证书服务。能够支持部署一个或多个企业级CA,这些CA支持证书的颁发和吊销。它们与Active Directory集成在一起,Active Directory主要提供CA的位置信息、CA的策略,并公布颁发证书和吊销证书的信息。

       Microsoft证书服务使企业能够方便地建立CA,以满足其商业需求。证书服务包含一个默认策略模块,适于将证书颁发给企业实体。证书服务还包括请求实体的验证以及该域PKI安全策略是否允许所请求证书的验证。在考虑到其他策略,可以很容易地对其进行相应的修改或改进。因为证书服务是基于标准的,所以它为异构环境中支持公钥的应用程序提供了广泛的支持。

       PKI是由一组在一起工作的服务和组件组成。它用来建立一个受保护的通信环境,以保护intranet和Internet上的电子邮件通信安全,同时还可以保护Web站点和公司基于Web的事务处理,加强或更进一步保护加密文件系统,并使智能卡得以实施等。

实验步骤

       本练习主机A、B、C为一组,D、E、F为一组。实验角色说明如下:

实验主机 实验角色
主机A、D CA(证书颁发机构)
主机B、E 服务器
主机C、F 客户端

下面以主机A、B、C为例,说明实验步骤。

首先在主机中使用ipconfig命令查看本机IP地址为172.16.0.9,再打开Windows Server 2003虚拟机,用ping命令尝试与主机连接:
B7fB9.png
如图,表明连接成功。

安全Web通信

一、无认证(服务器和客户端均不需要身份认证)

       通常在Web服务器端没有做任何加密设置的情况下,其与客户端的通信是以明文方式进行的。

  • 客户端启动协议分析器,选择“文件”-->“新建捕获窗口”,然后单击工具栏中的按钮开始捕获;

           客户端在IE浏览器地址栏中输入http://服务器IP,访问服务器Web服务。成功访问到服务器Web主页面后,单击协议分析器捕获窗口工具栏中的按钮刷新显示,在“会话分析”视图中依次展开“会话分类树”-->“HTTP会话”-->“本机IP与同组主机IP地址间的会话”,在端口会话中选择源或目的端口为80的会话,在右侧会话视图中选择名为“GET”的单次会话,并切换至“协议解析”视图。
    B7N6g.png

           如上图所示,通过协议分析器对HTTP会话的解析中可以确定,在无认证模式下,服务器与客户端的Web通信过程是以明文实现的。

二、单向认证(仅服务器需要身份认证)

  1. CA(主机A)安装证书服务

           主机A依次选择“开始”-->“设置”--> “控制面板”-->“添加或删除程序”-->“添加/删除Windows组件”,选中组件中的“证书服务”,此时出现“Microsoft证书服务”提示信息,单击“是”,然后单击“下一步”。在接下来的安装过程中依次要确定如下信息:
    CA类型(选择独立根CA)
    CA的公用名称(userGXCA,其中G为组编号(1-32),X为主机编号(A-F),如第2组主机D,其使用的用户名应为user2D)
    证书数据库设置(默认)

           在确定上述信息后,系统会提示要暂停Internet信息服务,单击“是”,系统开始进行组件安装。安装过程中,在弹出的“所需文件”对话框中指定“文件复制来源”为C:ExpNISEncrypt-LabToolsWindowsCAi386即可(若安装过程中出现提示信息,请忽略该提示继续安装)。

           「注」 若安装过程中出现“Windows文件保护”提示,单击“取消”按钮,选择“是”继续;在证书服务安装过程中若网络中存在主机重名,则安装过程会提示错误;安装证书服务之后,计算机将不能再重新命名,不能加入到某个域或从某个域中删除;要使用证书服务的Web组件,需要先安装IIS(本系统中已安装IIS)。

           在启动“证书颁发机构”服务后,主机A便拥有了CA的角色。

  2. 服务器(主机B)证书申请

           「注」 服务器向CA进行证书申请时,要确保在当前时间CA已经成功拥有了自身的角色。

    • 提交服务器证书申请

             服务器在“开始”-->“程序”-->“管理工具”中打开“Internet信息服务(IIS)管理器”,通过“Internet信息服务(IIS)管理器”左侧树状结构中的“Internet信息服务”-->“计算机名(本地计算机)”-->“网站”-->“默认网站”打开默认网站,然后右键单击“默认网站”,单击”属性”。B7Itx.png

             在“默认网站 属性”的“目录安全性”页签中单击“安全通信”中的“服务器证书”,此时出现“Web服务器证书向导”,单击“下一步”。B7H1O.pngB7bcD.png

             在“选择此网站使用的方法”中,选择“新建证书”,单击“下一步”。B7qje.png

             选择“现在准备证书请求,但稍后发送”,单击“下一步”。BHijg.png

             填入有关证书申请的相关信息,单击“下一步”。

             在“证书请求文件名”中,指定证书请求文件的文件名和存储的位置(默认c:certreq.txt)。单击“下一步”直到“完成”。
    • 通过Web服务向CA申请证书

             服务器在IE浏览器地址栏中输入http://CA的IP/certsrv/并确认。

             服务器依次单击“申请一个证书”-->“高级证书申请”-->“使用base64编码...提交一个申请”进入“提交一个证书申请或续订申请”页面。

             打开证书请求文件certreq.txt,将其内容全部复制粘贴到提交证书申请页面的“保存的申请”文本框中,然后单击“提交”,并通告CA已提交证书申请,等待CA颁发证书。
             会显示证书已挂起,如下图:
    • CA为服务器颁发证书

             在服务器提交了证书申请后,CA在“管理工具”-->“证书颁发机构”中单击左侧树状结构中的“挂起的申请”项,会看到服务器提交的证书申请。右键单击服务器提交的证书申请,选择“所有任务”-->“颁发”,为服务器颁发证书(这时“挂起的申请”目录中的申请立刻转移到“颁发的证书”目录中,双击查看为服务器颁发的证书)。

             通告服务器查看证书。
  3. 服务器(主机B)安装证书

    • 服务器下载、安装由CA颁发的证书

             通过CA“证书服务主页”-->“查看挂起的证书申请的状态”-->“保存的申请证书”,进入“证书已颁发”页面,分别点击“下载证书”和“下载证书链”,将证书和证书链文件下载到本地。

      • 证书文件后缀名为cer
      • 证书链文件后缀名为p7b

             在“默认网站”-->“属性”的“目录安全性”页签中单击“服务器证书”按钮,此时出现“Web服务器证书向导”,单击“下一步”。

             选择“处理挂起的请求并安装证书”,单击“下一步”。

             在“路径和文件名”中选择存储到本地计算机的证书文件,单击“下一步”。

             在“SSL端口”文本框中填入“443”,单击“下一步”直到“完成”。

             此时服务器证书已安装完毕,可以单击“目录安全性”页签中单击“查看证书”按钮,查看证书的内容,回答下面问题。

             证书信息描述: 。

             颁发者: 。



             打开IE浏览器点击“工具”-->“Internet选项”-->“内容”-->“证书”,在“受信任的根证书颁发机构”页签中查看名为userGX的颁发者(也就是CA的根证书),查看其是否存在 。

    • 服务器下载、安装CA根证书

             右键单击certnew.p7b证书文件,在弹出菜单中选择“安装证书”,进入“证书导入向导”页面,单击“下一步”按钮,在“证书存储”中选择“将所有的证书放入下列存储”,浏览选择“受信任的根证书颁发机构”-->“本地计算机”如下图所示。

             单击“下一步”按钮,直到完成。

             再次查看服务器证书,回答下列问题:

             证书信息描述: 。

             颁发者: 。

             再次通过IE浏览器查看“受信任的根证书颁发机构”,查看名为userGX的颁发者(也就是CA的根证书),查看其是否存在 。

  4. Web通信

           服务器在“默认网站”-->“属性”的“目录安全性”页签“安全通信”中单击“编辑”按钮,选中“要求安全通道SSL”,并且“忽略客户端证书”(不需要客户端身份认证),单击“确定”按钮使设置生效。

           客户端重启IE浏览器,在地址栏输入http://服务器IP/并确认,此时访问的Web页面出现如图10-1-3所示信息。

           客户端启动协议分析器,设置过滤条件:仅捕获客户端与服务器间的会话通信,并开始捕获数据。

           客户端在IE浏览器地址栏中输入“https://服务器IP/”并确认,访问服务器Web服务。此时会出现“安全警报”对话框提示“即将通过安全连接查看网页”,单击“确定”,又出现“安全警报”对话框询问“是否继续?”,单击“是”。此时客户端即可以访问服务器Web页面了。访问成功后,停止协议分析器捕获,并在会话分类树中找到含有客户端与服务器IP地址的会话。在协议解析页面可观察到,服务器与客户端的Web通信过程是以密文实现的,如图10-1-4所示。
    图10-1-4 客户端与服务器间信息加密通信

三、双向认证(服务器和客户端均需身份认证)

  1. 服务器要求客户端身份认证

           服务器在“默认网站”-->“属性”的“目录安全性”页签中单击“编辑”按钮,选中“要求安全通道SSL”,并且“要求客户端证书”,单击“确定”按钮使设置生效。
  2. 客户端访问服务器

           客户端在IE浏览器地址栏中输入“https://服务器IP”访问服务器Web服务。此时弹出“安全警报”对话框,提示“即将通过安全连接查看网页”,单击“确定”,又弹出“安全警报”对话框询问“是否继续?”,单击“是”。出现“选择数字证书”对话框,但是没有数字证书可供选择。单击“确定”,页面出现提示“该页要求客户证书”。
  3. 客户端(主机C)证书申请

           「注」 客户端向CA进行证书申请时,要确保在当前时间CA已经成功拥有了自身的角色。
    • 登录CA服务主页面

             客户端在确认CA已经启动了“证书颁发机构”服务后,通过IE浏览器访问http://CA的IP/certsrv/,可以看到CA证书服务的主页面。

    • 客户端提交证书申请

             在主页面“选择一个任务”中单击“申请一个证书”,进入下一页面。

             在证书类型页面中选择“Web浏览器证书”,进入下一页面。

             在“Web浏览器证书 - 识别信息”页面中按信息项目填写自己的相关信息,下表是一个填写实例。

      填写内容
      userGX,其中G为组编号(1-32),X为主机编号(A-F),如第2组主机F,其使用的用户名为user2F
      Netlab
      PKI
      Changchun
      ilin
      地址)


       上述信息填写完毕后,单击“提交”按钮提交识别信息,当页面显示“证书挂起”信息时,说明CA已经收到用户的证书申请,但是用户必须等待管理员颁发证书。

       单击页面右上角的“主页”回到证书服务主页面。在“选择一个任务”中单击“查看挂起的证书申请的状态”进入下一页面,会看到“Web浏览器证书(提交申请时间)”。单击自己的证书申请,这时会看到证书的状态依然是挂起状态。

       接下来请CA为客户端颁发证书。
- CA为客户端颁发证书

       通告客户端查看证书。
- 客户端下载、安装证书链

       客户端重新访问CA证书服务主页面,单击“查看挂起的证书申请的状态”,然后单击自己的证书申请。此时页面显示“证书已颁发”。单击“安装此证书”,对于弹出的“安全性警告”对话框选择“是”,这时页面显示信息“您的新证书已经成功安装”。

  1. 客户端查看颁发证书

           客户端单击IE浏览器的“工具”-->“Internet选项”-->“内容”-->“证书”,会在“个人”页签中看到同组主机CA颁发给自己的证书,如图10-1-5所示。
    图10-1-5 IE浏览器证书
  2. 客户端再次通过https访问服务器

           客户端重新运行IE浏览器并在地址栏中输入“https://服务器IP/bbs”并确认,访问服务器的Web服务。此时出现“安全警报”对话框提示“即将通过安全连接查看网页”,单击“确定”,又出现“安全警报”对话框询问“是否继续?”,单击“是”。出现“选择数字证书”对话框,选择相应的数字证书,单击“确定”。出现“安全信息”提示“是否显示不安全的内容”,单击“否”。此时,客户端即可以访问服务器的Web服务。

课后测试

  1. 在实验中,担任CA角色的主机,需要安装哪些服务组件?

    A. 证书服务组件

    B. IIS

    C. 证书服务组件和IIS

    D. 证书服务组件和目录服务组件

    【答案】C

  2. 安装证书服务组件过程中,CA的类型选择的是什么类型?

    A. 从属根CA

    B. 独立根CA

    C. 企业根CA

    D. 二级根CA

    【答案】B

  3. 在安装组件之后,在哪里启动证书颁发机构服务,主机便拥有了CA角色?

    A. 开始-程序-附件

    B. 开始-程序-控制面板

    C. 开始-程序-管理工具

    D. 开始-程序-启动

    【答案】C

  4. 在与HTTPS://***连接后,在浏览器的状态栏会看到一个小锁,点击小锁可以直接查看到谁的证书?

    A. 客户端

    B. WEB服务器

    C. CA机构

    D. Windows

    【答案】B

  5. 本次实验中,单向认证是认证哪一方?

    A. 客户端

    B. WEB服务器

    C. CA服务器

    【答案】B

  6. 本次实验中,双向认证是认证哪两方?

    A. 客户端和WEB服务器

    B. WEB服务器

    C. 客户端和CA服务器

    【答案】A

  7. 在实验中,建立通信需要进行单向认证还是双向认证是在哪里进行设置的?

    A. 客户端的浏览器

    B. WEB服务器端的浏览器

    C. WEB服务器端的IIS

    D. CA服务器的IIS

    【错选】D

    【答案】C

  8. 本实验中,服务器下载的certnew.cer文件中包含几个证书?分别是谁的证书?

    A. 1个,服务器证书

    B. 1个,客户端证书

    C. 2个,服务器证书和CA根证书

    D. 3个,服务器证书、客户端证书以及CA根证书

    【错选】C

    【答案】A

  9. 本实验中,服务器下载的certnew.p7b文件中包含几个证书?分别是谁的证书?

    A. 1个,服务器证书

    B. 1个,客户端证书

    C. 2个,服务器证书和CA根证书

    D. 3个,服务器证书、客户端证书以及CA根证书

    【答案】C

  10. 在服务器端设置“要求安全通道SSL”,默认指定的通信端口是哪个?

    A. 80

    B. 21

    C. 139

    D. 443

    【错选】A

    【答案】D

  11. 从实验中可以判断,在HTTPS通信中,实现了哪些安全服务?

    A. 只实现了认证服务

    B. 只实现了保密性服务

    C. 只实现了认证与保密性服务

    D. 实现了认证、保密性以及完整性服务

    【答案】D

  12. 在实验过程中,第一次查看服务器证书时出现了下图所示信息,为什么会出现这种情况?怎么解决这个问题?
    ByzbF.png

    【我的回答】证书非Microsoft信任机构颁发,需手动添加信任。

    【答案】没有安装CA根证书。将CA根证书安装到受信任的证书颁发机构目录下。

思考题

  1. 如果用户将根证书删除,用户证书是否还会被信任?
    • 不会被信任。
  2. 对比两次协议分析器捕获的会话有什么差异?

参考资料

原文地址:https://www.cnblogs.com/crazymosquito/p/7816896.html