什么是公钥密码学、PGP、数字签名

2023-01-13

PGP是Pretty Good Privacy,一个用来加密和解密数据和管理密钥的工具。由于PGP是商业软件,所以现在大家一般用 GPG(GnuPG),GPG是一个自由软件,功能和PGP是兼容的。 PGP(GPG)是目前使用最广泛的消息加密、解密方案。如果你还没有听说过,那你就真是有点跟不上时代了。

什么是公钥密码学

一般生活中常见的锁,必须使用同一把钥匙开启和关闭。有人构造了一种新锁,这种锁可以用钥匙A(公钥)关闭,再用钥匙B(私钥)开启;或者用钥匙B关闭,用钥匙A开启。用计算机程序模拟这种锁,完成数据的加密和解密,这个学科就叫公钥密码学Public Key Cryptography

公钥密码学的好处是,你可以把钥匙A(公钥)发给所有人,他们用钥匙A加密信息之后发给你,你再用钥匙B(私钥)解开。那些拿到公钥A的人,是无法从公钥推敲出你的私钥的。所以你只要保护好你的私钥,就可以安全地和其他人进行加密的通信。

PGP(GPG)软件可以帮你生成公钥和私钥,可以帮你方便地加密和解密消息。

什么是数字签名

在互联网上发东西,经常会遇到身份确认的问题。

比如有个叫新·品葱的网站,就经常以我觉得你被人盗号了作为理由,封禁他们网站上的用户。

怎么证明你是你自己,而不是别人冒充的呢?密码是一个办法,但是你登录的时候会把密码发给网站,于是网站的工作人员就可以知道你的密码,然后把你的密码卖给别人,用来登录你其他的网络服务,比如邮箱或者网银之类的。

密码泄露是个大问题,而公钥密码学可以解决这个问题。你先用你的私钥,加密一条信息,让别人用你的公钥解开。由于只有你自己有私钥,所以别人通过这个解密的过程,就可以确认消息确实是你加密的(而不可能是别人假扮成你加密的),这种做法就叫签名,现在是数字时代所以叫数字签名。网站验证完你的签名,就可以让你登录了。

用数字签名登陆网站,比用密码登陆要安全得多。生活在大陆的朋友可能用过银行、软件公司或者网游公司做的那些U盾、密保器;生活在国外的朋友可能用过Google Authenticator,还有门禁解锁的RFID卡,这些其实都含有基于数字签名的身份验证技术,只不过是把私钥放到了一个小盒子里面。用电脑来做这个事情的话,私钥就放在电脑上的一个文件里面,原理是一样的。

搞这么复杂的必要是?

取决于每个人面临的威胁模型。

  • 如果假设网站永远不会出卖用户,用密码登录就是安全的。
  • 凡是用密码登录的网站,只要站长愿意,100%是可以记录用户的密码的,然后他可以拿这些密码去做他想做的事情。所以只要网站有出卖用户的可能性,密码就不再安全了,必须每个不同的网站用不同的密码才相对安全。
  • 如果你遇到更严重的threat,比如被人怀疑、甚至假冒身份的情况,需要证明自己就是某个无法登陆的账号的持有者的时候,仅有密码也没用,那就需要公钥密码学了。

应用案例

在Git中使用GPG签名

本文作者建议,如果你的账号里面有钱,或者有重要的信息,就请用公钥密码学知识来保护你的账号。也可以用公钥密码学来保护你的电子邮件,这样别人就无法伪造你的邮件了。

此文就到此结束啦!欢迎大家在评论区留言哦ヾ(^▽^*)))
Ciallo~(∠・ω< )⌒☆​
写文不易,如果你觉得我的文章对你有帮助,欢迎打赏