“信息安全”课程习题及参考答案 下载本文

第十章 数字签名与鉴别协议

一、选择题

1. 数字签名要预先使用单向Hash函数进行处理的原因是(C)。

A. 多一道加密工序使密文更难破译 B. 提高密文的计算速度

C. 缩小签名密文的长度,加快数字签名和验 证签名的运算速度

D. 保证密文能正确还原成明文

二、填空题

1. 数字签名 是笔迹签名的模拟,是一种包括防止源点或终点否认的认证技术。

三、问答题

1. 数字签名有什么作用?

当通信双方发生了下列情况时,数字签名技术必须能够解决引发的争端: ? 否认,发送方不承认自己发送过某一报文。

? 伪造,接收方自己伪造一份报文,并声称它来自发送方。 ? 冒充,网络上的某个用户冒充另一个用户接收或发送报文。 ? 篡改,接收方对收到的信息进行篡改。

2. 请说明数字签名的主要流程。

数字签名通过如下的流程进行:

(1) 采用散列算法对原始报文进行运算,得到一个固定长度的数字串,称为报文摘要(Message Digest),不同的报文所得到的报文摘要各异,但对相同的报文它的报文摘要却是惟一的。在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符,这样就保证了报文的不可更改性。

(2) 发送方用目己的私有密钥对摘要进行加密来形成数字签名。 (3) 这个数字签名将作为报文的附件和报文一起发送给接收方。

(4) 接收方首先对接收到的原始报文用同样的算法计算出新的报文摘要,再用发送方的公开密钥对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就能确认该数字签名是发送方的,否则就认为收到的报文是伪造的或者中途被篡改。

3. 数字证书的原理是什么?

数字证书采用公开密钥体制(例如RSA)。每个用户设定一仅为本人所知的私有密钥,用它进行解密和签名;同时设定一公开密钥,为一组用户所共享,用于加密和验证签名。 采用数字证书,能够确认以下两点:

(1) 保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。

(2) 保证信息自签发后到收到为止未曾做过任何修改,签发的信息是真实信息。

4. 报文鉴别有什么作用,公开密钥加密算法相对于常规加密算法有什么

17

优点?

报文鉴别往往必须解决如下的问题: (1) 报文是由确认的发送方产生的。 (2) 报文的内容是没有被修改过的。

(3) 报文是按传送时的相同顺序收到的。 (4) 报文传送给确定的对方。

一种方法是发送方用自己的私钥对报文签名,签名足以使任何人相信报文是可信的。另一种方法常规加密算法也提供了鉴别。但有两个问题,一是不容易进行常规密钥的分发,二是接收方没有办法使第三方相信该报文就是从发送方送来的,而不是接收方自己伪造的。 因此,一个完善的鉴别协议往往考虑到了报文源、报文宿、报文内容和报文时间性的鉴别。

5. 利用常规加密方法进行相互鉴别的Needham-Schroeder协议的鉴别过程是怎样的?

Needham—Schroeder协议的鉴别通过如下的步骤进行: (1)A->KDC:(IDa,IDb,Ra)。 通信方A将由自己的名字IDa,通信方B的名字IDb和随机数Ra组成的报文传给KDC。 (2)KDC->A: EKa(Ra, IDb, Ks, EKb(Ks, IDa))。

KDC产生一随机会话密钥Ks。他用与通信方B共享的秘密密钥Kb对随机会话密钥Ks和通信方A名字组成的报文加密。然后用他和通信方A共享的秘密密钥Ka对通信方A的随机值、通信方B的名字、会话密钥Ks和已加密的报文进行加密,最后将加密的报文传送给通信方A。

(3)A->B: EKb(Ks, IDa)。

通信方A将报文解密并提取Ks。他确认Ra与他在第(1)步中发送给KDC的一样。然后他将KDC用通信方B的密钥Kb加密的报文发送给通信方B。(4)B->A: EKs(Rb)。 通信方B对报文解密并提取会话密钥Ks,然后产生另一随机数Rb 。他使用会话密钥Ks加密它并将它发送给通信方A。 (5)A->B: EKs(Rb-1)。

通信方A用会话密钥Ks将报文解密,产生Rb-1并用会话密钥Ks对它加密,然后将报文发回给通信方B。

(6)通信方B用会话密钥Ks对信息解密,并验证它是Rb-1。

6. 了解Needham-Schroeder协议在防止重放攻击方面的缺陷以及对它进行修改的方案。

尽管Needham—Schroeder协议已经考虑了重放攻击,但是设计一个完美的没有漏洞的鉴别协议往往是很困难的。让我们考虑一下这种情况,如果一个对手已经获得了一个旧的会话密钥,那么在第(3)步中就可冒充通信方A向通信方B发送一个旧密钥的重放报文,而此时通信方B无法确定这是—个报文的重放。

Denning对Needham—schroeder协议进行了修改,防止这种情况下的重放攻击,其过程如下:

(1)A->KDC:(IDa,IDb)。

(2)KDC->A: EKa(T, IDb, Ks, EKb(T, Ks, IDa))。

18

(3)A->B: EKb(T, Ks, IDa)。 (4)B->A: EKs(Rb)。 (5)A->B: EKs(Rb-1)。

在这个过程中,增加了时间戳T,向通信方A和B确保该会话密钥是刚产生的,使得通信方A和B双方都知道这个密钥分配是一个最新的交换。

7. 阐述如何分别使用常规加密算法和公开密钥加密算法对单向鉴别的例子——电子邮件进行鉴别的原理,以及两种方法的优缺点。

如果使用常规加密方法进行发方和收方的直接鉴别,密钥分配策略是不现实的。这种方案需要发方向预期的收方发出请求,等待包括一个会话密钥的响应,然后才能发送报文。 考虑到应该避免要求收方B和发方A同时在线,如下基于常规加密方法的方案解决了鉴别。(1)A->KDC:(IDa,Idb, Ra)。

(2)KDC->A: EKa(IDb, Ks, Ra, EKb(Ks, IDa))。 (3)A->B: EKb(Ks, IDa) EKs(M)。

这个方案会遭到重放攻击。另外,如果在报文中加入时间戳,由于电子邮件潜在的时延,时间戳的作用非常有限。

公开密钥加密方法适合电子邮件,如果发方和收方都知道对方的公开密钥,则可以同时提供机密性和鉴别。这种方法,可能需要对很长的报文进行一次或两次的公开密钥加密。 A?B: EKUb ( M, EKRa ( H( M ) ) )

8. 了解主要的数字签名标准DSS及与SHS的关系。

DSS是美国国家标准技术学会(NIST)的一个标淮,它是ElGamal数字签名算法的一个修改。当选择p为512比特的素数时,ElGamal数字签名的尺寸是1024比特,而在DSA中通过选择一个160比特的素数可将签名的尺寸降低为320比特,这就大大地减少了存储空间和传输带宽。

DSS签名使用FIPS80-1和安全hash标淮(SHS)产生和核实数字签名。许多加密者认为SHS所指定的安全散列算法(SHA)是当今可以得到的最强劲的散列算法。

19

第十二章 身份认证

一、选择题

1. Kerberos的设计目标不包括(B)。

A. 认证 B.授权 C.记账 D.审计

2. 身份鉴别是安全服务中的重要一环,以下关于身份鉴别叙述不正确的是(B)。 A. 身份鉴别是授权控制的基础

B. 身份鉴别一般不用提供双向的认证

C. 目前一般采用基于对称密钥加密或公开密钥加密的方法 D. 数字签名机制是实现身份鉴别的重要机制

3. 基于通信双方共同拥有的但是不为别人知道的秘密,利用计算机强大的计算能力,以该秘密作为加密和解密的密钥的认证是(C)。 A. 公钥认证 B. 零知识认证 C. 共享密钥认证 D. 口令认证

4. Kerberos在请求访问应用服务器之前,必须(A)。 A. 向Ticket Granting服务器请求应用服务器ticket B. 向认证服务器发送要求获得“证书”的请求 C. 请求获得会话密钥

D. 直接与应用服务器协商会话密钥

5.(C)是一个对称DES加密系统,它使用一个集中式的专钥密码功能,系统的核心是 KDC。

A. TACACS B. RADIUS C. Kerberos D. PKI

二、填空题

1. 身份认证是 验证信息发送者是真的 ,而不是冒充的,包括信源、信宿等的认证和识别。

三、问答题

1. 解释身份认证的基本概念。

身份认证是指用户必须提供他是谁的证明,这种证实客户的真实身份与其所声称的身份是否相符的过程是为了限制非法用户访问网络资源,它是其他安全机制的基础。

身份认证是安全系统中的第一道关卡,识别身份后,由访问监视器根据用户的身份和授权数据库决定是否能够访问某个资源。一旦身份认证系统被攻破,系统的所有安全措施将形同虚设,黑客攻击的目标往往就是身份认证系统。

2. 单机状态下验证用户身份的三种因素是什么?

(1)用户所知道的东西:如口令、密码。 (2)用户所拥有的东西:如智能卡、身份证。

(3)用户所具有的生物特征:如指纹、声音、视网膜扫描、DNA等。

3. 有哪两种主要的存储口令的方式,各是如何实现口令验证的?

1. 直接明文存储口令

20