Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

ssl协议支持的加密算法(ssl协议支持的加密算法有)

区块链 加入收藏
前言总括: 本文详细讲述了SSL协议中的数据加密的过程,数字证书、对称加密、非对称加密和SSL握手过程等概念。SSL只要你听过HTTPS,不可能没听过SSL协议吧,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**;
爱丽丝:收到公钥,我给你发送的消息经过公钥加密之后是这样的:#$#$@#@!$%*(@;
鲍勃:好的,收到了,亲,我来用我的私钥解密看下你真正要给我发送的内容;
上述过程就是一个非对称加密的过程,这个过程安全么?好像是很安全,即使查理(通信中的第三位参加者)截取了密文和公钥没有私钥还是没法得到明文。
可如果第三者查理发送给爱丽丝他自己的公钥,然后爱丽丝用查理给的公钥加密密文发送了出去,查理再通过自己的私钥解密,这不就泄露信息了么?我们需要想个办法让爱丽丝判断这个公钥到底是不是鲍勃发来的。于是就有了数字证书的概念。
数字证书

数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。
上面官方的解释看起来就头大。其实它就是一段信息。
数字证书内容大体如下:
签发证书的机构鲍勃的加密算法鲍勃所使用的Hash算法鲍勃的公钥证书到期时间等等

数字证书是由权威机构——CA机构统一来进行发行,我们绝对信任这个机构,至于CA机构的安全性…反正99.99%之下都是安全的。
为了防止中间有人对证书内容进行更改,有了一个数字签名的概念,所谓的数字签名就是把以上所有的内容做一个Hash操作,得到一个固定长度然后再传给鲍勃。然而如果别人截取了这个证书然后更改内容,同时生成了新的Hash值那怎么办?处于这个考虑,CA机构在颁发这个证书的时候会用自己的私钥将Hash值加密,从而防止了数字证书被篡改。
好,我们来梳理下整个过程:
第一步:首先,当爱丽丝开启一个新的浏览器第一次去访问鲍勃的时候,会先让爱丽丝安装一个数字证书,这个数字证书里包含的主要信息就是CA机构的公钥。第二步:鲍勃发送来了CA机构颁发给自己的数字证书,爱丽丝通过第一步中已经得到的公钥解密CA用私钥加密的Hash-a(这个过程就是非对称加密),然后再用传递过来的HASH算法生成一个Hash-b,如果Hash-a === Hash-b就说明认证通过,确实是鲍勃发过来的。
如上,是整个数字证书的使用过程就是这样的。
多说一句,非对称加密实际应用的例子除了SSL还有很多,比如SSH、电子签名等;
如上提到的,非对称加密计算量很大,效率不如对称加密,我们打开网页最注重的是啥?是速度!是速度!是速度!???
这点SSL就玩的很巧妙了,通信双方通过对称加密来加密密文,然后使用非对称加密的方式来传递对称加密所使用的密钥。这样效率和安全就都能保证了。
SSL协议的握手过程

先用语言来阐述下:
第一步:爱丽丝给出支持SSL协议版本号,一个客户端随机数(Client random,请注意这是第一个随机数),客户端支持的加密方法等信息;第二步:鲍勃收到信息后,确认双方使用的加密方法,并返回数字证书,一个服务器生成的随机数(Server random,注意这是第二个随机数)等信息;第三步:爱丽丝确认数字证书的有效性,然后生成一个新的随机数(Premaster secret),然后使用数字证书中的公钥,加密这个随机数,发给鲍勃。第四步:鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret);(第三、四步就是非对称加密的过程了)第五步:爱丽丝和鲍勃通过约定的加密方法(通常是AES算法),使用前面三个随机数,生成对话密钥,用来加密接下来的通信内容;

俗话说一图胜前言,我画了一个图来说明这个过程:

SSL
只要你听说过HTTPS,你不可能没听说过SSL,它是一种安全协议。不了解互联网协议的童鞋可以参考博主的另一篇博客:互联网协议简介
http+SSL = https
HTTPS之所以安全,是因为SSL作为插件被加入,对传输的数据进行加密,那么具体的加密方法是什么呢?请听我说。先看下面两个概念:
对称加密和非对称加密
你知道上面两个概念是什么意思吗??
好吧,不管你懂不懂,我先用我的方式解释给你听:
亲爱的,你出轨过吗??不要告诉我你在漫长的学生生活中从来没有出轨过(你的学生生活有多无聊)。我们常见的作弊方法有哪些?(把答案写在胳膊大腿纸条上的同学请你出去,谢谢?)当然是加密的!比如出于人道主义,我想帮小明同学作弊。首先,在考试前,我们会约定一个暗号,用来传递选择题的答案。摸头发—A,摸耳朵—B,咳嗽—C,跺脚—D,于是一种加密方法诞生了。
这个加密方法只有我和小明知道。老师虽然看到我挠耳朵挠脸颊,但充其量把我当成神经病,没有直接证据证明我作弊。嗯,这个我和小明知道但别人不知道的加密方法,就是对称加密算法,也是我们日常生活中最常见的加密算法。这个算法?只有一个,加密和解密用的是同一个密钥。一次?泄露都结束了。
随着时代的进步,人们发现其实加密和解密是不一样的?也有可能,只要加密解密两个?只是有某种关系。
所以,层出不穷的非对称加密算法被研究出来,那么它是基于什么样的原因呢?请严格记住下面这句话:
把A和B相乘得到乘积C很容易,但从乘积C推导出A和B却极其困难,也就是说,对一个大数进行因式分解是极其困难的。
看不懂因式分解的童鞋先去侧墙5分钟。白学了这么多年数学?给你维基百科链接,自己补课:因式分解
好了,我们继续。非对称加密算法还有两个概念——公钥C和私钥b
用法如下:公钥加密的密文只能用私钥解密,私钥加密的密文只能用公钥解密。
我们可以随便公开公钥,因为别人知道公钥没用,公钥加密的密文只能用私钥解密。并且从公钥推导出A和B是极其困难的。但显然,非对称加密的效率不如对称加密,因为非对称加密需要计算两个密钥的过程。
我们通过密码学中的两个典型人物Alice和Bob来解释这种非对称加密算法的过程:
客户端叫Alice,服务端叫Bob。艾丽斯:鲍勃,我想给你发个信息。给我你的公钥。
Bob:好了,这是我的公钥:234nkjdfdhjbg324 * **;
Alice:收到公钥后,我给你发的消息用公钥加密,看起来是这样的:# $ # $ @ # @ $ % *(@;
Bob:好的,我已经收到了,亲爱的,让我用我的私钥解密一下,看看你到底想发给我什么;
以上过程为非对称加密过程。这个过程安全吗?看起来很安全,即使查理(通信的第三参与者)截获了密文和公钥,没有私钥也无法得到明文。
但是如果第三方查理把自己的公钥发给爱丽丝,然后爱丽丝用查理给的公钥加密密文,查理用自己的私钥解密,难道不会泄露信息吗?我们需要为Alice找到一种方法来确定这个公钥是否来自Bob。于是就有了数字证书的概念。
数字证书
数字证书是标识互联网通信各方身份信息的一串数字,提供了一种在互联网上验证通信实体身份的方式。数字证书不是数字身份证,而是由身份认证机构加盖的图章或印章(或加在数字身份证上的签名)。


OK,整个进行数据加密的过程结束。我们再来回忆下内容:
CA机构颁发数字证书给鲍勃;爱丽丝和鲍勃进行SSL握手,爱丽丝通过数字证书确定鲍勃的身份;爱丽丝和鲍勃传递三个随机数,第三个随机数通过非对称加密算法进行传递;爱丽丝和鲍勃通过一个对称加密算法生成一个对话密钥,加密接下来的通信内容。
图集详情底部广告位