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


    《信息安全技术》实验一 PGP的原理与使用

    学号 20155337 20155304 20155310

    姓名 祁家伟 田宜楠 马英林

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

    实验目的

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

    实验内容

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

    实验人数

    每组3人,本组为20155304 20155310 20155337

    实验环境

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

    实验工具

    • Windows CA
    • 网络协议分析器

    实验类型

    • 验证型

    实验原理

    一.PKI简介

       PKI是Public Key Infrastructure的缩写,通常译为公钥基础设施。称为“基础设施”是因为它具备基础设施的主要特征。PKI在网络信息空间的地位与其他基础设施在人们生活中的地位非常类似。电力系统通过延伸到用户端的标准插座为用户提供能源;PKI通过延伸到用户的接口为各种网络应用提供安全服务,包括身份认证、识别、数字签名、加密等。一方面PKI对网络应用提供广泛而开放的支撑;另一方面,PKI系统的设计、开发、生产及管理都可以独立进行,不需要考虑应用的特殊性。
    
       目前,安全的电子商务就是采用建立在PKI基础上的数字证书,通过对要传输的数字信息进行加密和签名来保证信息传输的机密性、真实性、完整性和不可否认性(又称非否认性),从而保证信息的安全传输和交易的顺利进行。PKI已成为电子商务应用系统、乃至电子政务系统等网络应用的安全基础和根本保障。
    
       PKI的主要目的是通过自动管理密钥和证书,为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的完整性、机密性、不可否认性。数据的完整性是指数据在传输过程中不能被非法篡改;数据的机密性是指数据在传输过程中,不能被非授权者偷看;数据的不可否认性是指参加某次通信交换的一方事后不可否认本次交换曾经发生过。
    

    二.证书申请

    PKI组件

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

    

    CA

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

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

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

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

    接收验证最终用户数字证书的申请。
    确定是否接受最终用户数字证书的申请。
    向申请者颁发或拒绝颁发数字证书。
    接收、处理最终用户的数字证书更新请求。
    接收最终用户数字证书的查询、撤销。
    产生和发布证书吊销列表(CRL)。
    数字证书的归档。
    密钥归档。
    历史数据归档。
    根CA证书,是一种特殊的证书,它使用CA自己的私钥对自己的信息和公钥进行签名。

    RA

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

    证书服务器

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

    证书库

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

    时间服务器

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

    PKI策略

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

    

    三.证书应用

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

    数据加密

       数字证书技术利用一对互相匹配的密钥进行加密、解密。当你申请证书的时候,会得到一个私钥和一个数字证书,数字证书中包含一个公钥。其中公钥可以发给他人使用,而私钥你应该保管好、不能泄露给其他人,否则别人将能用它以你的名义签名。
    
       当发送方向接收方发送一份保密文件时,需要使用对方的公钥对数据加密,接收方收到文件后,则使用自己的私钥解密,如果没有私钥就不能解密文件,从而保证数据的安全保密性。这种加密是不可逆的,即使已知明文、密文和公钥也无法推导出私钥。
    

    数字签名

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

    应用范围

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

    Web应用

       浏览Web页面是人们最常用的访问Internet的方式。如果要通过Web进行一些商业交易,该如何保证交易的安全呢?为了透明地解决Web的安全问题,在两个实体进行通信之前,先要建立SSL连接,以此实现对应用层透明的安全通信。
    
       SSL是一个介于应用层和传输层之间的可选层,它在TCP之上建立了一个安全通道,提供基于证书的认证,信息完整性和数据保密性。SSL协议已在Internet上得到广泛的应用。

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

    image
    安全电子邮件

       电子邮件凭借其易用、低成本和高效已经成为现代商业中的一种标准信息交换工具。随着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.,再打开Windows Server 2003虚拟机,用ping命令尝试与主机连接:

    安全Web通信

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

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

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

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

    image

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

    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的角色。
    

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

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

    提交服务器证书申请

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

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

    在“证书请求文件名”中,指定证书请求文件的文件名和存储的位置(默认c:certreq.txt)。单击“下一步”直到“完成”。
    image

    image

    • 通过Web服务向CA申请证书
      服务器在IE浏览器地址栏中输入http://CA的IP/certsrv/并确认。
      image
      服务器依次单击申请一个证书”-->“高级证书申请”-->“使用base64编码...提交一个申请进入提交一个证书申请或续订申请页面。

    打开证书请求文件certreq.txt,将其内容全部复制粘贴到提交证书申请页面的“保存的申请”文本框中,然后单击“提交”,并通告CA已提交证书申请,等待CA颁发证书。

    会显示证书已挂起,如下图:

    • CA为服务器颁发证书

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

    • 通告服务器查看证书。
      服务器(主机B)安装证书
      服务器下载、安装由CA颁发的证书

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

    证书文件后缀名为cer

    选择“处理挂起的请求并安装证书”,单击“下一步”。
    image
    在“路径和文件名”中选择存储到本地计算机的证书文件,单击“下一步”。
    image

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

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

    思考题

    1.如果用户将根证书删除,用户证书是否还会被信任?

    答:将不会被信任,本地与此根证书关联证书无效。

    2.对比两次协议分析器捕获的会话有什么差异?

    答:无认证连接是捕获的会话为明文,在双向认证时捕获的会话为密文。

  • 相关阅读:
    iOS 中架构模式的浅显理解
    Block 在 ARC 下的拷贝
    Repo 的使用小结
    博客园新语言代码高亮以及OpenLiveWriter插件开发(一)
    GridLayout 使用
    PopupWindow 使用
    NDK笔记(二)-在Android Studio中使用ndk-build
    NDK 笔记(一)
    Java 多线程编程
    搭建Apache Web服务器
  • 原文地址:https://www.cnblogs.com/m20155310/p/7834294.html
Copyright © 2020-2023  润新知