以前虽然听说过PGP,但是一直没有上手操作过,最近略微“深入”的接触了一下,稍微记录一下,供有兴趣的朋友参考。
GPG和PGP有一些不同,GPG(GNU Privacy Guard)和PGP(Pretty Good Privacy)都是加密技术,用于数据加密和数字签名,以确保信息安全和身份验证。主要区别在于,GPG是PGP的一个自由和开源替代品,遵循OpenPGP标准,而PGP最初是专有的,现在由Symantec公司维护。
一、主要用途
1.给文本或者文件签名,比如
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
给这段话签名,是为了证明该文本是由JDZHAO在5月4日发布的。
-----BEGIN PGP SIGNATURE-----
iHUEAREIAB0WIQTLEr80LL/GAfzwNHsGlwnp1It2awUCZjUMzwAKCRAGlwnp1It2
a6QeAQCJ1sLAeb8XjvGU18cGHiRY8MqdHytJQrACw4uyA4ex/AD+IKgQmHqTdNaG
vOq5eGk3UPSqxKyqCAfPexXGm7xIKL8=
=TGfV
-----END PGP SIGNATURE-----
此时,如果你如果保存了我的公钥,那么直接右键全选这段文本,选择Verify signature,就可以弹出“可信签名”信息,对文件的操作也是一个意思。
2.加密文本或文件
如图,如果需要对文本进行加密,直接在任意文本编辑器中,输入要加密的文本,然后选择encrypt selection即可。
要注意的是,你的签名,必须有一个“收件人”,比如,你下载了博主的公钥,然后收件人选择博主,并用你的私钥加密,那么博主用自己的私钥就可以解密该信息并看到。所以,这个操作无法在这里给大家展示,如果想尝试的朋友,可以下载博主的GPG公钥,然后加密给博主,并将加密文本回复在评论区,博主就能回复你获得的加密信息。
二、用什么软件
博主使用的GPG SUITE,下载地址可以去 https://gpgtools.org 即可。其他的请大家自己尝试。
三、要注意的点
有一些需要注意的点,如果弄错了就很麻烦。
1.使用GPG SUITE创建私钥时,会自己创建一个子钥用来加密解密,所以不要在已经使用的情况下“不小心”删除自己的子钥,会导致之前的信息无法获取。
2.推荐创建两条子钥,一条子钥用来签名,DSA加密,这样签名的长度比较友好,适合网页发布。一条子钥用来加密解密。原因见下:
选择RSA还是DSA取决于你的具体需求和环境。下面是一些考虑因素:
- 密钥长度和性能:RSA密钥长度通常比DSA密钥长,这可能会导致RSA在加密和解密时更消耗计算资源。如果你需要更高性能的加密操作,可以考虑使用DSA。但是请注意,密钥长度与安全性直接相关,密钥越长,破解难度越大。
- 支持性:RSA是更广泛支持的加密算法,许多加密库和软件都提供了对RSA的支持。DSA的支持相对较少。如果你需要与不同系统或软件进行交互,RSA可能是更好的选择。
- 安全性:RSA和DSA在安全性上都是被广泛接受的算法,但在某些特定情况下可能存在一些差异。一般来说,RSA在密钥长度相同时可能比DSA更易受到某些攻击,因此在选择算法时需要考虑你所处的安全环境和对安全性的要求。
- 签名性能:DSA在生成和验证签名时通常比RSA更快。如果你的应用程序需要频繁地进行签名操作,可能会更倾向于使用DSA。
如果你更关注性能和密钥长度较短的情况下,DSA可能更合适。但是,如果你需要更广泛的支持、更高的安全性或者在密钥长度方面有更大的选择余地,那么RSA可能是更好的选择。
3. 公钥需要进行发布,让需要和你交流的下载才能使用。所以,最好在配置好自己的GPG私钥后再导出公钥进行发布,GPG SUITE也提供了https://keys.openpgp.org 进行公钥的发布,主ID是邮箱,并要经过你的邮箱邮件验证后才进行发布,比较靠谱,但是我没有使用。可以尝试把自己的公钥公布在自己的网站或者github上,也比较方便。我选择公布在 https://key.jdzhao.com 和https://github.com/zhaojundong/me 。
4.还有Yubico等一些导入硬件KEY的玩法,博主尝试了yubico 5 ,但是感觉不方便,而且博主买的2个都不是type-c口,现在的笔记本有没有A口,算了,就不增加麻烦系数了。
5.如果你想用来给GITHUB签名,需要你的公钥的邮箱和github一致,GPG可以添加多个USERID(也就是多个邮箱),GITHUB也要验证多个邮箱,所以不要添加太多。
6.签名或者加密信息对格式要求很严格,如果要发布在网页中,请注意排版,比如我使用了“代码”模式,或者<pre>标签。
GoodBoyboy
MR.Zhao
GoodBoyboy
MR.Zhao
MR.Zhao