第7章安全套接层协议(SSL)第7章安全套接层协议(SSL)【本章提要】SSL协议概述SSL握手协议、记录协议SSL协议的加密和认证算法SSL协议分析及应用第7章安全套接层协议(SSL)7.1SSL协议概述7.2SSL原理7.3SSL协议的加密和认证算法7.4SSL协议分析7.5SSL协议的应用7.1SSL协议概述Internet上对应的七层网络模型的每一层都已经提出了相应的加密协议。SSL是工作于网络会话层(SocketLayer)的网络安全协议7.1.1SSL协议SSL协议在整个网络协议中的位置7.1.2SSL协议的安全交易过程7.1.3SSL协议的安全通道SSL提供的安全通道具有3个特征:(1)具有私密性(2)具有确认性(3)具有可靠性7.1.4SSL协议的基本安全服务(1)提供认证服务(2)提供加密服务(3)保证数据的完整性7.2SSL原理SSL提供的安全通道会将双方传输的数据全部加密,这样就保证了数据在传输的过程中不能被恶意的窃取和更改。SSL协议是由SSL握手协议(SSLHANDSHAKEPROTOCOL)和SSL记录协议(SSLRECORDPROTOCOL)两个子协议构成的7.2.1SSL握手协议握手过程一般是由五个阶段构成的:1.接通阶段(Hello阶段)2.密钥交换阶段3.会话密钥(会话-钥匙)生成阶段4.认证阶段5.结束阶段7.2.2SSL记录协议SSL的记录层协议是为信息的交流提供通信和认证功能的,并且它的保护是建立在一个面向连接的可靠传输协议(例如TCP/IP)之上的。在SSL中,所有传输的数据都是存放在记录当中被传送的,SSL握手层协议的报文也要求必须是放在一个SSL记录层的记录里来传送的。只有应用层协议的报文允许放在多个SSL记录层的记录来传送7.3SSL协议的加密和认证算法SSL协议在工作的过程中,涉及到安全的技术基本上可以分为两类,即用来保护数据安全的加密算法和用来鉴定用户身份的认证技术。这些算法和技术在整个交易过程中起着至关重要的作用7.3.1加密算法SSL协议支持很多的加密算法,比如说对称加密体制(DES加密算法)、RC2、RC4和IDEA7.3.2身份认证SSL协议采用的是X.509电子证书标准,通过RSA算法来实现数字签名1.服务器认证2.客户端认证阶段如果在连接中服务器端也要求客户端的认证的话,则服务器端就会要求客户端出示自己的证书。7.3.3会话层的密钥分配协议现在主要使用的是三个协议:(1)SKEIP(SimpleKeyExchangeforInternetProtocol)(2)Photuris(3)ISAKMP(Internet安全协会的密钥管理协议)7.4SSL协议分析SSL运行在一种可靠的通信协议之上,比如说TCP。SSL的上层是HTTP等应用层,SSL为其提供安全通信。SSL协议使用X.509来认证,RSA作为公钥算法,可选用RC4-128、RC-128、DES或IDES作为数据加密算法。SSL分为两层:记录层和握手层,每层使用下层服务,并为上层服务,介于ISO模型的应用层和传输层之间。7.4.1对协议安全性的分析1.“监听”和“中间人”式攻击2.“流量数据分析”式攻击3.截取再拼接式攻击4.报文重发式攻击7.4.2SSL与SET协议的比较1.功能比较1)SET是一个提供多方通讯的报文协议,而SSL则只能在客户端和服务器端两者之间建立一条安全的连接。2)SSL协议在进行报文交换的时候需要实时通信,也就是需要双方都要在线。而SET协议允许交易各方在交换报文的时候不是实时的。3)SET协议不仅可以在Internet上使用,而且也可以在公共网络和银行内部网络等其他网络使用。而建立在SSL协议上的支付系统只能和Web浏览器捆绑使用。7.4.2SSL与SET协议的比较4)SSL和SET都为客户提供了商家的认证,保证商家的合法性,但是SET协议更能保证用户的信用卡号不会在通信的时候被窃取,它替客户保守了更多的机密信息,使用户可以放心地在网络上进行有关银行卡的交易。5)SET协议是由VISA、MasterCard推出的安全协议,而这两个公司是信用卡方面的权威机构,这样就使得SET协议能够比较容易地被广泛应用。6)SET协议对于参与信用卡交易的各方定义了互操作接口,每个交易系统可以使用不同厂商的产品来构造自己的服务器。7)SET协议的安全性需求比较高7.4.2SSL与SET协议的比较2.性能比较使用SSL协议的缺点是:1)客户不得不信任服务器端能够安全地保护它的信用卡2)客户不能保证商家是自己支付卡的特约商家3)商家在交易当中要承担一定的风险4)由于SSL在传输信息的时候,需要对信息加密,所以如果被传输的页面很复杂得话,显示起来就会很慢7.4.2SSL与SET协议的比较3.费用比较(1)小型和中型电子商务应用,差别不大(2)大型服务器电子商务应用需要进行大量的数据处理和密钥计算,所以要使用SET协议,那么就需要购买额外的设备来进行硬件加速,而SSL协议就没有这个需要(3)小型网关的应用小型网关的运算要求要比服务器更加严格,都需要设备对其进行硬件加速。对一样的处理速度,SET协议要比SSL协议使用更加昂贵的硬件加速设备(4)大型支付网关的应用使用的都是双机群系统,所以对于SET协议和SSL协议的费用主要是在双机群上的投资7.5SSL协议的应用利用IIS申请服务器证书的时候,IIS本身先产生公私密钥对,并产生相应的证书申请信息,最后把这个信息交给CA(该CA只能为Windows2000企业CA或其他商业CA,Windows2000独立CA不能签发服务器证书),由CA签发以后形成证书。其具体步骤如下:1)首先在操作系统2000中找到有关设置,方法有两种。第一种,从控制面板中找到“管理工具”,从这个文件夹中找到“Internet服务管理”并执行。第二种,从“开始”菜单的“程序”菜单中执行“管理工具”/“Internet管理工具”。这样就可以将IIS的管理界面打开7.5SSL协议的应用2)选取本机下的“默认Web站点”,并用鼠标右击。在弹出的菜单中选择“属性”命令。选择“目录安全性”标签7.5SSL协议的应用3)单击该标签上“安全通信”栏目中的“服务器证书”按钮。这时会弹出“Web服务器证书向导对话框”4)单击“下一步”按钮,会进入到IIS证书安装向导界面,并且要求你选择对证书动作的方式5)选择“创建一个新证书”,并单击“下一步”按钮7.5SSL协议的应用7.5SSL协议的应用6)选择好发送方式后单击“下一步”按钮,会进入到“密钥”对话框。这里要求用户输入申请证书的名称和密钥的长度7.5SSL协议的应用7)弹出的界面要求输入申请该证书的机构或组织的有关信息,包括组织的名称和组织部门等8)单击“下一步”按钮,在弹出的对话框中输入拥有这个证书的Web站点的公用名称9)输入相应的信息后单击“下一步”按钮。进入的下一个界面需要输入的是有关服务器的地理信息,包括国家、省份和城市名称10)单击“下一步”按钮,这里要求输入的是处理证书申请的证书颁发机构11)填好机构以后单击“下一步”按钮。最后对整个设置做一个检查