SSL 概念整理

 

SSL是什么?

SSL 是Netscape公司提出来的一种安全协议,为在网络上传输数据提供安全保障。

该协议位于传输层和应用层之间,可以为任何基于TCP等可靠传输的应用协议提供安全服务。

 

SSL主要内容/解决的问题:

利用3个方面的技术: 数据加密、身份验证、消息完整性验证。

 

传输数据的机密性

SSL为通信的双方建立加密通道,保证数据不被非法窃取。所谓加密通道,就是发送方在发送数据前,采用某种加密算法和加密密钥对数据进行加密,然后再发送;而接收方在接收到数据后,通过解密密钥和解密算法,从密钥中获取明文。因此,没有解密密钥的第三方,无法从密文中获取出明文。

加密/解密算法:

  • 对称密钥算法:加密、解密的双方使用相同的密钥。
  • 非对称密钥算法:加密、解密双发使用不同的密钥,一个公钥,一个私钥。利用公钥加密的数据只能用相应的私钥解密;相反,利用私钥加密的数据只能用相应的公钥解密。

以上两种算法中,对称密钥算法计算速度快,适合给大量数据加密;而非对称密钥算法适合给少量信息加密,如数字签名等。

SSL的加密通道采用的对称密钥算法,目前主要支持算法有AES、DES、3DES等。因此SSL让双发通信前,必须在双发各部署一份相同的密钥。而这一部署过程又是通过非对称密钥算法完成的,后文再叙。

 

身份验证

SSL利用数字签名来保证通信对方身份的真实性。

由于通过私钥加密的消息只有通过其公钥才能解密,因此,一旦解密成功,就能验证该数据确实为某身份发来的。这一过程也就是数字签名。

SSL客户端必须验证服务器端,至于服务器端是否需要验证客户端由服务器端自行决定。详见SSL握手过程。

其实,这一过程的前提还要保证公钥的真实性,如果客户端得到的是一个伪造的公钥,那么就可以用相应的伪造的私钥来冒充真实的身份。保证公钥的真实性,由PKI做到。详见PKI。

 

消息完整性验证

为了避免数据在传输过程中被篡改,SSL利用MD5或者SHA等MAC算法来保证消息的完整性。

MAC算法是在密钥参与下的数据摘要算法,它将任意长度的数据和密钥计算成固定长度的数据,即MAC值。因此发送方将要发送的数据(SSL里应该是指已经加密的数据)和密钥进行MAC计算,然后再把数据和MAC值一同发往对方。接收方在收到数据后,利用相同的密钥和MAC算法计算MAC值,与对方发送过来的MAC值进行比较,如果一致,则说明数据未被修改。

这个过程关键在两点:

  • 消息的任何一点改变,都会引起输出的固定长度数据(MAC值)产生变化
  • 拉入密钥参与计算,可以防止没有密钥的非法第三方修改的MAC值无效

 

利用非对称密钥算法保证安全地部署对称密钥

SSL的消息完整性验证的MAC算法需要双方利用相同的密钥参与,而加密解密数据也需要双方具有相同的密钥,所以保证非法第三方无法获取密钥至关重要。

RSA:目前最流行的非对称密钥算法,PK---公开密钥,SK--私密密钥。

SSL也是采用RSA非对称密钥算法。SSL客户端采用服务器端的公钥对密钥(对称密钥中)加密,这样只有拥有对应私钥的SSL服务器才能解密并获得该密钥。在这之后,双发就可以用密钥(对称)进行通信了,因为只有他们两拥有该密钥。

 

过程原理就是上面这样,但实际上SSL客户端发给服务器端的私钥,并不能直接拿来参与计算MAC或者加密数据,叫做premaster secret。premaster secret 被用来计算出对称密钥 和 计算MAC的密钥。premaster secret 先被用来计算出master secret,master secret 才被计算出最后的对称密钥和MAC算法密钥(至于为什么这样做,就不得而知了)。

 

剩下的唯一问题就是

公钥的真实性

PKI 通过数字证书来发布公钥,提供验证公钥真实性的机制。数字证书文件包含公钥和用户身份信息,由权威机构CA颁布。

SSL客户端与服务器端通信前,先需要从服务器端下载数字证书,再利用PKI验证该证书的真实性。如果该证书真实属于该服务器,客户端就利用该证书中的公钥加密对称密钥并发送给对方。

验证客户端身份过程与此相反,客户端也需要从CA获取一份证书。

关于PKI,数字证书方面的原理,网上有篇文章写得好 http://blog.csdn.net/fw0124/article/details/8444561  转自 http://blog.chinaunix.net/uid-796091-id-3106305.html

 

SSL协议

关于SSL协议结构和工作过程属于详细细节,可浏览http://blog.csdn.net/zhuyingqingfen/article/details/7610098

 

posted on 2014-10-16 16:14  不忘初衷,方能致远  阅读(644)  评论(0)    收藏  举报

导航