1、第14章常见的安全系统 第14章常见的安全系统 14.1IPSec协议协议 14.2SSL协议协议 14.3Kerberos认证系统认证系统 14.4PGP协议协议 14.5PEM协议协议 14.6S/MIME协议协议 14.7S-HTTP协议协议 14.8WMAN(IEEE 802.16)安全技术安全技术 14.9WSN安全机制安全机制 第14章常见的安全系统 14.1IPSec协议协议 14.1.1IPSec协议安全体系结构协议安全体系结构1.安全协议安全协议IPSec提供了两种安全协议:认证头(AH,AuthenticationHeader)和封装安全有效载荷(ESP,Encapsula
2、tingSecurityPayload),用于对IP数据报或上层协议数据报进行安全保护。其中,AH只提供了数据完整性认证机制,可以证明数据源端点,保证数据完整性,防止数据被篡改和重播;ESP同时提供了数据完整性认证和数据加密传输机制,它除了具有AH所有的安全能力之外,还可以提供数据传输机密性。第14章常见的安全系统 AH和ESP可以单独使用,也可以联合使用。每个协议都支持以下两种应用模式。(1)传输模式:为上层协议数据提供安全保护。(2)隧道模式:以隧道方式传输IP数据报文。第14章常见的安全系统 AH或ESP提供的安全性完全依赖于它们所采用的密码算法。为保证一致性和不同实现方案之间的互通性,
3、必须定义一些需要强制实现的密码算法。因此,在使用认证和加密机制进行安全通信时,必须解决以下三个问题:(1)通信双方必须协商所要使用的安全协议、密码算法和密钥。(2)必须方便和安全地交换密钥(包括定期改变密钥)。(3)能够对所有协商的细节和过程进行记录和管理。第14章常见的安全系统 2.安全关联安全关联IPSec使用一种称为安全关联(SA,SecurityAssociations)的概念性实体集中存放所有需要记录的协商细节。因此,在SA中包含了安全通信所需的所有信息,可以将SA看做是一个由通信双方共同签署的有关安全通信的“合同”。SA使用一个安全参数索引(SPI,SecurityParamete
4、rIndex)来唯一地标识。SPI是一个32位随机数,通信双方要使用SPI来指定一个协商好的SA。使用SA的好处是可以建立不同等级的安全通道。例如,一个用户可以分别与A网和B网建立安全通道,分别设置两个SA:SA(a)和SA(b)。在SA(a)中,可以协商使用更加健壮的密码算法和更长的密钥。第14章常见的安全系统 3.密钥管理密钥管理IPSec支持两种密钥管理协议:手工密钥管理和自动密钥管理(IKE,InternetKeyExchange)。其中,IKE是基于Internet的密钥交换协议,它具有如下功能:(1)协商服务:通信双方协商所使用的协议、密码算法和密钥。(2)身份认证服务:对参与协商
5、的双方身份进行认证,确保双方身份的合法性。(3)密钥管理:对协商的结果进行管理。(4)安全交换:产生和交换所有密钥的密码源物质。IKE是一个混合型协议,集成了ISAKMP(InternetSecurityAssociationsandKeyManagementProtocol)协议和部分Oakley密钥交换方案。第14章常见的安全系统 14.1.2具体协议具体协议1.封装安全有效载荷封装安全有效载荷(ESP)协议协议ESP是插入在IP数据报内的一个协议头,为IP数据报提供数据机密性、数据完整性、抗重播以及数据源验证等安全服务。ESP使用一个加密器提供数据机密性,使用一个验证器提供数据完整性认证
6、。加密器和验证器所采用的专用算法是由ESP安全联盟的相应组件决定的。因此,ESP是一种通用的、易于扩展的安全机制,它将基本的ESP功能定义和实际提供安全服务的专用密码算法分离开,有利于密码算法的更换和更新。第14章常见的安全系统 图14.1.1ESP头格式第14章常见的安全系统 在任何模式下,ESP头总是跟随在一个IP头之后,ESP头格式如图14.1.1所示。在IPv4中,IP头的协议字段值为50,表示在IP头之后是一个ESP头。跟随在ESP头后的内容取决于ESP的应用模式。如果是传输模式,则是一个上层协议头(TCP/UDP);如果是隧道模式,则是另一个IP头。(1)安全参数索引(SPI):它
7、是一个32位的随机数。SPI、目的IP地址和协议值组成一个三元组,用来唯一地确定一个特定的SA,以便对该数据报进行安全处理。通常,在密钥交换(IKE)过程中由目标主机来选定SPI。SPI是经过验证的,但并没有被加密,因为SPI是一种状态标识,由它来指定所采用的加密算法及密钥,以及对数据报进行解密。如果SPI本身被加密,则会产生严重的“先有鸡,还是先有蛋”的问题,这一点很重要。第14章常见的安全系统(2)序列号:它是一个单向递增的32位无符号整数。通过序列号,可使ESP具有抗重播攻击的能力。尽管抗重播服务是可选的,但是发送端必须产生和发送序列号字段,只是接收端不一定要处理。建立SA时,发送端和接
8、收端的计数器必须初始化为0(发送端通过特定SA发送的第一个数据报的序列号为1)。如果选择了抗重播服务(默认情况下),则序列号是不能出现重复(循环)的。因此,发送端和接收端的计数器在传送第232个数据报时必须重新设置,这可以通过建立一个新的SA和新的密钥来实现。序列号是经过验证的,但没有被加密,因为接收端是根据序列号来判断一个数据报是否重复的,如果先解密序列号,然后作出是否丢弃该数据报的决定,则会造成处理资源的浪费。第14章常见的安全系统(3)初始化向量IV:提供密码算法所在应用模式下的初始向量值。(4)载荷数据:被ESP保护的数据报包含在载荷数据字段中,其字段长度由数据长度来决定。如果密码算法
9、需要密码同步数据(如初始化向量IV),则该数据应显式地包含在载荷数据中。任何需要这种显式密码同步数据的密码算法都必须指定该数据的长度、结构及其在载荷中的位置。对于强制实施的密码算法(DESCBC)来说,IV是该字段中的第一个8位组。如果需要隐式的密码同步数据,则生成该数据的算法由RFC指定。第14章常见的安全系统(5)填充项:0255个字节,填充内容可以由密码算法来指定。如果密码算法没有指定,则由ESP指定,填充项的第1个字节值是1,后面的所有字节值都是单向递增的。填充的作用如下:某些密码算法要求明文的长度是密码分组长度的整数倍,因此需要通过填充项使明文(包括载荷数据、填充项、填充项长度和下一
10、个头)长度达到密码算法的要求。通过填充项把ESP头的“填充项长度”和“下一个头”两个字段靠后排列。用来隐藏载荷的实际长度,从而支持部分数据流的机密性。第14章常见的安全系统(6)填充项长度:该字段为8位,指明填充项的长度,接收端利用它恢复载荷数据的实际长度。该字段必须存在,当没有填充项时,其值为0。(7)下一个头:该字段为8位,指明载荷数据的类型。如果在隧道模式下使用ESP,则其值为4,表示为IPinIP;如果在传输模式下使用,则其值为上层协议的类型,如TCP对应的值为6。(8)认证数据:该字段是可变长的,它是由认证算法对ESP数据报进行散列计算所得到的完整性校验值(ICV)。该字段是可选的,
11、只有对ESP数据报进行处理的SA提供了完整性认证服务,才会有该字段。SA使用的认证算法必须指明ICV的长度、比较规则以及认证的步骤。第14章常见的安全系统 2.认证头认证头(AH)协议协议AH协议为IP数据报提供了数据完整性、数据源验证以及抗重播等安全服务,但不提供数据机密性服务。也就是说,除了数据机密性之外,AH提供了ESP所能提供的一切服务。AH可以采用隧道模式来保护整个IP数据报,也可以采用传输模式只保护一个上层协议报文。在任何一种模式下,AH头都会紧跟在一个IP头之后。AH不仅可以为上层协议提供认证,还可以为IP头的某些字段提供认证。由于IP头中的某些字段在传输中可能会被改变(如服务类
12、型、标志、分段偏移、生存期以及头校验和等字段),发送方无法预测最终到达接收方时这些字段的值,因此,这些字段不能受到AH的保护。图14.1.2显示了IP头的可变字段(阴影部分)和固定字段。第14章常见的安全系统 图14.1.2IP头的可变字段(阴影部分)和固定字段 第14章常见的安全系统 3.AH头格式头格式在任何模式下,AH头总是跟随在一个IP头之后,AH头格式如图14.1.3所示。在IPv4中,IP头的协议字段值为51,表示在IP头之后是一个AH头。跟随在AH头后的内容取决于AH的应用模式,如果是传输模式,则是一个上层协议头(TCP/UDP);如果是隧道模式,则是另一个IP头。(1)下一个头
13、:8位,与ESP头中对应字段的含义相同。第14章常见的安全系统 图14.1.3AH头格式第14章常见的安全系统(2)载荷长度:8位,以32位为长度单位指定了AH的长度,其值是AH头的实际长度减2。这是因为AH是一个IPv6扩展头,IPv6扩展头长度的计算方法是实际长度减1,IPv6是以64位为长度单位计算的,AH是以32位为长度单位进行计算的,所以将减1变换为减2(1个64位长度单位2个32位长度单位)。如果采用标准的认证算法,认证数据字段长度为96位,加上3个32位固定长度的部分,则载荷长度字段值为4(96/32+3-2=4)。如果使用“空”认证算法,将不会出现认证数据字段,则载荷长度字段值
14、为1。(3)保留:16位,保留给将来使用,其值必须为0。该字段值包含在认证数据的计算中,但被接收者忽略。第14章常见的安全系统(4)安全参数索引(SPI):32位,与ESP头中对应字段的含义相同。(5)序列号:32位,与ESP头中对应字段的含义相同。(6)认证数据:可变长字段,它是认证算法对AH数据报进行完整性计算所得到的完整性校验值(ICV)。该字段的长度必须是32位的整数倍,因此可能会包含填充项。SA使用的认证算法必须指明ICV的长度、比较规则以及认证的步骤。第14章常见的安全系统 14.1.3IPSec实现模式实现模式1.传输模式传输模式传输模式又称主机实现模式,通常当ESP在一台主机(
15、客户机或服务器)上实现时使用。传输模式使用原始明文IP头,并且只加密数据,包括它的TCP和UDP头。由于主机是一种端节点,因此传输模式主要用于保护一个内部网中两个主机之间的数据通信。主机实现方案可分为以下两种类型。第14章常见的安全系统(1)在操作系统上集成实现:由于IPSec是一个网络层协议,因此可以将IPSec协议集成到主机操作系统上的TCP/IP中,作为网络层的一部分来实现。(2)嵌入协议栈实现:将IPSec嵌入协议栈中,插入在网络层和数据链路层之间来实现。传输模式的优点是:能够实现端到端的安全性,能够实现所有的IPSec安全模式,能够提供基于数据流的安全保护。第14章常见的安全系统 2
16、.隧道模式隧道模式隧道模式又称为基于网关的实现模式,通常应用于ESP关联到多台主机的网络访问介入装置实现的场合。隧道模式处理整个IP数据包,包括全部TCP/IP或UDP/IP头和数据,它用自己的地址作为源地址加入到新的IP头中。当隧道模式用在用户终端设置时,它可以提供更多的便利来隐藏内部服务器主机和客户机的地址。ESP支持传输模式。这种模式可保护高层协议,也可保护IP包的内容,特别是用于两个主机之间的端对端通信(例如,客户与服务器或是两台工作站)。传输模式中的ESP加密有时候会认证IP包的内容,但不认证IP包头。这种配置对于装有IPSec的小型网络特别有用。第14章常见的安全系统 但是,要全面
17、实施VPN,使用隧道模式会更有效。ESP也支持隧道模式,这种模式可保护整个IP包。为此,IP包在添加了ESP字段后,整个包以及包的安全字段被认为是新的IP包的外层内容,附有新的IP外层包头。原来的(及内层)包通过“隧道”从一个IP网络起点传输到另一个IP网点,中途的路由器可以检查IP的内层包头。因为原来的包已被打包,新的包可能有不同的源地址及目的地址,所以可以达到安全传输的目的。第14章常见的安全系统 通常隧道模式用在两端或一端是安全网关的架构中,例如装有IPSec的路由器或防火墙。使用了隧道模式,防火墙内很多主机不需要安装IPSec也能安全地通信。这些主机所生成的未加保护的网包,经过外网时,
18、使用隧道模式的安全组织规定(即SA,发送者与接收者之间的安全关联关系,主要用于定义装在本地网络边缘的安全路由器或防火墙中的IPSec软件进行IP交换所规定的参数)的方式传输。第14章常见的安全系统 以下是隧道模式的IPSec运作的例子。某网络的主机甲生成一个IP包,目的地址是另一个网中的主机乙。这个包从起始主机被发送到主机甲的网络边缘的安全路由器或防火墙。防火墙对所有出去的包进行过滤,看有哪些包需要进行IPSec的处理。如果这个从甲到乙的包需要使用IPSec,那么防火墙就进行IPSec的处理,并把网包打包,添加外层IP包头。这个外层包头的源地址是防火墙,而目的地址可能是主机乙的网络边缘的防火墙
19、。现在这个包被传送到主机乙的防火墙,中途的路由器只检查外层IP包头。之后,主机乙的防火墙会把外层IP包头除掉,把IP内层发送至主机。第14章常见的安全系统 隧道模式主要用于保护两个内部网通过公用网络进行的数据通信,通过IPSec网关构建VPN,从而实现两个内部网之间的安全数据交换。隧道模式有以下两种类型:(1)在操作系统上集成实现:将IPSec协议集成到网关操作系统上的TCP/IP中,作为网络层的一部分来实现。(2)嵌入网关物理接口上实现:将实现IPSec的硬件设备直接接入网关的物理接口上来实现。隧道模式的优点是:能够在公用网(如Internet)上构建VPN来保护内部网之间进行的数据交换,能
20、够对进入内部网的用户身份进行验证。第14章常见的安全系统 14.2SSL协议协议14.2.1协议组成协议组成SSL协议的基本目标是在两个通信实体之间建立安全的通信连接,为基于客户机/服务器模式的网络应用提供安全保护。SSL协议提供了以下3种安全特性。(1)数据机密性:采用对称加密算法(如DES、RC4等)来加密数据,密钥是在双方握手时指定的。(2)数据完整性:采用消息鉴别码(MAC)来验证数据的完整性,MAC是采用Hash函数实现的。(3)身份合法性:采用非对称密码算法和数字证书来验证同层实体之间的身份合法性。第14章常见的安全系统 图14.2.1SSL协议的基本结构 第14章常见的安全系统
21、14.2.2握手协议握手协议在SSL协议中,客户和服务器之间的通信分成两个阶段:第一阶段是握手协商阶段,双方利用握手协议协商和交换有关协议版本、压缩方法、加密算法和密钥等信息,同时还可以相互验证对方的身份;第二阶段是数据交换阶段,双方利用记录协议对数据实施加密和认证,确保数据交换的安全。因此,在数据交换之前,客户和服务器之间首先要使用握手协议进行有关参数的协商和确认。第14章常见的安全系统 SSL握手协议也包含两个阶段:第一阶段用于交换密钥等信息,第二阶段用于用户身份认证。在第一阶段,通信双方通过相互发送HELLO消息进行初始化。通过HELLO消息,双方就能够确定是否需要为本次会话产生一个新密
22、钥。如果本次会话是一个新会话,则需要产生新的密钥,双方需要进入密钥交换过程;如果本次会话建立在一个已有的连接上,则不需要产生新的密钥,双方立即进入握手协议的第二阶段。第二阶段的主要任务是对用户身份进行认证,通常服务器方要求客户方提供经过签名的客户证书进行认证,并将认证结果返回给客户。至此,握手协议结束。第14章常见的安全系统 在握手协议中,定义了一组控制消息,客户和服务器之间使用这些消息进行握手协商。当客户和服务器首次建立会话时,必须经历一个完整的握手协商过程(参见图14.2.2)。图14.2.2中,*表示可选的消息,不是一定要发送的。第14章常见的安全系统 图14.2.2新建一个会话时的握手
23、协商过程 第14章常见的安全系统(1)客户方向服务器方发送一个ClientHello消息,请求握手协商。(2)服务器方向客户方回送ServerHello消息,进行响应和确认。这样客户和服务器之间通过Hello消息建立了一个会话的有关属性参数(协议版本、会话ID、密码组及压缩方法),并相互交换了两个随机数(ClientHello.random和ServerHello.random)。第14章常见的安全系统(3)服务器方可以根据需要选择性地向客户方发送有关消息:Certificate消息,发放服务器证书;CertificateRequest消息,请求客户方证书等;ServerKeyExchange
24、消息,与客户方交换密钥。在完成处理后,服务器方向客户方发送ServerHelloDone消息,表示服务器完成协商,等待客户方的回应。第14章常见的安全系统(4)客户方根据接收到的服务器方消息进行响应:如果客户证书是一个数字签名的证书,则必须发送CertificateVerify消息,提供用于检验数字签名证书的有关信息;如果接收到CertificateRequest消息,则客户方必须发送Certificate消息,发送客户证书;如果接收到ServerKeyExchange消息,则客户方必须发送ClientKeyExchange消息,与服务器方交换密钥。密钥是由ClientHello消息和Serv
25、erHello消息协商的公钥密码算法决定的。(5)如果客户方要改变密码规范,则发送ChangeCipherSpec消息给服务器方,说明新的密码算法和密钥,然后使用新的密码规范发送Finished消息;如果客户方不改变密码规范,则直接发送Finished消息。第14章常见的安全系统(6)如果服务器方接收到客户方的ChangeCipherSpec消息,则也要发送ChangeCipherSpec消息进行响应,然后使用新的密码规范发送Finished消息;如果服务器方接收到客户方的Finished消息,则直接发送Finished消息进行响应。(7)至此,握手协商阶段结束,客户方和服务器方进入数据交换阶
26、段。上述过程中,ChangeCipherSpec消息是一个独立的SSL协议类型,并不是SSL握手协议信息。如果双方是在已有连接上重建一个会话,则不需要协商密钥以及有关会话参数,从而可以简化握手协商过程(参见图14.2.3)。第14章常见的安全系统 图14.2.3重建一个会话时的握手协商过程 第14章常见的安全系统(1)客户方使用一个已有的会话ID发出ClientHello消息。(2)服务器方在会话队列中查找与之相匹配的会话ID,如果有相匹配的会话,则服务器方在该会话状态下重新建立连接,并使用相同的会话ID向客户方发送一个ServerHello消息;如果没有相匹配的会话,则服务器方产生一个新的会
27、话ID,并且客户方和服务器方必须进行一次完整的握手协商过程。(3)在会话ID匹配的情况下,客户方和服务器方必须分别发送ChangeCipherSpec消息,然后发送Finished消息。(4)至此,重建一个会话阶段结束,客户方和服务器方进入数据交换阶段。第14章常见的安全系统 14.2.3记录协议记录协议1.记录格式记录格式在SSL协议中,所有的传输数据都被封装在记录中,记录由记录头和长度不为0的记录数据组成。所有的SSL通信,包括握手消息、安全记录和应用数据,都要通过SSL记录层传送。在SSL记录层,上层数据被分段封装在一个SSL明文记录中,数据段最大长度为214字节。SSL记录层不区分客户
28、信息的界限。例如,多个同种类型的客户信息可能被连接成一个单一的SSL明文记录。SSL记录格式如图14.2.4所示。第14章常见的安全系统 图14.2.4SSL记录格式 第14章常见的安全系统 图14.2.4中:(1)信息类型:指示封装在数据段中的信息类型,由上层协议解释和处理。(2)版本号:使用的SSL协议版本号。(3)长度:以字节表示的数据段长度,最大为214字节。(4)数据段:上层协议独立处理的数据单位。第14章常见的安全系统 2.记录压缩每个SSL记录都要按协商好的压缩算法进行压缩处理,其压缩算法是在当前会话状态中定义的。压缩必须是无损压缩。经过压缩处理后,在SSL记录中会增加一些压缩状
29、态信息,但增加部分的长度不能超过1024字节。在解压处理时,如果解压缩(去掉有关压缩状态信息)后的数据长度超过了214个字节,则会产生一个解压缩失败的警告。此外,解压函数肯定不会发生内部缓冲区溢出。第14章常见的安全系统 3.记录加密记录加密经过压缩的SSL记录还要按协商好的加密算法和MAC算法进行加密和完整性认证保护,其加密算法和MAC算法是在当前CipherSpec中定义的。SSL支持流加密算法(如RC4算法)和分组加密算法(如RC2、IDEA和DES算法等),认证算法支持MD5和SHA算法。CipherSpec初始时为空,不提供任何安全性。一旦完成了握手过程,通信双方就建立了密码算法和密
30、钥,并记录在当前的CipherSpec中。在发送数据时,发送方从CipherSpec中获取密码算法对数据加密,并计算MAC,将SSL明文记录转换成密文记录。在接收数据后,接收方从CipherSpec中获取密码算法对数据解密,并验证MAC,将SSL密文记录转换成明文记录。第14章常见的安全系统 4.ChangeCipherSpec协议协议ChangeCipherSpec协议由单一的ChangeCipherSpec消息构成,用于改变当前的密码规范(CipherSpec)。客户方或服务器方在发送Finished消息之前使用ChangeCipherSpec消息通知对方,将采用新的密码规范和密钥来加密和
31、解密数据记录。第14章常见的安全系统 5.警告协议警告协议SSL记录层通过警告协议传送警告消息。警告消息中包含警告级别和警告描述。警告消息类型如表14.2.1所示。第14章常见的安全系统 表表14.2.1警告消息类型警告消息类型 警告类型警告类型 描述描述 说明说明 close_notify 关闭通知 通知对方关闭连接。Unexpected_message 不期望的消息 当接收方收到一个不恰当消息时会返回这个警告,这个错误是致命的。bad_record_mac 错 误 的 记 录MAC 当接收方收到一个不正确的 MAC 时会返回这个警告,这个错误是致命的。decompression_failu
32、re 解压缩失败 在解压缩时输入的数据出现了错误,如长度错误,这个错误是致命的。handshake_failure 握手失败 发送方与接收方无法协商一个可以接受的安全参数集。这个错误是致命的。no_certificate 没有证书 通知发送者不需要验证证书。bad_certificate 错误的证书 证书验证不正确。unsupported_certificate 不支持的证书 证书类型未被支持 certificate_revoked 证书废除 证书被签订者废除。certificate_expired 证书期满 证书当前无效或超期 certificate_unknown 证书未知 处理证书时出现
33、了未知方。illegal_parameter 违法的参数 在握手中出现了超出限度或不一致的参数,这个错误是致命的。第14章常见的安全系统 警告消息大致可以分成终止警告和错误警告两种,只有close_notify是终止警告,其余均为错误警告。在错误警告中,又可分成一般错误警告和致命错误警告,致命错误警告将会导致会话失效。同样,警告消息也要在SSL记录中进行压缩和加密处理。SSL握手协议的错误处理比较简单。任何一方检测出错误后,便向对方发送一个相应的警告消息。如果是致命错误警告,则双方立刻终止连接,双方均要放弃所有与失败连接有关的任何会话标识符、密码和密钥等。第14章常见的安全系统 通信双方都可以
34、使用close_notify警告消息来终止会话。在发出close_notify警告消息后,不再接收新的消息或数据。为了防止切断攻击,双方都应知道连接的结束。如果一个连接没有收到close_notify警告消息就终止了,则会话是不可恢复的。因此,任何一方在关闭连接前都应发送一个close_notify警告消息,而另一方也要发送close_notify警告消息进行响应,并立即关闭连接。第14章常见的安全系统 14.3Kerberos认证系统认证系统 14.3.1Kerberosv4 图14.3.1Kerberos认证框图 第14章常见的安全系统 第14章常见的安全系统 1.Kerberos协议协议
35、Kerberos协议分三个阶段共六步实现。阶段:认证业务交换,C从AS获取票证授权证。(1)用户在工作站上提出申请票证授权证:CAS:IDc|IDtgs|TS1(2)AS回送票证授权证。AS验证C的访问权限后,准备好票证Tickettgs和C与TGS共享密钥kc,tgs,并以用户通行字导出的密钥kc加密送出:ASC:EKcK c,tgs|IDtgs|TS2|Lifetime2|Tickettgs,Tickettgs=EKtgs Kc,tgs|IDc|ADc|IDtgs|TS2|Lifetime2 第14章常见的安全系统(3)用户请求服务授权证。工作站要求用户送入通行字,并用它导出密钥kc,以k
36、c对所接收消息进行解密得:Kc,tgs,IDtgs,TS2,Lifetime2,Tickettgs送出 CTGS:IDv|Tickettgs|AuthentiCAtorc,其中,AuthentiCAtorc=EKc,tgs IDc|ADc|TS3。第14章常见的安全系统 (4)TGS回送服务授权证。TGS 用Ktgs解出 Kc,tgs,IDc,ADc,IDtgs,TS2,Lifetime2及 IDc,ADc,TS3,实现对C 的认证,并准备好服务授权证Ticketv及会话密钥 Kc,v TGSC:EKc,tgsKc,v|IDv|TS4|Ticketv,其中 Ticketv=EkvKc,v|ID
37、c|ADc|IDv|TS4|Lifetime4。阶段阶段 III:用户/服务器认证交换,C 从服务器得到联机服务。第14章常见的安全系统 第14章常见的安全系统 用户C以kc,v解密得TS5+1,实现对V的验证,并开始享受联机服务。C与V用kc,v进行联机通信业务。用户开始时要进行阶段协议,得到的kc,tgs和Tickettgs在有效期Lifetime2内可多次使用,以申请向不同服务器联机的证书Ticketv和会话密钥kc,v。后者只执行第、阶段协议,所得Ticketv和会话密钥在有效期Lifetime4内使用,与特定服务器V进行联机服务。一般地,Lifetime2为8小时,Lifetime4
38、要短得多。上述阶段中,仅第阶段要求用户出示通行字。第14章常见的安全系统 2.Kerberos的安全性的安全性(1)用户与AS共享密钥kc,由用户键入的通行字导出,这是Kerberos最薄弱的环节,易被窃听和猜测攻击,但Kerberos的票证方式大大降低了通行字的使用频度。(2)系统安全基于对AS和TGS的绝对信任,且实现软件不能被篡改。(3)时限Lifetime1、Lifetime2和时戳TS1TS5及TS5+1大大降低了重放攻击的可能性,但要求网内时钟同步,且限定时戳验证时差|t|5分钟为合法,不视为重发。这要求服务器要存储以前的认证码,一般难以做到。第14章常见的安全系统(4)Kerbe
39、ros协议中的第(2)(6)步传输都采用了加密,从而提高了抗攻击能力。(5)AS要存储所有属于它的用户及TGS、V的ID、kc(通行字的Hash值)、ktgs,TGS要存储ktgs,V要存储kv。第14章常见的安全系统 3.Kerberosv4在多个认证服务器在多个认证服务器AS环境下的认证环境下的认证(1)Kerberos服务器应在数据库中拥有所有所属用户的ID和通行字的Hash值,所有用户要向Kerberos服务器注册。(2)Kerberos服务器要与每个服务器分别共享一个密钥,所有服务器需向Kerberos服务器注册。由(1)、(2)两条决定的范围称做Kerberos的一个独立区(Rea
40、lm)。为保证一个独立区的用户可向另一个独立区的服务器申请联机服务,需要有一个机构能支持独立区之间的认证。(3)各区的Kerberos服务器之间有共享密钥,两两Kerberos服务器相互注册。第14章常见的安全系统 图14.3.2多个认证服务器环境下的认证服务 第14章常见的安全系统 第14章常见的安全系统 CVrem:TicketvremAuthentiCAtorc 第14章常见的安全系统 14.3.2Kerberosv51.v4和和v5的对比的对比v4和v5的对比如下:(1)对加密体制的依赖性。v4的加密算法为DES,出口受限,且强度受怀疑;v5增加了一个标识符,指示所用加密技术类型和密钥
41、的长度,因而可采用任何算法和任意长密钥。(2)对Internet协议的依赖性。v4规定用InternetProtocol(IP)寻址,而不用其他(如ISO网)寻址;v5标记了地址类型和长度,可用于任意网。第14章常见的安全系统(3)消息字节次序。v4利用选定的字节次序,标记指示最低位为最低地址,或最高位为最低地址,虽可行但不方便;v5规定所有消息格式均用ASN.1(AbstractSyntaxNotationOne)和BER(BasicEncodingRules),字节次序无含糊之处。(4)票证有效期。v4中的有效期以5分钟为单元,用8bit表示量级,最大为1280分钟或不到21小时,可能不够
42、用(如大型问题模拟);v5可以规定任意确定的起止时间。(5)认证传递。v4中不允许将发给一用户的证书,递送至另一个主机或让其他用户使用;v5则允许。(6)独立区间认证。在N个区之间,v4要求有N2个KerberostoKerberos关系。v5允许较少的关系。第14章常见的安全系统(7)加密方式。v4采用非标准明文和密文分组连接的工作模式(即PCBC)加密,已经证明,PCBC抗密文组变化能力差;v5改用了CBC模式。(8)会话密钥对。v4中每个票证均有一个会话密钥,用户可以用它对送给服务器的认证码进行加密,并对和此票证一起送至一相应服务器的消息进行加密,由于同一票证可以在特定服务器中多次重复使
43、用,因此可能使攻击者重发过去截获的到用户或到服务器的消息;v5中提供的用户和服务器之间的协商仅用于一次性连接的子会话密钥技术。(9)通行字攻击。v4和v5都面临这个问题,从AS到用户的消息是用基于用户通行字导出的密钥加密的。第14章常见的安全系统 2.通行字密钥变换通行字密钥变换Kerberos中通行字以7bitASCII字符(校验位不计在内)表示,长度任意。处理过程中:将字符串变换为比特流B,先去掉校验位;将B按56bit分组,第一组与第二组自断点处折回,逆序逐位模2加,参看图14.3.3;将56bit数据附加上校验位变为64bit密钥(附加校验),以kPW表示;以原Password字符串按
44、8bit分组作为DES密钥,对kPW用CBC模式加密,输出最后密文(Hash值)作为密钥kc。第14章常见的安全系统 图14.3.3逆序逐位模2加法 第14章常见的安全系统 攻击者若截获ASC的消息,则会试图以各种通行字来解密。若找到通用字,则可从Kerberos服务器得到认证证书。v5提供了一种预认证(Preauthentication)机制,使这类攻击更为困难,但还不能阻止这类攻击。第14章常见的安全系统 3.v5协议协议v5针对v4的缺点进行了改进。v5中的新成员如下:(1)Realm:指示用户的独立区。(2)Options:提供用户要求在回送票证中附加的某种标志。(3)Times:要求
45、Ticket的起、止及延长的终止时间。(4)Nonce:随机值,防止重发。(5)子密钥:用户选项,要求进行特定会话时保护消息的加密密钥。若未选,则从Ticket取kc,v作为会话密钥。(6)序列号:用户选项,在本次会话中,限定服务器发送给用户的消息开始的序号,用于检测重发。第14章常见的安全系统 V5 协议如下协议如下:阶段阶段 I:认证业务交换,C 从 AS 获取票证授权证。(1)CAS:Option|IDc|Realmc|IDtgs|Times|Nonce1,(2)ASC:Realmc|IDc|Tickettgs|EKc Kc,tgs|Times|Nonce1|Realmtgs|IDtgs
46、 ,其中 Tickettgs=EKtgs Flags|Kc,tgs|Realmc|IDc|ADc|Times。第14章常见的安全系统 阶段阶段 II:票证授权业务交换,C从 TGS 得到业务授权证。(3)CTGS:Options|IDv|Times|Nonce2|Tickettgs|AuthentiCAtorC,(4)TGSC:Realmc|IDc|Ticketv|EKc,tgsKc.v|Times|Nonce2|Realmv|IDv,Ticketv=EKvFlags|Kc,v|Realmc|IDc|ADc|Times,AuthentiCAtorC=EKc,tgsIDc|Realmc|TS1。
47、第14章常见的安全系统 阶段阶段 III:用户/服务器认证交换,C 从 V 得到联机服务。(5)CTGS:Options|Ticketv|AuthentiCAtorC,(6)TGSC:EKc,vTS2|Subkey|Seq#,AuthentiCAtorC=EKc,vIDc|Realmc|TS2|Subkey|Seq#。第14章常见的安全系统 第14章常见的安全系统(6)POSTDATED 指示此证已经延期,端服务器可以检验认证时域,查看原来认证时间。(7)INVALID 此证无效,在用之前必须由 KDC确认。(8)PROCIABLE 告诉 TGS,可根据出示的票证发放有不同的网络地址的、新的服
48、务授权证。(9)PROXY 指示此证为 PROXY(代理、委托书)。(10)FORWARDABLE 告诉 TGS,可根据这一票证授权证发放有不同网络地址的、新的服务授权证。(11)FORWARDED 指示此证是转递或是根据有转递票证授权证认证后发放的。第14章常见的安全系统 14.4PGP协议协议PGP(PrettyGoodPrivacy)是一种对电子邮件进行加密和签名保护的安全协议和软件工具。它将基于公钥密码体制的RSA算法和基于单密钥体制的IDEA算法巧妙地结合起来,同时兼顾了公钥密码体系的便利性和传统密码体系的高速度,从而形成了一种高效的混合密码系统。PGP中,发送方使用随机生成的会话密
49、钥和IDEA算法加密邮件文件,使用RSA算法和接收方的公钥加密会话密钥,然后将加密的邮件文件和会话密钥发送给接收方;接收方使用自己的私钥和RSA算法解密会话密钥,然后用会话密钥和IDEA算法解密邮件文件。PGP还支持对邮件的数字签名和签名验证。另外,PGP还可以用来加密文件。第14章常见的安全系统 14.4.1PGP的密码算法的密码算法随着Internet的发展,电子邮件已成为沟通、联系、交流思想的重要手段,对人们的工作和生活产生了深刻的影响。电子邮件和普通信件一样,属于个人隐私,而私密权是一种基本人权,必须得到保护。在电子邮件的传输过程中,可能存在着被第三者非法阅读和篡改的安全风险。通过密码
50、技术可以防止电子邮件被非法阅读;通过数字签名技术,可以防止电子邮件被非法篡改。PGP是一种供大众免费使用的邮件加密软件,它是一种基于RSA和IDEA算法的混合密码系统。基于RSA的公钥密码体系非常适合于处理电子邮件的数字签名、身份认证和密钥传递问题,而IDEA算法加密速度快,非常适合于邮件内容的加密。第14章常见的安全系统 PGP采用了基于数字签名的身份认证技术。对于每个邮件,PGP使用MD5算法产生一个128位的散列值作为该邮件的唯一标识,并以此作为邮件签名和签名验证的基础。例如,为了证实邮件是A发给B的,A首先使用MD5算法产生一个128位的散列值,再用A的私钥加密该值,作为该邮件的数字签