mutt上玩转PGP
来源:互联网 发布:一元购完整源码 编辑:程序博客网 时间:2024/05/18 03:22
MIT PGP Key Server上查了下, 原来11年的时候我就上传过我的公钥了。现在一看,已经过了六年了。真是一眨眼的功夫。
你说邮件上签名有个毛用?嗯,减少你被骗的可能。
因为邮件的协议并不安全,所有很有可能你收到的邮件
- 并不是你看到的发件人发的
- 可能邮件的内容被串改了
有了签名/验证,你就可以
- 让别人知道邮件是你发的
- 验证收到的邮件确实是完整的
好了,淡扯完了,开始正经的吧。
准备“钥匙圈”
生成你的密钥
生成的方式很简单,一条命令搞定。
gpg –gen-key
其中还有一些详细的步骤,不是本文重点。
我觉得细节上这个博客写的很好,很详细。建议大家去看看。
列出密钥
好了,现在你的系统上就保存了你自己的密钥了。
可以使用下面的命令列出系统中的密钥。
gpg –list-keys
显示的结果如下:
/Users/weiyang/.gnupg/pubring.gpg---------------------------------pub 4096R/282FCEF0 2016-12-27uid [ultimate] WeiYang <richard.weiyang@gmail.com>sub 4096R/9B144D5A 2016-12-27
这样就表明这个密钥生成基本就成功了~
上传公钥
既然是公钥么,就是要给别人用的。原来已经有一个公钥的存储系统了。执行下面的命令就可以上传自己的公钥了。
gpg –send-keys 282FCEF0
好了,就这么简单。
获取公钥
嗯。对的,我想你是猜到了。既然自己可以上传,别人就应该可以获取你的公钥~
也是一条命令。
gpg –recv-keys [ID]
试了下,这个ID有点讨厌,你需要现在这个MIT PGP Key Server上找找对应的人ID。还好,还不算麻烦。
多啰嗦一句,理论上谁都可以冒充你上传你的公钥。所以下载的公钥也不一定是就是对应的那个人的。最安全的就是当面给你。
当对方给你了公钥文件,可以使用下面的命令将公钥加入本地的“钥匙圈”。
gpg –import “key file”
签名和验证
准备好了钥匙,现在要做的就是对邮件签名,和对收到的邮件做验证。
文件签名
比如你有个文件sample.txt,那用如下命令做签名。
gpg –clearsign sample.txt
此时就会生成一个带有签名的文件了。 名字是sample.txt.asc
文件验证
对已经签名的文件,执行下面的命令验证。
gpg –verify sample.txt.asc
此时会有相应的显示。
gpg --verify sample.txt.ascgpg: Signature made Fri Jan 27 16:46:05 2017 CST using RSA key ID 4FE5C4DDgpg: Good signature from "Wei Yang<richard.weiyang@gmail.com>" [ultimate]
让mutt签名和验证邮件
到这里很简单了,只是一些mutt的配置问题了。这个主要参考了这个页面.
原文中的配置挺多的,因为我只需要签名和验证就行了,不需要加密解密。在mutt配置文件.muttrc中,只需要添加下面的配置。
#GPGsource ~/gpg.rcset pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"set pgp_autosign=yesset pgp_sign_as=4FE5C4DDset pgp_timeout=1800
需要注意的是这第一条,需要source一下gpg的配置。这个是从MuttGuide找来的。也是很奇特,经过我实验之后却是可以了。
好了,这下可以通过mutt发送带有签名的邮件,也能检验收到的邮件的签名是否符合。
Hope you enjoy it.
- mutt上玩转PGP
- PGP
- Mutt
- Mutt
- Mutt
- mutt
- PGP 简介
- pgp加密
- PGP guide
- PGP 简介
- 什么是PGP?
- PGP简介
- pgp key
- PGP下载
- PGP简介
- mutt入门
- mutt & msmtp
- mutt 配置
- 我的2016——关于时间与方向的思考
- java爬取网页内容 简单例子
- C语言复习二
- Heavy Transportation
- 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
- mutt上玩转PGP
- SPI通信协议详解--CPOL&CPHA
- 小彩球游戏
- smartcheck的选项设置
- [POJ2976]Dropping tests 01分数规划
- Python IDLE快捷键一览
- c++ 求数组最大最小值函数
- javascript垃圾收集器
- 报时助手