2016年下半年信息安全工程师下午案例题及解析

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

【说明】

研究密码编码的科学称为密码编码学,研究密码破译的科学称为密码分析学,密码编码学

和密码分析学共同组成密码学。密码学作为信息安全的关键技术,在信息安全领域有着广

泛的应用。

问题: 1.1(9分)

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

问题: 1.2(3分)

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

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

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

(3)小李窃取了小刘的学位证号码、登录口令信息、并通过学位信息系统更改了小刘的学位

信息记录和登陆口令,将系统中小刘的学位信息用一份伪造的信息替代,造成小刘无法访

问学位信息系统。

问题: 1.3(3分)

现代密码体制的安全性通常取决于密钥的安全,文了保证密钥的安全,密钥管理包括哪些

技术问题?

问题: 1.4(5分)

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

试题一参考答案及解析

【问题1】

参考答案:密码学的安全目标包括保密性、完整性、可用性。其具体内涵为:①保密性。确保信息仅被合法用户访问,而不泄露给非授权的用户。②完整性。所有资源只能由授权方或者以授权方式进行修改;③可用性。所有资源在适当的时候可以由授权方访问。

试题解析:本题考查密码学相关概念。

【问题2】

参考答案

(1)保密性(2)完整性(3)保密性、完整性、可用性

试题解析:考查安全目标的含义。

【问题3】

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

试题解析:考查密钥管理的内容知识。

【问题4】

参考答案:该加密过程属于明密文链接方式(PCBC)。

其缺点包括:①明密文链接方式的加解密错误传播无界特性,使其不适合磁盘文件加密;②要求数据长度是密码分组长度的整数倍,否则最后一个块需要特殊处理。

试题解析:明密文链接方式中输入是前一组密文和前一组明文异或之后,再与当前明文组异或。明密文链接方式:

设明文M=(M1,M2,,Mn,相应的密文C=(C1,C2,…,Cn),而

其中Z为初始化向量。

根据上式可知,即使Mi=Mj,但因一般都有Mi-1⊕Ci-1≠Mj-1⊕Cj-1,从而使Ci≠Cj,从而掩盖了明文中的数据模式。同样根据上式可知,加密时,当Mi或Ci中发生一位错误时,自此以后的密文全都发生错误。这种现象称为错误传播无界。

加解密错误传播无界的特性,使其不适合磁盘文件加密。

要求数据长度是密码分组长度的整数倍,否则最后一个块需要特殊处理。

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

【说明】

访问控制是对信息系统资源进行保护的重要措施,适当的访问控制能够阻止未经授权的用

户有意或者无意地获取资源。访问控制一般是在操作系统的控制下,按照事先确定的规则

决定是否允许用户对资源的访问。下图给出了某系统对客体traceroute.mpg 实施的访问控制规则。

问题: 2.1(3分)

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

问题: 2.2(7分)

分别写出图中用户Administrator 对应三种访问控制实现方法,即能力表、访问控制

表和访问控制矩阵下的访问控制规则。

试题二参考答案及解析

【问题1】

参考答案:访问控制的三个基本要素为主体、客体、授权访问(访问权限)。

试题解析:访问控制的三个基本要素如下。

主体:改变信息流动和系统状态的主动方。主体可以访问客体。主体可以是进程、用户、用

户组、应用等。

客体:包含或者接收信息的被动方。客体可以是文件、数据、内存段、字节等。

授权访问(访问权限):决定谁能访问系统,谁能访问系统的哪种资源以及如何使用这些资源。方式有读、写、执行、搜索等。

【问题2】

参考答案

能力表访问控制规则:

访问控制矩阵访问控制规则:

访问控制表访问控制规则:

试题解析:

(1)访问控制矩阵是最初实现访问控制机制的概念模型,它利用二维矩阵规定了任意主体和任意客体间的访问权限。

(2)访问控制表(Access Control Lists)。很多时候,访问控制矩阵是一个稀疏矩阵,因此访问控制可以按行或按列分解存储。访问控制矩阵按列分解,就生成了访问控制列表。访问控制列表实例如下图所示。

(3)权能表(Capabilities Lists)。访问控制矩阵按行分解,就生成了权能表(能力表)。权能表实例如下图所示。

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

【说明】

防火墙是一种广泛应用的网络安全防御技术,它阻挡对网络的非法访问和不安全的数据传

递,保护本地系统和网络免于受到安全威胁。下图给出了一种防火墙的体系结构。

问题: 3.1(6分)

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

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

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

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

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

问题: 3.2(5分)

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

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

问题: 3.3(8分)

设图中外部包过滤器的外部IP 地址为10.20.100.1 ,内部IP 地址为10.20.100.2 ,

内部包过滤器的外部IP 地址为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 ,将对应空缺表项的答案填入答题纸对应栏内。

试题三参考答案及解析

【问题1】

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

(被)屏蔽主机体系结构的特点:通过一个单独的路由器和内部网络上的堡垒主机共同构成防火墙,主要通过数据包过滤实现内外网络的隔离和对内网的保护。

(被)屏蔽子网体系结构的特点:由两台路由器包围起来的周边网络,并且将容易受到攻击的堡垒主机都置于这个周边网络中。

试题解析:考查防火墙的体系结构相关知识。

【问题2】

参考答案:(1)屏蔽子网体系结构。

(2)内部包过滤器用于隔离周边网络和内部网络,是屏蔽子网体系结构的第二道屏障。在其上置了针对内部用户的访问过滤规则,规则主要对内部用户访问周边网络和外部网络进行限制:外部包过滤器用于保护周边网络和内部网络,是所被子网体系结构的第一道屏。在其上设置了对周边网络和内部网络进行访问的过滤规则,规则主要针对外网用户。

试题解析:本题考查防火墙体系结构应用知识

【问题3】

参考答案:

(1)*

(2)10.20.100.8

(3)10.20.100.8

(4)*

(5)UDP

(6)10.20.100.*

(7)UDP

(8)10.20.100.*

试题解析:设置Web端口80、SMTP端口25的访问控制规则。由于访问网站需要使用DNS,所以还需要额外设定端口53的访问规则。

试题四 阅读下列说明,回答问题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 计算哈希值。

问题: 4.1(5分)

认证与加密有哪些区别?

问题: 4.2(6分)

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

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

问题: 4.3(3分)

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

问题: 4.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的身份被冒充。

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

【说明】

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

问题: 5.1(4分)

用户在调用gets()函数时输入什么样式的字符串,可以在不知道的原始口令“Secret”的

情况下绕过该口令验证函数的限制?

问题: 5.2(4分)

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

试题五参考答案及解析

【问题1】

参考答案:Gets(uerPassword)只要输入24个字符,其中前2个字符和后12个字符完全相同,就可以在不知道的原始口令“Secret”的情况下绕过该口令验证函数的限制。

试题解析:众所周知,C语言不进行数组的边外检查,在许多C语言实现的应用程序中,都假定缓冲区的长度是足够的,即它的长度肯定大于要拷贝的字符串的长度,事实上却并非如此。

通常,一个程序在内存中分为程序段、数据段和堆栈三部分,程序段里放着程序的机器码和只读数据,数据段放程序中的静态数据:动态数据则通过堆栈来存放。在内存中,它们的位置如下图所示.

gets(userPassword)只要输入24个字符,其中前12个字符和后12个字符完全相同。这导致输入userPassword多余的12个字符数据,覆盖origPassword区域,导致userPassword=origPassword的结果,就可以在不知道的原始口令“Secret”的情况下绕过该口令验证函数的限制。

【问题2】

参考答案:存在缓冲区溢出隐患。解决思路是检查代码正确性,检查输入口令长度。

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

解决方案:

●编写正确的代码。只要在所有拷贝数据的地方进行数据长度和有效性的检查,确保目标缓冲区中数据不越界并有效,则就可以避免缓冲区溢出,更不可能使程序跳转到恶意代码上。

●缓冲区不可执行。通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为缓冲区不可执行技术。

●改进C语言函数库。C语言中存在缓冲区溢出攻击隐患的系统函数有很多。例如gets()、sprintf()、strcpy()、strcat()、fscanf()、scanf()、vsprintf()等。可以开发出更安全的封装了若干已知易受堆栈溢出攻击的库函数。

●使堆栈向高地址方向增长。使用的机器堆栈压入数据时向高地址方向前进,那么无论缓冲区如何溢出,都不可能覆盖低地址处的函数返回地址指针,也就避免了缓冲区溢出攻击。但是这种方法仍然无法防范利用堆和静态数据段的缓冲区进行溢出的攻击。

●程序指针完整性检查。原理是每次在程序指针被引用之前先检测该指针是否已被恶意改动过,如果发现被改动,程序就拒绝执行。

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

王至强

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值