Fork me on GitHub

关于 PGP 加密与签名相关整理

PGP(英语:Pretty Good Privacy,直译:优良保密协议)是一套用于消息加密、验证的应用程序。PGP的主要开发者是 Phil Zimmermann 于 1991 年将 PGP 在互联网上免费发布。PGP 本身是商业应用程序;开源并具有同类功能的工具名为 GnuPG(GNU Privacy Guard)或 GPG 是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG 是自由软件,遵循 IETF 订定的 OpenPGP 技术标准设计,并与 PGP 保持兼容。GnuPG 是自由软件基金会的 GNU 计划的一部分,曾受德国政府资助。PGP 及其同类产品均遵守 OpenPGP 数据加解密标准(RFC 4880)。

# 查看版本
(base) ➜ ~ gpg --version
gpg (GnuPG/MacGPG2) 2.2.20
libgcrypt 1.8.5
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /Users/Irving/.gnupg
支持的算法:
公钥: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
密文: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
散列: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
压缩: 不压缩, ZIP, ZLIB, BZIP2

# 生成秘钥
(base) ➜ ~ gpg --gen-key
gpg (GnuPG/MacGPG2) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

注意:使用 “gpg --full-generate-key” 以获得一个功能完整的密钥产生对话框。

GnuPG 需要构建用户标识以辨认您的密钥。

真实姓名: irving
电子邮件地址: irving@gmail.com
您选定了此用户标识:
“irving <irving@gmail.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? o
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
gpg: 密钥 5D7B4370264FC353 被标记为绝对信任
gpg: 目录‘/Users/Irving/.gnupg/openpgp-revocs.d’已创建
gpg: 吊销证书已被存储为‘/Users/Irving/.gnupg/openpgp-revocs.d/892E99993AFF7612B367F2B65D7B4370264FC353.rev’
公钥和私钥已经生成并被签名。

pub rsa2048 2020-07-25 [SC] [有效至:2022-07-25]
892E99993AFF7612B367F2B65D7B4370264FC353
uid irving <irving@gmail.com>
sub rsa2048 2020-07-25 [E] [有效至:2022-07-25]

# 制作一张吊销证书,用于密钥作废,请求外部公钥服务器撤销你的公钥
(base) ➜ ~ gpg --gen-revoke 5D7B4370264FC353

sec rsa2048/5D7B4370264FC353 2020-07-25 irving <irving@gmail.com>

要为这个密钥创建一个吊销证书吗?(y/N) y
请选择吊销的原因:
0 = 未指定原因
1 = 密钥已泄漏
2 = 密钥被替换
3 = 密钥不再使用
Q = 取消
(也许您会想要在这里选择 1)
您的决定是什么? 2
请输入描述(可选);以空白行结束:
> 吊销
吊销原因:密钥被替换
吊销
这样可以吗? (y/N) y
已强行使用 ASCII 字符封装过的输出。
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: This is a revocation certificate

iQE8BCABCAAmFiEEiS6ZmTr/dhKzZ/K2XXtDcCZPw1MFAl8b4mEIHQHlkIrplIAA
CgkQXXtDcCZPw1M1YQgA5p15cok9rDsg5Ar8G2Z6U3RI1DfcPshZ9+SiamddwFau
qtcSH7RHjIk/jj76WhUJbz8cdAemy6poJNdxIN9RH5/FTvMKqtxqkTP1MYy5MX2S
4orUz0sWAfX8ZJ19/FqG8XbjiEFNahAg5gNJ4x8D+Kd5v7/SSVVb5Gsv27LVB1CM
wrKAPKmbrI8LAsn0Pm4sQOvSNUXh/O+0xf5zyyPk+BLwi+NhDLITTqblo7Ffom5i
qAWJhzmKcJAqHD2eIfUhRkMqaOvaw8nM6QhWRv+26hF1tV2b/X8sNrklorGdSb/Z
e3Egtn5ciJ4BOhhc2eBJNEGZDozZrBBBkEbUxYMCUQ==
=BKG3
-----END PGP PUBLIC KEY BLOCK-----
已创建吊销证书。

请把这个文件转移到一个您可以藏起来的介质上;如果坏人获取到了这
份证书的话,那么他就能使用它并让您的密钥无法继续使用。把此证书
打印出来再存放到安全的地方也是很好的方法,以免您的保存媒体变得
不可读。但是千万小心:您机器上的打印系统可能会在打印过程中储存
这些数据,并使得其他人看到!

# 上传公钥到公共的公钥服务器
(base) ➜ ~ gpg --keyserver keyserver.ubuntu.com --send-keys "5D7B4370264FC353"
gpg: 正在发送密钥 5D7B4370264FC353 到 hkp://keyserver.ubuntu.com


# 由于任何人都可以用你的名义上传公钥,我们可以生成公钥指纹,好让他人校验
(base) ➜ ~ gpg --fingerprint 5D7B4370264FC353
pub rsa2048 2020-07-25 [SC] [有效至:2022-07-25]
892E 9999 3AFF 7612 B367 F2B6 5D7B 4370 264F C353
uid [ 绝对 ] irving <irving@gmail.com>
sub rsa2048 2020-07-25 [E] [有效至:2022-07-25]

 

REFER:
https://www.gnupg.org/index.html
https://gpg4win.org/download.html
https://gpgtools.org/ (Mac)
https://www.ruanyifeng.com/blog/2013/07/gpg.html
https://www.jianshu.com/p/0e1e66423055
https://wiki.archlinux.org/index.php/GnuPG_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
https://cerb.ai/guides/mail/gpg-setup-on-mac/

https://www.jianshu.com/p/c91333820733 

posted @ 2020-07-25 15:35  花儿笑弯了腰  阅读(1515)  评论(0编辑  收藏  举报