实验九 信息保密性、完整性和不可抵赖性的综合应用
班级
姓名
学号
分数
实验学时 6 学时 实验位置 实验日期
年月
日
一、实验目的
1.利用 PGP 加密软件整合网络数据安全技术,加深理解密码学在网络安全中的重要性。
2. 了解流行加密软件 PGP/GPG4Win 的工作原理
3. 掌握流行加密软件 PGP/GPG4Win 的安装和使用
二、实验设备
1. Window 7 操作系统
2. PGP 软件。
三、实验原理
1、PGP 概述
PGP(Pretty Good Privacy)的创始人是美国的 Phil Zimmermann(菲利普·齐默曼),他在 1991 年把 RSA 公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和
密钥认证管理机制上有巧妙的设计。因此 PGP 成为几乎最流行的公匙加密软件包。PGP 有不同的实现,如 GnuPG 和 Gpg4win,其中 GnuPG(Gnu Private Guard,简写为 GPG)的核
心算法是 PGP,GnuPG 本身是为 Linux 等开源操作系统设计的;而 Gpg4win 是 windows 下 GnuGPG 及图形前端的合集安装包,其核心为 GnuPG,包括:(1)Kleopatra 和 GPA:GPG
的密钥管理器,用于生成、导入和导出 GPG 密钥(包括公钥和私钥);(2)GpgOL:Outlook 的 GPG 支持插件;(3)GpgEX:资源管理器的 GPG 支持插件;(4)Claws Mail:内置 GPG
支持的邮件客户端。
PGP 是一个基于 RSA 公钥加密体系的加密软件,是开源且免费的,后经互联网志愿者发展完善并广泛应用,具有如下特点:(1)选择最可用的加密算法作为系统的构造模块,所
用算法已被广泛检验过,相当安全;并将这些算法集成到一个通用的应用程序中,该程序独立于操作系统和处理器,并且基于一个使用方便的小命令集;(2)是一个开源项目,程序、
文档在 Internet 上公开;(3)可以免费得到运行于多种平台上的 PGP 版本,具有广泛的可用性;(4)不由任一政府或标准化组织所控制,使得 PGP 得到了广泛信任;(5)与商业公司(Network
Associates)合作,提供一个全面兼容的、低价位的商业版本 PGP。2010 年 6 月被赛门铁克公司收购。由于这些特点,使得 PGP 得到了广泛的应用。
PGP 常用的版本是 PGP Desktop Professional,它可以用来加密文件,可以用来对邮件保密以防止非授权者阅读,还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并
能确信邮件没有被篡改。同时,通过使用公钥密码算法,可以提供一种事先并不需要任何保密的渠道用来传递密匙的安全通讯方式。PGP 功能强大,而且具有很快的速度,PGP 提供
的主要功能如表 1.7.1 所示。
功能
使用的算法
消息加密 IDEA、CAST、3DES、
TwoFish、ElGamal、RSA
表 1.7.1 PGP 的功能概述
描述
发信人产生一次性会话密钥加密,用 IDEA 或 CAST-128
或 3DES 算法对消息进行加密;采用 ElGamal 或 RSA 算法
用接收方的公钥加密会话密钥
数字签名 DSS/SHA-1、RSA/MD5 采用 SHA-1 或 MD5 消息摘要算法计算消息的摘要值(散
列码),用发送者的私钥按 DSS 或 RSA 算法加密消息摘要
消息在传送和存储时可使用 PKZIP 压缩
对 E-mail 应用提供透明性,采用基数 64 编码将加密后的消
息(二进制流)转换为 ASCII 字符串
为了适应最大消息长度限制,PGP 执行分段和重新组装
PKZIP
Radix-64
-
压缩
E-mail 兼容
性
数据分段
2、PGP 的密钥管理
PGP 是一种混合密码系统,应用了多个密码算法,包括对称密码算法、非对称密码算法、消息摘要算法、数字签名等经典的密码学算法。为用户生成密钥对之后,可以进行邮件的
加密、签名、解密和认证。在 PGP 中使用的加密算法和用途如表 1.7.2 所示。
密钥名
会话密钥
公钥
私钥
加密算法
IDEA、AES
RSA、Diffie-Hellman
DSS/SHA、RSA/SHA
表 1.7.2 PGP 中采用的各种密码算法及用途
用途
对传送消息的加解密,随机生成,一次性使用
对会话密钥加密,收信人和发信人共用
对消息的杂凑值加密以形成签名,发信人专用
IDEA
口令
从上表可以看出,PGP 使用了四种类型的密钥:一次性会话传统密钥、公钥、私钥和基于口令短语的传统密钥/通行字短语。
会话密钥按 ANSI X9.17 标准,采用 IDEA 算法,以密文反馈模式(CFB)生成。当 PGP 用 RSA 算法为用户生成一个新的公钥/私钥对时,PGP 会要求用户提供一个口令短语,对
该短语使用 MD5/SHA-1 消息摘要算法生成一个散列码后,销毁该短语,从而把用户输入的口令短语转化为 IDEA/CAST-128 密钥,再使用这个密钥加密私钥,然后销毁这个散列码,
并将加密后的私钥存储到私钥环中。当用户要访问私钥环中的私钥时,必须提供口令短语。PGP 将取出加密后的私钥,生成散列码,解密私钥。
对私钥加密以存储于发送端
一个用户可能拥有多个公钥/私钥对,正确识别加密会话密钥和签名所用的特定公钥/私钥对的一个最简单的解决方案是将公钥和消息一起传送。但这种方式浪费了不必要的空间。
PGP 采用的解决方案是给每个公钥分配一个密钥标识(KeyID),并以极大的概率与用户标识(UserID)一一对应,即 UserID 和 KeyID 标识一个密钥。密钥标识至少为 64 位,因而密
钥标识重复的可能性非常小。
PGP 提供一种系统化的密钥管理方案来存储和组织这些密钥以保证有效使用这些密钥,它为每个节点(用户机器)提供一对数据结构,一个用于存放本节点自身的公钥/私钥对(即
私钥环),另一个用于存放本节点知道的其他用户的公钥(即公钥环)。私钥环信息:时间戳、KeyID、公钥、私钥、UserID,其中 UserID 通常是用户的邮件地址。也可以是一个名字,
可以重名;公钥环信息:时间戳、KeyID、公钥、对所有者信任度、用户 ID、密钥合法度、签名、对签名者信任度,其中 UserID 为公钥的拥有者。多个 UserID 可以对应一个公钥。公
钥环可以用 UserID 或 KeyID 索引。
如何保证用户公钥环上的公钥确实是指定实体的合法公钥,这是一个至关重要的问题。PGP 提供几种可选的方案以减少用户公钥环中包含错误公钥的可能性:(1)物理上得到对方
的公钥。这种方式最可靠,但有一定局限性;(2)通过电话验证公钥;(3)从双方都信任的第三方(个体或 CA)处获得对方的公钥。
此外,PGP 支持密钥管理服务器,用户可以将公钥发布在集中的密钥服务器上,供他人访问。
3、PGP 的消息处理过程
PGP 消息分成原始消息、签名部分和会话密钥部分三个部分。
PGP 发送方处理消息的过程为:(1)签名:利用 UserID 作为索引,从私钥环中得到私钥;PGP 提示输入口令短语,恢复私钥;构造签名部分;(2)加密:PGP 产生一个会话密钥,
并加密消息;PGP 用接收者 UserID 从公钥环中获取其公钥;构造消息的会话密钥部分。
PGP 接收方处理消息的过程为:(1)解密消息:PGP 用消息的会话密钥部分中的 KeyID 作为索引,从私钥环中获取私钥;PGP 提示输入口令短语,恢复私钥;PGP 恢复会话密钥,
并解密消息;(2)验证消息:PGP 用消息的签名部分中的 KeyID 作为索引,从公钥环中获取发送者的公钥;PGP 恢复被传输过来的消息摘要;PGP 对于接收到的消息计算摘要,并与
上一步的结果作比较。
4、PGP 的信任模型
由于 PGP 重在广泛地在正式或非正式环境下的应用,所以它没有建立严格的公钥管理模式。尽管 PGP 没有包含任何建立认证权威机构或建立信任体系的规范,但它提供了一个利
用信任关系的方法,将信任关系与公钥联系起来。PGP 定义了与基于 X.509 真实的公钥基础设施(PKI)不同的证书模型,即所谓“信任网(Web of Trust)”模型。传统 PKI 模型依赖
于 CA 层次体系验证证书和其中的密钥。而 PGP 模型则允许多重地、独立地而非特殊可信个体签署的“名字/密钥”关联来证明证书的有效性,其理论是认为“只要有足够的签名,<
名字/密钥>关联就是可信的,因为不会所有的签名者都是‘坏’的”。PGP 的信任网就像人际关系网一样,通过下述方式让使用公钥的人相信公钥是其所声称的持有者:(1)直接来自
所信任人的公钥;(2)由所信赖的人为某个自己并不认识的人签署的公钥。因此,在 PGP 中得到一个公钥后,检验其签名,如果签名人自己认识并信赖他,就认为此公钥可用或合法。
这样,通过所认识并信赖的人,就可以和总多不认识的人实现 PGP 的安全 E-mail 通信。
具体而言,在 PGP 中是通过在公钥环中的下述 3 个字段来实现 Web of Trust 信任模型的:(1)密钥合法性字段(key legitimacy field):指示用户公钥合法性的可信等级。信任级别
越高,则用户标识 UserID 与密钥间的绑定关系就越强。这个字段是由 PGP 计算的;(2)签名信任字段(signature trust field):每一个公钥项都有一个或者多个签名,这是公钥环主人收
集到的、能够认证该公钥项的签名。每一个签名与一个 signature trust field 关联,指示 PGP 用户信任签名者对此公钥证明的程度。key legitimacy field 是由多个 signeture trust field 导出
的;(3)所有者信任字段(owner trust field):指示此公钥对其他公钥证书进行签名的信任程度。这个信任程度是由用户给出的。
PGP 使用以个人为中心的信任模型,采取一种“社会信任链”的方式进行公钥分发。在这种方式下,用户可以自行决定对周围的联系人是否信任,并可以决定信任度的高低。用户
只接收信任的朋友传送来的公钥,并且这些公钥都带有签名。这种方式反映了社会交往的本质,比较适合一般场合下的安全通信。
本实验通过实际操作,了解 PGP/GPG4Win 软件的常用功能,
利用 PGP/GPG4Win 软件实现密钥管理、对文件和电子邮件的签名与加密等操作。
四、实验内容
假设通信双方分别为 S 和 R,E-mail 分别为 nancyfeng521@163.com 和 mailteachingwf@163.com.利用 PGP Desktop Professional 软件,完成以下操作:
4.1 密钥的管理
(1)生成公钥/私钥对
在使用 PGP 进行加密或签名之前,必须先生成公钥/私钥对,公私钥对是同时生成的,其中公钥可以分发给需要与之通信的人,让他们用这个公钥来加密或验证签名,私钥由使用
者自己保存,使用者可以用此密钥来解密或进行签名。
1----运行软件新建 PGP 密匙
密匙为 15736801703@163.com
2------配置密匙
3-----设置口令和密码
4----密匙生成进度
5-----完成 PGP 全球名录助手
6------生成公钥私钥对成功
(2)密钥的导出
为了实现非对称加密,需要将自己的公钥导出后分发给需要与之通信的其他人。
1-----右键密匙导出到指定文件夹
2----导出成功
(3)密钥的导入
如果需要阅读他人发送过来的已签名的邮件,或者需要给他人发送加密邮件时,就必须拥有对方的公钥。当接收方收到通信方的公钥并下载到自己的计算机后,需要将其进行导入。
1------PGP 主界面单机文件选择导入,选择文件夹的指定文件导入
2-----导入成功-----------右边未校验为灰色
3----右键签名导入公匙
4-------选择公匙
5------------导入后校验校验成功
4.2 文件操作
(1)加密/解密文件
加密:用户 S 需要加密传送一个文件给用户 R。
1------创建加密文件
2-----------右键加密文件 PGP
Desktop 使用口令加密文件
3-------选择存放加密文件的文件夹位置