专栏名称: AirPython
分享 Python 自动化及爬虫、数据分析实战干货,欢迎关注。
目录
相关文章推荐
壹心理  ·  一个心理咨询师的成长之路是什么样的? ·  17 小时前  
武志红  ·  养一个敏感孩子,父母有多难? ·  昨天  
顶尖管理哲学  ·  真正拖垮你的,可能是你的限制性信念 ·  2 天前  
51好读  ›  专栏  ›  AirPython

小朋友都能懂的计算机算法 - 数字证书

AirPython  · 公众号  ·  · 2021-01-09 12:38

正文

碰到了大人物

小明最近碰到一件好事!

小明心想:

还有这等好事!

如果真能做到不给中国加关税,

那是为国争光了啊!

再说了还能办个绿卡,哈哈!

不行,万一是骗子呢?

我要再多问几句!

小明要看网址真的是白宫的,

连忙打开网页:

哎哟,真的是白宫网站啊。

要抓住机遇,

小明连忙根据客服的提示,

填写了自己的身份证和信用卡信息,

然后小明收到好几条短信:

可惜不是通知办绿卡的短信,

信用卡上的钱莫名花掉了好多,

那个特朗普也联系不上了。

问题来了,

在这个又大又坏的网络世界上,

我们如何去验证对方是真是假呢?

又如何去验证网站是真是假呢?

我们先来看看现实中是如何验证的。

身份证

小明的信用卡莫名被盗刷了,

很是恼火,

马上赶去银行要把卡锁住。

这时候银行柜员说:

您好,请出示一下您的身份证?

小明赶快递上自己的身份证:

银行柜员仔细核对身份证后,

确认了小明就是信用卡的主人,

马上给他锁定了信用卡,

防止“特朗普”继续盗刷他的信用卡。

上面这个锁定信用卡的过程中涉及到了3方人:

只有小明和银行柜员,

明明是2方,为什么说是3方?

确实是3方,这里少了公安作为公正方:

这个过程是这样的:

  1. 小明去公安机关办理身份证

  2. 小明要提供户口本等证明他真的是小明

  3. 公安验证无误后就给小明办理了身份证

  4. 小明拿着身份证去办理银行卡业务

  5. 银行柜员用公安联网的机器验证身份证真假

  6. 确认无误后给小明办理业务。

现实中,就是通过这张叫做"身份证"的证书来解决了“小明”是“小明”的问题。

那网络上是否也可以通过证书的方式来解决这个问题呢?

答案就是 公钥加密 数字证书

公钥加密

小明可以用身份证证明自己的身份,

虽然别人也可以伪造自己的身份证,

但伪造身份证还是很难的,

身份证里面加了各种防伪技术。

但如果有一个电子的身份证,也就是 数字证书

岂不是很容易伪造?

只要复制一份就行了?

是的, 数字证书 不能和普通的证书一样,

否则就太容易被复制了,

它是由两个文件组成的,

需要用到 公钥加密 技术。

我在前面一篇文章中介绍过 公钥加密

简单说就是:

  1. 有一对钥匙(文件),用蓝绿来表示

  2. 如果用绿色钥匙给消息加密,就必须用蓝色钥匙才能打开

  3. 如果用蓝色钥匙给消息加密,就必须用绿色钥匙才能打开

真是一对欢喜冤家,

只有彼此才能解开对方的心结。

我们来看一下上面的场景:

  1. 小明有一对蓝绿配对的钥匙。

  2. 小明把蓝色的钥匙公开给了小辉和其他人。

  3. 小明想发送 密码是9527 这段文字给小辉。

  4. 小明用 保密的绿色钥匙 给这段文字加密。

  5. 小辉收到密文后用 小明给的蓝色钥匙 解密。

  6. 如果能解开,就说明 是小明发的消息 因为只有小明才有绿色钥匙,只有绿色钥匙才能和蓝色钥匙配对解开。

  7. 如果解不开,就说明这消息不是小明发的。

通过这种方法就可以证明消息是否是小明发的。

至少有两个好处:

  1. 防止小明抵赖。 既然能用蓝色钥匙解密,那么肯定是小明发的。

  2. 防止别人冒充小明发消息。 别人没有绿色钥匙,不能和蓝色钥匙配对解开。

这就是核心原理! 关于 公钥加密 ,可以读我的上一篇专门关于公钥加密的文章。

数字证书

虽然小明不能抵赖,

别人也不能冒充小明,

但还有一个问题:

我怎么知道给我证书的小明就是小明呢?

如果某个人给我一个身份证说他是特朗普,

我怎么确认呢?

我去公安机关确认!

数字证书也需要能够 证明身份 的中间机构。

整个过程是这样的:

  1. 小明去证书机构请求办法证书,就像去办身份证。

  2. 证书机构验证 小明确实是小明 后给他生成了一份包含它的公钥以及他的身份的证书。



  3. 小明要发消息的时候先用 私钥 加密,然后把加密好的消息和证书一起发给银行。

  4. 银行看到证书后,确定这确实小明的证书。 如果证书造假怎么办呢?这个证书也是通过公钥加密技术加密和验证的,确保确实是这个银行颁发的。

  5. 然后银行取出证书中的公钥,进行解密。 并不是有了证书就说明消息是小明发的。如果别人获得了证书以后冒充小明乱发呢?

  6. 下一步就是用公钥去给消息解密, 如果能解密就说明确实是小明发的,因为只有小明有另一个用来配对的钥匙。

证书机构

神秘的证书颁发机构是谁呢?

理论上说谁都可以颁发证书!

上面的例子中银行自己就是证书颁发机构,

你去银行办卡,

银行如果给你一个U盘,

里面就是银行给你颁发的数字证书。

里面包含了你的公钥和私钥!

你自己也可以颁发证书,

但问题是你自己颁发的证书自己用还可以,

如果是要跟外部来证明你就是你自己,

就相当于自己画了一整身份证,

别人肯定不认的。

通用的证书

上面银行颁发的证书也只是自己用,

你在网上转账的时候,

银行自己验证证书的有效性。

如果想要办理大家都认可的证书,

就需要大家都认可的证书办理机构,

这种机构世界上也有很多家。

我们可以通过阿里云办理数字证书,

他给的选择有4个证书机构:

这说明只有这4家和阿里云有合作,

实际上有更多的数字证书机构。

这些机构颁发的证书是大家都公认的!

安全的网页

数字证书的其中一个重要应用就是在网页上,

1最开始假的特朗普发了假的白宫网站,

我们如何拆穿他呢?

我们打开真的白宫网站:

https://www.whitehouse.gov

会看到他的网址前面有个🔐的图标,

这说明这个网站是有 数字证书 的:

点开这个🔐,就可以看到网站的 身份证







请到「今天看啥」查看全文