[有问有答] 如何用邮件安全地传递密码

Q: 我想把一个密码用邮件发给我的朋友,这么避免发送过程中被人窃听导致泄密

A: 使用 GPG 加密即可,具体步骤如下

假设小王想发送密码给我,那么我首先做如下操作

1. 生成一个新的 GPG key:

$ gpg --gen-key

中间需要输入一些必要的信息

2. 确认 GPG key

$ gpg -K
/home/lidb/.gnupg/secring.gpg
-----------------------------
sec 2048R/E0084AC3 2011-12-16
uid LI Daobing <lidaobing@gmail.com>
ssb 2048R/FFB0140F 2011-12-16

3. 导出 GPG 的公钥

$ gpg --export --armor E0084AC3 > lidaobing.key

4. 把生成的 lidaobing.key 发送给小王

 

小王收到 lidaobing.key 后,要如下步骤操作

1. 导入 GPG 公钥

$ gpg --import lidaobing.key

2. 确认导入成功

$ gpg -k
/home/everbox/.gnupg/pubring.gpg
--------------------------------
pub 2048R/E0084AC3 2011-12-16
uid LI Daobing <lidaobing@gmail.com>
sub 2048R/FFB0140F 2011-12-16

3. 加密文件

$ gpg --recipient lidaobing@gmail.com --encrypt password.txt 
gpg: FFB0140F: There is no assurance this key belongs to the named user

pub 2048R/FFB0140F 2011-12-16 LI Daobing <lidaobing@gmail.com>
Primary key fingerprint: 6E39 DB6A 37EE 0704 62B0 F7FA 5C26 5D2C E008 4AC3
Subkey fingerprint: DDE0 42FC 8D79 BB4F 72AC 06E8 658A F431 FFB0 140F

It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y

4. 把生成的 password.txt.gpg 发给我。

 

我收到 password.txt.gpg 后需要做如下的操作

1. 解密

$ gpg --output password.txt --decrypt password.txt.gpg

You need a passphrase to unlock the secret key for
user: "LI Daobing <lidaobing@gmail.com>"
2048-bit RSA key, ID FFB0140F, created 2011-12-16 (main key ID E0084AC3)

gpg: encrypted with 2048-bit RSA key, ID FFB0140F, created 2011-12-16
"LI Daobing <lidaobing@gmail.com>"

2. 查看 password.txt

 

备注

1. 生成的公钥 lidaobing.key 无须保密,可以反复使用,可以到处分发

2. 你的公钥可以发布到一些公共的 GPG 平台,用于大家给你发送加密信息或者验证你的签名

$ gpg --keyserver hkp://keys.gnupg.net --send-keys E0084AC3

3. 如果你使用 thunderbird, 可以使用 enigmail 来协助你做加密,解密,签名,验证的工作

 

参考

1. http://www.madboa.com/geek/gpg-quickstart/


 

 

 

posted @ 2011-12-16 14:37 LI Daobing 阅读(...) 评论(...) 编辑 收藏