最近,微博上有人提出一个话题——聊聊你学生时代收到过的纸条,瞬间激起网友们一波波的回忆杀。
有讲老师坏话的:
熹微媣尽:高三…我跟我对象一个班的…我第二组第一排中….他第四组最后一排…跨越好多人传纸条…
张起灵的连帽衫z:我喜欢你。你是谁?我是xxx,你可喜欢我?喜欢。
船儿飘飘_:说真的,我初恋就传纸条传来的。
HOrizon邹路萍:我和好朋友的聊天记录本被语文老师发现,还被威胁到,再被抓到,叫你们两个上讲台读出来!
说实话,传纸条真的很危险,尤其是这种早恋的纸条,被抓到就是一首《凉凉》。想当年,我本来想趁老师不注意偷偷给喜欢的女生传纸条,手都伸出去一半了,猛地一抬头,发现老师就站在面前,女生也被吓得赶紧收回去手,然后默默抓起桌上的尺子,假装是互相借工具。最后小纸条还是被老师给没收了,我被罚扫了一周的值日。
这就是最初我坎坷的感情史,后来等我长大了,才知道这是回不去的美好。如今,我已经是一枚凭实力单身的程序猿,如果时光能够倒流,我想告诉当年的自己,用Https加密原理给小纸条上一层”保护锁”,就算被老师抓到也奈何不了我们。
这么神奇的Https加密原理,到底是什么呢?
Https是一种常见的网站加密传输方式,它是通过在网站上使用SSL证书,以加密的方式将http明文传输变成密文传输,从而确保数据信息的安全。
Http方式就像我们传纸条,纸条上的信息都是明文公开的,一目了然,谁拿到纸条都可以直接看到上面的内容,自然很不安全。那么,怎么才能有效地对信息进行加密呢?
一般来说,加密有两种方式,对称加密与非对称加密。
对称加密:也称为单密钥加密,即加密解密是使用同一把密钥。
如果使用对称加密,那么密钥在传输过程中一旦被截获,就会失去安全性,需要再对密钥的密钥加密。这将无限叠加加密层数,显然是不合理的。
这就好比两个人在传纸条之前,先约定暗号代码,内容全部用代码来写,这样其他人就看不懂纸条上的内容了。但是,如果约定的暗号代码被其他人知道了,这种加密方式也就没有意义了。
非对称加密:即使用一对密钥——公钥和私钥,私钥与公钥是一对多的关系,公钥用于签名,私钥用于验证。私钥需要私自保管在本地,不能泄露,公钥可以随意在网上传输发放。
如果使用非对称加密,首先服务器生成一对公钥和私钥,将公钥发送出去;对方收到公钥后,本地客户端使用对称加密生成一个密钥KEY,然后使用公钥加密这个密钥KEY,发送;服务器收到公钥加密的数据后,使用私钥解密,得到KEY。这时,双方可以使用KEY来加密数据,开始安全地交流。即使中间人截获了公钥加密的数据,但是由于没有私钥,所以无法解密出KEY。
这个方法看上去是可行的,但其实还是有漏洞。假如我在给女神送锁的过程中,这把锁被第三人截获,他自己生成一对锁和钥匙,并且伪造成我,将伪造的锁送给女神,这样一来,内容又被完全监听了。
所以,无论是再对称加密或非对称加密,都有其缺陷,这该怎么办呢?
此时,需要一个权威机构来主持大局,于是同学们决定推选德高望重的班长——CA(数字证书机构)来担此重任。
首先,每个同学在上课前,都会收到由班长颁发的私钥,而这个私钥是绝对可信任的。以后哪个同学需要传小纸条了,就到班长处申请SSL证书,这种证书将用于对公钥进行加密,然后将加密后的公钥传给收纸条的同学,这位同学只要用私钥来解密数据,就可以取出公钥了。
SSL证书中包含的具体内容有很多,比如:证书的颁发机构CA、证书的有效期、公钥、证书所有者、数字签名………当客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行严格的校验。权威CA机构颁发的SSL证书,其根证书广泛存在于大多数浏览器和操作系统中,可以被客户端用来校验网站SSL证书是否合法。
目前,全球主流的CA机构有Symantec、GeoTrust、DigiCert、Thawte、GlobalSign、RapidSSL等。在国内,天威诚信是首批由中国工信部批准,且中国唯一一家由DigiCert/Symantec直接授权的CA认证机构,经其签发的SSL证书,已广泛应用于工商银行、建设银行、腾讯、阿里巴巴等众多企业和网站。
只可惜这个技术原理,我知道得太晚了,如果当年有人告诉我,说不定高中坐在第三排的小倩,就是我的女朋友了呢?