『网络安全』使用 PGP 实现电子邮件安全

2023-10-24 13:10

本文主要是介绍『网络安全』使用 PGP 实现电子邮件安全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

『网络安全』使用 PGP 实现电子邮件安全

aaf2eba9bb5ab4412fa628d31dacbe0c.png

—— 独立观察员 2014.05.18

一、安装 PGP 软件 Windows 版

(一)下载安装

从网上下载了 "PGP_Desktop_win32_10.0.3" 版,解压后有如下文件:

4db48a2d9b16749667981dec43e9337a.png

双击.exe 文件开始安装(点击 "OK" ):

72c73225d0944163d3f67fb14b66a5b6.png

接受许可条款,点击 Next:

97ba7f09a9b38972d974b94504cbbeaa.png

不显示 Realease Notes(以后也可以看):

a547ea13881be020f903968e6b465043.png

出错 ——32 位版本不能安装在 64 位的机子上:

e14103cf4a6d959587ca825090c2ab87.png

只好另外下载了 "PGP_10.0.2_ 最终中文纪念版_win64" 版:

547a20422c485f9f9a30cb0543e09266.png

之前相同的步骤就不赘述了,接下去:

(安装中:)

e9090994a7af1a3d9f642363bfacdf1b.png

当提示重启时,暂时不用理会,放在一边:

8881f3ef80bda865fa0116a835901548.png

(二)破解激活

解压注册机压缩包 "PGP_10.0_keygen.rar" ,运行里面的 "PGP_DT_X64_Keygen.exe" :

03ea80670e797b1358b37b77982ff63d.png

填写 "名称" 和 "组织" :

89810dbd38c489a8c706cb92aca6d122.png

首先生成序列号,点击 Generate,然后破解主程序,点击 Patch:

ac67aef8e999b51cb471ec7f316db46f.png

然后把姓名 Name、公司 Company、序列号 Serial 和激活码 Activation 粘贴到记事本中保存备用:

f0bfb08041e85d10010e967718d15bf2.png

现在可以关闭注册机,点击 PGP 软件那里的重启按钮,重启电脑:

d48c5dec57f26bf0d1bbc0af3e3697e9.png

重启后(断开网络),自动弹出设置向导,点击 "是"—— 从此账户启用 PGP:

4e898487468f692c5d7b37ce23efa8f9.png

填写个人信息(与之前填的一样):

55e11c9928332d9d905fdfcd15c3c4b0.png

下一步,进入注册阶段,填写序列号,也就是许可证号码(注意断网以阻止验证):

067a37dec404075596cbcfbd20ee98cc.png

点击下一步后,由于网络问题,出现连接错误,这正是我们要的;

选中 "输入一个 PGP 客服提供的许可证授权" 后点击下一步:

c46af22daa43338df1cad6faa629bafa.png

点击下一步,在空白处粘贴上许可证码:

b3207a7006d712c2e6285838261c71f1.png

点击下一步,会显示授权成功,所有功能全部激活:

cc6a6d06367ead1697fe57023b1195f6.png

(三)生成密钥

注册完成之后,就会引导生成密钥;或者可从 PGP Desktop 的 "文件"—>"新建 PGP 密钥" 启动 "PGP 密钥生成助手":

2836d1d717b17a96bcc779ee69147894.png

下一步,输入密钥口令,请牢记:

7ac6f17ab3a604c1a91455f0cec76ae0.png

下一步,生成密钥及传输密钥到服务器、邮件帐号等设置:

9c66bec1b8b9b8569a6650c18d8e5983.png

上传密钥到全球名录服务器

e3c2125904fefae1e3390cf8a881bf4d.png

76875a34eff3fcbe1ff0767d20a4fc3e.png

591800d5344abfc808c52360048c1122.png

然后你的邮箱中会收到确认邮件,点击确认链接:

df8406733f2b9700c7a8fcbf501fc0aa.png

再次确认:

3f075b3f7395a634a9164e82b5a58d7b.png

可选步骤

下载验证 Key:

90866428180190c90a82f510a17c76e0.png

已经可以搜索到了:

9f008af53cd83a7f9b0290f39ab45b6a.png

下载之后,在 PGP 软件里,点击 "文件"-->"导入" ,导入下载的文件:

65a55ae191de3a14300332cd63948c8d.png

7e6aa85e544a4aa17c4695c416a7bf61.png

(可以发现 PGP 在上传密钥到全球名录服务器后,已经有了这个,所以以上从 "下载验证 Key" 到这次导入的步骤可以不进行,后面的 "签名该密钥" 也不必进行。)

签名该密钥:

f52131000ed5b32ad6e8f48e30ad5925.png

发现已被签过了:

d98d26b9264109d608ffdab1ff55db10.png

二、用 PGP 加密电子邮件

(一)准备邮箱账户

在 Outlook(本次实验使用 2013 版本)中添加邮件账户:

1cdd14e4eced22ac2732fa485c618820.png

添加两个账户以进行实验:

e6c9c38e2a3e5c29f5272db0bbeb9bd4.png

(QQ 邮箱可能需要手动配置,Gmail 直接添加即可)

(二)可选步骤

其间 PGP 可能会跳出一些窗口(我也不知道要不要用):

534e322962682a44193270a0c8da8efb.png

92b3b52c692e7affbb8d11b7c0c676f5.png

在 PGP 软件的 "工具"-->"选项" 中勾选 "在 Outlook 启用 PGP 加密和签名按钮" :

80bd86b626aa7071e6216acbae14e34a.png

(不过对于 Outlook 2013 似乎无效)

(三)加密

编写邮件,选中正文并复制:

04c373a39e8f2b2ce138e7df87193e65.png

在桌面右下角的 PGP 软件图标上右键 -->"剪贴板"-->"加密" :

9800577d35617ad015d12cc70fe7d131.png

弹出对话框:

9ccd2cdad4f13f87de1ad1d257c115ce.png

拖动收件人到下面的框,代表着使用其公钥进行加密:

c0c7a085ae9f68a504a07ebc91f3c68e.png

加密内容会自动存放到剪贴板中。

在邮件正文处进行粘贴,覆盖原文:

ad8d2c7677b4e2780e615e64f758a4bf.png

然后点击发送。

(四)解密

然后 dlgcywlh@gmail.com 邮箱中就收到了新邮件(由于 Outlook 并不好用,以下都用 QQ 邮箱演示,效果一样):

53a3fa8cbd85548d7d2f0505dfdedc94.png

这样就算被别人截获,内容也不会泄漏。

复制全部正文,右键 -->"剪贴板"-->"解密 & 校验" :

d524a15acdba95fd12a93ef7715c0834.png

输入私钥的口令以便使用私钥解密:

eda67aea3933021eae717bd1f13da2d0.png

解密结果:

19a498b7225d3e1775e8b823e67ca435.png

(五)其它说明

由于本次实验使用的是自己添加的密钥,且上传到了 "全球名录服务器" ,所以免去了密钥的搜索(或导入导出)步骤。

如果收件人的公钥已上传到了 "全球名录服务器" ,那么直接搜索即可:

509171c2c2e515eeb5483a1504f7bc11.png

如果收件人的公钥没有发布,则可让其导出公钥或复制公钥:

9fb3b998102e4e7709551e29ac81c38a.png

然后在我们自己这里导入,"文件"-->"导入" :

902f8993327a41b44e604a66ddeb4d1f.png

可以是文本文件(适用于 "复制公钥" 得到的),或是.asc 格式文件(适用于 "导出" 方式得到的密钥)。

今天(20140519)做题学到一点:通常,私钥用于解密和签名,公钥用于加密和认证。

以上就是全部内容,谢谢!

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

这篇关于『网络安全』使用 PGP 实现电子邮件安全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/275381

相关文章

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Java使用Swing生成一个最大公约数计算器

《Java使用Swing生成一个最大公约数计算器》这篇文章主要为大家详细介绍了Java使用Swing生成一个最大公约数计算器的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下... 目录第一步:利用欧几里得算法计算最大公约数欧几里得算法的证明情形 1:b=0情形 2:b>0完成相关代码第二步:加

linux ssh如何实现增加访问端口

《linuxssh如何实现增加访问端口》Linux中SSH默认使用22端口,为了增强安全性或满足特定需求,可以通过修改SSH配置来增加或更改SSH访问端口,具体步骤包括修改SSH配置文件、增加或修改... 目录1. 修改 SSH 配置文件2. 增加或修改端口3. 保存并退出编辑器4. 更新防火墙规则使用uf

Java 的ArrayList集合底层实现与最佳实践

《Java的ArrayList集合底层实现与最佳实践》本文主要介绍了Java的ArrayList集合类的核心概念、底层实现、关键成员变量、初始化机制、容量演变、扩容机制、性能分析、核心方法源码解析、... 目录1. 核心概念与底层实现1.1 ArrayList 的本质1.1.1 底层数据结构JDK 1.7

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.