Presentation is loading. Please wait.

Presentation is loading. Please wait.

安全协议理论与方法 第一章 引论.

Similar presentations


Presentation on theme: "安全协议理论与方法 第一章 引论."— Presentation transcript:

1 安全协议理论与方法 第一章 引论

2 1.1 密码体制 Key=K Key=K-1 明文P 密文 C 明文P 发送者 接收者 加密 解密 图1.1 加密与解密

3 保密性服务主要用于防止被动攻击,也是实现其他安全服务的重要基础。
密码技术是实现保密性服务的主要手段,因此密码技术是信息安全核心技术。 一个密码体制决定了一对数据变换,分别称为加密变换和解密变换(也称加密和解密)。密码体制的基本要素是密码算法和密钥。密码算法是一些公式、法则或程序;密钥是密码算法中的控制参数。

4 对称密钥密码体制 对称密码技术是最普及的数据加密标准和方法。其中DES算法应用 最为广泛。 DES算法的特点是什么? 密钥如何安全传递共享?

5 公钥密码体制 非对称密码体制特点: 加密能力与解密能力是分开的:数据加密和解密使用不同的密钥,从而构成了不对称体制。加密密钥可以公开,算法也可以公开,只要求解密密钥保密 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的 两个密钥中任何一个都可以用作加密而另一个用作解密(不是必须的):X = DKR(EKU(X)) = EKU(DKR(X)) 密钥分发简单 需要保存的密钥量大大减少,N个用户只需要N对 可满足不相识的人之间保密通信 可以实现数字签名 基于数学函数(数论)而不是基于替换和置换,

6 公钥应用---数字签名 1) 签名者事后不能否认自己的签名。 2) 接收者能验证签名,而任何其他人都不能伪造签名。
3) 当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

7 用户A把自己的公钥发给B( 如需要,可发给所有相关的人) 鉴别: A→B(或所有的人):
基于公开密钥的鉴别(数字签名) 用户A把自己的公钥发给B( 如需要,可发给所有相关的人) 鉴别: A→B(或所有的人): B(或所有的人):

8 二、公钥密码的应用模式 基于公开密钥的鉴别过程

9 二、公钥密码的应用模式 鉴别+保密 A用其私钥加密,得到数字签名,然后,再用B的公钥加密

10 几种新型的数字签名方案 1.高效可验证的安全数字签名 2.防止适应性攻击的门限签名 3.面向流信息的数字签名 4.不可否认数字签名

11 Hash函数 密码学上的Hash函数定义: 一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 1. 强碰撞自由的Hash函数
--系列Hash函数,如MD2、MD4和MD5算法. --美国政府的安全Hash标准(SHA-1).

12 不安全信道 Hash函数 Hash函数 签名者对h(x)签名 签名者验证y是否为H(x)的签名 不安全信道 使用Hash函数的数字签名方案

13 密钥管理内容 所有的密码技术都依赖于密钥。所以密钥管理本身是保证安全性的关键点。 密钥管理的目的:
维持系统中各实体之间的密钥关系,以抗击各种可能的威胁: – 密钥的泄露 – 秘密密钥或公开密钥的身份真实性丧失 – 未经授权使用 密钥管理的原则: – 密钥难于窃取 – 密钥有使用范围和时效 – 密钥的分配和更换过程对用户透明,用户不一定要掌管密钥 密钥管理方法:因所使用的密码体制(对称密码和公钥密码体制)而异。 密钥生命周期:密钥管理是指在一种安全策略指导下密钥的产生、存储、使用,更新,删除等处理,涵盖了密钥的整个生命周期

14 密钥管理内容 密钥生命期: 一个密钥使用太久会给攻击者增大收集密文的机会,有助于密码分析。

15 密钥的分配技术 密钥分配中心方式(KDC,Key Distributed Center) 1、对称密码体制的密钥分配(协议)
主要解决在不安全的通信信道中传递对称密钥的方法 密钥分配中心方式(KDC,Key Distributed Center) 这是一种集中式分配体制,如Kerboros协议 这种模式需要每个用户与中心共享一个主密钥 设A要与B建立一个逻辑连接,需要用一个一次性会话密钥来 保护数据传输;A和B各自有一个与中心共享的主密钥: ⑴ A向KDC请求一个与B的会话密钥,为此,A向KDC发送A和B的标识及临时交互号(nonce), nonce可以是一个时间戳、计数值或随机数,它每次会话都不同,且对攻击者保密。 ⑵ 作为响应,KDC以用 加密的消息发给A,其中 和 是给A的; 和 是给B的。

16 密钥的分配技术 ⑶ A向B发送 ,B由此知道通话伙伴A,并知道 这些消息来自KDC ⑷ B发送 的密文给A
密钥分配只包含前3步,后3步起了认证作用 最后两步保证了B收到的不是一个重放 对于大规模网络,可以使用层次式的KDC

17 密钥的分配技术 基于公钥密码体制的对称密钥分配 公钥密码体制未必在通讯中直接使用,但却很合适用于对称密钥分配 简单的密钥分配

18 密钥的分配技术 具有保密和鉴别能力的分配

19 密钥的分配技术 Diffie-Hellman密钥交换(离散对数方法 ) A、B各有一私有密钥,xA 和xB ,
设:用户A和B,共享α和P,α是原本,P是大素数。 A、B各有一私有密钥,xA 和xB , A、B分别计算YA 和YB : A,B交换计算结果 双方计算出共享的会话密钥为: 不能避免中间人攻击 用户的密钥可事先公布,以减少一次交换操作。但从安全考虑,用户的密钥应临时生成。 严格讲是一个密钥交换协议,而不是分配协议

20 密钥的分配技术 智能卡方式 智能卡将RSA与Diffie-Hellman协议相结合,通过KDC分配可进行密钥管理,而平时使用密钥时不需要KDC。 整个系统有一个通信各方均使用的公开密钥,而对应的秘密密钥保留在发卡方,用户持有的是该密钥的一个变形。 设用户I的身份标识为整数IDi, 在RSA体制下,找出整数g为p或q的本原,计算: 将整数组(r,g,Pk,Si)存储在卡中发给用户(其中Si需要保密)

21 密钥的分配技术 需要通信时,基于Diffie-Hellman协议,由智能卡产生一个会话密钥。
用户I和用户J各自产生一个随机数Ri和Rj,分别计算Xi和Xj并连同自己的ID发送给对方: 双方分别计算出共享的会话或工作密钥( Ki=Kj) 需要验证双方的身份时,利用RSA体制可以计算验证对方的ID

22 密钥的分配技术 2、公钥密码体制的密钥分配 公开发布(Public announcement)
公钥密码体制的密钥分配要求与对称密码体制的密钥分配要求有着本质的差别: 当分配一个公钥时,不需要保密性。然而,公钥的完整性或安全性是必需的。 公开发布(Public announcement) 用户将自己的公钥发给其它用户。一般将公钥附加在发送的消息上。 PGP用户就是使用这样的方法。 特点: 1. 实现简单 2. 容易假冒,假冒者冒充A并以A的名义发布公钥,则假冒者可 解读所有发向A的加密信息。

23 密钥的分配技术 公用目录表 建立一个公用的公钥动态目录表。由可信的实体建立、维护和发布。
(Publicly available directory) 建立一个公用的公钥动态目录表。由可信的实体建立、维护和发布。 需要可信任的授权机构维护着动态列表{用户名和用户的公钥} 用户在授权机构注册其公钥(安全通道) 用户可以更换其公钥 授权机构定期发布更新整个目录 用户可在网络上直接访问公共目录(安全通道),获取公钥 特点: 1. 有一定的安全性 2. 目录表容易受到攻击,如攻 击者获取管理员的密钥,就 可伪造目录表。

24 密钥的分配技术 在公钥目录表的基础上,进行更严密的控制。由一个公钥管理机构为用户建立、维护和发布公钥目录表。
公钥授权(Public-key authority) 在公钥目录表的基础上,进行更严密的控制。由一个公钥管理机构为用户建立、维护和发布公钥目录表。 特点: 1. 用户需可靠知道目录管理员的公钥 2. 有一定的安全性 3. 每一用户与其它用户通信,必须借助公钥管理机构, 公钥管理机构可能成为系统的瓶颈。 4. 总共七步,可以不用前四步。但用户应定期的申请 对方的公钥

25 密钥的分配技术

26 密钥的分配技术 • 公钥证书由证书管理机构(CA)为用户建立。 • 公钥证书的数据项: 用户的公钥、用户身份标识和时间戳等。
公钥证书(public-key certificates) 用户通过公钥证书相互交换自己的公钥,而不须与公钥管理机构联系,以解决前述的瓶颈问题。 • 公钥证书由证书管理机构(CA)为用户建立。 • 公钥证书的数据项: 用户的公钥、用户身份标识和时间戳等。 所有数据项经CA的私钥签字后形成证书。 例如用户A的公钥证书 特点: • 泄漏私钥等价于丢失证书 • 证书的时间作为有效期

27 密钥的分配技术 亲自或通过某种安全认证 提供一个公钥并申请自己 的证书 公钥证书交换

28 公钥证明书 绑定实体姓名和相应的公钥. 1) X.509证书。 2) 简单PKI证书。 3) PGP证书。 4) 属性证书。

29 基于X.509证书的PKI 1、完整PKI功能应该包括 认证机构(CA) 注册机构(RA) 公钥证书/证书库/目录 证书注销 密钥备份和恢复
自动密钥更新 密钥历史档案 交叉认证 支持不可否认 时间戳 客户端软件:负责申请证书,检索证书等功能,了解CA的策略 管理协议:用于管理证书的注册、 生效、发布和注销。协议包括PKIX CMP,消息格式,CMMF和PKCS#10 操作协议:方便用户检索验证证书和CRL.大多数情况下,操作协议与现有协议(如FTP,HTTP,LDAP和邮件协议等)共同合作

30 PKI基础 目录服务(Directory Services) 公钥密钥学(Public Key Cryptography) 解决密钥分发.
数字证书(Digital Certificate) 解决公钥和身份的真实绑定 目录服务(Directory Services) 建立全局/局部统一的证书管理 为什么需要数字证书与第三方认证 2. 对PGP来说公匙本来就要公开,就没有防监听的问题。但公匙的发布中仍然存在安全性问题,例如公匙的被篡改(Public Key Tampering),这可能是公匙密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。你必须确信你拿到的公匙属于它看上去属于的那个人。为了把这个问题说清楚,我举个例子,然后再说如何正确地用PGP堵住这个漏洞。   以你和Alice的通信为例,假设你想给Alice发封信,那你必须有Alice的公匙,你从BBS上下载了Alice的公匙,并用它加密了信件用BBS的 功能发给了Alice。不幸地,你和Alice都不知道,另一个用户叫Charlie的用户潜入BBS,把他自己用Alice的名字生成的密匙对中的公匙替换了Alice的公匙。那你用来发信的公匙就不是Alice的而是Charlie的,一切看来都很正常,因为你拿到的公匙的用户名是“Alice”。于是Charlie就可以用他手中的私匙来解密你给Alice的信,甚至他还可以用Alice真正的公匙来转发你给Alice的信,这样谁都不会起疑心,他如果想改动你给Alice的信也没问题。更有甚者,他还可以伪造Alice的签名给你或其他人发信,因为你们手中的公匙是伪造的,你们会以为真是Alice的来信。   防止这种情况出现的最好办法是避免让任何其他人有机会篡改公匙,比如直接从Alice手中得到她的公匙,然而当她在千里之外或无法见到时,这是很困难的。PGP发展了一种公匙介绍机制来解决这个问题。举例来说:如果你和Alice有一个共同的朋友David,而David知道他手中的Alice的公匙是正确的(关于如何认证公匙,PGP还有一种方法,后面会谈到,这里假设David已经和Alice认证过她的公匙)。这样David可以用他自己的私匙在Alice的公匙上签名(就是用上面讲的签名方法),表示他担保这个公匙属于Alice。当然你需要用David的公匙来校验他给你的Alice的公匙,同样David也可以向Alice认证你的公匙,这样David就成为你和Alice之间的“介绍人”。这样Alice或David就可以放心地把David签过字的Alice的公匙上载到BBS上让你去拿,没人可能去篡改它而不被你发现,即使是BBS的管理员。这就是从公共渠道传递公匙的安全手段。   有人会问:那你怎么安全地得到David的公匙呢,这不是个先有鸡还是先有蛋的问题吗?确实有可能你拿到的David的公匙也是假的,但这就要求这个捣蛋者参与这整个过程,他必须对你们三人都很熟悉,还要策划很久,这一般不可能。当然,PGP对这种可能也有预防的建议,那就是由一个大家普遍信任的人或机构担当这个角色。他被称为“密匙侍者”或“认证权威”,每个由他签字的公匙都被认为是真的,这样大家只要有一份他的公匙就行了,认证这个人的公匙是方便的,因为他广泛提供这个服务,假冒他的公匙是很极困难的,因为他的公匙流传广泛。这样的“权威”适合由非个人控制组织或政府机构充当,现在已经有等级认证制度的机构存在。   对于那些非常分散的人们,PGP更赞成使用私人方式的密匙转介方式,因为这样有机的非官方更能反映出人们自然的社会交往,而且人们也能自由地选择信任的人来介绍。总之和不认识的人们见面一样。每个公匙有至少一个“用户名”(User ID),请尽量用自己的全名,最好再加上本人的 地址,以免混淆。   注意!你所必须遵循的一条规则是:在你使用任何一个公匙之前,一定要首先认证它!!!无论你受到什么诱惑,当然会有这种诱惑,你都不要,绝对不要,直接信任一个从公共渠道(由其是那些看起来保密的)得来的公匙,记得要用熟人介绍的公匙,或者自己与对方亲自认证。同样你也不要随便为别人签字认证他们的公匙,就和你在现实生活中一样,家里的房门钥匙你是只会交给信任的人的。

31 基于X.509证书的PKI 2、PKI提供的安全服务 认证:基于数字签名,签名作用于相应的数据之上 被认证的数据——数据源认证服务
用户发送的远程请求——身份认证服务 远程设备生成的challenge信息—— 身份认证服务 完整性:确认数据没有被修改 PKI采用了两种技术 数字签名:对数据的哈希值用私钥加密(签名),既可以提供实体认证,又可以保障被签数据完整性 MAC(消息认证码):如DES-CBC-MAC或者HMAC-MD5 保密性:基于数字信封,即用公钥分发随机密钥,然后用随机密钥对 数据加密 不可否认性: 发送方的不可否认 —— 数字签名 接受方的不可否认 —— 收条 + 数字签名

32 基于X.509证书的PKI 在提供前面四项服务的同时,还必须考虑 性能 尽量少用公钥加解密操作,在实用中,往往结合对称密码技术
除非需要数据来源认证才使用签名技术,否则就使用MAC实现数据完整性检验 在线和离线模型 签名的验证可以在离线情况下完成 用公钥实现保密性也可以在离线情况下完成 离线模式的问题:无法获得最新的证书注销信息 证书中所支持算法的通用性 在提供实际的服务之前,必须协商一致的算法 个体命名 如何命名一个安全个体,取决于CA的命名登记管理工作

33 基于X.509证书的PKI 3、PKI基本组件 RA(Registration Authority)
把用户的身份和它的密钥绑定起来。RA是CA的辅助机构。 CA(Certificate Authority) PKI的主要组成部分:发证、验证、撤销和更新等 证书库/目录服务 证书保存、供公开访问查询,同时还提供证书撤销列表(CRL)

34 基于X.509证书的PKI 认证机构(CA) CA是验证密钥主人的身份与公钥的关系的第三方可信机构。
注册机构RA RA是PKI的扩展部分,协助CA完成证书处理任务。 1. 接收和验证新注册人的注册信息; 2. 代表最终用户生成密钥对; 3. 接收和授权密钥备份和恢复请求; 4. 接收和授权证书吊销请求; 认证机构(CA) CA是验证密钥主人的身份与公钥的关系的第三方可信机构。 1. 接受申请者的请求; 2. 验证并标识证书申请者的身份; 3. 用自己的私钥签发证书; 4. 证书材料信息(公钥证书序列 号等)的管理; 5. 检查证书的有效期限; 6. 确保证书的标识唯一性,防止 重名; 7. 发布并维护作废的证书表; 8. 对整个证书签发过程做日志记 录; 9. 向申请者发通知。

35 基于X.509证书的PKI 证书的注销机制 由于各种原因,证书需要被注销, 比如,私钥泄漏、密钥更换、用户变化。
CA维护一个证书作废列表(CRL) 通常由同一个发证实体签名。当公钥的所有者丢失私钥,或者改 换姓名时,需要将原有证书作废。 基于Web的CRL服务 • 检查CRL的URL应该内嵌在用户的证书中 • 可以提供安全途径(SSL)访问URL • 返回注销状态信息 • 其他的用法由浏览器决定

36 基于X.509证书的PKI 客户通过Web申请一个证书

37 基于X.509证书的PKI CA处理证书请求

38 基于X.509证书的PKI X.509数字证书 X.509是X.500标准系列的一部分,在PKI的发展中,X.509起到了重要的作用.
X.509的实用性来源于它为X.509 v3和X.509 v2 CRL定义的强有力的扩展机制. ISO/ITU,ANSI,IETF等定义的证书格式不完全相同 [X.509] ITU-T Recommendation X Information Technology – Open System Interconnection – The Directory: Authentication Framework (equivalent to ISO/IEC , 1997) X.509是ISO和CCITT/ITU-T的X.500标准系列的一部分,在PKI概念由小的、封闭式网络的试验环境变到大的、开放式分布环境的过程中,在很多方面X.509标准起了无可比拟的作用。 当实体在很大程度上相互不了解的情况下,证书使公钥技术变得可行。于是,将PKI应用于跨国公司或上百万的Internet用户时,必须要有一个可用的证书格式。为在多种工具和应用软件中实现互操作,证书的格式应加以标准化并被广为接受。 X.509规范定义并标准化了一个通用的、灵活的证书格式。它被广泛采用的事实也证明了其技术适用于多种环境,作为国际标准的有效性是表现在被众多的生产商实现产品时采用了它。 X.509的实用性来源于它为证书版本3和版本2中证书吊销列表所定义的的强有力的扩展机制。无论怎样定义及放置于证书或证书吊销列表中的扩展,这一机制都是很通用的。此外,一个重要的标志是指示了认证者是否必须了解并在认证过程中校验这些扩展。于是,证书和证书吊销列表内容可按照意愿被裁减来适用于特定的环境,或在其它特定的环境中不限制它的可用性。

39 基于X.509证书的PKI X.509v3证书 基本格式 证书用户名: 证书版本号: 指明X.509证书的格式版本 序列号:
指定由CA分配给证书的唯一的数字型标识符。当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中,这也是序列号唯一的原因。 签名算法标识符: 用来指定CA签发证书时所使用的公开密钥算法和签名算法。因和最后字段重复,一般不用。 签发机构名: 用来标识签发证书的CA的X.500 DN名字。包括国家、省市、地区、组织机构、单位部门和通用名。 有效期: 指定证书的有效期,包括证书开始生效的日期和时间以及失效的日期和时间。每次使用证书时,需要检查证书是否在有效期内。 证书用户名: 指定证书持有者的X.500唯一名字。包括国家、省市、地区、组织机构、单位部门和通用名,还可包含 地址等个人信息等

40 基于X.509证书的PKI 证书持有者公开密钥信息: 包含两个重要信息: 证书持有者的公开密钥的值; 公开密钥使用的算法标识符。
签发人唯一标识符 实体唯一标识符 扩展域 X.509 V3证书 是在v2的基础上一标准形式或普通形式增加了扩展项,以使证书能够附带额外信息。 任何人都可以向一些权威机构,如ISO,来注册一些其他扩展,如果这些扩展项应用广泛,也许以后会成为标准扩展项 签名: 证书签发机构对证书上述内容的签名。 对这份文件中所有其他信息先做Hash报文摘要,然后用CA的密钥签名

41 基于X.509证书的PKI X.509证书示意图

42 基于X.509证书的PKI 4、 密钥备份及恢复系统 为了防止用户丢失解密密钥以后密文数据无法被解密,从而造成数据丢失,PKI应该提供解密密钥的备份和恢复的机制。解密密钥的备份和恢复应该由可信机构来完成,如CA。

43 基于X.509证书的PKI 5、 CA密钥更新 保证透明性

44 基于X.509证书的PKI 6、PKI应用 – 电子表格 – E-mail – Web浏览器 – 服务器 – VPN • 其他
目前,应用程序要使用PKI时,一般都采用厂家定义、提供的接口(API) 。由于各个厂家的接口都不一样,应用程序对多种PKI产品的支持就很困难。为此,可以分别为应用程序以及提供安全功能的PKI定义一些标准接口:其中产品API供各厂商遵循,而应用API则是由应用开发人员使用的。它们之间需要一些代码来实现相应的转换。应用API应该包含一些接口函数,通过应用API,应用程序开发人员只需要进行简单的调用,而不必关心复杂的加密算法等。 6、PKI应用 • 基本的应用 – 电子表格 – Web浏览器 – 服务器 – VPN • 其他 – SSL/TLS – SET – WAP – IPSec – …… 要求使用安全服务的应用 应用API 产品API 能够提供安全功能的产品

45 客户端软件 PKI提供的核心安全服务包含: ▉认证 ▉完整性 ▉机密性

46 客户端---PKI认证服务的签名数据 三类数据的杂凑值 ▉被认证的一些数据 ▉用户希望发送到远程设备的请求 ▉远程设备生成的随机挑战信息

47 客户端---PKI完整性服务 ▉数字签名技术(同认证服务) 既可提供认证,也可以保证签名数据的完整性。如果签名通过了认证,接收者就认为是收到了原始数据(未经修改)。 ▉消息认证码或MAC:采用对称分组密码(DES-CBC-MAC)或密码杂凑函数(HMAC-SHA)

48 客户端---PKI机密性服务 ▉采用类似于完整性服务的机制
解释:A生成一个对称密钥,用对称密钥加密数据,将加密后的数据以及A的公(私)钥或用B的公钥加密后的对称密钥发送给B。

49 客户端---PKI的信任模型 ▉认证机构的严格层次结构:惟一根CA。 ▉分布式信任结构:把信任分布到两个或更多的CA上。 ▉Web模型: 许多CA的公钥被预装在正在被使用的标准浏览器上。 ▉以用户为中心的信任:每个用户都对依赖或拒绝哪个证书负责。 ▉交叉认证:将以前无关的CA连接在一起,从而使得它们各自主体群之间可进行安全通信。

50 参考文献 教材: 范红,冯登国,安全协议理论与方法,科学出版社。 参考教材: 范明钰,王光卫,网络安全协议理论与技术
张玉请,莫燕,吴建耀,安全协议的建模与分析


Download ppt "安全协议理论与方法 第一章 引论."

Similar presentations


Ads by Google