我们在上网的时候会发现有些网址是https开头的 , 很多人都知道https代表着安全和加密 , 但有时候当我们访问https网址时 , 会遇到下面这样的证书错误:
文章插图
卧槽这什么鬼?好像很多人在这里都会直接无视浏览器的警告 , 然后点“继续浏览此网站(不推荐)” , 可是“不推荐”三个字这么大呢 , 还一个大大的红叉呢 , 怎么看都觉得挺不靠谱的 。 话说回来 , “证书”到底是个什么东西呢 , 它是用来干什么的呢?
保卫信息安全的SSL/TLS
我们平时上网访问的http开头的网址都是不经过任何加密的 , 换句话说 , 你的浏览器和网站服务器之间的通讯是能够被任意窃听、劫持和篡改的 , 听上去很恐怖是吧?实际上这样的事事每天都在发生 , 只是其中绝大部分都是无关紧要的信息罢了 。 不过总有一些信息我们绝对不想让别人知道 , 比如说账号、密码、银行卡之类的 , 但有一些服务需要我们提交这样的信息 , 这时https便承担起了保护敏感信息安全的重任 。 其实 , https相当于在普通的HTTP协议上额外增加了一层用于加密的SSL/TLS协议 , 除了HTTP之外 , 其他一些如FTP、IMAP等协议都可以通过SSL/TLS来实现安全传输 。
然而 , 加密并不是一件很容易的事情 , 而是一个十分缜密而复杂的学科 , 我们称之为“密码学”(cryptography) 。 如果我们研究一下SSL/TLS协议的构造 , 会发现它实际上是一个集人类所有密码学技术之大成的产物 , 其复杂程度可想而知 。 为了说清楚“证书”到底是怎么回事 , 我们先简单看看SSL/TLS都做了些什么 。
一把锁和两把锁
SSL/TLS中使用对称加密算法对传输的信息进行加密 , 同时还会使用公钥密码算法来交换对称密码的密钥 。 这句话听上去有点绕 , 我们用两个小故事来说说为什么会这样 。
小明要给小红寄一份秘密礼物 , 这个礼物挺大的 , 于是他将礼物装在一个大箱子里面 , 然后在外面加了一把锁 。 小红收到之后 , 她需要打开箱子上的锁 , 但是锁是小明的 , 只有小明有钥匙 。 怎么办呢?小明可以约小红在咖啡馆见个面 , 然后当面把钥匙交给她 , 但在互联网中我们并没有这么一条路可以走 , 我们现在假设他们见不了面 , 看看小明还有什么别的办法没有 。
小明很聪明 , 他想了一个巧妙的办法 。 他把礼物箱子的钥匙装在一个小盒子里 , 然后加上了一把锁寄给小红 , 并在盒子外面写了一张纸条 , 让小红收到盒子之后在原来的锁旁边再加上一把她自己的锁 , 然后把盒子再寄回给小明 。 小红照做了 , 于是盒子又回到了小明手里 , 现在上面有两把锁 , 一把是小明的 , 另一把是小红的 。 小明用钥匙把自己的锁打开并拿掉 , 然后把盒子又重新寄回给小红 , 现在盒子上只有小红的锁了 , 于是小红可以用自己的钥匙把锁打开 , 取出里面的礼物箱子钥匙 , 再用这个钥匙打开那个礼物箱子 。
诚然 , 小明一开始就可以用两把锁的方法来直接寄他的礼物箱子 , 但是这里有个问题 , 两把锁的方法需要把东西来回邮寄三次 , 而礼物箱子很大 , 不方便这样折腾 , 而如果只是一把礼物箱子的钥匙 , 来回折腾几次也问题不大 。
推荐阅读
- 强迫症到底有多痛苦?
- 关灯后玩手机伤害眼睛吗?
- “眼见为实”就一定靠谱吗?
- 北京今冬“30年来最冷”是真的吗?
- 过年吃太好,小心得痛风这种“帝王病”!
- 所谓的“灵魂出窍”,是真的吗?
- 为什么有些车开起来发“飘”?
- 跑步时,突然“岔气”怎么办?
- “酸性体质、碱性体质”其实是伪科学?
- ”地球一小时“,更浪费能源?