版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PKI理论与技术
(第7章安全协议与安全接口)Instructor:HouMengbo侯孟波Email:houmb@Office:InformationSecurityResearchOffice.MainBuildingRoom535ofSDU(SouthSection)ComputerScience&TechnologySchoolofShandongUniversity1ShanDongUniversityComputerSchoolCopyrightDannyHou第7章安全协议与安全接口
Protocols:SSL/TLS、WTLS、SET
IPSEC、S/MIME、PGP
SSH、SPKI、SSO
APIs:MS-CryptoAPI、CDSA
GSS-API、OpenSSL……2ShanDongUniversityComputerSchoolCopyrightDannyHou内容目录(1)SSL/TLS SecureSocketLayer/TransportLayerSecurity(2)IPSEC IPSecurity(3)SET SecureElectronicTransaction(4)S/MIME Secure/MultipurposeInternetMailExtensions(5)PGP PrettyGoodPrivacy(6)WTLS* WirelessTransportLayerSecurity
(7)SSH SecureSHell(8)SPKI* SimplePublicKeyInfrastructure(9)SSO SingleSignOn(10)MS-CryptoAPI
(11)CDSA* CommonDataSecurityArchitecture(12)GSS-API* GenericSecurityServicesAPI(13)OpenSSL3ShanDongUniversityComputerSchoolCopyrightDannyHou第一部分SSL/TLS协议
(RFC2246、3546)
4ShanDongUniversityComputerSchoolCopyrightDannyHou第一部分SSL/TLS协议SSL(SecureSocketLayer)是一种在两个端实体(EndEntity)之间提供安全通道的协议。它具有保护传输数据以及识别通信实体的功能。安全通道是透明的IETF制定的TLS(TransportLayerSecurity)版本是对Nescape公司的SSL和Microsoft公司的PCT(PrivateCommunicationTechnology)两个协议的综合和兼容。本文重点讨论SSL协议5ShanDongUniversityComputerSchoolCopyrightDannyHouSSL/TLS协议设计目标SSLV2设计目标为满足WEB安全通信而设计提供客户和服务器之间传输数据的保密性服务器认证(客户端认证可选)SSLV3设计目标修正SSLV2中存在的多处安全问题设计一种安全磋商多种加密算法的机制6ShanDongUniversityComputerSchoolCopyrightDannyHouSSL提供了什么SSL提供了通道级别的安全:连接的两端知道所传输的数据是保密的,而且没有被篡改几乎总是要对服务器进行认证可选的客户端认证针对异常情况的安全通知错误警示关闭连接所有这些依赖于某些对系统的假定假定已经正确产生了密钥数据并且该密钥已被安全地保管7ShanDongUniversityComputerSchoolCopyrightDannyHouSSL与TCP/IPSSL连接非常类似于“保密的”的TCP连接位于TCP之上,应用层之下几乎只能在TCP上运行,而不能在UDP或IP上运行,因而它依赖于可靠的传输协议微软的STLP和无线应用论坛的WTLS均为意图在数据报传输层(如UDP)上正确工作的变种。8ShanDongUniversityComputerSchoolCopyrightDannyHouSSL变种谱系树SSLV1(1994)未发布SSLV2(1994)第一版SSLV3(1995)TLS(1997-1999)PCT(1995)STLP(1996)WTLS(1998)9ShanDongUniversityComputerSchoolCopyrightDannyHou用于WEB的SSL保护使用HTTP的WEB通信新的URLhttps://在浏览器中的表现NETSCAPE:工具条上会显示一把钥匙IE:右下角显示一把锁几乎所有的商业WEB服务器和浏览器都实现了内置的SSL协议,通过配置即可使用10ShanDongUniversityComputerSchoolCopyrightDannyHou在SSL上构建一切除了HTTP和NNTP(SNEWS)外,还可以用于SMTP、Telnet、FTP等,也可用于保护专有协议。协议端口标准化协议实现OPENSSL(C语言实现)pureTLS(java实现)ApacheSSL(针对Apache服务器的实现)Mod_ssl11ShanDongUniversityComputerSchoolCopyrightDannyHou两个主要的协议SSL记录协议建立在可靠的传输协议(如TCP)之上它提供连接安全性,有两个特点保密性,使用了对称加密算法完整性,使用HMAC算法用来封装高层的协议SSL握手协议客户和服务器之间相互鉴别协商加密算法和密钥它提供连接安全性,有三个特点身份鉴别,至少对一方实现鉴别,也可以是双向鉴别协商得到的共享密钥是安全的,中间人不能够知道协商过程是可靠的12ShanDongUniversityComputerSchoolCopyrightDannyHouSSL的两个重要概念SSL连接(connection)一个连接是一个提供一种合适类型服务的传输(OSI分层的定义)。SSL的连接是点对点的关系。连接是暂时的,每一个连接和一个会话关联。SSL会话(session)一个SSL会话是在客户与服务器之间的一个关联。会话由HandshakeProtocol创建。会话定义了一组可供多个连接共享的密码安全参数。会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价。13ShanDongUniversityComputerSchoolCopyrightDannyHouSSL基础-针对RSA服务器认证的SSLSSL灵活性:单向认证和双向认证认证+加密和认证加密算法:RSADSSDHFORTEZZA……连接分为两个节段:握手阶段完成对服务器认证并建立加密密钥数据传输阶段加密数据传输14ShanDongUniversityComputerSchoolCopyrightDannyHou握手协议握手阶段的目的客户和服务器协商保护数据的算法(及其具体参数)确立在协商好的算法上使用的加密密钥可选择对客户端进行认证clientserver----------------------------------------------------------------------------所支持的加密算法,随机数选中的加密算法,随机数,服务器证书加密后的pre_master_secret计算相关演化密钥计算相关演化密钥握手消息的MAC值握手消息的MAC值注:1.pre_master_secret可以由KDF(keyderivationfunction)演化出master_secret,最后再通过master_secret演化出系列加密密钥。2.最后两步防止握手本身遭受篡改(如低强度密码算法替换等).3.客户端和服务器端随机数的传输,防止重放攻击。15ShanDongUniversityComputerSchoolCopyrightDannyHou握手消息clientserver----------------------------------------------------------------------------握手:ClientHello
握手:ServerHelloCertificate……ServerHelloDoneClientKeyExchange……(ChangeCipherSpec)Finished
……(ChangeCipherSpec)Finished16ShanDongUniversityComputerSchoolCopyrightDannyHouSSL记录协议实际的数据传输是使用SSL记录协议实现的数据流分割成一系列片段并加以传输,每个片断单独保护和传输为实现完整性保护,对片段进行MAC保护为实现机密性保护,对片段进行加密保护传输的是安全记录17ShanDongUniversityComputerSchoolCopyrightDannyHou记录头(Head)ContentType;——8位,上层协议类型Majorversion;Minnorversion——16位,主次版本CompressedLength:16位—加密后数据的长度,不超过214+2048字节(SSL几乎不用压缩,虽然支持)EncryptedDatafragment;——密文数据18ShanDongUniversityComputerSchoolCopyrightDannyHou记录负荷(Payload)支持4种协议消息:application_data、alert、handshake、change_cipher_spec.Alert协议消息:报警等级(warning/fatal)+具体报警编码2字节change_cipher_spec协议消息:1字节,将挂起状态变成当前状态,指示在此之后的所有消息都将使用刚刚商定的密码进行加密。handshake协议消息:类型(1字节)+长度(3字节)+消息,类型共10种19ShanDongUniversityComputerSchoolCopyrightDannyHou完整SSL会话握手协议交换Hello消息,对于算法、交换随机值等协商一致交换必要的密码参数,以便双方得到统一的premastersecret交换证书和相应的密码信息,以便进行身份认证产生mastersecret把安全参数提供给SSL记录层检验双方是否已经获得同样的安全参数20ShanDongUniversityComputerSchoolCopyrightDannyHou21ShanDongUniversityComputerSchoolCopyrightDannyHou第一阶段:建立起安全协商客户发送一个client_hello消息,包括以下参数:版本、随机数(32位时间戳+28字节随机序列)、会话ID、客户支持的密码算法列表(CipherSuite)、客户支持的压缩方法列表.然后,客户等待服务器的server_hello消息服务器发送server_hello消息,参数:客户建议的低版本以及服务器支持的最高版本、服务器产生的随机数、会话ID、服务器从客户建议的密码算法和压缩方法中确定一套本次连接使用的确定方法.22ShanDongUniversityComputerSchoolCopyrightDannyHouCipherSuite指定了密钥交换的方法,SSL支持以下一些方法:RSA,要求服务器提供一个RSA证书DH(Diffie-Hellman),要求服务器的证书中包含了由CA签名的DH公开参数。客户或者在证书中提供DH公开参数,或者在密钥交换消息中提供此参数EDH(EphemeralDiffie-Hellman),产生临时的密钥,DH公开参数由发送者的私钥进行签名,接收者用对应的公钥进行验证
匿名的DH,不加鉴别。会受到中间人攻击然后,指定以下信息加密算法和类型(流还是分组密码算法)HMAC、MD5还是SHA-1是否可出口HashSize
KeyMaterial
IVSize23ShanDongUniversityComputerSchoolCopyrightDannyHou第二阶段:服务器鉴别和密钥交换服务器发送certificate消息,消息包含一个X.509证书,或者一条证书链除了匿名DH之外的密钥交换方法都需要服务器发送server_key_exchange消息可选的,有些情况下可以不需要。只有当certificate消息没有包含必需的数据的时候才发送此消息消息包含签名,被签名的内容包括两个随机数以及服务器参数服务器发送certificate_request消息(可选)非匿名server可以向客户请求一个证书包含证书类型和CAs服务器发送server_hello_done,然后等待应答24ShanDongUniversityComputerSchoolCopyrightDannyHou第三阶段:客户鉴别和密钥交换客户收到server_done消息后,它根据需要检查服务器提供的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器。如果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告。然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型(如果是RSA,则含加密的PreMasterSecret)。最后,客户发送一个certificate_verify消息(可选),其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名25ShanDongUniversityComputerSchoolCopyrightDannyHou第四阶段:结束第四阶段建立起一个安全的连接客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中然后,客户用本次连接协商的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。服务器同样发送change_cipher_spec消息和finished消息。握手过程完成,客户和服务器可以交换应用层数据。26ShanDongUniversityComputerSchoolCopyrightDannyHou密钥交换算法SSL记录协议需要:CipherSuite,mastersecret,theclient&serverrandomvalues在hello消息中,交换随机数以及各种算法两类密钥交换算法:RSA,客户产生一个48字节的pre_master_secret,然后通过服务器的公钥传递给服务器Diffie-Hellman,双方协商得到的密钥被用作pre_master_secret对于各种密钥交换算法,从pre_master_secret计算得到Master_secret,然后从内存中删除Master_secret总是48字节长,而pre_master_secret长度不定,取决于密钥交换算法27ShanDongUniversityComputerSchoolCopyrightDannyHou密钥导出28ShanDongUniversityComputerSchoolCopyrightDannyHouMaster_secret的产生SSL3.0Master_secret=MD5(pre_master_secret‖SHA-1(‘A’‖pre_master_secret||ClientHello.random‖ServerHello.random))‖MD5(pre_master_secret‖SHA-1(‘BB’‖pre_master_secret||ClientHello.random‖ServerHello.random))‖MD5(pre_master_secret‖SHA-1(‘CCC’‖pre_master_secret||ClientHello.random‖ServerHello.random))
TLS1.0master_secret=PRF(pre_master_secret,“mastersecret”, ClientHello.random,+ServerHello.random)[0..47]*PRF(secret,label,seed)为伪随机函数29ShanDongUniversityComputerSchoolCopyrightDannyHou伪随机函数PRF(secret,label,seed)P_hash(secret,seed)=+HMAC_hash(secret,A(1)+seed)+HMAC_hash(secret,A(2)+seed)+HMAC_hash(secret,A(3)+seed)+...这里A()定义如下:
A(0)=seedA(i)=HMAC_hash(secret,A(i-1))伪随机函数PRF(secret,label,seed)=P_MD5(S1,label+seed)XORP_SHA-1(S2,label+seed);
这里,S1和S2为secret的各一半,如果secret为奇数个字节,则S1和S2共享一个字节30ShanDongUniversityComputerSchoolCopyrightDannyHou最终需要的密钥导出31ShanDongUniversityComputerSchoolCopyrightDannyHou密钥导出公式Key_block=MD5(master_secret||SHA-1(‘A’+master_secret+server_random+client_random))||MD5(master_secret||SHA-1(‘BB’+master_secret+server_random+client_random))||MD5(master_secret||SHA-1(‘CCC’+master_secret+server_random+client_random))||MD5(master_secret||SHA-1(‘DDDD’+master_secret+server_random+client_random))||……32ShanDongUniversityComputerSchoolCopyrightDannyHouMAC计算使用共享的密钥MAC_write_secrethash(MAC_write_seret||pad_2||hash(MAC_write_secret||pad_1||seq_num||SSLCompressed.type||SSLCompressed.length||SSLCompressed.fragment)其中:MAC_write_secret:共享的保密密钥hash:密码散列函数(MD5或SHA-1)pad_1:0x36重复48次(MD5);或40次(SHA-1)pad_2:0x5C重复48次(MD5);或40次(SHA-1)seq_num:该消息的序列号SSLCompressed.type:更高层协议用于处理本分段SSLCompressed.length:压缩分段的长度SSLCompressed.fragment:压缩的分段(无压缩时为明文段)注:非常类似HMAC33ShanDongUniversityComputerSchoolCopyrightDannyHou报警(Alert)协议用来一方向另一方报告例外情况,两个级别:warning/fatal如果是Fatal级别的报警,则应终止连接.报警种类:
unexpected_messagebad_record_macdecryption_failedrecord_overflowdecompression_failurehandshake_failureno_certificatebad_certificateunsupported_certificatecertificate_revokedcertificate_expiredcertificate_unknownillegal_parameterunknown_caaccess_denieddecode_errordecrypt_errorexport_restrictionprotocol_versioninsufficient_securityinternal_erroruser_cancelledno_renegotiation34ShanDongUniversityComputerSchoolCopyrightDannyHou会话恢复整个握手协议开销巨大,如果集成会话恢复机制,则可以在客户和服务器通信过一次的情况下,可以跳过握手阶段而直接进行数据传输.通过使用上一次握手中确立的pre_master_secret,则可以避免许多计算开销。恢复允许根据共同的master_secret,来产生新的密钥。通过客户使用ClientHello中的Session_id,申请会话恢复,服务器通过使用ServerHello中相同的Session_id,来同意会话恢复,接下来就会跳过其余步骤而使用保存的master_secret来产生新的所有的加密密钥(由于新的随机数不同,而使得新产生的加密密钥与以前不同)。
35ShanDongUniversityComputerSchoolCopyrightDannyHou客户端认证实现服务器对客户端的认证服务器通过向客户端发送CertificateRequest消息,客户端通过Certificate和CertificateVerify消息予以应答CertificateVerify消息是一个使用与其传输的证书关联的私钥签名的消息。36ShanDongUniversityComputerSchoolCopyrightDannyHou临时RSA因受出口限制,为配合客户端,服务器会产生一个临时的低强度密钥,并用高强度密钥签名,客户端将验证临时密钥上的服务器签名,并使用它来打包pre_master_Secret.服务器向客户端发送消息ServerKeyExchange37ShanDongUniversityComputerSchoolCopyrightDannyHou再握手是在当前受保护的连接上进行的一次新的SSL握手,因而传输过程中的握手消息是经过加密的一旦新的握手完成,将使用新的会话状态来保护数据客户端可以简单的通过发送一条ClientHello消息来初始化一次新的握手服务器端可以通过HelloRequest消息来初始化一次新的握手38ShanDongUniversityComputerSchoolCopyrightDannyHouSSL的安全性保护master_secret保护服务器的私钥使用良好的随机数证书链检查算法选择(强度)39ShanDongUniversityComputerSchoolCopyrightDannyHouSSL实现40ShanDongUniversityComputerSchoolCopyrightDannyHou第二部分IPSEC协议IPSecurity41ShanDongUniversityComputerSchoolCopyrightDannyHou网络体系架构ISO/OSI参考模型TCP/IP参考模型42ShanDongUniversityComputerSchoolCopyrightDannyHou安全服务与层的关系
物理数据链路网络传输会话表示应用43ShanDongUniversityComputerSchoolCopyrightDannyHouOSI到TCP/IP的映射44ShanDongUniversityComputerSchoolCopyrightDannyHouTCP/IP协议栈45ShanDongUniversityComputerSchoolCopyrightDannyHouInternet安全性途径网络接口层(链路层)——链路加密网络层——IPSec传输层——SSL/TLSWTLS应用层——S/MIME,PGP,PEM,SET,Kerberos,SHTTP, SSH……46ShanDongUniversityComputerSchoolCopyrightDannyHou网络层安全47ShanDongUniversityComputerSchoolCopyrightDannyHou传输层安全48ShanDongUniversityComputerSchoolCopyrightDannyHou应用层安全49ShanDongUniversityComputerSchoolCopyrightDannyHouIP协议IP是TCP/IP协议族中至关重要的组成部分,但它提供的是一种不可靠、无连接的的数据报传输服务。不可靠(unreliable):不能保证一个IP数据报成功地到达其目的地。错误处理办法:扔掉该数据报,向其发送着传送一个ICMP消息。无连接(connectionless):IP并不维护关于连续发送的数据报的任何状态信息。每个数据报单独处理,在传送过程中可能出现错序。50ShanDongUniversityComputerSchoolCopyrightDannyHou用户数据经过协议栈的封装过程51ShanDongUniversityComputerSchoolCopyrightDannyHouIPv4头52ShanDongUniversityComputerSchoolCopyrightDannyHouIP首部说明(1)版本号目前取值4(IPV4)首部长度4个字节(字)为单位,取值范围5~15服务类型指定传输的优先级、传输速度、可靠性和吞吐量等报文总长度最大长度为65535字节报文标识唯一标识一个数据报,如果数据报分段,则每个分段的 标识都一样标志最高位未使用,定义为0,其余两位为DF(不分段)和 MF(更多分段)段偏移量以8个字节为单位,指出该分段的第一个数据字在原始 数据报中的偏移位置53ShanDongUniversityComputerSchoolCopyrightDannyHouIP首部说明(2)生存时间取值0~255秒,每经过一个路由节点减1,为0时被丢弃协议数据报的协议类型,1:ICMP,4:IP,6:TCP,17:UDP…首部校验和每通过一次网关都要重新计算该值,用于保证IP首部的完整性源/目的IP地址标明该数据报的源地址和目标地址选项长度可变,提供某些控制功能,IP首部的长度必须是4个字节的 整数倍,否则必须填充54ShanDongUniversityComputerSchoolCopyrightDannyHouIPv6分组55ShanDongUniversityComputerSchoolCopyrightDannyHouIPv6基本头56ShanDongUniversityComputerSchoolCopyrightDannyHouIPv4的缺陷缺乏对通信双方身份真实性的鉴别能力缺乏对传输数据的完整性和机密性保护的机制由于IP地址可软件配置以及基于源IP地址的鉴别机制,IP层存在:业务流被监听和捕获、IP地址欺骗、信息泄露和数据项篡改等攻击57ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec网络层安全性需求:身份鉴别、数据完整性和保密性好处:对于应用层透明弥补IPv4在协议设计时缺乏安全性考虑的不足58ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec的历史1994年IETF专门成立IP安全协议工作组,来制定和推动一套称为IPsec的IP安全协议标准。1995年8月公布了一系列关于IPSec的建议标准1996年,IETF公布下一代IP的标准IPv6,把鉴别和加密作为必要的特征,IPSec成为其必要的组成部分1999年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上ISAKMP(InternetSecurityAssociationandKeyManagementProtocol)协议,密钥分配协议IKE、Oakley。ISAKMP/IKE/Oakley支持自动建立加密、鉴别信道,以及密钥的自动安全分发和更新。幸运的是,IPv4也可以实现这些安全特性。59ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec的应用IPSec为在LAN、WAN和Internet上的通讯提供安全性分支办公机构通过Internet互连。(SecureVPN)通过Internet的远程访问。与合作伙伴建立extranet与intranet的互连。增强电子商务安全性IPSec的主要特征是可以支持IP层所有流量的加密和/或鉴别。因此可以增强所有分布式应用的安全性。60ShanDongUniversityComputerSchoolCopyrightDannyHou一个IP安全方案61ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec的应用方式端到端(end-end):主机到主机的安全通信端到路由(end-router):主机到路由设备之间的安全通信路由到路由(router-router):路由设备之间的安全通信,常用于在两个网络之间建立虚拟私有网(VPN)。62ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec的好处对应用和最终用户透明在防火墙或路由器中实现时:可以防止IP旁路。可以对所有跨越周界的流量实施强安全性。而公司内部或工作组不必招致与安全相关处理的负担。需要时IPSec可以提供个人安全性。弥补IPv4在协议设计时缺乏安全性考虑的不足63ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec提议标准(1998.11)RFC2401(1825):SecurityArchitecturefortheInternetProtocolRFC2402(1826):IPAuthenticationHeaderRFC2406(1827):IPEncapsulatingSecurityPayload(ESP)RFC2407:TheInternetIPSecurityDomainofInterpretationforISAKMPRFC2408:InternetSecurityAssociationandKeyManagementProtocol (ISAKMP)RFC2409:TheInternetKeyExchange(IKE)RFC2411:IPSecurityDocumentRoadmap64ShanDongUniversityComputerSchoolCopyrightDannyHou与IPSec相关的标准65ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec的内容协议部分分为:AH:AuthenticationHeaderESP:EncapsulatingSecurityPayload密钥管理(KeyManagement)SA(SecurityAssociation)ISAKMP定义了密钥管理框架IKE是目前正式确定用于IPSec的密钥交换协议66ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec安全体系结构67ShanDongUniversityComputerSchoolCopyrightDannyHouIPSEC对IP的改造IPSec在IPv6中是强制的,在IPv4中是可选的,这两种情况下都是采用在主IP报头后面接续扩展报头的方法实现的。AH(AuthenticationHeader)是鉴别的扩展报头ESPheader(EncapsulatingSecurityPayload)是实现加密和鉴别(可选)的扩展报头68ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec安全体系结构组成(1)体系结构:包括总体概念、安全需求、定义、以及定义IPSec技术的机制;ESP:使用ESP进行分组加密和可选的鉴别的分组格式和一般性问题AH:使用AH进行分组鉴别的格式和一般性问题;加密算法:描述将各种不同加密算法用于ESP的文档认证算法:描述将各种不同鉴别算法用于AH以及ESP鉴别选项的文档;密钥管理:描述密钥管理模式;DOI:包括一些参数,批准的加密和鉴别算法标识,以及运行参数等69ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec安全体系结构组成(2)策略:决定两个实体之间能否通信,以及如何进行通信。策略的核心由三部分组成:SA、SAD、SPD。SA(安全关联)表示了策略实施的具体细节,包括源/目的地址、应用协议、Spi(安全策略索引)、所用算法/密钥/长度;SAD为进入和外出包处理维持一个活动的SA列表;SPD决定了整个VPN的安全需求。策略部分是唯一尚未成为标准的组件。70ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec提供的服务IPSec在IP层提供安全服务,使得系统可以选择所需要的安全协议,确定该服务所用的算法,并提供安全服务所需任何加密密钥。71ShanDongUniversityComputerSchoolCopyrightDannyHou安全关联SASA(SecurityAssociation)是IP鉴别和保密机制中最关键的概念。一个安全关联就是发送与接收者之间的一个单向关系,是与给定的一个网络连接或一组网络连接相关联的安全信息参数集合。如果需要一个对等关系,即双向安全交换,则需要两个SA。每个SA通过三个参数来标识<spi,dst(src),protocol>安全参数索引SPI(SecurityParametersIndex)对方IP地址安全协议标识:AHorESPSA与IPSec系统中实现的两个数据库有关安全策略数据库(SPD)安全关联数据库(SAD)72ShanDongUniversityComputerSchoolCopyrightDannyHou安全联合数据库SAD安全联合数据库SAD定义了SA参数。序号计数器:32位值,用于生成AH或ESP头中的序号字段;计数器溢出位:标志位表明该序数计数器是否溢出,如果是,将生成一个审计事件,并禁止本SA的的分组继续传送。反重放窗口:确定一个入站的AH或ESP包是否是重放AH信息:鉴别算法、密钥、密钥生存期以及相关参数ESP信息:加密和鉴别算法、密钥、初始值、密钥生存期、以及相关参数SA的生存期:时间间隔或字节计数,到时间后,一个SA必须用一个新的SA替换或终止,并指示哪个操作发生的指示。IPSec协议模式:隧道、传输、通配符。路径MTU:不经分片可传送的分组最大长度和迟滞变量73ShanDongUniversityComputerSchoolCopyrightDannyHou安全策略数据库SPDIPSec策略由安全策略数据库(SecurityPolicyDatabase,SPD)加以维护.在每个条目中定义了要保护什么样的通信、怎样保护它以及和谁共享这种保护。SPD:对于通过的流量的策略三种选择:discard,bypassIPSec,applyIPSec例子:可在一个安全网关上制定IPSec策略,对在本地保护的子网与远程网关的子网间通信的所有数据,全部采用DES加密,并用HMAC-MD5进行鉴别;对于需要加密的、发给另一个服务器的所有Web通信均用3DES加密,同时用HMAC-SHA鉴别。74ShanDongUniversityComputerSchoolCopyrightDannyHouSA选择子每一个SPD条目由一个IP集合和上层协议(称为SA选择子(selector))定义,这些选择子用于过滤输出流量,并将它们映射到某个特定SA。以下的选择子确定SPD条目:目的IP地址:可以是单地址或多地址源地址:单地址或多地址UserID:操作系统中的用户标识。数据敏感级别:传输层协议:IPSec协议(AH,ESP,AH/ESP)源/目的端口IPV6报类IPV6报流标签IPV4服务类型(TOS)75ShanDongUniversityComputerSchoolCopyrightDannyHou工作模式(Transport/Tunnel)AH和ESP协议均支持两种工作模式传输模式TransportMode隧道模式TunnelMode传输模式主要为上层协议提供保护。用于在两台主机之间进行的端到端通信。ESP加密和认证(可选)IP载荷,但不包含IP头AH认证IP载荷和IP报头的选中部分隧道模式对整个IP数据包提供保护。当IP包加AH或ESP域后,整个数据包加安全域被当作一个新的IP包的载荷,并拥有一个新的外部IP报头。原来或内部的整个包利用隧道在网间传输。当SA的一端或两端为安全网关时使用隧道模式。ESP加密和认证(可选)整个内部IP包AH认证整个内部IP包和外部IP报头中的选中部分76ShanDongUniversityComputerSchoolCopyrightDannyHou模式和功能比较77ShanDongUniversityComputerSchoolCopyrightDannyHouAH(AuthenticationHeader)为IP包提供数据完整性和认证功能,防止地址欺骗和重放攻击利用MAC码实现鉴别,双方必须共享一个密钥鉴别算法由SA指定鉴别的范围:整个包两种鉴别模式:传输模式:不改变IP地址,插入一个AH隧道模式:生成一个新的IP头,把AH和原来的整个IP包放到新IP包的载荷数据中78ShanDongUniversityComputerSchoolCopyrightDannyHouIPSecAuthenticationHeaderNextHeader:下一个报头的类型PayloadLength:AH的长度(32位字为单位)SPI:用来标识SASequenceNumber:用来避免重放攻击AuthenticationData:可变长度的域,包含针对这个包的ICV 或者MAC79ShanDongUniversityComputerSchoolCopyrightDannyHouAH处理过程(1)AH定位在IP头之后,在上层协议数据之前鉴别算法计算ICV(IntegrityCheckValue)或者MAC对于发出去的包(OutboundPacket)的处理,构造AH查找SA产生序列号计算ICV
内容包括:IP头中部分域、AH自身、上层协议数据分片80ShanDongUniversityComputerSchoolCopyrightDannyHouAH处理过程(2)对于接收到的包(InboundPacket)的处理分片装配查找SA
依据:目标IP地址、AH协议、SPI检查序列号(可选,针对重放攻击)
使用一个滑动窗口来检查序列号的重放ICV检查81ShanDongUniversityComputerSchoolCopyrightDannyHou窗口与重放攻击检测*82ShanDongUniversityComputerSchoolCopyrightDannyHouICV/MAC计算ICV计算应支持:HMAC-MD5-96、HMACSHA-1-96,仅用96位。MAC计算根据IP报头中不变的部分和可以预测的部分,对可变部分或不可预测的部分填充0,便于计算AH头中不包含认证数据域,填充0整个上层协议数据源和目的地址都是受保护的,可防地址欺骗83ShanDongUniversityComputerSchoolCopyrightDannyHou端到端的认证与端到中间节点的认证84ShanDongUniversityComputerSchoolCopyrightDannyHouAH两种模式示意图IPv4应用AH之前传输模式隧道模式85ShanDongUniversityComputerSchoolCopyrightDannyHouAH两种模式示意图IPv686ShanDongUniversityComputerSchoolCopyrightDannyHouESP(EncapsulatingSecurityPayload)提供保密功能,包括报文内容的机密性和有限的通信量的机密性,也可以提供认证服务(可选)将需要保密的用户数据进行加密后再封装到一个新的IP包中,ESP只认证ESP头之后的信息加密算法和认证算法由SA指定两种模式:传输模式和隧道模式87ShanDongUniversityComputerSchoolCopyrightDannyHouIPSecESP格式88ShanDongUniversityComputerSchoolCopyrightDannyHou加密和认证算法加密算法3DES、RC5、IDEA、3IDEA、CAST、Blowfish认证算法ICV计算应支持:HMAC-MD5-96、HMAC-SHA-1-96,仅用96位。89ShanDongUniversityComputerSchoolCopyrightDannyHou传输方式的加密90ShanDongUniversityComputerSchoolCopyrightDannyHou隧道方式的加密91ShanDongUniversityComputerSchoolCopyrightDannyHouESP的传输模式92ShanDongUniversityComputerSchoolCopyrightDannyHouESP隧道模式93ShanDongUniversityComputerSchoolCopyrightDannyHouESP处理过程(1)ESP头定位加密算法和认证算法由SA确定对于发出去的包(OutboundPacket)的处理查找SA加密封装必要的数据,放到payloaddata域中,不同的模式,封装数据的范围不同增加必要的padding数据加密操作产生序列号计算ICV,注意,针对加密后的数据进行计算分片94ShanDongUniversityComputerSchoolCopyrightDannyHouESP处理过程(2)对于接收到的包(InboundPacket)的处理分片装配查找SA
依据:目标IP地址、ESP协议、SPI检查序列号(可选,针对重放攻击)
使用一个滑动窗口来检查序列号的重放ICV检查解密根据SA中指定的算法和密钥、参数,对于被加密部分的数据进行解密去掉padding重构原始的IP包95ShanDongUniversityComputerSchoolCopyrightDannyHouSA的组合单个SA可以实现AH或ESP协议,但不能两者都实现。特定的通信量可能需要同时调用AH和ESP服务如:同时需要主机之间和防火墙之间的服务需要为相同流量提供多个SA,即安全关联组合安全关联束形成方式传输邻接:不形成隧道的情况下,同一分组应用AH和ESP一级组合隧道嵌套:通过隧道实现多级安全协议的应用96ShanDongUniversityComputerSchoolCopyrightDannyHou97ShanDongUniversityComputerSchoolCopyrightDannyHou认证与机密性的组合(1)带有认证选项的ESP98ShanDongUniversityComputerSchoolCopyrightDannyHou鉴别与机密性的组合(2)传输邻接使用两个捆绑的传输SA,内部是ESPSA(没有认证选项),外部是AHSA99ShanDongUniversityComputerSchoolCopyrightDannyHou鉴别与机密性的组合(3)传输隧道束加密之前进行鉴别更可取内部的AH传输SA+外部的ESP隧道SA100ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec实现实现形式与IP协议栈紧密集成,直接修改协议栈,既适用于主机模式,也适用于安全网关若无法修改协议栈(1)BITS(Bump-in-the-stack)
位于IP协议栈和网络驱动程序之间(2)BITW(Bump-in-the-wire)
外置加密设备,通常是可IP寻址的101ShanDongUniversityComputerSchoolCopyrightDannyHouIPSec密钥管理包括密钥的确定和分配典型的需求是两个应用需要4个密钥:针对发送和接收的AH和ESP两种管理方式:手工自动自动密钥管理协议ISAKMP/OakleyISAKMP/IKE作用:在IPSec通信双方之间,建立起共享安全参数及验证过的密钥(建立“安全关联”).102ShanDongUniversityComputerSchoolCopyrightDannyHouISAKMPISAKMP:InternetSecurityAssociationandKeyManagementProtocolRFC2408是一个针对认证和密钥交换的框架框架结构定义了过程和分组格式来建立、维护、删除安全关联(SA)双方交换数据(密钥、鉴别数据)双方交换数据的过程中的处理方法独立于加密算法、密钥交换协议、鉴别算法103ShanDongUniversityComputerSchoolCopyrightDannyHouISAKMP消息结构ISAKMP头部结构ISAKMP的payload结构104ShanDongUniversityComputerSchoolCopyrightDannyHou各种payload105ShanDongUniversityComputerSchoolCopyrightDannyHou两阶段协商(Twophasesofnegotiation)Thefirstphase,建立起ISAKMPSA–双方(例如ISAKMPServers)商定如何保护以后的通讯,通信双方建立一个已通过身份鉴别和安全保护的通道–此SA将用于保护后面的protocolSA的协商过程Thesecondphase,建立起针对其他安全协议的SA(比如,IPSecSA)–这个阶段可以建立多个SA–此SA将被相应的安全协议用于保护数据或者消息的交换106ShanDongUniversityComputerSchoolCopyrightDannyHou两阶段协商的好处对于简单的情形,两阶段协商带来了更多的通讯开销
但是,它有以下一些好处第一阶段的开销可以分摊到多个第二阶段中所以,这允许多个SA建立在同样的ISAKMPSA基础上第一阶段商定的安全服务可以为第二阶段提供安全特性例如,第一阶段的ISAKMPSA提供的加密功能可以为第二阶段提供身份鉴别特性,从而使得第二阶段的交换更为简单–两阶段分开,提供管理上的便利107ShanDongUniversityComputerSchoolCopyrightDannyHouISAKMP的消息交换ISAKMP定义了5种消息交换类型–BaseExchange交换密钥,但是不提供身份保护–IdentityProtectionExchange交换密钥,也提供身份保护–AuthenticationOnlyExchange只有鉴别(对消息的鉴别)–AggressiveExchange只有三条消息,类似于baseexchange–InformationalExchange传输信息,用于SA管理108ShanDongUniversityComputerSchoolCopyrightDannyHouOakley密钥确定协议RFC2412TheOAKLEYKeyDeterminationProtocol是对Diffie-Hellman密钥交换算法的细化和优化109ShanDongUniversityComputerSchoolCopyrightDannyHou回顾:Diffie-Hellman密钥交换允许两个用户可以安全地交换一个秘密信息,用于后续的通讯过程算法的安全性依赖于计算离散对数的难度算法:素数p以及p的原根a如何确定?110ShanDongUniversityComputerSchoolCopyrightDannyHouDiffie-Hellman密钥交换的弱点没有提供双方身份的任何信息容易受到中间人攻击计算密集性:容易受到阻塞性攻击111ShanDongUniversityComputerSchoolCopyrightDannyHouOakley的特征使用cookie程序来对抗阻塞使得双方可以协商一个组使用nonce对抗重放攻击能够交换Diffie-Hellman公开密钥的值对Diffie-Hellman交换进行认证112ShanDongUniversityComputerSchoolCopyrightDannyHouCookieexchangeCookieexchange要求每一方在初始消息中发送一个伪随机数,即cookie,而另一方对此做出确认Cookie的要求(ISAKMP规定)Cookie的值必须依赖于特定的参与方,即与参与方的某种标识关联
除了产生cookie的这一方之外,其他人都无法产生出可被他接受的cookie值,所以,产生和验证cookie时都会用到本地的秘密信息Cookie的产生和验证方法必须足够快速一个例子:对IP源和目标地址、源和目标端口,以及一个本地秘密值做一个hash算法的结果113ShanDongUniversityComputerSchoolCopyrightDannyHouOakley支持的组支持Diffie-Helman交换时使用不同的组,包括全局参数及算法本身114ShanDongUniversityComputerSchoolCopyrightDannyHouOakley使用三个不同的鉴别方法数字签名:对散列数签名公开密钥加密对称密钥加密115ShanDongUniversityComputerSchoolCopyrightDannyHouInternet密钥交换IKEIKE协议:TheInternetKeyExchange(IKE)RFC2409,是Oakley和SKEME协议的一种混合基于ISAKMP框架Oakley和SKEME定义了通信双方建立共享密钥必须采取的步骤是一种常规用途的安全协议,其规范在DOI中定义116ShanDongUniversityComputerSchoolCopyrightDannyHouIKE中几个概念PFS:PerfectForwardSecrecy一旦一个密钥被泄漏,只会影响到被一个密钥保护的数据Phase同ISAKMP中的phaseGroupOakley定义的Diffie-Hellman密钥交换参数Mode来自Oakley中的定义指一个密钥交换过程四个modeMainMode,AggressiveMode用于phase1QuickMode用于phase2NewGroupMode用在phase1之后,为将来的协商商定一个新的组117ShanDongUniversityComputerSchoolCopyrightDannyHou两阶段三模式phase1:IKESA的创建,两模式主模式(MainMode)交换:灵活野蛮模式(AggressiveMode)交换:快phase2:IPSecSA的创建快速模式(QuickMode)交换,是在IKESA的保护下协商拟定IPSecSA主模式交换采用三个步骤模式协商Diffie-hellman交换和Nonce交换身份验证。主模式的特点身份保护对ISAKMP协商能力的完全应用。118ShanDongUniversityComputerSchoolCopyrightDannyHouIKE中的密钥交换-MainMode是ISAKMP的IdentityProtectionExchange的一个实例,使用预共享密钥I->R:SAR->I:SAI->R:KE;NONCER->I:KE;NONCEI->R:IDI;AUTH(加密传输)R->I:IDR;AUTH(加密传输)–前两条消息商定策略–接下来两条消息交换密钥资料–最后两条消息认证Diffie-HellmanExchange用于phase1119ShanDongUniversityComputerSchoolCopyrightDannyHouIKE中的密钥交换(MainMode)通过公钥签名验证120ShanDongUniversityComputerSchoolCopyrightDannyHouIKE中的密钥交换-AggressiveMode是ISAKMP的Aggressive
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年药店员工招工模拟试题及答案详解
- 2026年病毒性肝炎防治题库(含答案)
- 2026年艾梅乙培训试卷含答案
- 2026饮料行业废水处理技术升级成本效益分析报告
- 2026年高职农业气象(气候适应)试题及答案
- 2026年中职(新能源汽车技术)车载网络检测实务试题及答案
- 2026年甲醇项目经营分析报告
- 2026年危险作业培训模拟试题及答案详解
- 2026年往届单招学校模拟试题及答案详解
- 2026年学年湖南省怀化市统招专升本管理学二模测模拟试卷(含答案)
- 2026植物工厂运营成本构成优化分析
- 教师个人政治思想工作总结(2篇)
- 2026年湖南省中考历史试卷(含答案)
- 脊髓疾病诊疗中国指南(2026 版)
- 2026年碳排放核算员职业理论考试题库(完整版)
- 2025年北京高中合格考政治(第一次)试题和答案
- 《计算机程序设计员》教学大纲-初中级
- GB/T 11918.2-2025工业用插头、固定式或移动式插座和器具输入插座第2部分:带插销和插套的电器附件的尺寸兼容性要求
- 冷冻消融术护理查房
- 危险品停车合同协议书
- 敖汉旗矿产资源总体规划(2021-2025)
评论
0/150
提交评论