Warning: realpath(): open_basedir restriction in effect. File(/www/wwwroot) is not within the allowed path(s): (/www/wwwroot/jdzhao.com/:/tmp/) in /www/wwwroot/jdzhao.com/wp-content/plugins/wp-file-manager/classes/backup-storage.php on line 119

Warning: realpath(): open_basedir restriction in effect. File(/www) is not within the allowed path(s): (/www/wwwroot/jdzhao.com/:/tmp/) in /www/wwwroot/jdzhao.com/wp-content/plugins/wp-file-manager/classes/backup-storage.php on line 119

Warning: realpath(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/www/wwwroot/jdzhao.com/:/tmp/) in /www/wwwroot/jdzhao.com/wp-content/plugins/wp-file-manager/classes/backup-storage.php on line 119
GPG/PGP折腾日记,证明我是我 - 重光阁-Jundong's Blog

AI (1) mastodon (2) matrix (1) 加密 (3) 境内卡 (1) 境内游 (13) 境外卡 (14) 境外游 (6) 工作 (3) 工作小结 (2) 旅行 (21) 无人机 (1) 服务器 (9) 生活 (10) 美股 (1)

GPG/PGP折腾日记,证明我是我

以前虽然听说过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,就可以弹出“可信签名”信息,对文件的操作也是一个意思。
GPG签名

2.加密文本或文件

如图,如果需要对文本进行加密,直接在任意文本编辑器中,输入要加密的文本,然后选择encrypt selection即可。

GPG加密解密

要注意的是,你的签名,必须有一个“收件人”,比如,你下载了博主的公钥,然后收件人选择博主,并用你的私钥加密,那么博主用自己的私钥就可以解密该信息并看到。所以,这个操作无法在这里给大家展示,如果想尝试的朋友,可以下载博主的GPG公钥,然后加密给博主,并将加密文本回复在评论区,博主就能回复你获得的加密信息。

二、用什么软件

博主使用的GPG SUITE,下载地址可以去 https://gpgtools.org 即可。其他的请大家自己尝试。

三、要注意的点

有一些需要注意的点,如果弄错了就很麻烦。

1.使用GPG SUITE创建私钥时,会自己创建一个子钥用来加密解密,所以不要在已经使用的情况下“不小心”删除自己的子钥,会导致之前的信息无法获取。

2.推荐创建两条子钥,一条子钥用来签名,DSA加密,这样签名的长度比较友好,适合网页发布。一条子钥用来加密解密。原因见下:

选择RSA还是DSA取决于你的具体需求和环境。下面是一些考虑因素:

  1. 密钥长度和性能:RSA密钥长度通常比DSA密钥长,这可能会导致RSA在加密和解密时更消耗计算资源。如果你需要更高性能的加密操作,可以考虑使用DSA。但是请注意,密钥长度与安全性直接相关,密钥越长,破解难度越大。
  2. 支持性:RSA是更广泛支持的加密算法,许多加密库和软件都提供了对RSA的支持。DSA的支持相对较少。如果你需要与不同系统或软件进行交互,RSA可能是更好的选择。
  3. 安全性:RSA和DSA在安全性上都是被广泛接受的算法,但在某些特定情况下可能存在一些差异。一般来说,RSA在密钥长度相同时可能比DSA更易受到某些攻击,因此在选择算法时需要考虑你所处的安全环境和对安全性的要求。
  4. 签名性能: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也要验证多个邮箱,所以不要添加太多。

GITHUB签名

6.签名或者加密信息对格式要求很严格,如果要发布在网页中,请注意排版,比如我使用了“代码”模式,或者<pre>标签。

5 条回复

  1. GoodBoyboy 的头像

    博主的笔记本应该是轻薄本吧,近几年轻薄本都有不断缩减a口的趋势。
    其实用硬件密钥给我带来的便利更多的是在签名和认证中,加密我倒是用的很少,例如在其他电脑上进行ssh登录,git commit签名,fido免密登录或者2fa。因为我的密码基本上都是保存在keepass密码库内并且长度均为16+以上,要是手动输入简直就是一场灾难

    1. MR.Zhao 的头像

      我用的是enpass,原来打折的时候买的,就一直用下来了
      加密我只是弄着把玩一下,因为突然觉得非常有趣
      哈哈~

      1. GoodBoyboy 的头像

        我主要是觉得keepass方便,就一个文件,不用部署任何服务,迁移方便,同步也只需要一个webdav即可,扔在onedrive上都行

        1. MR.Zhao 的头像
          -----BEGIN PGP SIGNED MESSAGE-----
          Hash: SHA256
          
          enpass也是差不多的
          我以前也用过一段时间Keepass,因为跨平台很方便
          然后换成lastpass,后来觉得联网不安全
          就又换成enpass了,同步也在onedrive
          偶尔导一个到icloud备份一个
          -----BEGIN PGP SIGNATURE-----
          
          iHUEAREIAB0WIQTLEr80LL/GAfzwNHsGlwnp1It2awUCZjZSOgAKCRAGlwnp1It2
          a8KuAP9N0tT6TZzxuvWQA9iXK/tlXC/POU2i8x7g9iFpUNJHdQD/aatWGFsCO7pU
          EbuEIrCWquM/GW6AdOKqJyhdJDxpoT4=
          =Vz59
          -----END PGP SIGNATURE-----
          
        2. MR.Zhao 的头像
          -----BEGIN PGP SIGNED MESSAGE-----
          Hash: SHA256
          
          不加Pre标签不行呢
          刚刚没加pre标签,用签名回复你,格式肉眼不可见的变化一点
          就verify不了签名了
          -----BEGIN PGP SIGNATURE-----
          
          iHUEAREIAB0WIQTLEr80LL/GAfzwNHsGlwnp1It2awUCZjZS1QAKCRAGlwnp1It2
          axLjAQCR9aC614vffbgwUFQyqcZShQCSlL8ywNe+KvaY2K6S7AD/YS3PTRa+TPa7
          YhDctSVnvkDVY5Z2F8ZZ0hppEitWIG0=
          =pGBw
          -----END PGP SIGNATURE-----
          

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

zh_CNZH_CN