A-1大连理工大学课程名称:网络安全试卷:A考试形式闭卷授课院(系):软件学院考试日期:09年11月日试卷共10页一二三四五六七八九十总分标准分20121810151510100得分1选择填空题(每空选择一项正确答案,每空1分,共20分)(1)防火墙的本质功能在于A.按照指定规则对IP分组进行转发B.按照指定规则对IP分组进行过滤C.按照指定规则对IP分组进行地址转换D.按照指定规则对IP分组进行加密(2)入侵检测系统(IDS)按照其识别入侵的方式分为两类A.基于主机和基于网络的IDSB.操作系统内核和应用层的IDSC.基于误用和基于规范(或称基于异常的)IDSD.基于边界网关和基于非边界网关的IDS(3)以下关于溢出攻击的陈述只有是正确的A.JAVA程序不存在指针,因此对JAVA程序不存在溢出攻击B.单字节溢出攻击对小头机(Little-Endian)平台比对大头机(Big-Endian)平台更容易实施C.单字节溢出攻击对大头机平台比对小头机平台更容易实施D.单字节溢出攻击对大头机平台比对小头机平台都同样容易实施(4)加密/解密方案分为对称方案和非对称(或称公钥)方案,前者的例子如A.MD5B.SHAC.DESD.OAEP/RSA后者的例子如A.MD5B.SHAC.DESD.OAEP/RSA(5)以下哪项描述精确适合于公钥加密方案A.从公钥推断私钥在计算上是困难的B.从私钥推断公钥在计算上是困难的C.消息发送方和接收方使用不同的密钥D.消息发送方和接收方使用相同的密钥(6)数字证书的本质目的在于A.发布用户的公钥B.发布用户的身份标识C.发布用户公钥并以一种可核实的方式将该公钥与其合法持有者的身份标识联系起来.D.发布用户私钥并以一种可核实的方式将该私钥与其合法持有者的身份标识联系姓名:学号:院系:级班装订线A-2起来.(7)因子分解问题难解这一事实是指A.不存在这样一种有效算法,从给定的任何正整数N计算出N的一个素因子B.给定任何一个正整数N,不存在这样一种有效算法从N计算出N的一个素因子C.不存在这样一种有效算法,判定给定的任何正整数N是否为一个素数D.给定任何一个正整数N,不存在这样一种有效算法判定N是否为一个素数8)MD5是一种A.对称的分组加密方案B.抗冲突的散列方案C.数字签名方案D.流加密方案MD5的输入长度为长度的二进制字串.A.8位B.16位C.32位D.任意位MD5的输出长度为二进制字串.A.128位B.160位C.96位D.任意位(9)DES是一种A.对称的分组加密方案B.抗冲突的散列方案C.数字签名方案D.流加密方案DES的输入长度为长度的二进制字串.A.8位B.16位C.32位D.64位DES的密钥长度为二进制字串.A.128位B.64位C.32位D.16位(10)数字签名方案在实际应用中常常是先用一个(公开约定的函数H)对消息M进行散列,然后再对散列的结果H(M)进行签字.这时对H特别重要的安全性要求是A.计算高效B.抗伪造C.抗冲突D.一一对应(即双方单值的映射)以下方案不适合作为上面的这类HA.MD5B.SHAC.SHA-1D.H(x)=x的非0位的个数(11)根据中国剩余定理计算,一个满足方程组x=1mod5,x=5mod8,x=3mod9且处于范围0≤x≤360内的x=21(请直接填写计算结果)而满足方程组x=2mod5,x=2mod8,x=6mod9且处于范围0≤x≤360内的x=42(请直接填写计算结果).(12)φ(N)表示N的Euler函数,于是φ(91)=72(请直接填写计算结果),100541mod91=100.(请直接填写计算结果)2.问答题(每小题6分,12分)(1)根据检测(识别)入侵的方法不同,入侵检测系统IDS分为哪两类?各有什么特点?(2)根据保护目的(或保护对象)不同,入侵检测系统分为哪两类?各有什么特点?A-33分析题(每小题6分,共18分)以下给出四段C++程序(为说明方便,左面的数字表示行号),每段C程序都存在一处能导致溢出攻击的缺陷,请指出该缺陷的位置,说明理由并说明如何改正.(1)①#defineMAX_BUFFER_SIZE128②voidroutine(char*p){/*p[]是内容来自外部的字符串*/③inti,x;④charbuffer[MAX_BUFFER_SIZE];⑤strcpy(buffer,p);⑥if(p[strlen(p)-1]’A’)⑦for(i=strlen(p)-1;i=0;i--)uppercase(p[i]);⑧return;}(2)①#defineBUFFERSIZE128②voidrountine(size_tbuffersize,char*buf){③if(buffersizeBUFFERSIZE){④char*pBuff=newchar[buffersize–1];⑤memcpy(pBuff,buf,buffersize–1);………}(3)①#defineMAX_BUFFER_SIZE128②voidroutine(char*p){/*p[]是来自外部的子符串*/③charbuffer[MAX_BUFFER_SIZE];④inti,n;⑤n=strlen(p)=MAX_BUFFER_SIZE?strlen(p):MAX_BUFFER_SIZE;⑥for(i=0;i=n;i++)⑦buffer[i]=p[i];⑧lowercase(p[i]);……}.A-44分析题(每小题5分,共10分)(1)下图入侵主机到防火墙的路由经过至多10个路由器,到被入侵的目标计算机还要再经过至多10个路由器.TTL表示IP分组首部的寿命字段,seq#n表示IP分组所承载的TCP段首中的序列号,请问防火墙所”看到”的完整字符串是什么?被入侵的计算机上接受到的完整字符串又是什么?请说明理由.TTL=17,seq#1,“r”TTL=23,seq#1,“a”TTL=21,seq#2,“d”TTL=15,seq#2,“i”TTL=18,seq#3,“c”TTL=20,seq#3,“m”TTL=21,seq#4,“i”TTL=16,seq#4,“e”(2)下图中的ICMP/request和ICMP/reply都是ICMP协议消息,R1、R2是路由器,假设网络3上有10000台主机,工作站A向网络3广播ICMP/request分组,但该分组的源地址故意不用IP#A而用IP#B,说明这样一来会导致什么后果,并给出理由.ABICMP/requestICMP/reply网络1网络2R1R2网络3入侵者的主机防火墙被入侵的主机A-55计算题(每小题5分,共15分)(1)现有以下加密方案:设G是素q阶循环群,生成子为g,q和g均公开.密钥生成算法KG(q,g)为x←$Zq;X←gx;pk←(q,g,X);sk←(q,g,x);return(pk,sk);/*pk为公钥,sk为私钥匙*/其中符号x←$Zq表示在集合Zq上按照均匀分布随机生成x(下同).设消息M是G的元素,加密算法E(pk,M)为r←$Zq;Y←gr;T←Xr;W←TM;return(Y,W);/*(Y,W)为密文*/请给出解密算法D(sk,(Y,W))并用计算证明你给出的算法正确.(2)G是q阶循环群,g是G的生成子,q是k位素数;H:{0,1}+→Zq是一个抗冲突的散列函数。一个签字方案的组成算法如下:公钥/私钥生成算法KG(k,G,g,q):x←$Zq*;y←g-x;vk←y;sk←x;return(vk,sk);公钥和私钥分别是vk和sk。签名算法SigH(sk,M)如下,其中sk=x:K←$Zq;r←gK;h←H(M,r);s←(K+xh)modq;return(r,h,s);验证算法VfH(vk,M,(r,h,s))如下,其中vk=y:return(h=H(M,r)∧r=gsyh);请用计算过程证明该验证算法是正确的.(3)U#1,U#2,U#3是三个网络用户,每个用户分别具有RSA加密方案的公开模数N1,N2,N3且这三个模数两两互素,三个用户的RSA公钥都是3,即e1=e2=e3=3.如果某个发送方将一个明文m(0mN1,N2,N3)用U#1,U#2,U#3的公钥加密然后将密文y1=m3modN1,y2=m3modN2,y3=m3modN3通过网络分别发送给U#1,U#2,U#3.现在设想你截获了以上三个密文,于是无须知道U#1,U#2,U#3的私钥就可以有效破译出消息m,为什么?请用明确的算法过程予以说明.A-66分析题(共15分)(1)(10分)以下是一个身份认证协议,其中E是一个对称加密方案的加密算法,相应的解密算法记为D;pw是A、B共享的口令字,同时用做对称加密钥。A(pw)B(pw)AR随机生成RE(pw,R)对以上协议存在一个典型的字典攻击,请给出该攻击过程。(2)(5分)分析下面基于口令的密钥交换协议,其中E是一个对称加密方案的加密算法,相应的解密算法记为D;pw是A、B共享的口令字。该协议并非口令安全,为什么?A(pw)pw是A、B共享的口令字B(pw)随机生成x;U←gxmodp;A,E(pw,U)解密出U;随机生成y;V←gymodp;B,E(pw,A||B||U||V||(Uymodp)||10)解密出V;Km←Vxmodp;E(Km,A||B||U||V||(Vxmodp)||01)A-77分析题(每小题5分,共10分)(1)下图是一个带身份认证的密钥交换协议,其中A、B分别是协议双方的身份标识,Sign是某种数字签名方案,E是某种对称加密方案,g是某个离散对数问题难解的素阶循环群的公开的生成子,x和y分别是A、B生成并保密的随机数。ABA随机生成x;B,gx,Sign(skB,gx)随机生成y;gy,Sign(skB,gx),E(gxy,0||A||B)E(gxy,1||B||A)(1)从程序实现的角度精确说明A在协议中的动作。(2)后两条消息中的分量E(gxy,0||A||B)和E(gxy,1||B||A)起什么作用?