
第1页 / 共13页

第2页 / 共13页

第3页 / 共13页

第4页 / 共13页

第5页 / 共13页

第6页 / 共13页

第7页 / 共13页

第8页 / 共13页
7 B 计算: (Xo)Xb≡(aXo)Xb≡aXoXb mod p 8 O 计算: (Ya)Xo≡aXaXo mod p, (Yb)Xo≡aXbXo mod p O 无法计算出 aXaXb mod p O 永远必须实时截获并冒充转发,否则会被发现 20. 如何使用公钥密码实现数据的保密性、完整性和数据源认证(签名)? 发送方用其私钥对消息“签名”。可以通过对整条消息加密或者对消息的一个小的数据 块(消息认证码/摘要)加密来产生。 E(K,[M||E(PRa,H(M))]) 其中 K 为 PUb 解密时,第一步解密使用 B 的私钥,然后使用 A 的公钥。 21. 22. 对比对称算法和公钥算法?(建议从用途,速度和效率等方面) 对称算法:速度快,主要用于数据加密,只有一个密钥。 公钥算法:速度较慢,主要用于数字签名和密钥交换,有两个密钥 对称密钥分配有哪些方法?(注意和重放攻击相结合) 对于参与者 A 和 B,密钥分配有以下几种: A. 密钥由 A 选择,并亲自交给 B B.第三方选择密钥后亲自交给 A 和 B C.如果 A 和 B 以前或最近使用过某密钥,其中一方可以用它加密一个新密钥后在发 送给另一方。 D. A 和 B 与第三方均有秘密渠道,则 C 可以将一密钥分别发送给 A 和 B 别人卷子上的分配方式: 传统加密方法 Needham/Schroeder Protocol [1978] 1、A KDC:IDA||IDB||N1 2、KDC A:EKa[Ks||IDB||N1||EKb[Ks||IDA]] 3、A B: EKb[Ks||IDA] 4、B A: EKs[N2] 5、A B: EKs[f(N2)] 保密密钥 Ka 和 Kb 分别是 A 和 KDC、B 和 KDC 之间共享的密钥。 本协议的目的就是要安全地分发一个会话密钥 Ks 给 A 和 B。 A 在第 2 步安全地得到了一个新的会话密钥,第 3 步只能由 B 解密、并理解。第 4 步表明 B 已知道 Ks 了。第 5 步表明 B 相信 A 知道 Ks 并且消息不是伪造的。 第 4,5 步目的是为了防止某种类型的重放攻击。特别是,如果敌方能够在第 3 步捕获该消 息,并重放之,这将在某种程度上干扰破坏 B 方的运行操作。 上述方法尽管有第 4,5 步的握手,但仍然有漏洞 假定攻击方 C 已经掌握 A 和 B 之间通信的一个老的会话密钥。C 可以在第 3 步冒充 A 利用 老的会话密钥欺骗 B。除非 B 记住所有以前使用的与 A 通信的会话密钥,否则 B 无法判断 这是一个重放攻击。如果 C 可以中途截获第 4 步的握手信息,则可以冒充 A 在第 5 步响应。 从这一点起,C 就可以向 B 发送伪造的消息而对 B 来说认为是用认证的会话密钥与 A 进行 的正常通信。 Denning Protocol [1982] 改进(加入时间戳): 1、A KDC:IDA||IDB2、KDC A:EKa[Ks||IDB||T||EKb[Ks||IDA||T]] 3、A B: 4、B A: 5、A B: | Clock - T | < t1 + t2 其中: t1 是 KDC 时钟与本地时钟(A 或 B)之间差异的估计值; EKb[Ks||IDA||T] EKs[N1] EKs[f(N1)] t2 是预期的网络延迟时间。 23. 公钥算法中公钥的分配和管理有哪些方法? 公钥的分配 A. 公开发布 B.公开可访问目录 C.公钥授权 D. 公钥证书 消息认证码的概念和基本用途?(237 页图) 24. MAC(Message Authentication Code),消息认证码,也是一种认证技术,它利用密钥来产生 一个固定长度的短数据块,并将数据块附加在消息之后,格式如:MAC(M)|| M。消息和 MAC 一起发送到接受方。从而,接受方可以知道消息没有经过篡改,真正来自发送方(MAC 的密钥)和消息的时效性(如果 MAC 中包含序列号)。从这个层面来说,hash 是没有密钥 的 MAC 25. 26. 什么是散列函数的基本用途有哪些?(239 页图) 保密、认证和签名 安全散列函数有哪些特性? 什么是碰撞?找到一个碰撞意味着什么?代价是多 大?生日悖论和生日攻击。 Hash 算法的特点有 输入变长的分组,输出是一定长的分组; 任意 x,计算 H(x)容易,软件和硬件都可以实现 已知 H(x)= h,求 x 是不可行的,只是在计算上不可行(单向性) 任意 x,找到 y,使 H(x)=H(y)计算上不可行(抗弱碰撞性) 找到满足 H(x)=H(y)的(x,y)计算上不可行(抗强碰撞性) 碰撞指的是散列值相同而原值不同。找到一个碰撞意味着可以替换原来的消息。 2^n 单向 弱无碰撞 2^n 强无碰撞 2^n/2 生日问题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于 1/2? 概率结果与人的直觉是相违背的. 实际上只需 23 人,即任找 23 人,从中总能选出两人具 有相同生日的概率至少为 1/2。 根据生日攻击原理,对长度为 m 位的散列码,共有 2^m 个可能的散列码,若要使任意的 x,y 有 H(x)=H(y)的概率为 0.5,只需 k=2m/227. 28. 消息认证码和散列函数有哪些区别? 散列函数(Hash):将任意长度的消息变换为定长的消息摘要,并加以认证。 消息认证码(MAC):依赖公开的函数(密钥控制下)对消息进行处理,生成定长的 认证标识,并加以认证。 HMAC 的原理 hash 是没有密钥的 MAC,所以不可以直接将 hash 算法(MD5,SHA1)直接用在 MAC 上, 所以,HMAC 实现的目标就是将密钥加入到 hash 函数中,简单的说,就是“带密钥的 hash”。 29. 安全 hash 码的基本结构(Merkle 提出的)? 30. MD5 和 SHA-1 间的差异?(建议从输入、输出、轮数、强度和速度等几个方面比 较) MD5 128 位 512 位 64(4 of 16) 无限 4 64 Little-endian 32.4 Mbps SHA-1 160 位 512 位 80(4 of 20) 264-1 位 4 4 Big-endian 14.4Mbps 摘要长度 基本处理单位 步数 最大消息长度 基本逻辑函数 加法常数 Endianness 性能 31. 什么是数字签名?如何理解 RSA 私钥运算结果做为数字签名? 【提示:最简单的数字签名是:EKRa( M) 即用 a 的私钥(KRa)加密消息 M,接受 方 b 用 a 的公钥解密,得到 M,b 就可以认为 M 来自 a,因为其他人不可能有 a 的私钥;而 且消息没有经过修改,因为修改后的秘文不能用 a 的公钥解开,从而实现了数字签名。】 32. 如何实现用签名进行身份和消息认证?【提示:上面算法的改进算法就可以实现用 签名进行身份和报文鉴别:EKRa( H(M))||M 。先将消息 M 用 hash 算法(MD5 or SHA1)算出 mac(消息认证码),然后,用 a 的私钥加密此认证码,最后和原始的消息并在一 起,发送到接受方 b。b 首先用 a 的公钥 KPa 解密前面部分,然后用同样的 hash 算法对 M 进行 hash 操作,比较两个结果是否相等。从而实现身份和消息认证。 数字签名的作用是什么 33. 当通信双方发生了下列情况时,数字签名技术必须能够解决引发的争端: (1) 否认,发送方不承认自己发送过某一报文。 (2) 伪造,接收方自己伪造一份报文,并声称它来自发送方。 (3) 冒充,网络上的某个用户冒充另一个用户接收或发送报文。 (4) 篡改,接收方对收到的信息进行篡改。 34. 公钥算法 RSA、DH 和 DSS 算法的用途是什么? RSA——加密/解密、数字签名、密钥交换 DH——密钥交换 DSS——数字签名 35. 实体认证(身份认证)和消息认证的区别是什么? 身份认证是验证主体的真实身份与其所声称的身份是否符合的过程。消息认证是是一 个证实收到的消息来自可信的源点且未被篡改的过程。即验证收到的消息确实是来自真正的 发送方且未被修改的消息,也验证消息的顺序和及时性。是为了确认被认证的实体与一些特 定数据项有着静态的联系,而身份认证主要是在连接建立或者在数据传送阶段的某些时刻使 用的。 36. 什么是消息重放?有哪些方法可以抵御消息的重放攻击,各有什么特点? 消息重放:攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的。 对付重放攻击的一种方法是在认证交换中使用一个序列号来给每一个消息报文 编号。仅当收到的消息序数顺序合法时才接受之。但这种方法的困难是要求双方必须 保持上次消息的序号。 两种更为一般的方法是: 时间戳:A 接受一个新消息仅当该消息包含一个时间戳,该时间戳在 A 看来,是 足够接近 A 所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步。 挑战/应答方式。(Challenge/Response)A 期望从 B 获得一个新消息,首先发给 B 一个临时值(challenge),并要求后续从 B 收到的消息(response)包含正确的这个临时 值。 挑战问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额 外开销,这就抵消了无连接通信的主要特点。 37. 对称密钥分配方式中有什么问题,如何避免?(针对消息重放攻击) 当采用传统对称加密方式时,发送者不能根据内容区分是发送的消息还是接收的消 息,这种攻击是可能的。 38. 加入时间戳。 Kerberos 系统适合什么样环境中的认证服务?它采用了什么方法来防止攻击者窃 取并使用票据?kerberos 系统的认证过程,每个步骤的作用? 分布式服务器 C/S 环境 AS 用安全方式向用户和 TGS 各自提供一个秘密信息,然后用户也以安全方式向 TGS 出示该秘密来证明自己的身份。这个秘密就是会话密钥。