SSL协议之数据加密过程详解

前言
总括: 本文详细讲述了SSL协议中的数据加密的过程,数字证书、对称加密、非对称加密和SSL握手过程等概念。
SSL
只要你听过HTTPS,不可能没听过SSL协议吧,SSL协议是一种安全协议。对于互联网协议没有了解的童鞋可以参考博主另一篇博客:internet协议入门
HTTP+SSL = HTTPS
HTTPS之所以安全就是因为加持了SSL这个外挂来对传输的数据进行加密,那么具体的加密方法又是什么呢?
请听我娓娓道来。先看下面两个概念:
对称加密非对称加密
你知道上面两个概念是什么意思么??
OK,不管你懂不懂,我先用我的方式来给你解释下:
亲,你作过弊么??不要告诉我在你漫长的学生生涯里你没作过弊(那你的学生生涯得多枯燥),作弊我们常用的方法是啥?(说把答案写在胳膊大腿纸条上的同学请你出去,谢谢?) 当然是加密了!比如我出于人道主义,想要帮助小明同学作弊,首先考试前我们会约定好一个暗号来传递选择题的答案,摸头发——A,摸耳朵——B,咳嗽——C,跺脚——D,于是一个加密方法就诞生了。
这个加密方法只有我和小明知道,老师虽然看我抓耳挠腮但他顶多把我当成神经病,并没有直接证据说我作弊。好,这种我和小明知道,别人不知道的加密方法就是一种对称加密算法,对称加密算法也是我们日常最常见的加密算法。这种算法?只有一把,加密解密都用同一把钥匙,一旦?泄露就全玩完了。
随时时代的进步,人们发现实际上加密和解密不用同一把?也是可以的,只要加密和解密的两把?存在某种关系就行了。
于是,层出不穷的非对称加密算法就被研究了出来,那么它基于什么样的道理呢?请严格记住下面这句话:
将a和b相乘得出乘积c很容易,但要是想要通过乘积c推导出a和b极难。即对一个大数进行因式分解极难。
听不懂因式分解的童鞋先去面壁5分钟,这么多年数学白学了?甩给你维基百科链接,自行补课:因式分解
好的,我们继续,非对称加密算法就多了两个概念——公钥c和私钥b。
用法如下:公钥加密的密文只能用私钥解密,私钥加密的密文只能用公钥解密。
公钥我们可以随便公开,因为别人知道了公钥毫无用处,经过公钥加密后的密文只能通过私钥来解密。而想要通过公钥推导出a和b极难。但很明显的是,使用非对称加密效率不如对称加密,因为非对称加密需要有计算两个密钥的过程。
我们通过密码学中的两个典型的爱丽丝和鲍勃人物来解释这个非对称加密算法的过程:
客户端叫做爱丽丝,服务器叫做鲍勃。
爱丽丝: 鲍勃我要给你发送一段消息,把你的公钥给我吧;
鲍勃: OK,这是我的公钥:234nkjdfdhjbg324**;
爱丽丝:收到公钥,我给你发送的消息经过公钥加密之后是这样的:#$#$@#@!$%*(@;
鲍勃:好的,收到了,亲,我来用我的私钥解密看下你真正要给我发送的内容;
上述过程就是一个非对称加密的过程,这个过程安全么?好像是很安全,即使查理(通信中的第三位参加者)截取了密文和公钥没有私钥还是没法得到明文。
可如果第三者查理发送给爱丽丝他自己的公钥,然后爱丽丝用查理给的公钥加密密文发送了出去,查理再通过自己的私钥解密,这不就泄露信息了么?我们需要想个办法让爱丽丝判断这个公钥到底是不是鲍勃发来的。于是就有了数字证书的概念。

SSL协议之数据加密过程详解

扫一扫手机访问

发表评论