如何使用GunPGP加密Apple Mail的邮件

我和火星人也很好奇如何能够更安全的传输邮件,所以决定试一试。他的环境是 Linux Ubuntu ,我的环境是 Mac OS X Lion。

GnuPG全称GNU PrivacyGuard,它是基于公钥/私钥体系的加密工具PGP(Pretty Good Privacy)的开源版本它遵循OpenPGP标准。你可以免费使用,自由传播,并可以获得它的源代码。可以用于对Email、文件及其他数据的加密与验证,确保通信数据的保密性、完整性和真实性。

PGP原理及规则

PGP使用双密匙来加密数据。每个使用PGP加密技术的人都要创建一对密匙,一个叫做公匙,另一个叫做私匙。公匙可被广泛传播,你可以贴在自己的网页上或发到专门的公钥管理网站上等等。私匙属于个人信息,绝不应该泄漏给其他人。

公匙和私匙相互作用对数据进行加密及解密。被公匙加密的数据只能被私匙解密,被私匙加密的数据也只能被一个公匙解密。这样就可以实现双重认证。

例如,A要给B发信息:

* A不想信息被其他人看见,怎么办?

首先A必须通过某些途径得到B的公钥。

在发送信息前,使用B的公匙对信息进行加密。

这样只有B用对应的私匙才能解密收到的信息。所以就保证了信息传输的安全,这就是PGP所谓的加密(encryption)与解密(decryption)。

* B收到信息后如何确定这信息是A发的呢?

首先A必须通过某种途径把自己的公钥发给B。

在发送信息前,A先用自己的密钥加密信息。

B收到信息后就可以使用A的公钥来对收到的信息进行验证。这样就能确定信息来自A,这就是PGP所谓的签名(signature)与验证(verification)。

如何在Lion中使用PGP加密你的邮件

当前,gpgtools.org 上已经提供了集成的工具包来进行GPG的加密等相关工作。

1、下载 GPGTools,并进行安装。

首先从 http://www.gpgtools.org/ 下载 gpgtools,下载后进行安装。工具包中包括了如下软件:

GPGMail、GPG Keychain Access、MacGPG1、MacGPG2、GPGService、GPGPreference、Mobile OpenGPG。

安装之后,你就可以在 terminal 中看到 gpg 命令已经被安装好了。 

2、打开 GPG Keychain Access 生成自己的公钥和密钥对。

正常情况下,第一次打开的时候,列表中应该是个空白的界面,紧接着会提醒用户生成自己的密钥对。

创建密钥对,默认会用你的电脑帐号对应的邮箱,你也可以选择或者输入其他的邮箱。Full name部分注意用户名要大于五个字符,所以中文姓名会有提示。Length 一般选择2048,也可以选择4096这样安全性能够更高一些。完成后,点击 Generate Key,生成自己的密钥对。

3、将自己的公钥导出并发送给其他人。

选中自己的密钥对,点击右键,选择导出。

导出的格式选项中,选择 binary 的格式。笔者试验了 ASCII 格式好像不能够正确导出。将导出的公钥发送给其他人,同时将别人的公钥 Import 到 GPG keychain Access 中。

4、最后,就可以在Mail中使用GPG进行邮件加密和签名。

大功告成!

参考资料:

1、GpGTools

2、GpGMail Not working after an os update

3、密码学简介

4、GPG签名和加密

5、Apple Mail PGP

6、Using GNUPG encryption with Mac OS X Mail

@import url(http://www.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏落影的专栏

iOS如何保证下载资源的可靠性

前言 有时需要在本地存储资源,并且从服务器下载资源,因为涉及到运行期间的安全性,有必要添加校验的逻辑,因此有了本文的一些思考。 ipa包被篡改的情况 首先思考的...

4536
来自专栏康怀帅的专栏

macOS 对 gdb 进行代码签名

在 macOS 使用 GDB 调试 C 语言代码,必须对 gdb 进行代码签名,否则 GDB 不能运行! 创建证书 钥匙串访问 打开菜单:钥匙串访问-》证书助理...

3044
来自专栏黑白安全

如何在Kali Linux上发动DDOS攻击

Paylod:https://github.com/Ha3MrX/DDos-Attack

5.6K2
来自专栏做全栈攻城狮

React Native APP签名打包release版本APK

首先React Native开发的APP是无法通过Android Studio进行打包的,因为AS打包的APK,也是和debug版本一样,需要进行依托local...

1752
来自专栏黑白安全

超简单实现php谷歌验证

前几天才得知有google身份验证器这种好玩的东西,这是一个类似QQ令牌的离线验证码,不需要联网。只需要时区同步和SecretKey一致即可计算出离线验证码,简...

7123
来自专栏mantou大数据

深入浅出JWT(JSON Web Token )

JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-contained)的方式,用...

64311
来自专栏蓝天

openssl编程入门(含完整可编译和运行示例)

第一次跑起openssl示例并不太简单,本文的目的是为了让这个过程变得非常简单。在开始之前,要非常感谢周立发同学,正是通过他共享的示例,较轻松的入了门。

1321
来自专栏Ryan Miao

spring boot启用tomcat ssl

首先要生成一个keystore证书。参考:Tomcat创建HTTPS访问,java访问https,ssl证书生成:cer&jks文件生成摘录,spring-bo...

64614
来自专栏阮一峰的网络日志

GPG入门教程

前两篇文章,我介绍了RSA算法。 今天,就接着来看,现实中怎么使用这个算法,对信息加密和解密。这要用到GnuPG软件(简称GPG),它是目前最流行、最好用的加密...

3867

在 CentOS 7 上使用 Apache 的 SSL 证书

本指南将向你演示如何启用 SSL 来保护由 CentOS 或者 Fedora 上的 Apache 提供服务的网站。

2212

扫码关注云+社区

领取腾讯云代金券