第7章 安全套接层协议SSL
本章将讨论应用于会话层的SSL(安全套接层)协议。
SSL概述
SSL握手协议
SSL记录协议
SSL协议采用的加密和认证算法
对协议安全性的分析
SSL与SET协议的比较
SSL概述
Internet上的安全套接层SSL协议其主要目的就是要解决Web上信息传输的安全顾虑。
SSL的工作原理:当一个使用者在Web上用Netscape浏览器漫游时,浏览器利用HTTP协议与Web服务器沟通。
通过SSL,资料在传送出去之前就自动被加密了,它会在接收端被解密。
SSL协议提供的服务可以归纳为如下三个方面:
1.用户和服务器的合法性认证
2.加密数据以隐藏被传送的数据
3.维护数据的完整性
SSL握手协议
SSL协议由SSL握手协议和SSL记录协议构成。本节首先介绍握手协议。
SSL中的握手协议,是在客户机和服务器之间交换消息强化安全性的协议,一般由六个阶段组成:
1.接通阶段
2.密钥交换阶段
3.会话密钥生成阶段
4.服务器证实阶段
5.客户机认证阶段
6.结束阶段
握手层的报文由两部分组成:
(1) 一个字节的报文类型代码。
(2) 数据,根据报文类型不同其结构不同。
所有握手层的报文以及以后的数据报文,都是通过记录层传输的。
表7-1给出了不需要新密钥、需要新密钥和需要客户认证三种典型情况下的握手协议实例。
表7-1 三个典型的协议握手过程实例
表7-1 三个典型的协议握手过程实例
报文类型
方向
传输的内容
不需要新密钥
CLIENT-HELLO
客户机→服务器
challenge, session_id, cipher_specs
SERVER-HELLO
服务器→客户机
connection-id, session_id_hit
CLIENT-FINISH
客户机→服务器
Eclient_write_key[connection-id]
SERVER-VERIFY
服务器→客户机
Eserver_write_key[challenge]
SERVER-FINISH
服务器→客户机
Eserver_write_key[session_id]
需要新密钥
CLIENT-HELLO
客户机→服务器
challenge, cipher_specs
SERVER-HELLO
服务器→客户机
connection-id,server_certificate,cipher_specs
CLIENT-MASTER-KEY
客户机→服务器
Eserver_public_key[master_key]
CLIENT-FINISH
客户机→服务器
Eclient_write_key[connection-id]
SERVER-VERIFY
服务器→客户机
Eserver_write_key[challenge]
SERVER-FINISH
服务器→客户机
Eserver_write_key[new_session_id]
需要客户认证
CLIENT-HELLO
客户机→服务器
challenge, session_id, cipher_specs
SERVER-HELLO
服务器→客户机
connection-id, session_id_hit
CLIENT-FINISH
客户机→服务器
Eclient_write_key[connection-id]
SERVER-VERIFY
服务器→客户机
Eserver_write_key[challenge]
REQUEST-CERTIFICATE
服务器→客户机
Eserver_write_key[auth_type,challenge']
CLIENT-CERTIFICATE
客户机→服务器
Eclient_write_key[cert_type,client_cert,response_data]
SERVER-FINISH
服务器→客户机
Eserver_write_key[session_id]
SSL记录协议
SSL记录层协议提供通信、认证功能,并且在一个面向连接的可靠传输协议(如TCP)之上提供保护。
在SSL中,所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。
1.SSL记录头格式
SSL的记录头可以是两个或三个字节长的编码。
2.SSL记录数据的格式
SSL记录的数据由三部分组成:MAC(Message Authentication Code)数据、实际数据和填充数据。
SSL协议采用的加密和认证算法
1.加密算法和会话密钥
2.认证算法
(1) 服务器的认证
(2) 客户的认证
3.会话层的密钥分配协议
IETF(Internet Engineering Task Force)要求对任何TCP/IP都要支持密钥分配,目前已有三个主要协议:
SKEIP
(2) Photuris
(3) ISAKMP
对协议安全性的分析
1.监听和中间人式攻击
2.流量数据分析式攻击
3.截取再拼接式攻击
4.报文重发式攻击
5.密钥管理问题
SSL的握手协议也存在一些密钥管理问题。 (1) 客户机和服务器在互相发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能。
(2) SSL 为了兼容以前的版本,可能降低安全性。
(3) 所有的会话密钥中都将生成master-key,握手协议的安全完全依赖于对master-key的保护,因此在通信中要尽可能少地使用master-key。
SSL与SET协议的比较
SSL与 SET的特点
1.认证机制方面
2.对消费者而言,SET保证了商家的合法性
在SSL协议中则缺少对商家的认证。
3.安全性
4.SET对于参与交易的各方定义了互操作接口,一个系统可以由不同厂商的产品构筑。
5.采用比率
SSL和SET性能及费用的比较
1.费用对比
2.性能对比
(1) 客户计算机
(2) 电子商务服务器性能
3.对比结论
总之,两者相比SSL的安全性较差,如果不改进客户方软件的话,基于SSL的系统达不到像SET这种专用银行卡支付协议所能达到的安全性。