SSL相关的一些知识

最近在做一个和SSL相关的任务,看了一些和SSL有关的文章。之前也学习过一些和SSL有关的知识,但是总是很快就忘掉了。所以这次决定写一篇blog,作为一个备忘。

SSL,Secure Socket Layer, 是一种用来在客户端与服务器之间建立安全传输通道的技术。

功能, SSL主要有两方面的功能,验证通信双方身份,保护传输内容。

概念,CA,证书,签名,公钥,私钥,会话秘钥,非对称加密,对称加密,哈希。

    CA是具有公信力的机构,SSL客户端依赖技术手段确认证书为CA签发,一旦信任证书,则信任证书内容,包括所访问的服务是由证书中声明的组织机构提供的。

    证书,表明SSL通讯参与者身份的文件,内容包括,证书持有者的信息,他的公钥,签发CA的信息,证书有效期,证书签名等。

    签名,是CA使用生命的哈希算法对证书摘要进行哈希后得到的数据,CA使用非对称加密算法和自己的私钥进行加密。

    公钥/私钥,非对称加密技术中,加密和解密使用不同的秘钥,其中一个公开的秘钥称为公钥,非公开的秘钥称为私钥。

   对称加密,非对称加密相对运算复杂,所以在SSL上传输的内容实际上是使用相对廉价的对称加密算法进行加密的。对称加密解密使用相同的秘钥。

   会话秘钥,SSL通讯中使用的对称加密秘钥是通讯双发在握手阶段协商出来的,称为会话秘钥。

   哈希,一类算法,不可逆的把一段输入转化为位数固定的输出,用来生成签名。

身份验证过程,https是传输在SSL上的http,下面以https的为例说明SSL的身份验证过程。在浏览器发送请求到web server后,webserver发送自己的证书给浏览器。浏览器获取证书后,根据其中的CA信息,在自己的信任证书库中获取该CA的公钥,并用该公钥解密证书中的签名部分。并用证书的hash值和签名做比对,如果一致,则证明证书的真实性和完整性。如果证书的真实性得到了验证,那么浏览器就认为所访问的网站是真实的。

通讯过程,浏览器和服务器在握手阶段会协商在通讯过程中使用的对称加密密钥也就是会话密钥。服务器端用与证书中公钥对应的密钥加密会话密钥,并发送给客户端。客户端使用证书中的公钥解密获得会话密钥。在之后的通讯过程中,服务器端或者客户端需要发送内容到对端时,会先用会话密钥加密传输内容。对端收到内容后用会话密钥解密得到明文。

参考

http://victor1980.blog.51cto.com/3664622/1659447

http://iluoxuan.iteye.com/blog/1736275

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

猜你喜欢

转载自smartgear.iteye.com/blog/2303346
今日推荐