实验三pgp实验指导Word格式文档下载.docx
《实验三pgp实验指导Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验三pgp实验指导Word格式文档下载.docx(33页珍藏版)》请在冰点文库上搜索。
表PGP的功能概述
功能
使用的算法
描述
消息加密
IDEA、CAST、3DES、TwoFish、ElGamal、RSA
发信人产生一次性会话密钥加密,用IDEA或CAST-128或3DES算法对消息进行加密;
采用ElGamal或RSA算法用接收方的公钥加密会话密钥
数字签名
DSS/SHA-1、RSA/MD5
采用SHA-1或MD5消息摘要算法计算消息的摘要值(散列码),用发送者的私钥按DSS或RSA算法加密消息摘要
压缩
PKZIP
消息在传送和存储时可使用PKZIP压缩
E-mail兼容性
Radix-64
对E-mail应用提供透明性,采用基数64编码将加密后的消息(二进制流)转换为ASCII字符串
数据分段
-
为了适应最大消息长度限制,PGP执行分段和重新组装
2、PGP的密钥管理
PGP是一种混合密码系统,应用了多个密码算法,包括对称密码算法、非对称密码算法、消息摘要算法、数字签名等经典的密码学算法。
为用户生成密钥对之后,可以进行邮件的加密、签名、解密和认证。
在PGP中使用的加密算法和用途如表所示。
表PGP中采用的各种密码算法及用途
密钥名
加密算法
用途
会话密钥
IDEA、AES
对传送消息的加解密,随机生成,一次性使用
公钥
RSA、Diffie-Hellman
对会话密钥加密,收信人和发信人共用
私钥
DSS/SHA、RSA/SHA
对消息的杂凑值加密以形成签名,发信人专用
口令
IDEA
对私钥加密以存储于发送端
从上表可以看出,PGP使用了四种类型的密钥:
一次性会话传统密钥、公钥、私钥和基于口令短语的传统密钥/通行字短语。
会话密钥按ANSI标准,采用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恢复会话密钥,并解密消息;
(2)验证消息:
PGP用消息的签名部分中的KeyID作为索引,从公钥环中获取发送者的公钥;
PGP恢复被传输过来的消息摘要;
PGP对于接收到的消息计算摘要,并与上一步的结果作比较。
4、PGP的信任模型
由于PGP重在广泛地在正式或非正式环境下的应用,所以它没有建立严格的公钥管理模式。
尽管PGP没有包含任何建立认证权威机构或建立信任体系的规范,但它提供了一个利用信任关系的方法,将信任关系与公钥联系起来。
PGP定义了与基于真实的公钥基础设施(PKI)不同的证书模型,即所谓“信任网(WebofTrust)”模型。
传统PKI模型依赖于CA层次体系验证证书和其中的密钥。
而PGP模型则允许多重地、独立地而非特殊可信个体签署的“名字/密钥”关联来证明证书的有效性,其理论是认为“只要有足够的签名,<
名字/密钥>
关联就是可信的,因为不会所有的签名者都是‘坏’的”。
PGP的信任网就像人际关系网一样,通过下述方式让使用公钥的人相信公钥是其所声称的持有者:
(1)直接来自所信任人的公钥;
(2)由所信赖的人为某个自己并不认识的人签署的公钥。
因此,在PGP中得到一个公钥后,检验其签名,如果签名人自己认识并信赖他,就认为此公钥可用或合法。
这样,通过所认识并信赖的人,就可以和总多不认识的人实现PGP的安全E-mail通信。
具体而言,在PGP中是通过在公钥环中的下述3个字段来实现WebofTrust信任模型的:
(1)密钥合法性字段(keylegitimacyfield):
指示用户公钥合法性的可信等级。
信任级别越高,则用户标识UserID与密钥间的绑定关系就越强。
这个字段是由PGP计算的;
(2)签名信任字段(signaturetrustfield):
每一个公钥项都有一个或者多个签名,这是公钥环主人收集到的、能够认证该公钥项的签名。
每一个签名与一个signaturetrustfield关联,指示PGP用户信任签名者对此公钥证明的程度。
keylegitimacyfield是由多个signeturetrustfield导出的;
(3)所有者信任字段(ownertrustfield):
指示此公钥对其他公钥证书进行签名的信任程度。
这个信任程度是由用户给出的。
PGP使用以个人为中心的信任模型,采取一种“社会信任链”的方式进行公钥分发。
在这种方式下,用户可以自行决定对周围的联系人是否信任,并可以决定信任度的高低。
用户只接收信任的朋友传送来的公钥,并且这些公钥都带有签名。
这种方式反映了社会交往的本质,比较适合一般场合下的安全通信。
本实验通过实际操作,了解PGP/GPG4Win软件的常用功能,利用PGP/GPG4Win软件实现密钥管理、对文件和电子邮件的签名与加密等操作。
下面的实验步骤以中文版PGPDesktop为例进行介绍。
三、实验过程和指导
(一)实验要求
利用PGP/GPG4Win软件,完成以下操作:
1、密钥的管理:
(1)生成公钥/私钥对;
(2)密钥的导出;
(3)密钥的导入。
2、文件操作:
(1)加密/解密文件;
(2)签名/验证文件;
(3)加密和签名/解密和验证文件。
3、邮件操作:
(1)加密/解密邮件;
(2)签名/验证邮件;
(3)加密和签名/解密和验证邮件。
(二)实验准备
1、阅读教材有关章节,理解RSA、IDEA、MD5等相关算法的工作原理。
2、阅读教材和PGP相关资料,熟悉PGP软件的常用功能及操作步骤。
3、准备好相关测试数据和软件。
(三)上机实验
假设通信双方分别为S和R,E-mail分别为和。
1、密钥管理
(1)生成公钥/私钥对
在使用PGP进行加密或签名之前,必须先生成公钥/私钥对,公私钥对是同时生成的,其中公钥可以分发给需要与之通信的人,让他们用这个公钥来加密或验证签名,私钥由使用者自己保存,使用者可以用此密钥来解密或进行签名。
Step1:
运行PGP软件后,在如图所示的主界面中单击“文件”菜单。
图PGP主界面
Step2:
单击“新建PGP密钥”菜单项后出现“PGP密钥生成助手”界面,如图所示。
图PGP密钥生成助手界面
Step3:
单击“下一步”后出现“分配名称和邮件”界面,如图所示,在此填入用户名和与之相关联的电子邮件地址。
图分配名称和邮件界面
单击下方的“高级(V)…“按钮,可以对密钥进行更多设置,如图所示。
图高级密钥设置界面
Step4:
高级密钥设置完毕后,单击“下一步”后出现“创建密码”界面,如图所示,在此输入对私钥进行保护的口令密码。
图创建密码界面
Step5:
单击“下一步”后出现“密钥生成进度”界面,如图所示
图密钥生成进度界面
Step6:
单击“下一步”后完成密钥对的生成,界面如图所示。
图密钥对生成界面
Step7:
单击“完成”按钮将新生成的密钥对添加到密钥环中,界面如图所示。
图PGP密钥界面
为安全起见,最好将刚生成的密钥进行备份,以免丢失。
(2)密钥的导出
为了实现非对称加密,需要将自己的公钥导出后分发给需要与之通信的其他人。
在所示界面上右键单击要导出的密钥,选择“导出(X)…”菜单项,如图所示。
图导出密钥界面
在随后弹出的如图所示的导出密钥到文件的界面上,设置导出密钥的文件存放路径及文件名。
这里仅导出公钥文件,文件名为。
可以用邮件或利用其他安全通道将此公钥分发给需要与之通信的人。
图导出密钥到文件界面
(3)密钥的导入
如果需要阅读他人发送过来的已签名的邮件,或者需要给他人发送加密邮件时,就必须拥有对方的公钥。
当接收方收到通信方的公钥并下载到自己的计算机后,需要将其进行导入。
在如图所示的PGP主界面中单击“文件”菜单,选择“导入(I)…”菜单项后出现如图所示界面。
图选择导入包含密钥的文件界面
在图所示的对话框中选择要导入的公钥文件(),单击“打开(O)”按钮后出现如图所示界面。
图选择密钥界面
在图所示的对话框中选中通信方的E-mail地址,然后单击“导入(I)”按钮导入通信方的公钥,界面如图所示。
图导入密钥后界面
在图所示的对话框中可以看出刚导入的通信方公钥为“未校验”状态,右键单击通信方的公钥,在弹出的快捷菜单中选择“签名(S)…”菜单项,界面如图所示。
图对可信方的公钥签名界面
在随后弹出的如图所示的对话框中对通信方公钥进行签名。
图PGP签名密钥界面
在图所示的对话框中设置好相关签名信息后单击“确定(O)”按钮,出现如图所示的选择签名密钥对话框。
图选择签名密钥界面
在图所示的对话框中选择签名所用密钥后单击“确定(O)”按钮,出现如图所示的界面,可以看出此时通信方公钥已变为“已校验”状态。
注意:
在进行公钥签名时,由于这里当前选择签名密钥的密钥已缓存,因此不需要输入密码;
否则会要求输入私钥保护口令。
图公钥签名后界面
2、文件操作
(1)加密/解密文件
1)对文件进行加密
用户S右键单击需要加密传送的文件(如“工作记录.txt”),在弹出的快捷菜单中选择“PGPDesktop(G)”“使用密钥保护“工作记录.txt”…”,如图所示。
Step2:
在随后弹出的如图所示“添加用户密钥”界面中,选择通信方R公钥对应的用户名或邮件地址(如>
),添加后的界面如图所示。
Step3:
单击“下一步”后生成用通信方R的公钥加密之后的文件,文件名后缀为“.pgp”(如“工作记录.”),如图所示。
图文件加密界面
图添加用户密钥界面
图选择用户密钥后的界面
图文件加密结果
2)对文件进行解密
通信方R右键单击用户S传来的加密文件(如“工作记录.”),在弹出的快捷菜单中选择“PGPDesktop(G)”“解密&
校验(D)“工作记录.””,如图所示。
图文件解密界面
在随后弹出的如图所示“输入密码”界面中,输入与加密时所用通信方R公钥对应私钥的保护密码。
图输入密码界面
正确输入私钥保护密码后单击“确定(O)”按钮,在随后弹出的如图所示“输入导出文件名”界面中,选择解密文件的存放路径并输入解密后存放的文件名(如“工作记录”),然后单击“保存(S)”按钮,即可实现对加密文件的解密操作。
图输入导出文件名界面
如果用户没有与加密文件时所用公钥相对应的私钥,则在进行上述解密操作时会失败,并且系统提示“因为您的密钥环不包含任何与上列公钥对应的可用私钥,无法解密此消息”,如图所示。
图文件解密失败界面
(2)签名/验证文件
1)对文件进行签名
用户R右键单击需要签名的文件(如“工作记录.txt”),在弹出的快捷菜单中选择“PGPDesktop(G)”“签名为>
”,如图所示。
图文件签名界面
在随后弹出的如图所示“签名并保存”界面中,选择用户R进行签名时所使用的私钥对应的用户名或邮件地址(如>
),并输入私钥保护密码,设置保存位置,如图所示。
图签名并保存界面
单击“下一步”后生成用用户R的私钥签名之后的文件,文件名后缀为“.sig”(如“工作记录.”),如图所示。
图文件签名后的界面
2)对签名文件进行验证
通信方S在对通信方的身份进行真实性校验时,如果没有用户R的公钥或公钥与签名所用私钥不对应,则无法通过真实性校验,在PGP验证历史中“签名人”、“已校验”和“已签名”等信息为空且“密钥ID”显示为“无效密钥”,如图所示。
图签名验证失败界面
反之,如果通信方拥有用户R的公钥,则可以通过真实性校验,并在PGP验证历史中显示与签名相关的信息,如图所示。
图签名验证成功界面
(3)加密和签名/解密和验证文件
此操作实际上是将
(1)和
(2)结合在一起,同时实现文件的加密和签名以及解密和验证功能。
1)对文件进行加密和签名
用户S右键单击需要加密和签名的文件(如“工作记录.txt”),在弹出的快捷菜单中选择“PGPDesktop(G)”“添加“工作记录.txt”到新PGP压缩包…”,如图所示。
图添加新PGP压缩包界面
在随后弹出的如图所示“新建PGP压缩包”界面中,可以对需要包含在PGP压缩包中的文件进行添加和删除。
图新建PGP压缩包界面
单击“下一步”后对加密选项进行设置,这里选择“接收人密钥”方式,即用接收方公钥进行加密,如图所示。
Step4:
单击“下一步”后对加密所用密钥进行设置,界面与图图相同。
Step5:
单击“下一步”后对签名所用密钥进行设置,界面与图相同。
单击“下一步”后显示加密和签名的相关信息,界面如图所示,从图中可以看出,这里加密时采用的是接收方R的公钥(>
),而签名时采用的则是发送方S的私钥(>
)。
单击“完成”后生成经加密和签名的后缀为“.pgp”(如“工作记录.”)的PGP压缩包文件,界面与图相同。
图加密选项界面
图加密和签名相关信息界面
2)对文件进行解密和验证
通信方如果拥有正确的密钥,则可实现对上述PGP压缩包的解密和验证操作,否则无法解密和验证,操作步骤与上述过程类似,在此不再赘述。
3、邮件操作
要利用PGP实现对邮件的保护,收发双方需要先在Outlook中对电子邮件账户进行设置。
单击Outlook“工具”菜单,选择“电子邮件账户(A)…”菜单项,如图所示。
图Outlook电子邮件账户设置界面
在随后弹出的如图所示“电子邮件账户设置向导”界面中,可以对添加或更改电子邮件账户等进行设置。
图电子邮件账户设置向导界面
单击“下一步”后在如图所示的界面可以对电子邮件相关信息进行设置,电子邮件的详细设置信息如图所示。
图电子邮件账户设置界面
图电子邮件账户详细信息界面
账户信息设置完毕后可以单击图中的“测试账户设置(T)…”按钮,对所设置的电子邮件账户进行设置,测试界面如图所示。
单击图中的“其他设置(M)…”按钮,可以对电子邮件账户其他相关信息进行设置,对发送服务器进行设置的界面如图所示,高级设置的界面如图所示。
图测试电子邮件账户设置界面
图发送服务器设置界面
图高级设置界面
在图中单击“下一步”即可完成电子邮件账户所需信息的设置。
下面的实验中假设发送方为S(),接收方为R(),双方分别按照上面的操作步骤导入自己的公私钥对和通信方的公钥。
(1)加密/解密邮件
发送方S在Outlook中给接收方S撰写一封电子邮件,标题为“PGP测试”,正文为“PGP测试邮件!
”。
右键单击右下角托盘区的PGP图标,在弹出的快捷菜单中选择“当前窗口(W)”“加密(E)”,如图所示。
发送方S在随后弹出的密钥选择对话框中双击接收人对应的邮件地址,如图所示,单击“确定”按钮即可利用接收方的公钥对邮件内容进行加密。
图密钥选择对话框界面
接收方R在接收到邮件后,如果没有与加密公钥对应的私钥,则只能看到邮件标题而看不到邮件内容,如图所示。
反正,如果接收方R拥有与加密公钥对应的私钥,则系统弹出要求输入私钥保护密码的对话框,如图所示。
当正确输入私钥保护密码后,即可看到加密后的邮件正文,如图所示。
图接收方无对应私钥时的界面
图接收方有对应私钥时的界面
图邮件解密后的界面
(2)签名/验证邮件
签名/验证邮件的操作步骤与
(1)类似,选择图中的“签名(S)”即可;
接收方只要拥有与发送方签名私钥对应的公钥即可实现验证。
(3)加密和签名/解密和验证邮件
加密和签名/解密和验证邮件的操作步骤与
(1)类似,选择图中的“加密&
签名(N)”即可;
接收方只要拥有与发送方加密公钥对应的私钥和与签名私钥对应的公钥即可实现解密和验证。
图PGP消息为空的界面
此外,Outlook使用PGP工具加密邮件,除上面的方法外,还可利用PGPMessaging功能。
进行相关设置后,Outlook软件不需要进行任何改变,PGP软件会自动对收发的邮件进行加密或解密。
刚开始时“PGP消息”中为空,如图所示。
当在Outlook中进行邮件的发送和接收操作时,PGP会自动探测,将相关邮件加入PGP消息。
发现邮件账号的界面如图所示,在其中单击“下一步”后出现“密钥来源选择”界面,如图所示,可以选择使用已有密钥或新建密钥,在此选择第二项“PGPDesktop密钥”,单击“下一步”后选择前面已经生成的PGPDesktop密钥即可,如图所示。
完成PGP密钥设置后的PGP消息界面如图所示。
图PGP发现邮件账号的界面
图密钥来源选择界面
图PGP消息界面
设置完毕后再次用Outlook进行邮件发送,PGPDesktop检测到邮件账户后便能够在发送和接收时通过自动运行邮件保护来保护该账户。
(四)分析与思考
1、分析电子邮件相关协议报文格式和电子邮件系统的工作过程。
2、电子邮件存在哪些安全性问题
四、实验提交材料
1、实验报告。
实验报告应包括以下内容:
实验名称、实验目的、实验内容及要求、实验过程及结果、实验中的问题及心得。