安全套接字层协议SSL
一、安全套接字层协议SSL简介
安全套接字层协议是用于服务器之上的一个加密系统,它可以确保在客户端和服务端之间传输的数据是安全和加密的。要是服务器和客户端使用SSL进行安全通信,服务器必须有:
1、密钥对(Key pair),包含一个公钥和一个私钥,密钥对用来对信息进行加密和解密,以确保数据传输的安全。
2、证书(Certificate),用来进行身份验证或者确认。证书可以是自签证书(为自己私有的Web网络创建的证书),也可以是颁发证书(认证中心或者证书签署者提供的证书)。
二、安全套接子层协议SSL原理
在客户端和服务器之间传输数据通过使用对称算法(如DES或RC4)进行加密的。公钥加密是一种使用一对不对称密钥进行加密和解密的技术。每对密钥由一个公钥和一个私钥组成。当公钥被广泛分发时,它就变得公开了。私钥从不分发;它始终是保密的。公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。
SSL的工作原理其实就是服务器端和客户端的握手协商,在协商之后就可以使用SSL进行数据的交换:
1、客户端发送客户端的信息,包括客户端支持的SSL 的版本、客户端支持的密码对和客户端支持的数据压缩方法,消息中还有一个28位的随机数。
2、服务器回复一个Hello消息,该消息包括使用的密码方法(密码对)和由服务器选择的数据压缩方法,以及会话标识和另一个随机数。
3、服务器发送它的SSL证书,如果需要对客户端进行验证(SSL 3.0版本开始支持客户端验证),客户端也需要发送数字证书请求消息。
4、服务器发送完成消息,等等客户端响应。
5、当客户端接收到服务器端的完成消息之后,客户端会检查服务器端SSL数字证书的有效性。如果服务器端需要验证客户端的身份,客户端就会发送其数字证书 给服务器端,如果客户端没有对应的数字证书,就会弹出一个警告的窗口,如果服务器端强制客户端的身份认证的话,客户端没有相应的证书的时候,服务器就会结 束该会话。
6、客户端发送"客户端密钥交换"消息,此消息包含 pre-master secret (一个用在对称加密密钥生成中的 46 字节的随机数字),和 消息认证代码 ( MAC )密钥(用服务器的公用密钥加密的)。服务器端对客户端发送的消息进行验证,没有通过的话,那么服务器将结束此次会话。
7、客户端发出"更改密码规范" 消息。
8、服务器以自己的"更改密码规范"和"已完成"消息响应。
9、握手结束,服务器端和客户端可以进行加密通信。
三、安全套接字层协议SSL的优缺点
- 优点
1、已认证,所有消息来源得到保证。
2、可靠,消息传送使用消息完整性检查,确保传送的数据的质量。
3、机密,消息经过加密,在握手后定义密钥,确保了第三方无法读取消息的内容。
- 缺点
使用SSL需要通信双方进行额外的工作,需要对信息进行加密和解密,需要增加系统的开销,从而使得使用SSL比不使用SSL的通信慢。
参考资料:
http://www.wosign.com/Basic/howsslwork.htm
http://support.microsoft.com/kb/245152/zh-cn
http://www.hudong.com/wiki/%E5%AE%89%E5%85%A8%E5%A5%97%E6%8E%A5%E5%AD%97%E5%B1%82(SSL)#1
http://publib.boulder.ibm.com/tividd/td/ITLM/SC32-1431-01/zh_CN/HTML/tlminmst43.htm