第六章网络安全协议网络层的安全协议:IPSec,传输层的安全协议:SSL/TLS,应用层的安全协议:SET(信用卡支付安全协议)SHTTP(Web安全协议)PGP(电子邮件安全协议)S/MIME(电子邮件安全协议)PEM(电子邮件安全协议)SSH(远程登录安全协议)Kerberos(网络认证协议)等。6.1概述•网络安全协议就是在协议中采用了若干密码算法协议——加密技术、认证技术、以保证信息安全交换的网络协议。•安全协议具有以下三种特点:1、保密性:即通信的内容不向他人泄漏。为了维护个人权利,必须确保通信内容发给所指定的人,同时还必须防止某些怀有特殊目的的人的“窃听”。2、完整性:把通信的内容按照某种算法加密,生成密码文件即密文进行传输。在接收端对通信内容进行破译,必须保证破译后的内容与发出前的内容完全一致。3、认证性:防止非法的通信者进入。进行通信时,必须先确认通信双方的真实身份。甲乙双方进行通信,必须确认甲乙是真正的通信双方,防止除甲乙以外的人冒充甲或乙的身份进行通信。网络安全协议按照其完成的功能可以分为:(1)密钥建立协议:一般情况下是在参与协议的两个或者多个实体之间建立共享的秘密,通常用于建立在一次通信中所使用的会话密钥。已有密钥建立协议,如Diffie-Hellman协议,Blom协议,MQV协议,端—端协议、MTI协议等。(2)认证协议:认证协议中包括实体认证(身份认证)协议、消息认证协议、数据源认证和数据目的认证协议等,用来防止假冒、篡改、否认等攻击。最具代表性的身份认证协议有两类:一类是1984年Shamir提出的基于身份的身份认证协议;另一类是1986年Fiat等人提出的零知识身份认证协议。随后,人们在这两类协议的基础上又提出了新的使用的身份认证协议:Schnorr协议、Okamoto协议、Guillou-Quisquater协议和Feige-Fiat-Shamir协议等。数字签名协议主要有两类:一类是普通数字签名协议,通常称为数字签名算法,如RSA数字签名算法、DSA等;另一类是特殊数字签名协议,如不可否认的数字签名协议、Fail-Stop数字签名协议、群数字签名协议等。(3)认证和密钥交换协议:将认证和密钥交换协议结合在一起,是网络通信中最普遍应用的安全协议。该类协议首先对通信实体的身份进行认证,如果认证成功,进一步进行密钥交换,以建立通信中的工作密钥,也叫密钥确认协议。常见的认证密钥交换协议有:互联网密钥交换(IKE)协议、分布式认证安全服务(DASS)协议、Kerberos协议、X.509协议。(4)电子商务协议这类协议用于电子商务系统中以确保电子支付和电子交易的安全性、可靠性、公平性。常见的协议有:SET协议、iKP协议和电子现金等。(5)安全通信协议这类协议用于计算机通信网络中保证信息的安全交换。常见的协议有:PPTP/L2PP协议、IPSEC协议、SSL/TLS协议、PGP协议、SIME协议、S-HTTP协议等。6.2网络安全协议的类型-IPSec•IPSec是IPSecurity的缩写。为了加强Internet的安全性,Internet安全协议工程任务组研究制定了IPSec协议用于保护IP层通信的安全协议。•IPsec协议工作在OSI模型的第三层,与传输层或更高层的协议相比,IPsec协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS依靠更高层的TCP(OSI的第四层)来管理可靠性和分片。IPSec基于端对端的安全模式,在源IP和目标IP地址之间建立信任和安全性。只有发送和接收的计算机需要知道通讯是安全的。•IPSec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AuthenticationHeader(AH)、封装安全载荷协议。•EncapsulatingSecurityPayload(ESP)、密钥管理协议InternetKeyExchange(IKE)和用于网络认证及加密的一些算法等。这些协议用于提供数据认证、数据完整性和加密性三种保护形式。AH和ESP都可以提供认证服务,但AH提供的认证服务要强于ESP。而IKE主要是对密钥进行交换管理,对算法、协议和密钥3个方面进行协商。6.2网络安全协议的类型-SSL•SSL协议由两层组成,底层是建立在可靠的传输协议(例如:TCP)上的是SSL的记录层,用来封装高层的协议。SSL握手协议准许服务器端与客户端在开始传输数据前,能够通过特定的加密算法相互鉴别。SSL的先进之处在于它是一个独立的应用协议,其它更高层协议能够建立在SSL协议上。目前大部分的WebServer及Browser大多支持SSL的资料加密传输协定。因此,可以利用这个功能,将部分具有机密性质的网页设定在加密的传输模式,如此即可避免资料在网络上传送时被其他人窃听。它利用公开密钥的加密技术(RSA)来作为用户端与主机端在传送机密资料时的加密通讯协定。•2014年10月15日,Google发布了一份关于SSLv3(SSL3.0)漏洞的简要分析报告。该报告认为SSLv3漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等类似的方式(只要劫持到的数据加密两端均使用SSL3.0),便可以成功获取到传输数据(例如cookies)。•BEAST既是此种攻击,攻击者可获取SSL通信中的部分信息的明文,对明文内容的完全控制。而另一种POODLE攻击是针对SSLv3中CBC模式加密算法,和BEAST不同的是,它不需要对明文内容的完全控制。问题的原因出在SSL设计上::SSL先进行认证之后再加密,SSL的加密和认证过程搞反了。•在SSLv3之后,TLS1.0开始出现,TLS(TransportLayerSecurity)安全传输层协议是SSLv3发展的新阶段,TLS1.0就等于SSLv3.1。6.2网络安全协议的类型-SET•SET是SecureElectronicTransaction的缩写,即安全电子交易,它可以保证消费者信用卡数据不会被泄露或窃取。•SET协议中,支付环境的信息保密性是通过公钥加密法RSA和私钥加密法DES相结合的算法来加密支付信息而获得的。消息首先以56位的DES密钥加密,然后装入使用1024位RSA公钥加密的数字信封在交易双方传输。•SET协议是通过数字签名(双重签名)方案来保证消息的完整性和进行消息源的认证的,数字签名通过RSA加密算法结合生成信息摘要(消息通过HASH函数处理后得到的唯一对应于该消息的数值),信息摘要的特征保证了信息的完整性。•网上银行使用已经存在的程序和设备通过确认信用卡、清算客户银行户头完成交易,SET协议则通过隐藏信用卡号来保证整个支付过程的安全。因此上,SET必须保证信用卡持有者与银行在现存系统和网络上能够保持持续的联系。•SET是由ElectronicWallet(电子钱包)、MerchantServer(商店端服务机)、PaymentGateway(付款转接站)和CertificationAuthority(认证中心)组成的,它们构成了Internet上符合SET标准的信用卡授权交易。6.2网络安全协议的类型-S-HTTP•安全超文本传输协议(SecureHyperTextTransferProtocol,S-HTTP)是EIT公司结合HTTP而设计的一种消息安全通信协议。•S-HTTP协议处于应用层,它是HTTP协议的扩展,它仅适用于HTTP联结上,S-HTTP可提供通信保密、身份识别、可信赖的信息传输服务及数字签名等。S-HTTP提供了完整且灵活的加密算法及相关参数。选项协商用来确定客户机和服务器在安全事务处理模式、加密算法(如用于签名的非对称算法RSA和DSA等、用于对称加解密的DES和RC2等)及证书选择等方面达成一致。S-HTTP支持端对端安全传输,客户机可能“首先”启动安全传输(使用报头的信息),如,它可以用来支持加密技术。S-HTTP是通过在S-HTTP所交换包的特殊头标志来建立安全通讯的。当使用S-HTTP时,敏感的数据信息不会在网络上明文传输。6.2网络安全协议的类型-S-HTTP•PGP是英文PrettyGoodPrivacy(更好地保护隐私)的简称,是一个基于RSA公钥&私钥及AES等加密算法的加密软件系,常用的版本是PGPDesktopProfessional(PGP专业桌面版)。•PGP是用一个128位的二进制数作为“邮件文摘(对一封邮件用某种算法算出一个最能体现这封邮件特征的数来,一旦邮件有任何改变这个数都会变化,那么这个数加上作者的名字(实际上在作者的密匙里)还有日期等等,就可以作为一个签名了。)”的,用来产生它的算法叫MD5(messagedigest5)。MD5是一种单向散列算法,很难找到一份替代的邮件与原件具有同样的MD5特征值。•甲用自己的私匙将上述的128位的特征值加密并附加在邮件后,然后用乙的公匙将整个邮件加密。乙收到密文以后,用自己的私匙将邮件解密,从而得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公匙解密签名所得到的数比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。6.2网络安全协议的类型-PEM•PEM是增强电子邮件隐秘性的标准草案,它在互联网电子邮件的标准格式上增加了加密、鉴别和密钥管理的功能,允许使用公开密钥和专用密钥的加密方式,并能够支持多种加密工具。•PEM提供以下四种安全服务:•数据隐蔽:使数据免遭非授权的泄露,防止有人半路截取和窃听。•数据完整性:提供通信期间数据的完整性可用于侦查和防止数据的伪造和篡改。•对发送方的鉴别:用来证明发送方的身份防止有人冒名顶替。•防发送方否认:结合上述功能,防止发送方事后不承认发送过此文件。•PEM安全功能使用了多种密码工具,包括非对称加密算法RSA,,对称加密算法DES以及报文完整性.对RSA来说,通信双方均需2个密钥,DES要求通信双方共享一个密钥。DES的优点是软件实现比较快(比RSA快100倍),缺点是不能用作鉴别。然而RSA有数字签名,管理相对简单,但缺点是实现需要占用较多的CPU时间。PEM的加密过程通常包括四个步骤:报文生成:一般使用用户所常用的格式。规范化:转换成SMTP的内部表示形式。加密:执行选用的密码算法。编码:对加密后的报文进行编码以便传输。6.2网络安全协议的类型-PEM6.2网络安全协议的类型-PEM•S/MIME,多用途网际邮件扩充协议(SecureMultipurposeInternetMailExtensions.RFC2311)。Internet电子邮件由一个邮件头部和一个可选的邮件主体组成,其中邮件头部含有邮件的发送方和接收方的有关信息。•用户可以使用MIME增加非文本对象,比如把图像、音频、格式化的文本或微软的Word文件加到邮件主体中去。MIME中的数据类型一般是复合型的,也称为复合数据。•S/MIME是多功能电子邮件扩充报文基础上添加数字签名和加密技术的一种协议,是在MIME上定义安全服务措施的实施方式。目前,S/MIME已成为产业界广泛认可的协议。•S/MIME只保护邮件的邮件主体,对头部信息则不进行加密。S/MIME增加了新的MIME数据类型如“应用/pkcs7-MIME”(application/pkcs7-MIME)、“复合/已签名”(multipart/signed)和“应用/pkcs7-签名”(application/pkcs7-signature)等,这些复合数据用于提供数据保密、完整性保护、认证和鉴定服务等功能。邮件如果包含了上述MIME复合数据,则有关的MIME附件也会在邮件中存在。接收者在客户端阅读邮件之前,S/MIME应用处理这些附件。它是MIME的安全版本。6.2网络安全协议的类型-SSH•SSH(SecureShell,安全外壳协议),IETF的网络小组(NetworkWorkingGroup)所制定