第1章密码学基础一、选择题1.计算机网络是地理上分散的多台(C)遵循约定的通信协议,通过软硬件互联的系统。A.计算机B.主从计算机C.自主计算机D.数字设备2.密码学的目的是(C)。A.研究数据加密B.研究数据解密C.研究数据保密D.研究信息安全3.假设使用一种加密算法,它的加密方法很简单:将每一个字母加5,即a加密成f。这种算法的密钥就是5,那么它属于(A)。A.对称加密技术B.分组密码技术C.公钥加密技术D.单向函数密码技术4.网络安全最终是一个折衷的方案,即安全强度和安全操作代价的折衷,除增加安全设施投资外,还应考虑(D)。A.用户的方便性B.管理的复杂性C.对现有系统的影响及对不同平台的支持D.上面3项都是5.A方有一对密钥(KA公开,KA秘密),B方有一对密钥(KB公开,KB秘密),A方向B方发送数字签名M,对信息M加密为:M’=KB公开(KA秘密(M))。B方收到密文的解密方案是(C)。A.KB公开(KA秘密(M’))B.KA公开(KA公开(M’))C.KA公开(KB秘密(M’))D.KB秘密(KA秘密(M’))6.“公开密钥密码体制”的含义是(C)。A.将所有密钥公开B.将私有密钥公开,公开密钥保密C.将公开密钥公开,私有密钥保密D.两个密钥相同二、填空题1.密码系统包括以下4个方面:明文空间、密文空间、密钥空间和密码算法。2.解密算法D是加密算法E的逆运算。3.常规密钥密码体制又称为对称密钥密码体制,是在公开密钥密码体制以前使用的密码体制。4.如果加密密钥和解密密钥相同,这种密码体制称为对称密码体制。5.DES算法密钥是64位,其中密钥有效位是56位。6.RSA算法的安全是基于分解两个大素数的积的困难。7.公开密钥加密算法的用途主要包括两个方面:密钥分配、数字签名。8.消息认证是验证信息的完整性,即验证数据在传送和存储过程中是否被篡改、重放或延迟等。9.MAC函数类似于加密,它于加密的区别是MAC函数不可逆。10.Hash函数是可接受变长数据输入,并生成定长数据输出的函数。三、问答题1.简述主动攻击与被动攻击的特点,并列举主动攻击与被动攻击现象。主动攻击是攻击者通过网络线路将虚假信息或计算机病毒传入信息系统内部,破坏信息的真实性、完整性及系统服务的可用性,即通过中断、伪造、篡改和重排信息内容造成信息破坏,使系统无法正常运行。被动攻击是攻击者非常截获、窃取通信线路中的信息,使信息保密性遭到破坏,信息泄露而无法察觉,给用户带来巨大的损失。2.简述对称密钥密码体制的原理和特点。对称密钥密码体制,对于大多数算法,解密算法是加密算法的逆运算,加密密钥和解密密钥相同,同属一类的加密体制。它保密强度高但开放性差,要求发送者和接收者在安全通信之前,需要有可靠的密钥信道传递密钥,而此密钥也必须妥善保管。3.具有N个节点的网络如果使用公开密钥密码算法,每个节点的密钥有多少?网络中的密钥共有多少?每个节点的密钥是2个,网络中的密钥共有2N个。4.对称密码算法存在哪些问题?适用于封闭系统,其中的用户是彼此相关并相互信任的,所要防范的是系统外攻击。随着开放网络环境的安全问题日益突出,而传统的对称密码遇到很多困难:密钥使用一段时间后需要更换,而密钥传送需要可靠的通道;在通信网络中,若所有用户使用相同密钥,则失去保密意义;若使用不同密钥N个人之间就需要N(N-1)/2个密钥,密钥管理困难。无法满足不相识的人之间私人谈话的保密性要求。对称密钥至少是两人共享,不带有个人的特征,因此不能进行数字签名。5.IDEA是对称加密算法还是非对称加密算法?加密密钥是多少位?IDEA是一种对称密钥算法,加密密钥是128位。6.什么是序列密码和分组密码?序列密码是一种对明文中的单个位(有时对字节)运算的算法。分组密码是把明文信息分割成块结构,逐块予以加密和解密。块的长度由算法设计者预先确定。7.简述公开密钥密码机制的原理和特点?公开密钥密码体制是使用具有两个密钥的编码解码算法,加密和解密的能力是分开的;这两个密钥一个保密,另一个公开。根据应用的需要,发送方可以使用接收方的公开密钥加密消息,或使用发送方的私有密钥签名消息,或两个都使用,以完成某种类型的密码编码解码功能。8.什么是MD5?MD消息摘要算法是由Rivest提出,是当前最为普遍的Hash算法,MD5是第5个版本,该算法以一个任意长度的消息作为输入,生成128位的消息摘要作为输出,输入消息是按512位的分组处理的。第2章安全问题概述一、选择题1.信息安全的基本属性是(D)。A.机密性B.可用性C.完整性D.上面3项都是2.“会话侦听和劫持技术”是属于(B)的技术。A.密码分析还原B.协议漏洞渗透C.应用漏洞分析与渗透D.DOS攻击3.对攻击可能性的分析在很大程度上带有(B)。A.客观性B.主观性C.盲目性D.上面3项都不是4.从安全属性对各种网络攻击进行分类,阻断攻击是针对(B)的攻击。A.机密性B.可用性C.完整性D.真实性5.从安全属性对各种网络攻击进行分类,截获攻击是针对(A)的攻击。A.机密性B.可用性C.完整性D.真实性6.从攻击方式区分攻击类型,可分为被动攻击和主动攻击。被动攻击难以(C),然而(C)这些攻击是可行的;主动攻击难以(C),然而(C)这些攻击是可行的。A.阻止,检测,阻止,检测B.检测,阻止,检测,阻止C.检测,阻止,阻止,检测D.上面3项都不是7.窃听是一种(A)攻击,攻击者(A)将自己的系统插入到发送站和接收站之间。截获是一种(A)攻击,攻击者(A)将自己的系统插入到发送站和接受站之间。A.被动,无须,主动,必须B.主动,必须,被动,无须C.主动,无须,被动,必须D.被动,必须,主动,无须8.拒绝服务攻击的后果是(E)。A.信息不可用B.应用程序不可用C.系统宕机D.阻止通信E.上面几项都是9.机密性服务提供信息的保密,机密性服务包括(D)。A.文件机密性B.信息传输机密性C.通信流的机密性D.以上3项都是10.最新的研究和统计表明,安全攻击主要来自(B)。A.接入网B.企业内部网C.公用IP网D.个人网11.攻击者用传输数据来冲击网络接口,使服务器过于繁忙以至于不能应答请求的攻击方式是(A)。A.拒绝服务攻击B.地址欺骗攻击C.会话劫持D.信号包探测程序攻击12.攻击者截获并记录了从A到B的数据,然后又从早些时候所截获的数据中提取出信息重新发往B称为(D)。A.中间人攻击B.口令猜测器和字典攻击C.强力攻击D.回放攻击二、问答题1.请解释5种“窃取机密攻击”方式的含义。1)网络踩点(Footprinting)攻击者事先汇集目标的信息,通常采用Whois、Finger、Nslookup、Ping等工具获得目标的一些信息,如域名、IP地址、网络拓扑结构、相关的用户信息等,这往往是黑客入侵所做的第一步工作。2)扫描攻击(Scanning)这里的扫描主要指端口扫描,通常采用Nmap等各种端口扫描工具,可以获得目标计算机的一些有用信息,比如机器上打开了哪些端口,这样就知道开设了哪些网络服务。黑客就可以利用这些服务的漏洞,进行进一步的入侵。这往往是黑客入侵所做的第二步工作。3)协议栈指纹(StackFingerprinting)鉴别(也称操作系统探测)黑客对目标主机发出探测包,由于不同OS厂商的IP协议栈实现之间存在许多细微差别,因此每种OS都有其独特的响应方法,黑客经常能够确定目标主机所运行的OS。这往往也可以看作是扫描阶段的一部分工作。4)信息流嗅探(Sniffering)通过在共享局域网中将某主机网卡设置成混杂(Promiscuous)模式,或在各种局域网中某主机使用ARP欺骗,该主机就会接收所有经过的数据包。基于这样的原理,黑客可以使用一个嗅探器(软件或硬件)对网络信息流进行监视,从而收集到帐号和口令等信息。这是黑客入侵的第三步工作。5)会话劫持(SessionHijacking)所谓会话劫持,就是在一次正常的通信过程中,黑客作为第三方参与到其中,或者是在数据流里注射额外的信息,或者是将双方的通信模式暗中改变,即从直接联系变成交由黑客中转。这种攻击方式可认为是黑客入侵的第四步工作——真正的攻击中的一种。2.请解释5种“非法访问”攻击方式的含义。1)口令破解攻击者可以通过获取口令文件然后运用口令破解工具进行字典攻击或暴力攻击来获得口令,也可通过猜测或窃听等方式获取口令,从而进入系统进行非法访问,选择安全的口令非常重要。这也是黑客入侵中真正攻击方式的一种。2)IP欺骗攻击者可通过伪装成被信任源IP地址等方式来骗取目标主机的信任,这主要针对LinuxUNIX下建立起IP地址信任关系的主机实施欺骗。这也是黑客入侵中真正攻击方式的一种。3)DNS欺骗当DNS服务器向另一个DNS服务器发送某个解析请求(由域名解析出IP地址)时,因为不进行身份验证,这样黑客就可以冒充被请求方,向请求方返回一个被篡改了的应答(IP地址),将用户引向黑客设定的主机。这也是黑客入侵中真正攻击方式的一种。4)重放(Replay)攻击在消息没有时间戳的情况下,攻击者利用身份认证机制中的漏洞先把别人有用的消息记录下来,过一段时间后再发送出去。5)特洛伊木马(TrojanHorse)把一个能帮助黑客完成某一特定动作的程序依附在某一合法用户的正常程序中,而一旦用户触发正常程序,黑客代码同时被激活,这些代码往往能完成黑客早已指定的任务(如监听某个不常用端口,假冒登录界面获取帐号和口令等)。3.请解释下列各种“恶意攻击DoS”的方式:PingofDeath、Teardrop、SYNFlood、LandAttack、SmurfAttack、DDoS攻击1)PingofDeath在早期操作系统TCP/IP协议栈实现中,对单个IP报文的处理过程中通常是设置有一定大小的缓冲区(65535Byte),以应付IP分片的情况。接收数据包时,网络层协议要对IP分片进行重组。但如果重组后的数据报文长度超过了IP报文缓冲区的上限时,就会出现溢出现象,导致TCP/IP协议栈的崩溃。2)泪滴(Teardrop)协议栈在处理IP分片时,要对收到的相同ID的分片进行重组,这时免不了出现一些重叠现象,分片重组程序要对此进行处理。对一个分片的标识,可以用offset表示其在整个包中的开始偏移,用end表示其结束偏移。对于其他一些重叠情况,分片重组程序都能很好地处理,但对于一种特殊情况,分片重组程序就会出现致命失误,即第二个分片的位置整个包含在第一个分片之内。分片重组程序中,当发现offset2小于end1时,会将offset2调整到和end1相同,然后更改len2:len2=end2-offset2,在这里,分片重组程序想当然地认为分片2的末尾偏移肯定是大于其起始偏移的,但在这种情况下,分片2的新长度len2变成了一个负值,这在随后的处理过程中将会产生致命的操作失误。3)SYNFlood一个正常的TCP连接,需要经过三次握手过程才能真正建立。但是如果客户端不按常规办事(假定源IP根本就是一个不会产生响应的虚假地址),并不向服务器最终返回三次握手所必须的ACK包,这种情况下服务器对于未完成连接队列中的每个连接表项都设置一个超时定时器,一旦超时时间到,则丢弃该表项。但黑客并不会只发送一次这样的SYN包,如果他源源不断发送,每个SYN包的源IP都是随机产生的一些虚假地址(导致受害者不可能再进行IP过滤或追查攻击源),受害者的目标端口未完成队列就不断壮大,因为超时丢弃总没有新接收的速度快,所以直到该队列满为止,正常的连接请求将不会得到响应。4)LandAttack如果向Windows95的某开放端口(例如139端口)发送一个包含SYN标识的特殊的TCP数据包,将导致目标系统立即崩溃。做法很简单,就是设置该SYN包的源IP为目标主机的IP,源端口为目标主机受攻击的端口。5)SmurfAttack黑客以受害主机的名义向某个网络地址发送ICMPecho请求广播,收到该ICMPecho请求的网络中的所有主机都会向“无辜”的受害主机返回ICMPecho响应