gpg, encrypt, cert, rsa, ecdsa,

GPG认证你的commit、邮件和其他

DolorHunter DolorHunter Follow Aug 08, 2021 · 1 min read

GPG认证你的commit、邮件和其他
Share this

之前虽然有看到面包发的 GPG public key,因为一直对消息签名不太感冒,并且用 GPG 签名也不太实际,解密也麻烦就一直不以为然。技术是个好技术,应用于消息签名却不尽然。

一般来说,GPG 的主要应用场景 GitHub 上就提供了上传公钥并且提供验证的方式,验证后的 commit 会有一个绿色的 verified,比如下图。在网页端提交的代码也自动具有 GPG key(不显示在设置中),并且能自动完成验证。我先前在本地使用 Git 提交代码默认是没有认证的,因此以为绿标是 GitHub 为了让更多人用其自家网页编辑代码或是用 Desktop 等产品使出的小手段。

根据 mogeko 的 使用 GPG 签名你的 Git Commit 一文,很容易就能完成相关默认配置,最终生成RSA2048密钥。我为了测试也使用密钥完成了第一个由本地提交的有验证标志的commit。当然也可以生成其他算法的密钥,我参照 Signing Git commits with GPG keys that use modern encryption 生成了ECC(ECDSA) 算法的密钥。RSA与ECC区别于 为什么你应该用ECDSA椭圆曲线数字签名算法生成证书 一文有描述,简单来说就是ECC能用更短的密钥达到与RSA相同强度。

GitHub GPG verified

仅仅 GitHub 支援的 GPG key 算法就包括 RSA、ElGamal、DSA、ECDH、ECDSA、EdDSA,支援的算法还是很丰富的。在完成了 GitHub commit 验证后,理所当然的也可以使用此密钥来完成例如文件验证,邮件验证,消息验证之类的操作,虽然感觉目前遇到这些硬场景的机会不大,甚至怀疑在密钥过期前也不会有机会在这些地方用过一次,但是有 GPG 这种认证方式还是蛮酷的。

GPG 如果应用在匿名留言板上,效果应该还是挺不错的。

最后附上我的公钥,其中RSA2048算法的公钥已上传至 PGP Global Directory - Encryption

RSA2048

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQENBGEPScIBCADL/JjHNvvYt9/gBNgHzYL3yDrJTOSrttVRw9mOSKSXhPA241gT
Sle1YxmFwcQNpj8WVKwMnAio1M/S3jbGn/LuxvakXUEAKgEoY4YQ+WljiwM45B8E
uAZQaba1XnfBpRF6tUrS0u5/RdIwolP5dfNW/R4OxNxzMxFbaXIsZhruVWBevtmB
HKJWPu8Ri8UA6QMkMC3eY7shVA/asThF6DY1tsvHkhjcx8B/VpQeYcDm3g4Ujxd8
Rt4sJIGqQXGP2o9QylfY2hFiUjfr6EfPUEJgoVS8kcosunMx6ItlLGeib1hrLb6v
pNBXb0mWhitlJjVplWtsvFjtH6z1xxUpZ4bjABEBAAG0I2RvbG9yaHVudGVyIDxk
b2xvcmh1bnRlckBnbWFpbC5jb20+iQFUBBMBCAA+FiEEo32VvwroWVouxai2wsAi
KNSc1K8FAmEPScICGwMFCQPCZwAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ
wsAiKNSc1K+FMgf+JPnzIWkAo5Cwm42oBBOEX/qhJxFxC5AIORQLp6/GZ6Aby/Sg
aigqqCdmnEED21FYDl2at1hA+QZQn0Cf4rbStxuxaXXS8mDxJ8T5a04iNYRfAhDo
i5iQBNtBDDf2pJlgdfGmeTGl9PiYmeeVB59CImwtOD5l6kjCOx+S8zwnB7Pb+zaf
7tqRuJvEJD1xzT8MaSUYola3PrTzeuu2AcnLQFSau0eaeKx0QzohfFaTv+RudRVj
+LhuoFUHZ43+yKz6gPD0bq2wqln4MHFDG3WzX/UKJ9iDp10VhrrkbMh2lXm/MRFs
N5BjMsZ2vzm/2B+ghWE8VXTYMTeGlMxGNCaWnrkBDQRhD0nCAQgAwqlfTjD2v0K9
g5WwLs9lqhq59atVbE9eFlGloEJfu2IJM+qD6hP3y/lFDkXkJf2SQx9f0ZCbm7Qt
ZCiF2cEgg6xqoLQr1iiGsqNqYlAlKbAysFREvTuDBnpNOFPSsLD49RWcWRjndI3g
1y7HvWv4mSewucDFy87LiTNwja9k6O7mbvD2gFGodeMhgSC3yU5xhT6flTpyV+Oe
LReFUwHhRoVahuJgS/ez0EYdRPoZvR3CL1BWwCmJe6XgErBwnZ7fbwTunfnt/ztR
MLwuyAUnsgUNQH02G0VDGsMMTdCONHZBPQ2vnTRHO1AgvLkgaLNu7/bkgIFN9moe
3ZZENpVLCwARAQABiQE8BBgBCAAmFiEEo32VvwroWVouxai2wsAiKNSc1K8FAmEP
ScICGwwFCQPCZwAACgkQwsAiKNSc1K8GXggAxai0DKV6vLZGnUKDfcwdLB2RTtql
uy49UdNPcLWENnxzrghzt+XICD/VeaQtnUpyGnYfTuRflTcH8ENwkYx+jExRKraS
PWPpocx6Xq7H/FCKYafqpsF7KYcMzZY3RjHo53Ge+4au2+hNDrtND5AlbtxVH5X2
aCBpsDwfG8OXhqjDBAjF+HvBZFiKPbwbE0JG99jr+6OIUxnflBKH9YNgFavEAY8o
Ku74hD/cwmL5yggKDFAl1IPx7DrwbYBGFw2+i3c7m8ZuY6StubPsx/6kiNNZVp5H
OhPnf3kr+QZXM2BvIzaZJRt8FnaP6xqF8yV6u+cpF8Ye0Mr6joo2I+IG3A==
=YNQ2
-----END PGP PUBLIC KEY BLOCK-----

ECC(Curve 25519)

-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEYRCt8BYJKwYBBAHaRw8BAQdAhj7IRb5vHUHjCEPhXX92LT3O/DRoJ1+z/du8
GdsqH+O0I2RvbG9yaHVudGVyIDxkb2xvcmh1bnRlckBnbWFpbC5jb20+iJYEExYI
AD4WIQQslg0InhIyIPqzh+SgzDOyLsF4wQUCYRCt8AIbAwUJAeEzgAULCQgHAgYV
CgkICwIEFgIDAQIeAQIXgAAKCRCgzDOyLsF4wQKaAP9kmemQBgeJkw02Q5hlQRDs
oEuqIHDh23ijnvCovoH3CAD+IPR1v8U/i5uUvdPgdN4wnD05jeOSsGUdf2vUCnLT
0QC4OARhEK3wEgorBgEEAZdVAQUBAQdAnb4bCpXTg5UCxY04LKz+fU1ez5mbWgVo
sqXEbQuRoFoDAQgHiH4EGBYIACYWIQQslg0InhIyIPqzh+SgzDOyLsF4wQUCYRCt
8AIbDAUJAeEzgAAKCRCgzDOyLsF4wfCpAQDe4JdRlF1AFKkVZgOFYfyzRjyHpIoB
AzMkGN2UXA/8BwD+IM2oPQRX87XW888prTKX9NBYoNOrkUMZ8I4Dt8nm3gA=
=1ned
-----END PGP PUBLIC KEY BLOCK-----

参考资料:

Join Newsletter
Get the latest news right in your inbox. We never spam!
DolorHunter
Written by DolorHunter
Developer & Independenet Blogger