SEO 网站优化推广 SEO 网站优化推广

GPG 密钥的几个问题

作者:


最后更新于 | 最初发布于 | 分类:


在自问自答之前,先说一下 GPG 的用处。

GPG 密钥,就是用来对数据进行加密,解密的。为了不被中间人获取信息内容而设计的。

在使用 GPG 之前有几个问题要理一下。

需要生成多少对密钥?

通常是一对主密钥,具有认证(Certify)功能。

三对子密钥,分别具有签名(sign)功能,加密(Encrypt)功能,身份验证(Authenticate)功能。

平时使用,就只使用子密钥。主密钥只用来生成和吊销子密钥。子密钥可以放到 Yubikey 中。

如何选择加密算法?

通常使用的加密算法有很多,主要就是 RSA 和 ECC两类。

最为常用的就是 RSA 4096 和 curve 25519,这两个目前我用的 Yubikey 5 NFC 已经支持(从 5.2.3 固件开始就支持ECC算法了)

如果可能的话,就选用 curve25519,更快更安全。目前来看 RSA 4096也已经是很安全了。也有的看法是,RSA 4096更加安全一点。

根据 Sectigostore 的一篇文章,来看,差不多。

rsa-vs-ecc.jpg它的结论就是能用 ECC 就用 ECC,如果考虑兼容性,那么 RSA 也很好。

各种密钥的功能是什么?

  • Certify 认证: 认证其它密钥,给其它证书签名,就类似 SSL/TLS 的根证书。
  • Sign 签名:给文件添加数字签名,给邮件签名,给 Git 签名。
  • Authenticate 身份验证:比如 SSH 登录。
  • Encrypt 加密:加密文件,加密邮件内容等。

带有 Certify 的密钥被称之为主密钥,只有这种密钥才能添加或撤销其它子密钥的 S/A/E 功能,添加或者修改其它子密钥的到期时间。

密钥是怎样的?

密钥,包含了公钥和私钥,这是一对。

公钥是发布出去,分发给公众的,所以称之为公钥。

私钥是拥有者自己使用的,要保证安全,不能泄露给第三方。

OpenPGP的密钥是如何组织的?

一般都是先生成主密钥,具有 Certify ,认证功能。

然后分别生成三个单独的子密钥,包括 Sign,Encrypt,Authenticate,三种。

还有要生成撤销证书。

最后导出下面这些文件。

  • 公钥文件,包含了主密钥和三个子密钥的公钥。
  • 撤销证书
  • 主密钥的私钥文件 (C)只包含主密钥的私钥。
  • 加密子密钥的私钥文件(E)不含主密钥的私钥。
  • 签名子密钥的私钥文件(S)不含主密钥的私钥。
  • 身份认证子密钥的私钥文件(A)不含主密钥的私钥。
  • 三个子密钥合在一起的私钥文件,不含主密钥的私钥。

把上面所有的这些文件都离线保存,两份至少。比如 U 盘,或者打印出来,成方便扫描的格式。

然后在个人电脑上只使用公钥,以及各种子密钥的私钥文件。公钥还需发布到网络上。

我有在用 Thunderbird 邮件客户端,里面已经内置了 openGPG 的管理器,也可以生成加密邮件和签名所需的密钥,这里我还是建议自己手工生成密钥为好,然后只需要在 Thunderbird 中导入上面做的三个子密钥合在一起的私钥文件,以及公钥文件就可以了使用了。

注意:如果只导入子密钥的私钥的话,Thunderbird 中的管理器是无法延长密钥过期时间的,即使再导入主私钥也不行,这里似乎有个顺序问题。先导入主私钥,再导入子私钥是可以完整展示所有的私钥,如果反过来就不行。

邮件的加密与签名是怎么回事?

比如我要发邮件给甲,那么我就用甲的加密公钥对邮件内容加密,然后用我自己的签名私钥给邮件签名。

甲收到邮件后,需要用我的签名公钥来验证是否真的是我发出的邮件,还有就是用他自己的加密私钥对邮件内容进行解密。

加密与签名是独立的事件,并无联系。

加密邮件的目的是只有收信人才能看到邮件的内容。

邮件签名的目的是确认发信人是发信人邮箱地址的持有人,而不是其它的冒名者。

GPG可以用来加密邮件,可以为邮件签名,还可以做什么?

  • 可以用 PGP 为 Gig commit 签名,很高级的做法。
  • 使用 PGP 进行 SSH 验证。
  • 用公钥加密文件,然后丢到任何的云盘,不担心会被偷窥,需要使用的时候,再下载回来,用自己的私钥解密就可以了。
  • 文档的签名与认证,比如很多大型软件的下载包除了有 MD5摘要验证以外,还会有签名文件。
  • 还有很多,我都不会。

怎样使用 GPG?

当然,需要一个 GPG 环境,如果用 Linux,一般已经内置了相关软件,比如我用的 Manjaro, 直接用就是了。

如果是 Windows,我用的是 gitbash 环境,它包含了 GPG 环境。

gitbash-gpg-version.jpg

参考:

2021年,用更现代的方法使用PGP


分享:
Share on Facebook Share on Twitter

搜索
关于
David Yin
研究(SEO)搜索引擎优化排名和(PPC)竞价排名技术,总结搜索营销学的各种方法和趋势。专业SEO优化研究,致力于搜索引擎优化技术的普及和推广。
David Yin
Email:seo[AT]g2soft.net
版权说明
如果想转载,而又不明白转载的条件,请看本站的详细版权说明
推荐
Dreamhost Hosting
使用优惠码“save252015”,节省更多,每月只要 $2.59。
标签云
热门标签