广告

本站里的文章大部分经过自行整理与测试

2019年2月24日星期日

PGP: 实现对主副私钥分离

1) PGP 专业模式私钥生成

一般用 PGP 工具生成的私钥,
它的主私钥用于 Certify (核证) 和 Sign (签名), 
副私钥则用于 Encrypt (加密)

不过, 我们用 Sign 和 Encrypt 这两部分, 
Certify 是当加或撤副私钥时才有用 (编辑)

我们可以生成主私钥用于 Certify (核证),
和2个副私钥则分别用于 Sign (签名) 和 Encrypt (加密)

https://jasonmun.blogspot.com/2019/02/pgp.html

2) 输出保存

公钥可发布给人或放到 keyserver
$ gpg2 -a -o pub.asc --export '<email>'

私钥, 需要解密时用 (重要)
$ gpg2 -a -o pri_ascii.asc --export-secret-keys '<email>'
$ gpg2 -o pri_binary_pgp --export-secret-keys '<email>'

如果打算将公钥放去 keyserver,建议生成..
以便以后可撤销 keyserver 中的公钥
$ gpg2 -o revoke.asc --gen-revoke '<email>'

只输出2个副私钥, 不包含主私钥
$ gpg2 --export-secret-subkeys <SUB_KEY_1>! <SUB_KEY_2>! > exported_subkeys

3) 实现主副私钥分离

$ gpg2 --delete-secret-keys '<email>'
$ gpg2 --delete-keys '<email>'

$ gpg2 --import exported_subkeys
(如果不要分离, 可输入 pri_ascii.asc 或 pri_binary_pgp 私钥文件)

列出所有 KEY (如果出现 sec#, 即代表主私钥没有放入)
$ gpg2 --list-secret-keys --keyid-format long

没有了主私钥, 会发现 gpg 下, addkey 和 delkey 都不能用了..
但能用 trust, 将状态 unknow 改为 Ultimate, 然后 save

4) 加密与解密

收到 PGP 加密邮件, 将加密内容存成 a.txt.pgp

解密 a.txt.pgp >> a.txt
$ gpg2 -o a.txt -d a.txt.pgp

加密 a.txt >> a.txt.pgp
$ gpg2 -r <uid> -o a.txt.pgp -e a.txt

安装了以下,  nautilus 上文件夹或文件上,
右按滑鼠会多了 Encrypt / Decrypt / Sign 的选择

5) GNOME上安装 seahorse

$ sudo apt install seahorse seahorse-nautilus

* import 私钥或安装后, 建议重新 login GNOME..

没有评论:

发表评论