密码学实验指导书

时间:2024.3.31

密码学及应用实验指导

实验1 古典密码

实验目的

1.    理解代替密码学加密过程

2.    理解置换密码学加密过程

实验环境

Windows和交换网络结构

实验工具

VC++6.0和密码工具

实验原理

一.Caesar(恺撒)密码

    Caesar密码是传统的代替加密法,Caesar加密变换是:c = (m + k) mod 26

    其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,也为密钥。

很容易得到相应的Caesar解密变换是: m = D(c) = (c – k) mod 26

二.单表置换密码

单表置换密码也是一种传统的代替密码算法,在算法中维护着一个置换表,这个置换表记录了明文和密文的对照关系。在单表置换算法中,密钥是由一组英文字符和空格组成的,称之为密钥词组。

例如当输入密钥词组:I LOVE MY COUNTRY后,对应的置换表如下:

实验步骤

凯撒密码   

本练习主机A、B为一组,C、D为一组,E、F为一组。

    首先使用“快照X”恢复Windows系统环境。

一.手动完成Caesar密码

    (1)在实验原理部分我们已经了解了Caesar密码的基本原理,那么请同学们写出当密钥k=3时,对应明文:data security has evolved rapidly的密文:                        。

    (2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“Caesar密码”。在明文输入区输入明文:data security has evolved rapidly。将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。

    请根据密钥验证密文与明文对应关系是否正确。

二.Caesar加密

    (1)进入“加密解密”|“Caesar密码”视图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。

    请将明文记录在这里:                        。

    (2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。加密工作完成后,单击“导出”按钮将密文默认导出到Caesar共享文件夹(D:\Work\Encryption\Caesar\)中,默认文件名为Caesar密文.txt。

    (3)通知同组主机接收密文,并将密钥k通告给同组主机。

    (4)单击“导入”按钮,进入同组主机Work\Encryption\Caesar目录(\\同组主机IP\Work\Encryption\Caesar),打开Caesar密文.txt。

    (5)调节密钥k的微调按钮或对照表的移位按钮,将k设为同组主机加密时的密钥k值,这时解密已经成功。请将明文写出:                     。

    (6)将解密后的明文与同组主机记录的明文比较,请对比明文是否相同。

三.Caesar密码分析

    (1)本机进入“密码工具”|“加密解密”|“Caesar密码”,在明文输入区输入明文(要求明文有一定的意义以便让同组主机分析)。

    请将明文记录在这里:                        。

    (2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值完成Caesar加密,单击“导出”按钮,将密文默认导出到Caesar共享文件夹中。

    (3)通告同组主机(不要通告密钥值k)密文已经放在共享文件夹中,让同组主机获取密文。

    (4)单击“导入”按钮将同组主机Caesar密文导入。

    (5)调节密钥k的微调按钮或者对照表的移位按钮来调节密钥,从而进行密码分析(平均13次,最坏26次破解)。请将破解出的明文和密钥记录在这里:

    密钥k=          。

    明文                        。

    (6)将破解后的密钥和明文与同组主机记录的密钥和明文比较。如果不同请调节密钥k继续破解。

四.源码应用(选做)

    设计Caesar加密工具,利用Caesar加密算法对文件进行加密。

    单击工具栏“VC6”按钮,启动VC++6.0。选择“File”|“Open Workspace…”加载工程文件“C:\ExpNIS\Encrypt-Lab\Projects\Caesar\Caesar.dsw”。基于此工程进行程序设计。

单表置换密码

 一.单表置换  

(1)单击“密码工具”按钮,进入“加密解密”|“单表置换”|“加密/解密”视图,与同组主机协商好一个密钥词组k=          。

    (2)根据“单表置换”实验原理计算出置换表。

    (3)计算完成置换表以后,在明文输入区输入明文,单击“加密”按钮用置换表的对应关系对明文进行加密,加密完成后,单击“导出”按钮,将密文导出到SingleTable共享目录中,并通告同组主机获取密文。

    请将明文记录在这里:                        。

    (4)单击“导入”按钮将同组主机单表置换密文导入,根据同组主机置换表完成本机置换表,单击“解密”按钮对密文进行解密。

(5)本机将解密后的明文与同组主机记录的明文对照,如果双方的明文一致,则说明实验成功,否则说明本机或同组主机的置换表计算错误。

二.单表置换的统计分析

由统计学得出的英文字母相对频率表。

实验2 对称密码算法――DES算法

实验目的

1.理解对称加密算法的原理和特点

2.理解DES算法的加密原理

实验环境

Windows和交换网络结构

实验工具

VC++6.0和密码工具

实验原理

一.对称密钥加密机制

    对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码体系通常分为两大类,一类是分组密码(如DES、AES算法),另一类是序列密码(如RC4算法)。

    对称密码体系加密和解密时所用的密钥是相同的或者是类似的,即由加密密钥可以很容易地推导出解密密钥,反之亦然。同时在一个密码系统中,我们不能假定加密算法和解密算法是保密的,因此密钥必须保密。发送信息的通道往往是不可靠的或者不安全的,所以在对称密码系统中,必须用不同于发送信息的另外一个安全信道来发送密钥。

对称密码体系的优点:

    ●  加密效率高,硬件实现可达每秒数百兆字节( 件实现略慢一些)。

    ●  密钥相对比较短。

    ●  可以用来构造各种密码机制。

    ●  可以用来建造安全性更强的密码。

    对称密码体系的缺点:

    ●  通信双方都要保持密钥的秘密性。

    ●  在大型网络中,每个人需持有许多密钥。

    ●  为了安全,需要经常更换密钥。

二.DES加密算法简介

    1973年5月15日,美国国家标准局在联邦注册报上发表一则启事,公开征集用来保护传输和静止存储的计算机数据的密码算法,这一举措最终导致了数据加密标准DES的出现。DES采用分组乘积密码体制,它是由IBM开发的,是对早期Lucifer密码体制的改进。DES在1975年3月17日首次在联邦记录中公布,而且声明对此算法征求意见。到1977年2月15日拟议中的DES被采纳为“非密级”应用的一个联邦标准。

    最初预期DES作为一个标准只能使用10至15年。然而,出于种种原因,可能是DES还没有受到严重的威胁,事实证明了DES要长寿得多。在其被采用后,大约每隔5年被评审一次。DES的最后一次评审是在1999年1月。但是,随着计算机计算能力的提高,由于DES的密钥过短,仅有56位,对DES的成功攻击也屡见报导。例如:1999年1月,RSA数据安全公司宣布:该公司所发起的对56位DES的攻击已经由一个称为电子边境基金的组织,通过互联网上的100000台计算机合作在22小时15分钟内完成。

    NIST(美国国家标准研究所)于1997年发布公告征集新的数据加密标准作为联邦信息处理标准以代替DES。新的数据加密标准称为AES。尽管如此,DES的出现仍然是现代密码学历史上一个非常重要的事件。它对于我们分析掌握分组密码的基本理论与设计原理仍然具有重要的意义。

三.DES加解密流程(略)

实验步骤

 实验步骤   

    本练习主机A、B为一组,C、D为一组,E、F为一组。

    首先使用“快照X”恢复Windows系统环境。

一.DES加密解密

    (1)本机进入“密码工具”|“加密解密”|“DES加密算法”|“加密/解密”页签,在明文输入区输入明文:                        。

    (2)在密钥窗口输入8(64位)个字符的密钥k,密钥k=      。单击“加密”按钮,将密文导出到DES文件夹(D:\Work\Encryption\DES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。

    (3)单击“导入”按钮,从同组主机的的DES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行DES解密。

    (4)将破解后的明文与同组主机记录的明文比较。

二.DES算法

    进入“密码工具”|“加密解密”|“DES加密算法”|“演示”页签。输入64位明文与密钥,执行加密操作,查看各演示模块。

    在DES加密算法中,S盒代替是最重要的部分,与其它代替比较起来,它提供了更好的安全性。因此,掌握S盒代替是掌握DES算法的关键。

    由于加密软件与加密硬件本身的特点有很大的差异,所以在实现DES加密算法时,加密软件与加密硬件采用的不同的策略。加密硬件一般采取标准的DES加密算法实现,高加密效率是加密硬件的主要特点。加密软件为了提高加密的效率,要遵守以下原则:

展开加密循环与函数;

避免内部循环中使用条件转移指令;

变量长度与CPU内部寄存器长度相同;

限制变量数量;

避免使用耗时的指令。

 S盒是DES算法的核心

实验3 非对称密码算法――RSA

实验目的

1.了解非对称加密机制

2.理解RSA算法的加密原理

实验环境

Windows和交换网络结构

实验工具

密码工具

实验原理

 实验原理   

一.非对称密钥加密概述

    前面讲述了对称密钥加密体制。使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥。这样,如果一个网络中有n个用户,他们之间彼此都可能进行秘密通信,这时网络中将需要n(n-1)/2个密钥(其中,每个用户都需要保存n-1个密钥),这样巨大的密钥量给密钥分配和管理带来了极大的困难。另外,随着计算机网络,特别是因特网的发展,网络上互不相识的用户可能需要进行保密的会话(例如,如果用户在进行电子商务活动时,需要保密的连接,这时的客户对象可能根本不是固定的对象)。最后,对称密钥加密机制难以解决签名验证问题。

    非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。每一个用户的加密密钥都是公开的。因此,加密密钥也称为公开密钥。所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。同时,每一个用户的解密密钥将由用户保存并严格保密。因此,解密密钥也称为私有密钥。

    非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,已知两个大素数a、b,求出a*b是容易计算的,而已知a*b,想知道其是哪两个大素数的乘积目前还没有好的计算方法,另外也有一些非对称加密算法(如ELGamal算法)的安全性是基于求“离散对数”这个数学难题上的。

    在公钥密码系统中每个实体都有自己的公钥和相应的私钥。公钥密码系统的加密变换和解密变换分别用E和D表示。任何实体B要向实体A发送信息m的步骤如下:实体B首先获得实体A的真实公钥的拷贝(eA),实体B使用eA计算密文c=E(m)并发送给实体A,实体A使用自己的私钥dA,计算m=D(c)解密密文,恢复出明文m。这里公钥不需要保密,但要保证它的真实性,即eA确实是实体A掌握的私钥dA所对应的公钥。提供真实的公钥比安全地分配密钥实现起来要容易得多。这也是公钥密码系统的主要优点之一。

    公钥密码系统的主要目的是提供保密性,它不能提供数据源认证(data origin authentication)和数据完整性(data integrity)。数据源认证是指:指定的数据是在以前的某个时间确实是由真正的源创建的。数据完整性是指:真正的源创建该数据后经过传输后存储没有发生改变。数据源认证和数据完整性要由其他技术来提供(如消息认证码技术、数字签名技术等)。

    从本质上来看,公钥密码比对称密钥密码加密的速度要慢,粗略的说,公钥加密算法RSA硬件实现比分组加密算法DES硬件实现的速度慢1500倍,而软件实现的速度要慢100倍。

    公钥解密也可以提供认证保证(如:在实体认证协议、带认证的密钥建立协议等)。公钥加密中必须有颁发让发送消息的人得到想要发送到的那个人的公钥的真实拷贝,否则就会受到伪装攻击。在实践中有很多方法分发真实的公钥,如:使用可信的公共文件,使用在线可信服务器,使用离线服务器和认证。

    公钥加密的优点:

    ●  大型网络中的每个用户需要的密钥数量少。

    ●  对管理公钥的可信第三方的信任程度要求不高而且是离线的。

    ●  只有私钥是保密的,而公钥只要保证它的真实性。

    缺点:

    ●  多数公钥加密比对称密钥加密的速度要慢几个数量级。

    ●  公钥加密方案的密钥长度比对称加密的密钥要长。

    ●  公钥加密方案没有被证明是安全的。

    公钥密码的概念本身就被公认为是密码学上的一块里程碑。二十多年来的研究表明,公钥密码成功地解决了计算机网络安全中的密钥管理,身份认证和数字签名等问题,已经成为信息安全技术中的重大核心技术。

二.RSA算法概述

    RSA加密算法于1977年由美国麻省理工学院的Ronal Rivest,Adi Shamir和Len Adleman三位年轻教授提出,并以三人的姓氏Rivest,Shamir和Adleman命名为RSA算法。这三位科学家荣获20##年度图灵奖,以表彰他们在算法方面的突出贡献。该算法利用了数论领域的一个事实,那就是虽然把两个大质数相乘生成一个合数是件十分容易的事情,但要把一个合数分解为两个质数的乘积却十分困难。合数分解问题目前仍然是数学领域尚未解决的一大难题,至今没有任何高效的分解方法。它无须收发双方同时参与加密过程,既可以用于保密也可以用于签名,因而非常适合于电子邮件系统的加密,互连网和信用卡安全系统。

三.RSA算法描述(略)

实验步骤

实验步骤   

    本练习主机A、B为一组,C、D为一组,E、F为一组。

    首先使用“快照X”恢复Windows系统环境。

一.RSA生成公钥及加密解密过程演示

    (1)本机进入“密码工具”|“加密解密”|“RSA加密算法”|“公钥”页签,在生成公钥区输入素数p和素数q,这里要求p和q不能相等(因为很容易开平方求出p与q的值)并且p与q的乘积也不能小于127(因为小于127不能包括所有的ASCII码,导致加密失败),你选用的素数p与q分别是:p=      ;q=     。

    (2)单击“私钥d”下拉按钮,选择私钥d,并记录这个私钥用于解密,d=      。

    (3)单击“生成公钥”按钮生成公钥,记录下公钥e=       , n=      。

    (4)在生成公钥演示区中输入素数p=      和素数q=      ,还有私钥d=      。

    单击“开始演示”按钮查看结果,填写表3-1-1。

公钥生成演示结果

私钥d              私钥n          

公钥e             公钥n          

    (5)在加/解密演示区中输入明文m=      ,公钥n=      (m<n),公钥e=      。单击“加密演示”按钮,查看RSA加密过程,然后记录得到的密文c=      

    (6)在密文c编辑框输入刚刚得到的密文,分别输入私钥n=      ,私钥d=      ,点击“解密演示”按钮,查看RSA解密过程,然后记录得到的明文m=     

    (7)比较解密后的明文与原来的明文是否一致。

    根据实验原理中对RSA加密算法的介绍,当素数p = 13,素数q = 17,私钥d = 143时,写出RSA公钥的生成过程:                    。

    利用生成的公钥,写出对明文m = 40的加密过程(加密过程计算量比较大,请使用密码工具的RSA工具进行计算):                      。

    利用私钥d = 143,对生成的密文进行解密:                      。

二.RSA加密解密

    (1)本机在生成公钥区输入素数p和素数q,这里要求p和q不能相等,并且p与q的乘积也不能小于127,记录你输入的素数,p=      ,q=     

    (2)点击“私钥d”的下拉按钮,选择私钥d,并记录这个私钥用于解密,d=      。

    (3)点击“生成公钥”按钮生成公钥,记录下公钥e=      , n=      。将自己的公钥通告给同组主机。

    (4)本机进入“加密”页签,在“公钥e部分”和“公钥n部分”输入同组主机的公钥,在明文输入区输入明文:                        。

    单击“加密”按钮对明文进行加密,单击“导出”按钮将密文导出到RSA共享文件夹(D:\Work\Encryption\RSA\)中,通告同组主机获取密文。

    (5)进入“解密”页签,单击“导入”按钮,从同组主机的RSA共享文件夹中将密文导入,在“私钥d部分”和“私钥n部分”输入自己的私钥,点击“解密”按钮进行RSA解密。

    (6)将破解后的明文与同组主机记录的明文比较。

实验4 Hash算法

实验目的

1.理解Hash函数的计算原理和特点

2.理解MD5算法原理

实验环境

Windows和交换网络结构

实验工具

密码工具

实验原理

一.哈希函数简介

    信息安全的核心技术是应用密码技术。密码技术的应用远不止局限于提供机密性服务,密码技术也提供数据完整性服务。密码学上的散列函数(Hash Functions)就是能提供数据完整性保障的一个重要工具。Hash函数常用来构造数据的短“指纹”,消息的发送者使用所有的消息产生一个短“指纹”,并将该短“指纹”与消息一起传输给接收者。即使数据存储在不安全的地方,接收者重新计算数据的指纹,并验证指纹是否改变,就能够检测数据的完整性。这是因为一旦数据在中途被破坏或改变,短指纹就不再正确。

    散列函数是一个函数,它以一个变长的报文作为输入,并产生一个定长的散列码,有时也称为报文摘要,作为函数的输出。散列函数最主要的作用是用于鉴别,鉴别在网络安全中起到举足轻重的地位。鉴别的目的有以下两个:第一,验证信息的发送者不是冒充的,同时发信息者也不能抵赖,此为信源识别;第二,验证信息完整性,在传递或存储过程中未被篡改,重放或延迟等。

二.哈希函数特点

    密码学哈希函数(cryptography hash function,简称为哈希函数)在现代密码学中起着重要的作用,主要用于数据完整性认证和消息认证。哈希函数的基本思想是对数据进行运算得到一个摘要,运算过程满足:

    ●  压缩性:任意长度的数据,算出的摘要长度都固定。

    ●  容易计算:从原数据容易计算出摘要。

    ●  抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的摘要都有很大区别。

    ●  弱抗碰撞:已知原数据和其摘要,想找到一个具有相同摘要的数据(即伪造数据),在计算上是困难的。

    ●  强抗碰撞:想找到两个不同的数据,使它们具有相同的摘要,在计算上是困难的。

三.针对哈希函数的攻击

    对散列函数的攻击方法主要有两种:

    ●  穷举攻击:它可以用于对任何类型的散列函数的攻击,最典型的方式就是所谓的“生日攻击”。采用生日攻击的攻击者将产生许多明文消息,然后计算这些明文消息的摘要,进行比较。

    ●  利用散列函数的代数结构:攻击其函数的弱性质。通常的有中间相遇攻击、修正分组攻击和差分分析攻击等。

四.MD5哈希函数

    1990年R.L.Rivest提出哈希函数MD4。MD4不是建立在其他密码系统和假设之上,而是一种直接构造法。所以计算速度快,特别适合32位计算机软件实现,对于长的信息签名很实用。MD5是MD4的改进版,它比MD4更复杂,但是设计思想相似并且也产生了128位摘要。

五.MD5哈希算法(略)

实验步骤

 实验步骤   

    本练习主机A、B为一组,C、D为一组,E、F为一组。

    首先使用“快照X”恢复Windows系统环境。

一.MD5生成文件摘要

    (1)本机进入“密码工具”|“加密解密”|“MD5哈希函数”|“生成摘要”页签,在明文框中编辑文本内容:                        。

    单击“生成摘要”按钮,生成文本摘要:                        。

    单击“导出”按钮,将摘要导出到MD5共享文件夹(D:\Work\Encryption\MD5\)中,并通告同组主机获取摘要。

    (2)单击“导入摘要”按钮,从同组主机的MD5共享文件夹中将摘要导入。

    在文本框中输入同组主机编辑过的文本内容,单击“生成摘要”按钮,将新生成的摘要与导入的摘要进行比较,验证相同文本会产生相同的摘要。

    (3)对同组主机编辑过的文本内容做很小的改动,再次生成摘要,与导入的摘要进行对比,验证MD5算法的抗修改性。

二.MD5算法

    本机进入“密码工具”|“加密解密”|“MD5哈希函数”|“演示”页签,在明文输入区输入文本(文本不能超过48个字符),单击“开始演示”,查看各模块数据及算法流程。

    根据实验原理中对MD5算法的介绍,如果链接变量的值分别为(其中,M[1]=31323334):

    A: 2B480E7C

    B: DAEAB5EF

    C: 2E87BDD9

    D: 91D9BEE8

    请写出第2轮第1步的运算过程以及经过运算后的链接变量。

三.源码应用(选做)

    设计MD5文件校验工具,利用MD5算法计算文件摘要。

    单击工具栏“VC6”按钮,启动VC++6.0。选择“File”|“Open Workspace…”加载工程文件“C:\ExpNIS\Encrypt-Lab\Projects\MD5\MD5.dsw”。基于此工程进行程序设计。

实验5 PGP应用

实验目的

1.学会利用PGP工具实现安全通信

2.理解安全通信实现过程

实验环境

windows系统环境和交换网络环境

实验工具

GnuPG

实验原理

一.PGP简介

    在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分。邮件的安全问题也就突出了,大家都知道在互联网上传输的数据是不加密的。如果用户不保护自己的信息,第三者就会轻易获得用户的隐私。还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,就需要使用数字签名技术。

    RSA公钥体系的特点使它非常适合用来满足上述两个要求:保密性(privacy)和认证性(authentication)。PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件,它提供了非对称加密和数字签名。其创始人是美国的Phil Zimmermann,他把RSA公钥体系的方便和传统加密体系的高速结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计,因此PGP成为目前非常流行的公钥加密软件包。

    PGP有以下主要功能:

使用PGP对邮件加密,以防止非法阅读;

能给加密的邮件追加上数字签名,从而使收信人进一步确信邮件的发送者,而事先不需要任何保密的渠道用来传递密钥;

可以实现只签名而不加密,适用于发表公开声明时证实声明人身份,也可防止声明人抵赖,这一点在商业领域有很大的应用前景;

能够加密文件,包括图形文件、声音文件以及其它各类文件;

利用PGP代替Unicode生成RADIX64(就是MIME的BASE 64格式)的编码文件。

二.PGP加密机制

    假设甲要寄信给乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确定来信是不是甲的,这就是数字签名的必要性,用数字签名来确认发信的身份。

    PGP的数字签名是利用一个叫“邮件文摘”的功能,“邮件文摘”(message digest),简单地讲就是对一封邮件用某种算法算出一个最能体现这封邮件特征的数来(一旦邮件有任何改变这个数都会发生变化),这个数加上用户的名字(实际上在用户的密钥里)和日期等等,就可以作为一个签名了,确切地说PGP是用一个128位的二进制数做为“邮件文摘”的,用来产生它的算法就是MD5。

    PGP给邮件加密和签名的过程是这样的:首先甲用自己的私钥将上述的128位值加密,附加在邮件后,再用乙的公钥将整个邮件加密(要注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。

    PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份,可以用自己的私钥签名,这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。

    为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法。

    IDEA是一个有专利的算法,它的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。

    PGP加密前会对文件进行预压缩处理,PGP内核使用PKZIP算法来压缩加密前的明文。一方面对文件而言,压缩后加密产生的密文可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PGP中使用的PKZIP算法是经过原作者同意的。PKZIP算法是一个公认的压缩率和压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP2.0版本兼容的算法。

实验步骤

    本练习主机A、B为一组,C、D为一组,E、F为一组。

    首先使用“快照X”恢复Windows系统环境。

一.PGP安全通信

    说明:实验应用PGP工具实现信息的安全通信,其实现流程为:本机首先生成公私钥对,并导出公钥给同组主机;在收到同组主机的公钥后将其导入到本机中,并利用其对文件进行加密;将加密后的密文传回给同组主机,本机利用自己的私钥对来自同组主机的密文进行解密。

    要求:应用PGP工具过程中所使用的用户名均为userGX格式,其中G为组编号(1-32),X为主机编号(A-F),如第2组主机D,其使用的用户名应为user2D。

1.生成公私密钥

    (1)本机单击实验平台“GnuPG”工具按钮,进入工作目录,键入命令:gpg --gen-key开始生成公私钥对。期间gpg会依次询问如下信息:

欲产生密钥种类(默认选择1)

密钥大小(默认大小2048字节)

密钥有效期限(默认选择0—永不过期)

    确定上述输入后进入步骤(2)操作。

(2)生成用户标识,期间gpg会依次询问如下信息:

Real name(用户名,请按本机的组编号和主机编号确定你的用户名)

Email address(Email地址,如user2D@CServer.Netlab)

Common(注释信息,建议与用户名相同)

    确定上述输入后,gpg会提示你将要生成的USER-ID,形如:

        user2D (user2D) (user2D@CServer.Netlab)

    键入“O”确定以上信息后,gpg需要一个密码来保护即将生成的用户私钥,为了方便记忆,我们选择密码与用户名相同。

(3)接下来gpg会根据以上信息生成公私密钥对,并将它们存放在 C:\Documents and Settings\Administrator\Application Data\gnupg目录下,名字分别为:pubring.gpg和secring.gpg。

    「说明」 默认情况下Application Data目录是隐藏的,通过“资源浏览器”|“工具”菜单|“文件夹选项”|“查看”选项卡,选中“显示所有文件和文件夹”项,即可显示隐藏的目录和文件。

2.导出公钥

    本机在gpg工作目录键入命令:gpg -a -o D:\Work\PGP\userGXpubkey.asc --export userGX (userGX) (userGX@CServer.Netlab),gpg会将公钥导入到D:\Work\PGP\这个指定目录的userGXpubkey.asc文件中。

    将userGXpubkey.asc文件发送到同组主机PGP共享目录中。

3.导入同组主机公钥

    本机从同组主机发送来的userGYpubkey.asc文件中,将对方公钥导入至本机gpg库,其命令如下:gpg --import D:\Work\PGP\userGYpubkey.asc。

4.利用对方公钥进行加密

(1)在“D:\Work\PGP\”目录中新建一文本文件“userGX.txt”

(2)利用对方公钥对userGX.txt加密,并对其进行签名

    在gpg工作目录键入如下命令:gpg -sea -r userGY@CServer.Netlab 加密文件绝对路径,其中userGY@CServer.Netlab为USER-ID。加密完成后,gpg还要对其进行签名表明这个密文文件是“我”发出的,而不是“其它人”,在提示处输入前面设置的用于保护本机私钥的密码即可。最后在原文件所在目录下,生成一个名为“userGX.txt.asc”的文件,将该文件发送到同组主机PGP目录中。

5.解密密文

    (1)在gpg工作目录下键入命令:gpg -d 加密文件绝对路径 > 解密后文件路径,此时gpg要求输入前面设置的用于保护本机私钥的密码,输入密码,解开私钥。在存放加密文件的目录下就生了一个解密后的文件,打开解密文件,浏览正文,与同组主机确定其正确性。

GnuPG

GnuPG

GnuPG

GnuPG命令

实验6 PKI技术

PKI体系之一:证书的应用

实验目的

1.了解PKI体系

2.了解用户进行证书申请和CA颁发证书过程

3.掌握认证服务的安装及配置方法

4.掌握使用数字证书配置安全站点的方法

实验环境

Windows系统环境和交换网络环境

实验工具

Windows CA和网络协议分析器

实验原理    

一.PKI简介

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

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

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

二.证书申请

1.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的应用范围非常广泛,并且在不断发展之中,下面给出几个应用实例:

    (1)Web应用

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

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

    (2)安全电子邮件

    电子邮件凭借其易用、低成本和高效已经成为现代商业中的一种标准信息交换工具。随着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为例,说明实验步骤。

    首先使用“快照X”恢复Windows系统环境。

一.安全Web通信

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

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

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

    客户端在IE浏览器地址栏中输入http://服务器IP,访问服务器Web服务。成功访问到服务器Web主页面后,单击协议分析器捕获窗口工具栏中的按钮刷新显示,在“会话分析”视图中依次展开“会话分类树”|“HTTP会话”|“本机IP与同组主机IP地址间的会话”,在端口会话中选择源或目的端口为80的会话,在右侧会话视图中选择名为“GET”的单次会话,并切换至“协议解析”视图。通过协议分析器对HTTP会话的解析中可以确定,在无认证模式下,服务器与客户端的Web通信过程是以明文实现的。

2.单向认证(仅服务器需要身份认证)

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

    主机A依次选择“开始”|“设置”| “控制面板”|“添加或删除程序”|“添加/删除Windows组件”,选中组件中的“证书服务”,此时出现“Microsoft证书服务”提示信息,单击“是”,然后单击“下一步”。在接下来的安装过程中依次要确定如下信息:

CA类型(选择独立根CA)

CA的公用名称(userGXCA,其中G为组编号(1-32),X为主机编号(A-F),如第2组主机D,其使用的用户名应为user2D)

证书数据库设置(默认)

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

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

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

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

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

提交服务器证书申请

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

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

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

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

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

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

通过Web服务向CA申请证书

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

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

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

CA为服务器颁发证书

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

通告服务器查看证书。

(3)服务器(主机B)安装证书

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

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

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

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

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

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

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

    证书信息描述:                       

    颁发者:     

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

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

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

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

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

    证书信息描述:                        。

    颁发者:      。

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

    (4)Web通信

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

    客户端重启IE浏览器,在地址栏输入http://服务器IP/并确认,此时访问的Web页面。

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

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

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

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

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

    (2)客户端访问服务器

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

    (3)客户端(主机C)证书申请

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

登录CA服务主页面

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

客户端提交证书申请

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

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

在“Web浏览器证书 - 识别信息”页面中按信息项目填写自己的相关信息。

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

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

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

CA为客户端颁发证书

    通告客户端查看证书。

客户端下载、安装证书链

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

    (4)客户端查看颁发证书

    客户端单击IE浏览器的“工具”|“Internet选项”|“内容”|“证书”,会在“个人”页签中看到同组主机CA颁发给自己的证书。

    (5)客户端再次通过https访问服务器

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

思考题:

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

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

PKI体系之二:证书的管理

实验目的

1.掌握CA通过自定义方式查看申请信息的方法

2.掌握备份和还原CA的方法

3.掌握吊销证书和发布CRL的方法

实验环境

windows系统环境和交换网络环境

实验工具

Windows CA

实验原理

一.标准证书文件格式

    可以用以下格式导入和导出证书。

1.个人信息交换(PFX文件格式)

    “个人信息交换”格式(PFX,也称为PKCS #12)允许证书及其相关私钥从一台计算机传输到另一台计算机或可移动媒体。

    PKCS #12是业界格式,适用于证书及其相关私钥的传输或备份和还原。该操作可以在相同或不同的供应商的产品之间进行。

    要使用PKCS #12格式,加密服务提供程序(CSP)必须将证书和密钥识别为可以导出。如果证书是由Windows Server 2003或Windows 2000证书颁发机构颁发的,则在满足下列条件之一时该证书的私钥将为可导出的:

该证书用于加密文件系统(EFS)或EFS恢复。

通过在“高级证书申请”进行设置。

    因为导出私钥可能使私钥暴露给无关方,所以,PKCS #12格式是Windows Server 2003家族中支持的导出证书及其相关私钥的唯一格式。

2.加密消息语法标准(PKCS#7)

    PKCS#7格式允许将证书及证书路径中的所有证书从一台计算机传输到另一台计算机或可移动媒体。PKCS#7文件通常使用.p7b扩展名且与ITU-T X.509标准兼容。

    PKCS#7允许一些属性(例如,反签名)与签名相关,还有一些属性(例如,签名时间)可与消息内容一起验证。

3.DER编码的二进制X.509

    ITU-T Recommendation X.509中定义的ASN.1DER(区别编码规则)与ITU-TRecommendation X.209中定义的备用ASN.1 BER(基本编码规则)相比,是一个限制更严格的编码标准,它构成了DER的基础。BER和DER都提供了独立于平台的编码对象(如证书和消息)的方法,以便于其在设备和应用程序之间的传输。

    在证书编码期间,多数应用程序都使用DER,因为证书的一部分(Certification Request的Certification Request Info)必须使用DER编码,才能对其进行签名。

    不在运行Windows Server 2003计算机上的证书颁发机构也可能使用该格式,因此它支持互操作性。DER证书文件使用.cer扩展名。

4.Base64编码的X.509

    这种编码方式主要是为使用“安全/多用途Internet邮件扩展(S/MIME)”而开发的,S/MIME是一种通过Internet传输二进制附件的标准方法。Base64将文件编码为ASCII文本格式,这样可以减少传送的文件在通过Internet网关时被损坏的机率,同时,S/MIME可以为电子邮件发送应用程序提供一些加密安全服务,包括通过数字签名来证明原件,通过加密、身份验证和消息完整性来保证隐私和数据安全。

    MIME(多用途Internet邮件扩展)规范定义了为传送电子邮件而进行任意二进制信息编码的一种机制。

    由于所有符合MIME标准的客户端都可以对Base64文件进行解码,不在运行Windows Server 20## 计算机上的证书颁发机构也可以使用该格式,所以它支持互操作性。Base64证书文件使用.cer扩展名。

实验步骤

本练习主机A、B为一组,C、D为一组,E、F为一组。

实验角色说明如下:

主机A、C、E:CA(证书颁发机构) 、服务器

主机B、D、F: 客户端

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

    首先使用“快照X”恢复Windows系统环境。

一.安装证书服务

    主机A安装证书服务,具体步骤见练习一|安全Web通信|单向认证。

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

二.CA操作

1.CA自动颁发证书

    (1)CA通过“开始”|“程序”|“管理工具”|“证书颁发机构”打开“证书颁发机构”。

    (2)在“证书颁发机构”的左侧树状结构中右键单击“CA的名称”|“属性”,打开“属性”选项卡,单击“策略模块”|“属性”。在“请求处理”页签中选择“如果可以的话,按照证书模板的设置。否则,将自动颁发证书”。单击“应用”按钮,出现重启证书服务提示信息,单击“确定”直到完成设置,重启证书服务。

2.客户端以高级方式申请证书

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

    (1)客户端通过IE浏览器访问http://CA的IP/certsrv/,通过“申请一个证书”|“高级证书申请”|“创建并向此CA提交一个申请”进入证书申请页面。

    在“识别信息”中填入相关信息。

    在“需要的证书类型”中选择“客户端身份验证证书”。

    在“密钥选项”中选中“标记密钥为可导出”,其它项保持默认设置。

    单击“提交”按钮提交信息。由于CA已经设置“自动颁发证书”策略,所以申请被立刻批准,此时页面显示“证书已颁发”,客户端单击”安装此证书”。这时出现对话框“潜在的脚本冲突”,单击“是”。这时页面显示信息“证书已安装”。

    (2)CA查看“颁发的证书”,操作“添加/删除列”。

    在“颁发的证书”目录中,双击信息条目即可以查看证书。

    如果要查看证书的单独项,右键单击“信息条目”,选择“所有任务”|“导出二进制数据”,弹出“导出二进制数据”对话框,在其中选择相应的项。如果不能显示,则应该在“添加/删除列”中选择相应的列。

    在“证书颁发机构”的左侧树状结构中右键单击“颁发的证书”|“查看”|“添加/删除列”来自定义要显示的项目。其它几个目录如“挂起的申请”等也可以进行这项操作。

3.CA的备份和还原

    (1)CA在“证书颁发机构”的左侧树状结构中右键单击“CA的名称”|“所有任务”|“备份CA”,此时出现“证书颁发机构备份向导”,单击“下一步”。

    在“选择要备份的项目”中选中两个选项。

    “备份到这个位置中”选择一个新建的空目录,单击“下一步”。

    输入密码并确认密码,单击“下一步”直到“完成”。

    在“颁发的证书”目录中,选择一个证书右键单击此证书选择“所有任务”|“吊销证书”。此时弹出对话框要求指定“理由码”,选择任意“理由码”单击确定。此时选择的证书已经转移到“吊销的证书”目录中,右键单击此证书选择“所有任务”|“解除吊销证书”,此时出现提示信息“取消吊销命令失败…”,单击“确定”。

    (2)CA在“证书颁发机构”的左侧树状结构中右键单击“CA的名称”|“所有任务”|“还原CA”,此时出现“证书颁发机构还原向导”提示要立即关闭证书服务,单击“确定”。出现“证书颁发机构还原向导”,单击“下一步”。

    在“选择要还原的项目”中选中两个选项。“从这个位置还原”选择CA备份的目录,单击“下一步”。

    输入密码,单击“下一步”直到“完成”。

    “证书颁发机构还原向导”提示要启动证书服务,单击“是”启动证书服务。

    此时检查刚才被吊销的证书,已经从“吊销的证书”目录中还原回“颁发的证书”目录中。

4.证书吊销

    (1)主机A申请服务器证书。

    请根据练习一中服务器证书申请实验步骤,为主机A生成服务器证书请求,并安装服务器证书和证书链。

    (2)主机A在IIS中设置SSL,要求安全通道和客户端证书。

    (3)客户端访问服务器。

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

    (4)CA将客户端证书吊销,并发布CRL。

    CA在“颁发的证书”中找到客户端使用的Web浏览器证书。右键单击此证书“所有任务”|“吊销证书”,选择任意“理由码”,单击“确定”,此时证书即转移到“吊销的证书”目录中。在左侧树状结构中右键单击“吊销的证书”|“所有任务”|“发布”,出现对话框“发布CRL”,单击“确定”。在左侧树状结构中右键单击“吊销的证书”|“属性”弹出“吊销的证书的属性”对话框,单击“查看CRL”页签,单击“吊销列表”按钮,可以查看刚发布的CRL。

    (5)客户端访问服务器。

    重新访问服务器的证书服务,此时发现不能访问服务器,页面显示“该页要求有效的SSL客户证书”。说明此时客户端证书已经不被信任。

PKI体系之三:PKI信任模型

实验目的

1.  了解PKI常见的信任模型

实验环境

Windows系统环境和交换网络环境

实验工具

Windows CA

实验原理

信任模型提供了建立和管理信任关系的框架。信任模型的作用是管理信任关系。其目的是想确保一个认证机构签发的证书能够被另一个认证机构的依赖方所信任。即一个CA签发的证书能被另一个CA信任以及CA的依赖方之间信任。

一.名词解释

1.信任

    X.509的20##年版是这样定义信任的(X.509,3.3.54):“如果一个实体假定另一个实体会准确的像它期望的那样表现,那么就说它信任那个实体”。这里定义的信任概念包含一种期望,基于对其以前的行为的了解。认为它以前一直这么做,以后还会这么做。

    对这些假设或者期望可以描述我们将信任量化,用信任水平和信任度来表示。

    信任水平与双方位置有直接关系,位置即是双方认证路径的长度。如果一方对另一方很了解并且对它的期望是建立在过去的经验基础之上的,那么对方就会在它建立的信任中拥有一个较高的信任水平。

    如果双方都了解对方过去的行为,双方对对方的信任度就会很高。如果双方对对方过去的行为都了解的很少,对对方的信任度就低。这时如果慢慢的开始了解对方,时间成本会很高,不能马上解决问题,因此双方要依靠第三方来迅速的建立信任。CA信任其用户,你信任CA,于是你就信任其用户了。

2.信任域

    如果群体中所有个体都遵守同样的规则,则称群体在单信任域中运作。遵循同样规则(操作要求)进行操作的群体称为信任域。

    在一个企业中,信任域可以被按照组织和地理界限来划分。因为不同的组织和地区遵循不同的策略。

    一个组织中可能存在多个信任域,有的信任域会发生重叠。一个群体可能同时使用多个策略。一个策略可能包含多组策略,这样就使不同的信任域联合起来。

    不同组织的目标、期望及文化决定了很难建立起具有高度信任水平的信任关系。

3.信任锚

    在任何信任模型中,证书用户必须使用某种标准来决定什么时候可以信任一个身份?当可以确定一个身份或者有一个可信的身份签发者(CA)证明其身份时,才能够做出信任那个身份的决定,这个可信的实体称为信任锚。即用于对其它实体做出信任决定的可信实体称为信任锚。信任锚即是证书验证路径的起始点。

    当被识别的个体不在你直接交往的熟人中,如果你的熟人中有人认识他,可以采取信任传递的形式,根据你对熟人的信任和该熟人与该个体已经建立的信任关系,可以信任该个体。这里的信任锚就是熟人,他证明了待识别个体的身份,也证明了你的身份。

二.信任关系

    要使证书用户找到一条从证书颁发者到信任锚的路径可能需要建立一系列的信任关系。

    当两个认证机构之间给对方的公钥颁发证书时,两者间就建立了信任关系。除了证实认证机构的身份外,证明过程涉及了认证机构建立信任路径方面的内容。用户在验证一个实体身份时,可以根据这条路径追溯到他的信任关系的信任锚(起始点)。

    信任模型描述了如何建立信任关系,寻找和遍历信任路径的规则。

    信任关系分为双向的和单向的。多数情况是双向的,即“你信任某人,他也信任你”。

    维持各个参与方之间较短的距离会更有利于在信任关系中形成较高的信任水平。

    在大量人群中建立信任关系的必要性和建立信任关系时保持较少的中间人的要求之间产生了矛盾(中间人越少,信任水平就越高)。要完成身份验证,持证人到信任锚间信任路径上的中间人的数目必须较少。为了解决这个矛盾,必须能够构造出信任模型,而这些模型可以划分用户群,允许验证建立信任关系时的那些明确规则,这些规则使得建立的信任验证路径最短。

1.通用层次组织

    首先,考虑对大量用户进行划分的一个通用模型。在此模型中考虑两类认证机构:一类是子CA向最终实体(用户、网络服务器、应用程序代码段等)颁发证书;另一类是中介CA对子CA或其它中介CA颁发证书。

    通用层次结构是一种组织关系的方法,用在为用户分区或身份空间分区之间。

2.信任模型

    常用的信任模型有以下三种:下属层次信任模型、对等模型、互连的网状模型。

    混合模型是兼具各常见模型部分特征的一种模型。

下属层次信任模型

    通用层次信任模型允许双向信任关系,证书用户可以选择自己觉得合适的信任锚。下属层次信任模型是通用层次模型的一个子集,它增加了一些限制。

    在下属层次信任模型中,根CA有了特殊意义。根CA被任命为所有最终用户的公共信任锚。在此种结构中,根CA被定义为最可信的证书权威,所有其它信任关系都起源于它。它单向证明了下一层下属CA。只有上级CA可以给下级CA发证,而下级CA不能证明上级CA。

对等模型

    对等信任模型假设建立信任的两个认证机构不能认为其中一个从属于另一个(他们是对等的)。两个CA可能是一个公司或信任域的一部分,但是他们属于不同公司或信任域的情况更常见。

    在本模型中,没有作为信任锚的根CA。证书用户通常依赖自己的局部颁发权威,并将其作为信任锚。

    要建立双方信任关系,两个CA就常常要证明对方的公钥。这个过程称为交叉认证。

    X.509规范定义交叉认证如下:“一个认证机构可以是另一个认证机构颁发的证书的主体。这时,证书称为交叉证书。”

    如果限制自己只允许直接的信任关系,那么这个对等交叉认证模型可扩展性差的缺点就抵消了其简单的优点。这种限制的结果是每个CA必须直接证明它想包含于信任模型中的其它所有CA。如果想要一组完全相连信任关系,那么要建立的信任关系数就接近认证机构个数的平方。在要求建立双向信任关系的地方,每个链接都要求颁发两份证书。

    对等模型和层次模型不同,单信任锚不能被所有证书用户共享。相反,每个证书用户都必须为其局部CA获取CA证书。这使得分发CA证书的工作更复杂了。现有的分发模型常常在Web浏览器或其它应用程序中提供了一个可信CA证书列表。

网状模型

    对等交叉认证很有用。但当问题仅限于两个认证机构之间的直接交叉认证时,其用处就有限了。然而同一技术却可以更广泛的用于建立复杂的信任模型。当一个证书路径中可以有两个以上CA证书时,可以建立部分或完全互联的网状模型。

    长证书路径也使得验证开销十分显著,因此路径应该尽可能短。当两个最终实体间的信任链需要频繁使用时,就应该为他们建立直接信任关系。

    当直接信任关系建立以后,在信任链中就可以维持更高的信任水平了。路径较短时,完成验证所需的处理就越少,资源占用也就越少,因此验证过程就越快。

    缺点是每个CA的关系数目开始增长。假设路径长度的缩减是经过深思熟虑的,那么缩减会是一件好事。但在一个高度互联的电子商务世界中,链接太多会陷入可扩展性问题。

混合信任模型

    混合信任模型结构,即桥形结构。它是信任结构中常见的结构,它综合了层次、网状、信任列表等不同信任模型的一种整合结构,它具有很多的优势,应用比较普遍。

    网状信任结构是一种基于交叉认证信任中介点的桥接结构。它是通过建立一个交换中心CA,由它来与各个不同形式的信任域进行交叉认证,并且作为与其他PKI/CA建立信任的桥梁。交换中心CA作为一个独立的CA中心,与每一个CA信任域,其中包括独立的CA、网状、层次或其结构的CA域,进行对等的交叉认证,建立对等的信任关系,允许用户保留他们自己的原始信任锚。

    中心交换CA作为信任传递的中介点和汇聚点,使得任何结构类型的PKI结构都可以通过这个中心结构连接在一起,实现彼此之间的信任,并将每个单独的信任域通过交换中心的交叉CA扩展到整个PKI体系中。中心交换CA作为信任的中介机构,它不同于一个根CA,它不是整个信任关系的起止点,不是整个桥接域中的信任锚,而各个CA信任域仍保留着他们原有的信任源。

    桥CA中心作为各个不同的信任域进行信任互通的桥梁和担保者,承担着第三方的角色,这种中立与监督的地位将有利于维护整个信任体系的可信基础和严肃性。交换中心CA的建立将确立一整套关于CA实现互信的资源、方式、策略、规范等规则文章,用以对不同的CA信任域进行审计和监督,从而保证整个信任链的可靠。

    PKI体系结构比较复杂,其中包括层次结构、网状结构以及信任列表结构,这样就形成了多种不同PKI结构联接的特点,形成了寻找证书路径复杂及证书验证复杂等问题。

实验步骤

本练习主机A、B、C为一组,主机D、E、F为一组。

实验角色说明如下:

主机A、D: 根CA(证书颁发机构)

主机B、E: 独立从属CA

主机C、F:客户端

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

    首先使用“快照X”恢复Windows系统环境。

一.安装证书服务(根CA)

    主机A安装证书服务,具体步骤见练习一|安全Web通信|单向认证。

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

二.安装证书服务(独立从属CA)

    主机B安装独立从属CA,并在安装过程中生成证书请求,安装过程如下。

    (1)主机B通过“开始”|“设置”|“控制面板”|“添加或删除程序”|“添加/删除Windows组件”,选中组件中的“证书服务”,此时出现“Microsoft证书服务”提示信息,单击“是”,然后单击“下一步”。

    选择CA类型为“独立从属CA”,单击“下一步”。

    在“CA识别信息”中,填写“此CA的公用名称”即给CA取一个名字,单击“下一步”。

    在“证书数据库设置”中选择默认位置,单击“下一步”。

    在“CA证书申请”中选择“将申请保存到一个文件”,单击“下一步”(默认保存到C:\CAConfig\目录下)。

    此时提示要暂停Internet信息服务,单击“是”,系统开始进行组件安装。

    在随后弹出的“所需文件”通用对话框中指定“文件复制来源”为C:\ExpNIS\Encrypt-Lab\Tools\WindowsCA\i386,单击“确定”继续安装。若出现提示信息“证书安装不完全...”,单击“确定”继续安装。

    (2)完成安装后可以在“管理工具”中运行“证书颁发机构”服务。此时证书服务还没有从根CA处获得证书,所以证书服务不能工作。但主机B已经拥有了独立从属CA的角色。

三.根CA为独立从属CA颁发证书

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

    (1)独立从属CA在IE浏览器地址栏中输入“http://CA的IP/certsrv/”并确认,访问CA的证书申请页面。

    (2)通过“申请一个证书”|“高级证书申请”|“使用base64编码...提交一个申请”进入提交证书申请页面。

    (3)使用记事本打开从属CA的请求文件(默认C:\CAConfig\目录下,扩展名为req的文件),将其内容全部复制粘贴到提交证书申请页面的“保存的申请”的输入框中,然后单击“提交”等待CA颁发证书。

    (4)CA查看“证书颁发机构”中“挂起的申请”目录,可以看到刚提交的申请,右键单击此申请单击“所有任务”|“颁发”颁发证书。

    (5)独立从属CA通过“证书服务主页”|“查看挂起的证书申请的状态”|“保存的申请证书”|“DER编码”|“下载证书链”将以“.p7b”结尾的文件下载到本地计算机的指定位置,例如本机的“C:\CAConfig\”目录。

    (6)独立从属CA运行”证书颁发机构”的左侧树状结构中右键单击“CA的名称”|“所有任务”|“安装CA证书”,在本机的“C:\CAConfig\”文件夹中选择以“.p7b”结尾的证书链文件安装证书。在“证书颁发机构”的左侧树状结构中右键单击“CA的名称”|“所有任务”|“启动服务”,显示提示信息“正在启动证书服务”,然后证书服务即可运行。

四.客户端向独立从属CA申请证书

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

    (1)客户端通过IE浏览器访问“http://独立从属CA的IP/certsrv”。可以看到独立从属CA证书服务主页面,申请一张Web浏览器证书。

    (2)独立从属CA为客户端颁发证书。

    (3)客户端安装此证书,并通过单击IE浏览器的“工具”|“Internet选项”|“内容”|“证书”会在”个人”页签中看到CA颁发给自己的证书。

    (4)客户端在证书的“证书路径”页签中,看到包含根CA、独立从属CA及用户证书的证书链。

PKI体系之四:PKI的综合应用

实验目的

加深理解PKI体系

实验环境

Windows系统环境和交换网络环境

实验工具

密码工具

实验原理

一.PKI工具使用方法

1.使用PKI工具生成CA根证书及私钥

    打开密码工具,单击“视图”|“PKI工具”,此时会出现向导栏,单击向导栏中的“根证书”图标,在页签中填写如下信息:“CA密码”:用于保护CA私钥的密码。

“CA私钥”:CA私钥文件名称,其扩展名为.key。

“CA证书”:CA证书文件名称,其扩展名为.crt。

“私钥长度”:私钥的位数。范围从384-4096,可选。

“有效日期”:CA证书的有效日期。

“工作路径”:生成的CA证书文件和私钥文件的存储位置。单击文件夹图标可选择位置。

“基本信息”:CA的相关信息,建议用英文填写。

    将上述参数和信息填好后,单击”生成”按钮即可生成CA证书及私钥文件并存储在指定位置。

2.使用PKI工具生成待签名的客户端证书请求文件

    单击向导栏中的“请求文件”图标,在页签中填写如下相关信息:

“密码”:用于保护客户端证书私钥的密码。

“私钥文件”:客户端证书私钥文件名称。

“请求文件”:客户端证书请求文件名称,其扩展名为.txt。

“私钥长度”:私钥的位数。范围从384-4096,可选。

“附加密码”:随证书请求一起发送的额外信息。范围从4-20。

“工作路径”:生成的客户端证书文件和私钥文件的存储位置。单击文件夹图标可选择位置。

“基本信息”:客户端证书的相关信息,建议用英文填写。

    将上述参数和信息填好后,单击“生成”按钮即可生成客户端证书及私钥文件并存储在指定位置。

3.CA对请求文件签名

    (1)为客户端证书请求签名

    单击向导栏中的“CA签名”图标,在页签中填写如下相关信息:

“CA密码”:用于保护CA私钥的密码。

“CA私钥”:CA私钥文件名称。

“CA证书”:CA证书文件名称。

“签名源文件”:客户端证书请求文件名称。

“签名后证书”:CA对客户端请求签名后生成的客户端证书的名称。

“工作路径”:客户端证书请求文件的存储位置,也是生成的客户端证书文件的存储位置。单击文件夹图标可选择位置。

    将上述参数填好后,单击“签名”按钮即可为客户端证书请求签名生成客户端证书文件并存储在指定位置。

    (2)为服务器证书请求文件签名

    参考证书应用实验生成服务器证书请求过程,生成服务器证书请求文件“certreq.txt”。

    将服务器证书请求文件名“certreq.txt”填入”签名源文件”,在“签名后文件”中填写生成文件名,如“serv.crt”。

    将服务器证书请求文件复制到指定的工作目录中。

    单击“签名”按钮即可为服务器证书请求签名生成服务器证书文件并存储在指定的位置。

4.使用PKI工具生成PKCS#12文件

    单击向导栏中的“PKCS#12文件”图标,在页签中填写相关信息:

“源证书文件”:用于生成PKCS#12文件的客户端证书文件名称。

“私钥文件”:用于生成PKCS#12文件的客户端证书的私钥。

“密码”:用于保护客户端证书私钥文件的密码。

“PKCS#12文件”:生成的PKCS#12文件的名称,其扩展名为.pfx。

“PKCS#12密码”:用于保护生成PKCS#12文件的密码。

“工作路径”:客户端证书文件的存储位置,也是生成的PKCS#12文件的存储位置。单击文件夹图标可选择位置。

    将上述参数填好后,单击“生成”按钮即可为客户端证书生成PKCS#12文件并存储在指定位置。

5.使用PKI工具生成证书吊销列表

    单击向导栏中的“证书吊销”图标,在页签中填写相关信息:

“CA密码”:用于保护CA私钥的密码。

“CA证书”:CA证书文件名称。

“CA私钥”:CA私钥文件名称。

“源证书”:要吊销的证书文件名称。

“吊销列表”:要生成的吊销列表的名称,其扩展名为.crl。

“更新日期”:证书吊销列表的发布周期。

“工作路径”:要吊销的证书文件的存储位置,也是生成的吊销列表文件的存储位置。单击文件夹图标可选择位置。

    将上述参数填好后,单击“吊销”按钮即可生成吊销列表文件并存储在指定位置。

实验步骤

(1)主机A生成CA根证书建立CA。

点击实验平台工具面板中的“密码工具”,参照下图进入PKI界面。

在PKI界面中点击“根证书”,根据实验原理一|1,并且参照下图填写相关信息,生成CA:

参照上图添加完信息后,点击“生成”按钮,在C:\下就会生成ca.key和ca.crt文件。

(2)主机B通过IIS管理器生成Web服务器证书请求文件,并通过共享文件夹提交给主机A(CA)。

具体操作步骤如下:

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

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

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

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

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

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

(3)主机A对主机B的Web服务器证书请求文件签名颁发证书。

参照实验原理一|3|(2),进行具体操作步骤如下:

主机B首先在“开始”|“运行”中输入\\主机A的IP地址\Work,进入主机A的共享目录,把自己的c:\certreq.txt文件拷贝进去。主机A再把主机B的请求文件拷贝到与自己的CA证书、秘钥文件相同的目录下,以便为B颁发证书。具体操作见下图:

(4)主机B通过共享文件夹获取主机A颁发的Web服务器证书并安装。

主机A为主机B颁发完证书后,主机A再把证书拷贝到自己的D:\Work共享目录下,主机B再通过共享目录把自己的证书拷贝到C:\下。

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

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

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

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

(5)主机B通过共享文件夹获取主机A生成的CA根证书,导入CA证书到本地计算机中,设置IIS服务器安全通道并要求客户端证书。

主机A把CA根证书即ca.crt文件拷贝到自己的D:\Work共享目录下,主机B再通过共享目录把CA根证书拷贝到C:\下。

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

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

(6)主机C生成客户端证书请求文件并通过共享文件夹提交给主机A(CA)。

参照实验原理一|2,进行具体操作步骤如下:

(7)主机A对主机C的客户端证书请求文件签名颁发证书。

参照实验原理一|3(1),进行具体操作步骤如下:

主机C同样通过共享目录把自己的请求文件传给A,主机A把请求文件拷贝到自己C:\下,参照下图完成对客户端的证书颁发工作。

(8)主机C通过共享文件夹获取主机A颁发的客户端证书并生成PKCS#12文件。

参照实验原理一|4,进行具体操作步骤如下:

主机C通过共享文件获取到客户端证书后,参照下图生成PKCS#12文件:

(9)主机C通过类似服务器端的方式将CA根证书导入到本地计算机中,并安装客户端证书(导入PKCS#12格式客户端证书,选择证书存储为“个人”)。

(10)主机C访问主机B主页。

(11)主机A生成证书吊销列表吊销主机C的客户端证书。

参照实验原理一|5,进行具体操作步骤如下图:

    (12)主机B通过共享文件夹获取证书吊销列表。

    (13)主机B安装证书吊销列表:右键单击欲吊销的证书文件,选择“安装CRL”,直到完成。

(14)等待约3分钟后,主机C访问主机B主页。

访问不成功。

更多相关推荐:
实验报告_密码学

信息安全实验报告学号学生姓名班级实验三密码学实验一古典密码算法实验一实验目的通过编程实现替代密码算法和置换密码算法加深对古典密码体制的了解为深入学习密码学奠定基础二编译环境运行windows或linux操作系统...

实验报告_密码学

密码学与网络安全技术课程上机报告学号119xx4339姓名许海龙班级网112班教师卫琳娜安徽工业大学密码学实验一古典密码算法实验一实验目的通过编程实现替代密码算法和置换密码算法加深对古典密码体制的了解为深入学习...

密码学实验报告

密码学实验报告学院计算机科学与技术班级学号姓名指导老师实验日志实验题目DES或AES分组密码实验目的熟悉分组密码加解密算法的基本原理加深对所提供的部分源程序的理解分组密码将明文分成一组一组在密钥的控制下经过加密...

密码学实验报告

密码学实验报告实验一DES加密算法实验一实验目的理解对称加解密算法的原理和特点理解DES算法的加解密原理二实验背景DES算法为密码体制中的对称密码体制又被称为美国数据加密标准是19xx年美国IBM公司研制的对称...

密码学实验报告

江苏大学学院专业姓名学号计算机学院信息安全09023090604035小组成员AES对称加密算法实现一AES对称加密算法实现原理AESTheAdvancedEncryptionStandard接受一个128位的...

密码学实验报告3

哈尔滨工程大学实验报告实验名称DES加密班级学号姓名实验时间20xx615成绩指导教师实验室名称哈尔滨工程大学实验室与资产管理处制一实验名称MD5加密二实验目的通过编程实现MD5加密的算法设计并加深对其的了解三...

密码学实验报告四

现代密码学实验报告报告创建时间

密码学实验期中考试实验报告

云南大学数学与统计学院数学系信息与计算科学专业云南大学数学与与统计学院上机实践报告一实验目的实现基于GMP的姚氏百万富翁问题二实验内容实现基于GMP的百万富翁问题设有N个百万富翁他们希望比较出谁更富有但是不希望...

密码学实验第五组实验报告

云南大学数学与统计学实验教学中心实验报告云南大学数学与统计学实验教学中心实验报告一实验目的了解全同态加密方案二实验内容实现基于GMP实现全同态加密方案三实验环境Linux平台CodeBlockIDE网络在线编程...

计算机 密码学 实验一:维吉尼亚密码算法

实验一维吉尼亚密码算法安全0901王宇航09283020实验报告1描述维吉尼亚密码算法的流程以下算法只适用于英文加密加密流程第一步编号将AZ以编号025编号第二步选取密钥举例wangyuhang第三步明文处理去...

近代密码学---IT实验01--RSA实现

云南大学数学与统计学实验教学中心实验报告云南大学数学与统计学实验教学中心实验报告一实验目的配置gmp环境并对其进行测试通过gmp实现RSA加密解密二实验内容1配置gmp环境并对其进行测试2编程实现RSA非对称密...

DES_加密解密算法的C++实现--实验报告

信息安全IntroductiontoNetworkandSecurityDES加密解密算法的C实现姓名李思文学号20xx1616310036学院信息学院20xx年5月一DES算法的实现1DES简介本世纪五十年代...

密码学实验报告(37篇)