SSL原理详解
其实SSL从网上看到的资料很多了,但是发现还是没有将原理讲得特别清楚,尤其是对CA,433端口与80端口的数据传输原理,都没有说得很清楚。通过在网上找相关资料,写此博客也便以后自己回顾。 SSL主要解决的问题是什么?是解决防钓鱼网站,防中间人攻击。利用非对称加密,让客户端和服务端进行密码协商,然后用对称加密进行数据传输,以确保数据传输的安全性。那么怎么解决传输的中间人截取信息后伪造数据的问题就是SSL的原理。
一、SSL是什么?
SSL(Secure Sockets Layer 安全套接字协议)。传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。可分为两层:
应用层
SSL Handshake Protocol
SSL Record Protocol
TCP
1、SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密支持。 确保机密性、完整性 2、SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,该协议允许服务器和客户机相互验证,协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。握手协议是在应用程序的数据传输之前使用的。 3、警报协议(SSL Alert protocol)客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,密钥。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。
二、建立SSL通道过程
1.简化篇
客户端向跟服务端443端口说:哥们,建立一个安全连接吧,你在不在? 服务端回应说:在的,我有DES、AES、IDEA加密算法,你看用哪个? 客户端说:我们用DES吧,私钥是abc123; 服务器端说:收到,我们建立连接吧。 于是客户端利用DES算法将请求信息利用密钥abc123加密,向服务器端80端口发送请求;服务器端获取数据后,利用DES算法和密钥abc123解密,并将结果发回给客户端。由于私钥只有客户端和服务端知道,这样保证数据通信的安全性。
那么问题来了,怎么保证客户端和服务端商量算法和密钥的时候是安全的,不会被中间人获取后,伪造信息呢?
2.具体建立过程
Client
GoodRouter
BadRouter
Server
CA
申请证书,注册域名和公钥
CA利用CA的私钥加密Server(域名和公钥),由于GoodRouter和BadRouter只有CA的公钥,
没有私钥信息,所以无法篡改,只能老老实实转发
利用CA公钥解密,获得Server公钥
利用Server的公钥加密“Server,
Client想和你建立个连接”
“Server,
Client想和你建立个连接”
我想篡改,但是我只有Server的公钥,
“Server,Client想和你建立个连接”也是用公钥加密过的,只能转给Server
利用私钥解密,得到
Client想跟我建立连接的请求
利用私钥加密,“在的,我有DES、AES、IDEA加密算法,你看用哪个”
中间传输过程因为都是加密的,所以中间人无法篡改,我就忽略了
用Server的公钥加密“我们用DES吧,私钥是abc123”
用Server的私钥加密“收到,我们建立连接吧”
DES算法和私钥abc123加密请求,将数据发送给服务端,获取数据
Client
GoodRouter
BadRouter
Server
CA
那么还有一个问题,CA的公钥是怎么下发给Client的呢,因为CA如果是通过网络下发的,都有可能有中间人(BadRouter)伪装自己是CA公司,将假证书下发给Client,这样Client的任何请求都可能以假证书的公钥加密,发给BadRouter,BadRouter将解密的信息再包装后发给Server,Server回的信息就都给了BadRouter,BadRouter把造假信息以Server的名义回给Client。这样信息就被劫持了,你的银行卡就被盗了。 那怎么解决,其实是通过操作系统来保证的。操作系统安装时就已经安装了公认安全的CA公司的数字证书,怎么找呢?看下面的截图 所以如果安装的盗版操作系统,可能会被植入伪造的CA证书。具体操作可以看看我的另外一篇博客内网数字证书的生成与使用
总结
以上就是我总结的网上资料关于SSL的安全加密的过程,当然TCP协议握手属于比较基础的知识,就不在这里赘述了。简单的说整个过程就是建立在CA证书的签发机构的公信力之上,如果CA本身安全性无法保证,那整个安全通信的机制就瓦解了。
|