2016年下半年信息安全工程师考试真题含答案(下午题)

2016年下半年信息安全工程师考试真题含答案(下午题)

https://www.moondream.cn/?p=328

blob.png

试题一(共20分)

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

研究密码编码的科学称为密码编码学,研究密码破译的科学称为密码分析学,密码编码学和密码分析学共同组成密码学。密码学作为信息安全的关键技术,在信息安全领域有着广泛的应用。

【问题1】(9分)

密码学的安全目标至少包括哪三个方面?具体内涵是什么?

【问题2】(3分)

对下列违规安全事件,指出各个事件分别违反了安全目标中的哪些项?

(1)小明抄袭了小丽的家庭作业。

(2)小明私自修改了自己的成绩。

(3)小李窃取了小刘的学位证号码、登录口令信息、并通过学位信息系统更改了小刘的学位信息记录和登陆口令,将系统中小刘的学位信息用一份伪造的信息替代,造成小刘无法访问学位信息系统。

【问题3】(3分)

现代密码体制的安全性通常取决于密钥的安全,为了保证密钥的安全,密钥管理包括哪些技术问题?

【问题4】(5分)

在图1-1给出的加密过程中,Mi,i=1,2,…,n表示明文分组,Ci,i=1,2,…,n表示密文分组,Z表示初始序列,K表示密钥,E表示分组加密过程。该分组加密过程属于哪种工作模式?这种分组密码的工作模式有什么缺点?

参考答案:

【问题1】

(1)保密性:保密性是确保信息仅被合法用户访问,而不被地露给非授权的用户、实体或过程,或供其利用的特性。即防止信息泄漏给非授权个人或实体,信息只为授权用户使用的特性。

(2)完整性:完整性是指所有资源只能由授权方或以授权的方式进行修改,即信息未经授权不能进行改变的特性。信息在存储或传输过程中保持不被偶然或蓄意地删除、修改、伪造、乱序、重放、插入等破坏和丢失的特性。

(3)可用性:可用性是指所有资源在适当的时候可以由授权方访问,即信息可被授权实体访问并按需求使用的特性。信息服务在需要时,允许授权用户或实体使用的特性,或者是网络部分受损或需要降级使用时,仍能为授权用户提供有效服务的特性。

【问题2】

(1)保密性

(2)完整性

(3)可用性

【问题3】

密钥管理包括密钥的产生、存储、分配、组织、使用、停用、更换、销毁等一系列技术问题。

【问题四】

明密文链接模式。

缺点:当Mi或Ci中发生一位错误时,自此以后的密文全都发生错误,即具有错误传播无界的特性,不利于磁盘文件加密。并且要求数据的长度是密码分组长度的整数倍,否则最后一个数据块将是短块,这时需要特殊处理。

试题二(共10分)

阅读下列说明和图,周答问题1至问题2,将解答填入答题纸的对应栏内。

【说明】

访问控制是对信息系统资源进行保护的重要措施l适当的访问控制能够阻止未经授权的用户有意或者无意地获取资源。访问控制一般是在操作系统的控制下,~按照事先确定的规则决定是否允许用户对资源的访问。图2-1给出了某系统对客体traceroute.mpg实施的访问控制规则。

【问题1】(3分)

针对信息系统的访问控制包含哪些基本要素?

【问题2】(7分)

分别写出图2-1中用户Administrator对应三种访问控制实现方法,即能力表、访问控制表和访问控制矩砗下的访问控制规则。

参考答案:

【问题1】
主体、客体、授权访问

【问题2】
能力表:
(主体)Administrator <(客体)traceroute.mpg:读取,运行>
访问控制表:
(客体)traceroute.mpg<(主体)Administrator :读取,运行>
访问控制矩阵:

试题三(共19分)

阅读下列说明和图,回答问题l至问题3,将解答填入答题纸的对应栏内。

【说明】

防火墙是一种广泛应用的网络安全防御技术,它阻挡对网络的非法访问和不安全的数据传递,保护本地系统和网络免于受到安全威胁。

图3-1给出了一种防火墙的体系结构。

【问题1】(6分)

防火墙的体系结构主要有:

(1)双重宿主主机体系结构;

(2)(被)屏蔽主机体系结构;

(3)(被)屏蔽子网体系结构;

请简要说明这三种体系结构的特点。

【问题2】(5分)

(1)图3-1描述的是哪一种防火墙的体系结构?

(2)其中内部包过滤器和外部包过滤器的作用分别是什么?

【问题3】(8分)

设图3-1中外部包过滤器的外部IP地址为10.20.100.1,内部口地址为10.20.100.2;内部包过滤器的外部口地址为10.20.100.3,内部IP地址为192.168.0.1,DMZ中Web服务器IP为10.20.100.6,SMTP服务器IP为10.20.100.8。

关于包过滤器,要求实现以下功能:不允许内部网络用户访问外网和DMZ,外部网络用户只允许访问DMZ中的Web服务器和SMTP服务器。内部包过滤器规则如表3-1所示。请完成外部包过滤器规则表3-2,将对应空缺表项的答案填入答题纸对应栏内。

表3-1内部包过滤器规则表

表3-2外部包过滤器规则表

参考答案:

【问题1】

双重宿主主机体系结构:双重宿主主机体系结构是指以一台双重宿主主机作为防火墙系统的主体,执行分离外部网络与内部网络的任务。

被屏蔽主机体系结构:被屏蔽主机体系结构是指通过一个单独的路由器和内部网络上的堡垒主机共同构成防火墙,主要通过数据包过滤实现内外网络的隔离和对内网的保护。
被屏蔽子网体系结构:被屏蔽子网体系结构将防火墙的概念扩充至一个由两台路由器包围起来的周边网络,并且将容易受到攻击的堡垒主机都置于这个周边网络中。其主要由四个部件构成,分别为:周边网络、外部路由器、内部路由器以及堡垒主机。
【问题2】
(1) 屏蔽子网体系结构。
(2) 内部路由器:内部路由器用于隔离周边网络和内部网络,是屏蔽子网体系结构的第二道屏障。在其上设置了针对内部用户的访问过滤规划,对内部用户访问周边网络和外部网络进行限制。
外部路由器:外部路由器的主要作用在于保护周边网络和内部网络,是屏蔽子网体系结构的第一道屏障。在其上设置了对周边网络和内部网络进行访问的过滤规则,该规则主要针对外网用户。
【问题3】
(1)*

(2)10.20.100.8

(3)10.20.100.8
(4)*

(5)UDP

(6)10.20.100.3
(7)UDP

(8)10.20.100.3

试题四(共18分)

阅读下列说明,回答问题l至问题4,将解答填入答题纸的对应栏内。

【说明】

用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据的安全保密极及其重要。以下过程给出了实现用户B对用户A身份的认证过程。

1.A->B:A

2.B->A:{B,Nb}(A)

3.A->B:h(Nb)

此处A和B是认证的实体,Nb是一个随机值,pk(A)表示实体A的公钥,{B,Nb}pk(A)表示用A的公钥对消息B进行加密处理,h(Nb)表示用哈希算法h对Nb计算哈希值。

【问题1】(5分)

认证与加密有哪些区别?

【问题2】(6分)

(1)包含在消息2中的“Nb”起什么作用?

(2):Nb“的选择应满足什么条件?

【问题3】(3分)

为什么消息3中的Nb要计算哈希值?

【问题4】(4分)

上述协议存在什么安全缺陷?请给出相应的的解决思路。

参考答案:

【问题1】

认证和加密的区别在于:加密用以确保数据的保密性,阻止对手的被动攻击,如截取,窃听等;而认证用以确保报文发送者和接收者的真实性以及报文的完整性,阻止对手的主动攻击,如冒充、篡改、重播等。
【问题2】

(1) Nb是一个随机值,只有发送方B和A知道,起到抗重放攻击作用。

(2) 应具备随机性,不易被猜测。
【问题3】
哈希算法具有单向性,经过哈希值运算之后的随机数,即使被攻击者截获也无法对该随机数进行还原,获取该随机数Nb的产生信息。
【问题4】
攻击者可以通过截获h(Nb)冒充用户A的身份给用户B发送h(Nb)。
解决思路:用户A通过将A的标识和随机数Nb进行哈希运算,将其哈希值h(A,Nb)发送给用户B,用户B接收后,利用哈希函数对自己保存的用户标识A和随机数Nb进行加密,并与接收到的h(A,Nb)进行比较。若两者相等,则用户B确认用户A的身份是真实的,否则认为用户A的身份是不真实的。

试题五(共8分)

阅读下列说明和代码,回答问题1和问题2,将解答写在答题纸的对应栏内。

【说明】

某本地口令验证函数(C语言环境,X86 32指令集)包含如下关键代码;某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数组userPassword中,如果两个数组中的内容相同则允许进入系统。

[…]

Char origPassword[12]=“lSecret”

Char origPassword[12];

[…]

Gets(userPassword);/*读取用户输入的口令*/

[…]

If(strncmp(origPassword,userPassword,12)!=0)

{

Printf(“Password,doesn’t match!/n”);

Exit(-1);

}

[…]

/*口令认证通过时允许用户访问*/

[…]

【问题1】(4分)

用户在调用gets()函数时输入什么样式的字符串,可以在不知道的原始口令“Secret”的情况下绕过该口令验证函数的限制?

【问题2】(4分)

上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路。

参考答案:

【问题1】

只要输入长度为24的字符串,其前12个字符和后12个字符一样即可。

【问题2】

gets()函数必须保证输入长度不会超过缓冲区,一旦输入大于12个字符的口令就会造成缓冲区溢出。

解决思路:使用安全函数来代替gets()函数,或者对用户输入进行检查和校对,可通过if条件语句判断用户输入是否越界。


猜你喜欢

转载自blog.51cto.com/13744629/2116055