




已阅读5页,还剩98页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络 第八章 网络安全 什么是网络安全 z网络安全从本质上说就是网络上的信息安全。 z广义地说,凡是涉及网络上信息的保密性、完 整性、可用性、真实性和可控性的相关技术和 理论,都是网络安全要研究的领域。 z网络安全的一个通用定义: y网络安全是指网络系统的硬件、软件及其系统中的 数据受到保护,不受偶然的或者恶意的原因而遭到 破坏、更改、泄露,系统连续可靠地正常运行,网 络服务不中断。 主要内容 zOSI安全体系结构 z加密技术:加密算法,消息鉴别,数字签 名 z通信安全:IPSec,VPN,防火墙 z鉴别服务:Kerberos,X.509 z电子邮件安全:PGP,S/MIME zWeb安全:SSL/TLS,SET 1. OSI安全体系结构 z安全攻击 y任何损害信息安全的行为 z安全机制 y用于检测和预防安全攻击或从安全攻击中恢复的任 何机制 z安全服务 y用于增强信息系统安全性及信息传输安全性的服务 y安全服务使用一种或多种安全机制来提供服务 1.1 安全攻击 z被动攻击: y试图从系统中获取信息,但不影响系统资源。 y两种类型: x偷听:为了获得正在传输的内容。 x流量分析:为了从通信频度、消息长度等流量模式来 推断通信的性质。 y对付被动攻击的最好方法是预防而不是检测,如 可用加密来保护正在传输的信息,通过制造一些 虚假的流量来防止流量分析。 安全攻击(续) z主动攻击: y试图改变系统资源或影响系统的操作。 y四种类型: x伪装:一个实体假冒另一个实体。 x重放:从网络中被动地获取一个数据单元,经过一段时间 后重新发送到网络中。 x消息修改:改变消息的部分内容、推迟发送消息或改变消 息的发送顺序。 x拒绝服务:阻止通信设施的正常使用或管理。 y对付主动攻击的主要方法是检测攻击,然后设法从 攻击造成的破坏中恢复。 1.2 安全服务 z 鉴别:证实通信过程涉及的另一方确实具有他们所声称 的身份,确保通信是可信的。 y对等实体鉴别:在连接建立及数据传输阶段对对等实体的身份 进行证实。 y数据起源鉴别:在通信实体之间没有预先交互的应用中提供对 消息起源的证实。 z 访问控制:限制和控制通过通信链路对主机系统和应用 访问的能力。 z 数据机密性:保护被传输的数据免遭被动攻击。 y连接机密性:保护在一条连接上传输的所有用户数据 。 y无连接机密性:保护在一个数据块中的所有用户数据。 y选择域机密性:保护一个连接或一个数据块中用户数据的某些 域。 y通信流量机密性:保护可从通信流量中观察到的信息。 安全服务(续) z 数据完整性:令接收方确信收到的消息与最初发出的消 息是完全一样的。 y有恢复机制的连接完整性:提供对一个连接上所有用户数据的 完整性保护,并试图从数据完整性被破坏的状态中恢复。 y无恢复机制的连接完整性:提供对一个连接上所有用户数据的 完整性保护,没有恢复措施。 y选择域连接完整性:提供对一个连接上用户数据中某些域的完 整性保护。 y无连接完整性:提供对一个无连接数据块的完整性保护。 y选择域无连接完整性:提供对一个无连接数据块中某些域的完 整性保护。 安全服务(续) z不可否认性:防止发送方或接收方否认已发送 或已接收了一个消息的事实。 y源不可否认性:证明消息由声称的发送者发送。 y目的不可否认性:证明消息已被指定的接收者接收 。 z可用性: yX.800将可用性定义为系统或系统资源可被授权实体 访问和使用的特性,是与多种安全服务相关联的特 性。 y也有人认为应专门定义一种可用性服务,该服务解 决由拒绝服务攻击引起的安全问题。 y可用性服务要依靠适当的系统资源管理和控制,因 而依赖于访问控制服务和其它安全服务。 安全服务与安全攻击之间的关系 1.3 安全机制 z 特定安全机制,在某一个特定协议层中实现: y加密:使用数学算法对数据进行变换,使其不易理解。 y数字签名:附加在一个数据单元后面的数据,用来证明数据单 元的起源及完整性,以防伪造。 y访问控制:各种实施访问授权的机制。 y数据完整性:用于保护数据单元或数据单元流完整性的各种机 制。 y鉴别交换:通过信息交换确信一个实体身份的机制。 y流量填充:在数据流间隙中插入比特,以挫败流量分析的企图 。 y选路控制:允许为某些数据选择特定的物理安全路由。 y公证:使用一个可信的第三方来确保数据交换的某些特性。 安全机制(续) z普遍安全机制,不限于特定的安全服务或协议层 次: y可信功能性:根据某个安全标准被认为是正确的功能 。 y安全标签:与资源绑定、用于指定该资源安全属性的 一个标记。 y事件检测:安全相关事件的检测。 y安全审计:对系统记录和行为进行独立回顾和检查。 y安全恢复:处理来自安全机制的请求,并采取恢复行 动。 安全服务和安全机制之间的关系 2. 加密技术 z 加密模型 z 密码学的基本原则:必须假设破译者知道加密与解密的 方法。因而算法是稳定和公开的,只有密钥是保密的。 z 密码分析问题的三种主要变形: y只有密文问题:只有密文而无相匹配的明文。破译困难,但事 实上破译者会知道比密文本身更多的信息。 y已知明文问题:拥有一批相匹配的明文和密文对,可能推断出 加密密钥。 y选择明文问题:破译者能够加密自己选择的任何明文,然后和 截获的密文进行对比以猜测密钥。 加密模型 加密算法的安全性 z一个真正安全的加密算法应能经得起“选择明文 ”攻击。 z一个加密算法被称为是计算安全的,如果由该 算法产生的密文满足以下两个条件之一: y破译密文的代价超过信息本身的价值 y破译密文所需的时间超过信息的有效生命期 z现代密码学中,密码的安全性是通过算法的复 杂性和密钥的长度来保证的。 加密算法的分类 z 依据加密密钥与解密密钥是否相同,分为: y对称加密算法:加密密钥与解密密钥相同,解密算法是加密算法 的逆过程。也称秘密密钥算法或常规加密算法。 y非对称加密算法:加密密钥与解密密钥不同,且从加密密钥无法 推出解密密钥,因此加密密钥是公开的。也称公开密钥算法。 z 依据明文被处理的方式,分为: y块加密:每次处理一个明文块,生成相同长度的密文块。 y流加密:处理连续输入的明文流,生成连续输出的密文流。 2.1 秘密密钥算法 z最经典的秘密密钥算法是DES: yDES是一种块加密算法,每次处理64比特的明文块,输 出64比特的密文块。 y算法使用一个56比特的主密钥,包括16次迭代过程, 每次迭代使用一个不同的48比特子密钥,子密钥从主密 钥中生成。 yDES加密和解密使用相同的算法,两者的不同只是子密 钥的次序刚好相反。 yDES的缺点:密钥长度不够长,迭代次数不够多。 DES处理过程 三重DES z 三重DES使用两个密钥进行三轮DES计算。 z 为什么只使用两个密钥:112比特的密钥已经足够长。 z 为什么不使用双重DES:为了避免中途攻击。 y考虑采用EE模式的两重DES,且攻击者已经拥有了一 个匹配的明文密文对(P1,C1),则有C1 EK2(EK1(P1)。令XEK1(P1)DK2(C1),攻击者分别计 算EK1(P1)和DK2(C1),并寻找使它们相等的K1和K2,则 穷尽整个密钥空间只需256的攻击量而不是2112。 z 为什么是EDE而不是EEE:为了与单次DES兼容,三重 DES用户解密单次DES用户加密的数据,只需令K1K2就 行了。 三重DES图示 2.2 公开密钥算法 z 使用对称密钥算法的前提是必须可靠地分发秘密密钥, 这是一个难题,公开密钥算法试图避开这个难题。 z 基本思想:采用不同的加密密钥与解密密钥,且从加密 密钥推导不出解密密钥,因此可将加密密钥公开发布。 z 公开密钥算法必须满足的条件: y从计算上说,生成一对加密密钥和解密密钥是容易的。 y从计算上说,已知加密密钥,从明文计算出密文是容易的。 y从计算上说,已知解密密钥,从密文计算出明文是容易的。 y从计算上说,从加密密钥推出解密密钥是不可能的。 y从计算上说,从加密密钥和密文计算出原始明文是不可能的。 公开密钥算法的使用 z加密和解密: y每个希望接收秘密报文的用户生成一对加密密钥和解密密钥, 并将加密密钥放在一个公开的文件中发布。 y当A希望向B发送一个加密报文P时,A从公开的文件中查到B的 加密密钥,用B的加密密钥加密报文P,发送给B。 yB用自己的解密密钥解密报文。 z 公开密钥和私有密钥: y公开密钥:即加密密钥,由其他人用来发送加密信息。 y私有密钥:即解密密钥,用来解密消息。 RSA算法 z密钥计算: y选择两个大素数和(典型值为大于10100) y计算 npq 和 z(p-1) (q-1) y选择一个与 z 互质的数,令其为 d y找到一个 e 使满足 ed1 (mod z) y公开密钥为 (e,n),私有密钥为 (d,n) z加密方法: y将明文看成一个比特串,将其划分成若干个数据块P ,并有0Pn 。对每个数据块P,计算CPe (mod n) 。 z解密方法: y对每个密文块C,计算PCd (mod n) 。 RSA算法示例 z 密钥计算: y取p3,q11 y则有n33,z20 y7和20没有公因子,可取d7 y解方程7e1(mod 20),得到e3 y公钥为(3, 33),私钥为(7, 33 z 加密: y若明文为M4,则密文CMe (mod n)43 (mod 33)31。 z 解密: y计算MCd (mod n)317(mod 33)4,恢复出原文。 2.3 消息鉴别 z 一个消息被称为是可信的,如果它是真实的并且来自声 称的源。 z 消息鉴别:允许通信各方检验收到的消息是否可信的过 程。 z 消息鉴别涉及两个方面: y数据起源鉴别 y数据完整性检查 z 将消息鉴别与数据保密相分离: y发送者用明文发送消息,并在消息后面附上一个标签,允许接 收者利用这个标签来鉴别消息的真伪。 消息鉴别的实现 z 消息鉴别标签必须能够验证消息的完整性,并且是可信 的,即不可能被伪造。 z 消息的完整性可用消息的数字指纹(消息摘要)来保护 : y将一个散列函数作用到一个任意长的消息m上,生成一个固定 长度的散列值H(m),这个散列值称为消息摘要(MD)。 z 生成消息鉴别标签的三种方法: y发送方先计算报文的消息摘要,然后用与接收方共享的秘密密 钥加密消息摘要,形成消息鉴别标签。 y发送方先计算报文的消息摘要,然后用发送方的私钥加密消息 摘要。(这实际上是数字签名) y发送方用一个加密散列函数(cryptographic hash function)来计 算消息摘要,即MD=H(KAB|m)。 散列函数的特性 z 用于消息鉴别的散列函数H必须满足以下特性: yH能够作用于任意长度的数据块,并生成固定长度的输出。 y对于任意给定的数据块x,H(x)很容易计算。 y对于任意给定的值h,要找到一个x满足H(x)=h,在计算上是不可能 的。(单向性) y对于任意给定的数据块x,要找到一个yx并满足H(y)=H(x),在计算 上是不可能的。 y要找到一对(x, y)满足H(y)=H(x),在计算上是不可能的。 z 满足前四个特性的散列函数称为弱散列函数,满足所有五 个特性的散列函数称为强散列函数。 散列函数标准 z 目前使用最多的两种散列函数是: yMD5:接受任意长度的消息作为输入,输出128比特的消息摘 要;安全性较弱。 ySHA-1:接受长度不超过264比特的输入消息,输出长度为160比 特的消息摘要;安全性较MD5高。 z 目前获得最多支持的加密散列函数方案为HMAC,已应 用到许多安全协议中。 2.4 数字签名 z 一个替代手写签名的数字签名必须满足以下三个条件: y接收方通过文件中的签名能够鉴别发送方的身份。 y发送方过后不能否认发送过签名的文件。 y接收方不可能伪造文件的内容。 z 基于报文加密进行鉴别 y发送方用自已的私钥及发送方的公钥加密整个报文。 y对公开密钥算法的额外要求是,必须满足 E(D(P)P。 z 将鉴别和数据保密相分离: y发送方先计算报文的消息摘要,然后用自己的私钥加密消息摘 要,形成数字签名。 基于报文加密进行鉴别 典型的数字签名方法 3. 通信安全 zIP安全协议(IPSec) z虚拟专用网VPN z防火墙 3.1 IP安全协议 z IPSec是指IETF以RFC形式公布的一组安全IP协议集。 z IPSec提供了一个用于集成多种安全服务、加密算法及 安全控制粒度的安全体系结构框架; yIPSec提供的安全服务主要包括访问控制、无连接完整性、数据 起源认证、抗重放攻击、机密性等;安全服务全都基于对称密 钥加密以获得高性能。 yIPSec的安全机制都是独立于算法的,这样在选择和改变算法时 不会影响其它部分的实现。 yIPSec提供多种安全控制粒度:一条TCP连接上的通信,一对主 机间的通信,一对安全路由器之间的所有通信。 IPSec的组成 z从技术上说,IPSec主要包括两个部分: yIPSec安全协议:包括AH和ESP两个安全协议,定义 了用于安全通信的IP扩展头和字段以提供机密性、完 整性和源鉴别服务。 y密钥管理协议IKE:定义了通信实体间进行身份鉴别 、协商加密算法以及生成共享会话密钥的方法。 z 将以上两部分绑定在一起的是称为安全关联(SA)的 抽象。 安全关联SA z SA是通信对等实体之间对某些要素的协定,如使用的 安全协议、协议的操作模式、使用的密码算法、密钥及 密钥的生存期等。 z SA是两个通信端点间的一个单工连接,由一个安全参 数索引(SPI)唯一标识,如果在两个方向都需要安全 通信,则需要建立两个SA。SPI携带在数据包中,由数 据包的处理进程用来查找密钥及相关信息。 z SA可以建立在一对主机之间、一台主机与一个安全网 关之间、或一对安全网关之间。 IPSec的使用模式 z 传输模式:IPSec头被插入到原始IP头和传输层头之间, 因特网中的路由器根据原始IP头转发分组。 z 隧道模式:整个原始数据包被封装在一个新的IP包中, IPSec头被放在新的IP头和原始IP头之间,因特网中的路 由器根据外层IP头的信息转发分组。隧道的端点(外层IP 头中的地址)通常是一个支持IPSec的安全网关。 z 两种模式的比较: y传输模式比隧道模式占用较少的带宽; y隧道模式可隐藏内部网络的细节;内部网络上的主机可以不运行 IPSec,它们的安全性由安全网关来保证;隧道模式也可将一束 TCP连接聚合成一个加密流,从而有效地防止入侵者进行流量分 析。 IPSec的使用模式图示 鉴别头部协议AH zAH头结构: AH提供的服务 zAH提供无连接完整性、数据起源认证和 抗重放攻击,但不提供机密性服务。 yHMAC覆盖数据包的载荷部分,因而可提供 无连接完整性服务。 yAH中有序号,且被HMAC覆盖,因而可抵 抗重放攻击。 yHMAC覆盖原始IP头中的不变域(传输模式 )或整个原始IP头(隧道模式),因而可提 供数据起源认证。 封装安全载荷协议ESP zESP数据包结构: ESP在传输模式和隧道模式中的位置 ESP提供的服务 z ESP提供数据机密性、无连接完整性、抗重放攻击、数 据起源鉴别和有限的数据流机密性服务。 y原始数据包的载荷部分被加密,因而可提供数据机密性服务。 yHMAC覆盖数据包的载荷部分,因而可提供无连接完整性服务 。 yESP头中有序号,且被HMAC覆盖,因而可以抵抗重放攻击。 yESP隧道模式中,原始IP头也被HMAC覆盖,因此ESP隧道模式 可提供数据起源鉴别。 yESP隧道模式中,原始IP头也被加密,因特网中的路由器只能 看到外层IP头,因而ESP隧道模式可提供数据流机密性服务。 z ESP隧道模式下鉴别和加密服务所提供的安全性强于 ESP传输模式;ESP传输模式下鉴别服务所提供的安全 性不如AH传输模式。 3.2 虚拟专用网VPN z专用网: y通过电信专线将分散在各地的计算机(网络)连接而 成的网络。 y安全性好,但代价高。 z虚拟专用网: y建立在公用网上的一个覆盖网络(overlay),具有专 用网的大部分特性。 专用网和虚拟专用网 虚拟专用网的实现 z VPN的典型结构: y在每个局域网上设置一个安全网关,在每一对安全网关间创建 一条穿过因特网的隧道,在隧道中使用IPSec。 y系统建立时,每一对安全网关协商它们的SA参数,此后在它们 之间传输的数据流就被绑定到这个SA上。 z VPN的优点: y可以在一对局域网间提供完整性控制及机密性服务,甚至对流 量分析也有相当的抵御能力。 y对因特网中的路由器及用户软件是透明的,只要系统管理员设 置好安全网关就可以了,安全网关会自动建立和管理SA。 z 防火墙、VPN和IPSec(特别是隧道模式下的ESP)是实 践中最常见的组合。 3.3 防火墙 z防火墙:在可信的内部网络(专用网络)与不 可信的外部网络(公用网络)之间执行访问控 制策略的一个或一组系统(包括硬件和软件) ,目的是保护内部网络免受来自外部网络的攻 击。 z从本质上说 ,防火墙提供可控的通信过滤服务 。 z防火墙的设计目标: y所有进出网络的流量必须通过防火墙 y只允许合法的流量通过防火墙 y从理论上说,防火墙是穿不透的。 防火墙的典型结构 z由两个分组过滤路由器和一个应用网关组成: y分组过滤路由器:利用 IP头及传输层报头的某些域 过滤分组。 y应用网关:根据应用层的信息(应用层协议的域、 报文内容等)过滤分组。 y两个分组过滤路由器分别位于外网和内网上并通过 应用网关相连,迫使每个分组必须通过应用网关的 检查。 y应用网关通常运行在一个独立的计算机系统(称堡 垒主机)上,堡垒主机必须是非常安全的。 防火墙典型结构 防火墙的基本机制 z分组过滤: y分组过滤路由器按照配置的访问控制列表(ACL) 转发或丢弃分组。 y分组过滤通常基于分组的以下域进行:源/目的IP地 址,源/目的传输层端口,协议字段。 y优点:运行速度快。 y缺点: x控制粒度粗,无法基于用户的身份或消息的内容进行过滤 。 x内部主机地址暴露。 防火墙的基本机制(续) z 应用代理: y代理是运行在堡垒主机上的特定应用程序或服务程序,其作用 是在用户与外部服务器之间中继应用层流量。 y用户并不与外部服务器建立直接的TCP连接,用户只与堡垒主 机建立连接,而堡垒主机与外部服务器建立连接。 y优点: x外部服务器只能看到堡垒主机,内部网络细节对外是完全屏蔽的 。 x能够实现基于用户身份的流量过滤。 x能够实现基于内容的过滤。 x内部网络可以使用私有地址,只要几个公共可访问的服务器使用 公共地址即可。 y缺点:必须为每一个支持的应用安装代理,每一个应用会话都 必须被代理,处理开销大,对网络速度的影响较大。 防火墙的局限性 z防火墙不能抵抗以下攻击: y伪造数据包的源地址,以逃过地址过滤。 y对文件进行加密或将文件扫描成JPEG文件, 以逃过字符过滤器的检查。 y来自防火墙内部的攻击。 y拒绝服务(DoS)攻击 y 4. 鉴别服务 z鉴别:用来验证通信对方身份的一种技术。 z鉴别协议:通过一系列的消息交换确认通信双 方的身份,并建立起会话密钥。 z两个重要的鉴别标准: yKerberos:基于对称密码技术的鉴别协议,目前已获 得广泛支持并用于许多系统中; yX.509鉴别服务:基于公钥加密技术的鉴别服务。 4.1 Kerberos zKerberos要解决的问题: y在一个开放的分布式环境中,工作站用户要 访问分布在网络中的应用服务器,我们希望 应用服务器只被授权用户访问。 zKerberos的解决方案: y为减轻应用服务器的负担,Kerberos提供一 种集中式的鉴别服务,由网络中的一台或几 台鉴别服务器专门为用户和服务器提供双向 鉴别服务。 一个简单的鉴别方案 z 一个鉴别服务器(称为AS)知道网络中所有用户的口 令,并将这些口令保存在一个集中式的数据库中。 z AS与每个应用服务器有一个不同的共享密钥,这些密 钥已通过某种安全方式分发到每一个服务器上。 z 用户在工作站上向服务器V请求服务,以下是一个简单 的鉴别过程: (1) CAS:IDC | PasswordC | IDV (2) ASC:Ticket;Ticket = EKv IDC | ADC | IDV (3) CV: IDC | Ticket z 以上鉴别方案的缺点: y每请求一次服务就要输入一次口令,以获得一个票据. y用户口令用明文发送,不安全。 一个更安全的鉴别方案 z 引入一个授予票据服务器TGS,专为那些经过AS鉴别的 用户签发票据。 z 客户进程首先为用户向AS请求一个准予票据的票据 Tickettgs,并将得到的Tickettgs保存在本地。 z 每当用户请求一个新的服务时,客户进程为用户向TGS 请求一个访问该服务的票据,Tickettgs被客户进程用来向 TGS表明用户的身份。 z TGS为用户签发一个访问特定服务器的票据,客户进程 将每个准予服务票据保存在本地。 z 每当用户请求一个特定服务时,客户进程用相应的准予 服务票据向服务器发出请求。 一个更安全的鉴别方案(续) 用户每次登录时执行(1)和(2) (1)CAS:IDC | IDtgs (2)ASC:EKc Tickettgs; Tickettgs = EKtgs IDC | ADC | IDtgs| TS1| Lifetime1 用户每次请求一种新的服务时执行(3)和(4) (3) CTGS: IDC | IDV | Tickettgs (4)TGSC:Ticketv;Ticketv = EKv IDC | ADC | IDV | TS2| Lifetime2 用户每次请求一个服务时,执行(5) (5)CV: IDC | Ticketv z 问题: yTickettgs及Ticketv中的生存期设置多长? y用户可能也需要鉴别服务器。 Kerberos V4的鉴别过程 鉴别服务交换:获取Tickettgs (1) CAS:IDC | IDtgs | TS1 (2) ASC:EKc Kc,tgs | IDtgs | TS2 | Lifetime2 | Tickettgs Tickettgs = EKtgs Kc,tgs | IDC | ADC | IDtgs | TS2| Lifetime2 授予票据服务交换:获取TicketV (3) CTGS:IDv | Tickettgs | AuthenticatorC Authenticatorc = EKc,tgs IDC | ADC | TS3 (4) TGSC:EKc,tgs KC,V | IDv | TS4 | Ticketv TicketV= EKv KC,V | IDC | ADC | IDv | TS4| Lifetime4 客户/服务器鉴别交换:获得服务 (5) CV:TicketV | Authenticatorc (6) VC:EKc,v TS5 + 1(用于相互鉴别) Authenticatorc = EKc,v IDc | ADC | TS5 Kerberos v4鉴别过程示意图 Kerberos域 z Kerberos域是由一个Kerberos服务器、许多应用服务器 和许多客户组成的一个全服务Kerberos环境,且满足以 下两个条件: yKerberos服务器的数据库中有所有用户的ID和(散列的)口令 ,所有用户都向Kerberos服务器注册; yKerberos服务器与每个应用服务器有一个共享的密钥,所有应 用服务器都向Kerberos服务器注册。 z Kerberos提供了一种支持域之间鉴别的机制,两个支持 域间鉴别的域必须满足第3个条件: y每个互操作域中的Kerberos服务器必须与另一个域中的Kerberos 服务器共享一个密钥;两个Kerberos服务器相互注册。 Kerberos域之间的鉴别过程 4.2 X.509 z 公开密钥体系避免了密钥分发的问题,但却需要解决另 一个困难的问题,即如何可靠地发布公钥。 z 证书被用来证明某个主体拥有某个公钥,颁发证书的机 构称为认证权威CA。 z X.509是国际电信联盟推出的一个建议,它定义了证书 的结构和基于公钥证书的鉴别协议。 z X.509建立在公开密钥算法和数字签名的基础上,数字 签名方案要求先使用一个散列函数。 X.509证书 z 证书的主要作用是将一个公钥绑定到一个主体的名字上 。 z 证书包含主体的公钥,并由一个可信任的CA签名,任何 人无法篡改证书的内容,因而可将证书放在任何可公开 访问的地方。 z 证书还可以将一个公钥绑定到一个属性上,在安全控制 中常常基于属性而不是单个的主体授予对资源的访问权 限。 z 对证书持有者的鉴别: y随机选取一个大数,用证书中的公钥加密后发送给请求者。 y请求者用私钥解密后将这个随机数返回。 y检查这两个数是否相同,相同则说明请求者拥有这个证书。 X.509证书格式 字段含义 VersionX.509版本号 Serial number证书序列号,与CA名字一起唯一标识一个证书 Signature algorithm签名该证书使用的算法及相关参数(与Signature重复) Issuer签发该证书的CA的X.500名字 Valid period证书有效期的起止时间 Subject name主体名字,证书被颁给的对象 Public key与主体绑定的公钥、使用该公钥的算法名字及相关参数 Issuer ID唯一标识CA的一个可选的ID Subject ID唯一标识主体的一个可选的ID Extensions一个或多个扩展字段(X.509v3才有) Signature签名该证书使用的算法、相关参数及证书签名。证书签名 覆盖证书的所有内容 公钥证书的验证 z为验证公钥证书的真实性: y用CA的公钥解开证书的签名,得到证书内容的消息摘 要。 y对收到的证书内容计算消息摘要,并与解密得到的消 息摘要进行比较,两者相同表明这是合法的公钥证书 。 公钥基础设施PKI z PKI由用户、CA、证书和目录等要素组成,提供了一 种组织这些要素的方法,并为各种文档和协议制订标 准。 z PKI的最简单形式是分级CA结构。 PKI(续) z 信任链(证书路径):从叶结点到根CA的证书系列。 z 信任锚:信任的始点,系统中所有实体都以根CA的公 钥作为信任锚,信任锚必须通过安全的带外方式来安装 。 z 谁可以运行根CA:实践中采用分布式信任结构,用户 可以自行决定信任哪个根CA,所有根CA进行交叉认证 。 z 证书存放在哪里:使用DNS作为证书目录,或使用专门 的目录服务器存放证书。 z 每个证书都有有效期,过期后自动失效;CA也可以显 式地撤销证书。 X.509鉴别服务 z 单向鉴别(one-way authentication) y涉及一个用户到另一个用户的一次消息传输,只鉴别发送者身份 : AB:tA |rA| IDB | sgnData | EKUbKab | signatureA z 双向鉴别(two-way authentication) y允许通信的双方相互鉴别: AB:tA | rA | IDB | sgnData | EKUb Kab | signatureA BA:tB | rB | IDA | rA| sgnData | EKUaKba | signatureB z 三向鉴别(three-way authentication) AB:tA | rA | IDB | sgnData | EKUb Kab | signatureA BA:tB | rB | IDA | rA| sgnData | EKUaKba | signatureB AB:rB | signatureA 5. 电子邮件安全 z电子邮件的安全包括真实性和机密性两个方面 。 z目前最流行的两个安全电子邮件协议: yPGP:一个开放源码的安全电子邮件软件包,提供对 邮件的保密、鉴别、数字签名和压缩服务;PGP较多 地用于个人电子邮件安全。 yS/MIME:基于公钥加密技术对MIME所做的安全扩 充;S/MIME较可能作为一种工业标准被商业组织或 一些机构使用。 5.1 Pretty Good Privacy(PGP) zPGP提供五种服务: y鉴别,机密性,压缩,兼容电子邮件,分段 z鉴别: yPGP使用基于公开密钥的数字签名提供鉴别服务. y过程: x发送方创建电子邮件(消息); x用SHA-1计算邮件的消息摘要,然后用发送者的私钥加密消 息摘要,形成数字签名; x将数字签名附在消息的前面,与消息一起发送: Sgn | Data yPGP支持签名与消息的分离。 PGP的机密性服务 z 机密性: yPGP使用对称密钥算法保护邮件的机密性,一次性会话密钥用接 收方的公钥加密后,与消息一起发送给接收方。 y仅使用机密性服务的过程: x发送方A生成一个消息和一个随机的128比特数(会话密钥) ; x先用会话密钥加密消息,再用接收方B的公钥加密会话密钥 ; x将加密后的会话密钥放在消息前面,与消息一起发送: EKUb(KAB) | EKAB(Data) y同时使用鉴别和机密性服务的过程: x发送方对明文消息计算一个签名,将签名加在消息的前面; x用会话密钥对签名和明文消息一起加密; x用接收方的公钥加密会话密钥,放在消息的前面。 EKUb(KAB) | EKAB (Sgn | Data) PGP的压缩服务 z压缩 y缺省地,PGP在完成签名之后、在加密消息之前对消 息进行压缩,压缩算法采用ZIP: EKUb(KAB) | EKAB (Zip (Sgn | Data) y在压缩消息之前计算数字签名,是为了方便日后对 消息的验证。 y在加密消息之前进行压缩,一方面可以减少要加密 的数据量,另一方面压缩后的消息冗余很少,增加 密码分析的困难。 PGP的兼容电子邮件服务 z兼容电子邮件 yPGP使用基64编码将二进制数据流转换成可打印 ASCII文本,以解决邮件的传输问题。 yPGP可被配置为仅对消息中的某些部分(如签名部分 )进行基64编码转换。 y使用前面4种服务的消息处理过程: x发送方先对明文消息计算一个签名,将签名放在消息前面 ; x签名与明文一起被压缩; x用会话密钥对压缩后的数据块进行加密; x用接收方的公钥加密会话密钥,放在消息的前面; x将整个数据块转换成基64编码格式。 EncodeBase64(EKUb(KAB) | EKAB (Zip (Sgn | Data) PGP的邮件分段服务 z分段 y许多电子邮件系统能够接收的最大消息长度不超过 50,000字节。 yPGP在完成对消息的全部处理后,自动将超过长度的 消息分成小块传输,会话密钥和签名只在第一个片 段中出现。 y接收端去掉每个片段的信头,然后将所有的片段重 新组装成一个数据块。 PGP的密钥管理 zPGP使用4种密钥:一次性会话密钥,公开密钥 ,私有密钥,基于短语的对称密钥。 z对密钥的要求: y一次性会话密钥必须是不可预测的。 y用户可以同时拥有多个公钥/私钥对,因而需要有一 种方法来标识不同的密钥。 y每个PGP实体必须维护两个文件,一个文件保存自己 的公钥/密钥对,另一个文件保存它所知道的所有其 他人的公钥。 一次性会话密钥的产生 z以CAST-128加密算法为例,会议密钥的产生过 程如下: y将一个128比特的密钥和两个64比特的数据块输入一 个随机数生成器,这两个64比特的数据块作为明文 被加密,生成的两个64比特密文块串接在一起形成 128比特的会话密钥。 y作为明文的128比特数据来自用户键盘输入产生的随 机数流(击键的时间及键值被用来产生这些随机数 )。 y这个随机输入与CAST-128前一次输出的会话密钥相 结合,形成随机数生成器使用的加密密钥。 密钥标识 zPGP用公钥的最低64比特作为公钥的ID,用户 ID和密钥ID(几乎)可以唯一地标识一个密钥 。 z实际上,消息的签名部分包括4个字段: y生成签名的时间戳 y数字签名 y消息摘要的前两个字节 y发送者公钥的ID z消息的会话密钥也包含2个字段: y用接收者公钥加密的会话密钥 y接收者公钥的ID 密钥环 z PGP在每个节点上用私钥环和公钥环来保存密钥。 z 私钥环 y用于保存用户自己的公钥/私钥对,由用户ID或密钥ID索引。 y私钥是用CAST-128(或IDEA,3DES)加密后再放入私钥环的: x用户选择一个用于加密私钥的短语 x当系统生成一个公钥/私钥对时,要求用户输入一个短语,然后用 SHA-1得到该短语的散列码(160比特),将短语丢弃。 x系统用散列码中的128比特作为密钥,采用CAST-128算法对私钥进 行加密,然后将散列码丢弃。 y当用户想从密钥环获取一个私钥时,他必须提供相应的短语。 PGP计算短语的散列码,从中得到密钥,然后解密私钥。 z 公钥环 y用于保存其他用户的公钥,由用户ID或密钥ID索引。 y每一项对应一个公钥证书,包括公钥信息和公钥管理信息。 公钥管理 z PGP使用以用户为中心的信任管理模型: y依靠用户产生并分发他们的公钥, y用户之间相互签发证书,一个用户可以让多人为他签发证书。 y用户根据自己对证书签发者的信任程度来决定是否信任该证书 。 z 公钥环中的每个表项包括密钥合法性、证书签名、 签 名信任、拥有者信任等字段: y密钥合法性:指示PGP信任该公钥的程度,从该表项的签名信 任集合计算得到。 y签名信任:每个证书签名与一个签名信任关联,表示PGP用户 信任签名者对该公钥签名的程度。 y拥有者信任:表示PGP用户对该公钥的持有者(即用户ID)对 其它公钥所签名的信任程度,该值由PGP用户指定。 信任计算 z 当用户将一个新的公钥加入公钥环时,PGP为该表项的 拥有者信任字段指定一个值,如 “最大信任” 、“用户未 知”、“通常不信任”、“通常信任”、“总是信任”等。 z 当将一个签名加入表项时,PGP搜索公钥环;若是某个 已知公钥持有者的签名,其签名信任值就是签名者的拥 有者信任值,否则签名信任值为“未知用户”。 z 根据表项的签名信任集合计算密钥合法性 y如果签名集中至少有一个签名的签名信任值为“最大信任”,则密 钥合法性为“完全可信”。 y否则,PGP计算所有签名信任值的一个加权和;如果所有签名信 任的加权和达到1,设置密钥合法性为“完全可信”。 公钥环维护 z公钥环维护是一个从上到下的过程: yPGP检查每个公钥的拥有者信任字段,从拥有最大信 任的公钥开始,扫描整个公钥环寻找选定公钥的拥 有者的签名。 y将该公钥的每个签名的签名信任值更新为其拥有者 信任值。 y当公钥环中所有的签名信任字段都更新完成后,重 新计算所有公钥的密钥合法性。 公钥撤销 z公钥拥有者发布一个带有自己签名的公钥撤销 证书,然后在尽可能大的范围内尽可能快地分 发这个证书。 z撤销公钥是整个系统最薄弱的环节。由于公钥 的分发及公钥撤销证书的分发都是非正式的, 因此不能保证知道这个公钥的用户都能及时收 到公钥撤销证书。 z由于公钥撤销证书需要用户的签名,如果用户 丢失了自己的私钥,则无法撤销公钥。 5.2 Secure/MIME z S/MIME提供以下功能: y数据加密(enveloped data):对消息内容及加密内容所用的加密 密钥进行加密。 y数据签名(signed data):对消息内容计算消息摘要,用发送者 的私钥加密消息摘要,最后对内容和签名采用基64编码进行转换 。 y清晰的数据签名(clear-signed data):与signed data不同的是, 只对数字签名使用基64编码。 y数据签名和加密(signed and enveloped data):加密的数据可以 被签名,签名或清晰签名的数据可以被加密。 z S/MIME定义了几种新的MIME内容类型: yEnvelopedData,SignedData,Dlear Signing,Registration Request ,Certificates-Only Message S/MIME使用的算法 z公开密钥算法 yDSS(Digital Signature Standard):首选的数字签名 算法。 yDiffie-Hellman:首选的用于加密会话密钥的算法。 yRSA:既可用于数字签名,也可用于加密会话密钥 。 z散列函数: y要求使用SHA-1。 y推荐接收方支持MD5以与较早版本的S/MIME兼容。 z数据加密算法: y建议使用3DES。 y遵从美国出口控制的S/MIME实现必须支持40比特的 RC2。 加密算法的协商 z 发送代理按照优先级从高到低的顺序通报它的解密能力 (支持的加密算法),接收代理保存这些信息供日后使 用。 z 发送代理按照以下顺序与原则进行决策: y如果发送代理有接收代理的解密能力表,应当选择列表中它能够 使用的最高选择。 y如果没有接收代理的解密能力表,但从接收方收到过一个或多个 消息,则输出消息应使用最近一次收到的被签名和加密的消息中 所用的加密算法。 y如果不知道接收代理的解密能力,但愿意承担接收代理可能无法 解密消息的风险,应当使用3DES。 y如果不知道接收代理的解密能力,并且不愿意承担接收代理可能 无法解密消息的风险,必须使用RC2/40。 S/MIME的公钥管理 z S/MIME使用符合X.509v3标准的公钥证书。 z S/MIME的公钥管理方案介于严格的X.509证书等级和 PGP的信任网络之间: y和PGP类似,S/MIME管理员(或用户)必须为每个 客户配置一个可信任的公钥列表和证书撤销表,也就 是说维护公钥证书的责任在本地。 y和PGP不同的是,S/MIME的公钥证书由认证权威签 发。 6. Web安全 z针对Web应用的安全攻击,按照主动攻击与被 动攻击分类: y被动攻击:监听浏览器与服务器之间的网络流量。 y主动攻击:假冒他人,修改网络中传输的数据,修 改网站上的信息等。 z按照攻击发生的位置分为: y针对Web服务器的攻击 y针对Web浏览器的攻击 y针对浏览器与服务器之间的网络流量的攻击 提供Web安全的方法 6.1 SSL/TLS z SSL依靠TCP提供可靠的端到端连接。 z SSL涉及到两个层次的一组协议: ySSL记录协议:为各种高层协议(如HTTP)提供基本的安全服务。 y其它三个高层协议:用于SSL交换管理。 SSL会话与SSL连接 zSSL会话: y客户和服务器之间的一个关联,由SSL握手协议创建 。 ySSL会话定义了一组安全参数,这组安全参数可在多 个SSL连接间共享。 zSSL连接: y对等实体间的一种联系。 ySSL连接是暂时的,每个SSL连接与一个SSL会话关联 。 SSL记录协议 z SSL记录协议为SSL连接提供两种服务: y机密性:通过加密SSL载荷实现。 y完整性:通过消息鉴别码保护。 z SSL记录协议的操作过程: y从上层接收一个要传输的应用消息,将消息划分成长度不超过 214字节的数据块。 y(可选)对数据块进行压缩。 y使用加密散列函数对数据块计算消息鉴别码。 y使用对称密钥算法对(压缩的)数据块及消息鉴别码进行加密 ,加密算法可以是DES、3DES、IDEA、RC等。 y在处理完的数据块前加上SSL头中,包括内容类型、SSL版本号 、压缩数据块的长度等。 SSL握手协议 z SSL握手协议允许服务器和客户之间相互鉴别,并协商 加密算法、MAC算法及密钥等。 z 握手协议由客户和服务器之间的一系列消息交换组成: y浏览器向服务器发送建立SSL会话的请求消息,说明可支持的 SSL协议的最高版本、会话ID、支持的加密算法(按优先级从 高到低排列)和压缩方法等,还包含浏览器选择的一个随机数 Rc。 y服务器从浏览器给出的选择中确定合适的SSL版本号、加密算 法和压缩方法,连同服务器选择的一个随机数Rs一起发给浏览 器。 y服务器向浏览器发送它的公钥证书(和必要的证书链)以及其 它消息,通知客户发送结束。 y浏览器检查签发证书的CA是否在浏览器的可信CA列表中,如 果不在则向用户警告该问题,如果在则使用该CA的公钥来验证 证书,得到服务器的公钥。 SSL握手协议(续) y如果客户也需要被鉴别(收到服务器的证书请求消息),则浏 览器向服务器发送它的公钥证书。 y浏览器生成一个48字节的随机数,称预密钥(premaster key) ,用服务器的公钥加密后发送给服务器。 y客户和服务器各自从预密钥、Rc和Rs中计算加密数据时使用的 会话密钥。 y浏览器向服务器发送一个消息,通知它后面的消息都用这个会 话密钥加密,然后发送一个用协商的算法及密钥加密的消息, 指示握手协议的浏览器部分完成。 y 服务器向浏览器发送一个消息,通知它后面的消息都用这个会 话密钥加密,然后发送一个用协商的算法及密钥加密的消息, 指示握手协议的服务器部分完成。 6.2 SET z SET是为保护因特网上的信用卡交易而设计的开放标准 。 z 通过因特网的信用卡安全支付必须满足以下商业需求: y确保持卡人的订单信息及支付信息是保密的 y确保网络中传输的所有数据是完整的 y有能力鉴别持卡人是否为信用卡帐户的合法用户 y有能力鉴别商家是否允许进行信用卡交易。 z SET能够满足以上的商业需求: y通过加密持卡人的订单信息及支付信息提供机密性服务 y通过数字签名提供数据完整性服务 y使用X.509v3数字证书提供对持卡人及商家的鉴别服务 z SET使用DES进行数据加密,使用SHA-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工布线合同协议
- 试剂耗材合同协议
- 石料用工合同协议
- 挖机合作合同协议
- 正规水泥合同协议
- 热力供用合同协议
- 筛沙加工合同协议
- 芝麻进口合同协议
- 银行服务合同协议
- 运输佣金合同协议
- GB/T 24008-2024环境影响及相关环境因素的货币价值评估
- 化学计量学与化学分析技术考核试卷
- 2024关于深化产业工人队伍建设改革的建议全文解读课件
- 人教pep版小学英语三年级下册【全册】单元测试卷期中期末复习试卷
- 电梯维保工程施工组织设计方案
- 低压配电系统运行维护操作手册
- 高职药学专业《药物制剂技术》说课课件
- 低碳环保管理制度
- 2024年宪法知识竞赛必考重点知识(共50个)
- 急诊科提高出诊车物品放置规范率PDCA项目
- 2024年江苏省淮安市中考一模物理试题(含答案解析)
评论
0/150
提交评论