免费智能真题库 > 历年试卷 > 信息安全工程师 > 2016年下半年 信息安全工程师 下午试卷 案例
  第4题      
  知识点:   加密   认证   身份认证   实体   消息

 
阅读下列说明,回答问题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   认证与加密有哪些区别?
 
问题:4.2   (1)包含在消息2中的“Nb”起什么作用?
(2)“Nb“的选择应满足什么条件?
 
问题:4.3   为什么消息3中的Nb要计算哈希值?
 
问题:4.4   上述协议存在什么安全缺陷?请给出相应的解决思路。
 
 
 

   知识点讲解    
   · 加密    · 认证    · 身份认证    · 实体    · 消息
 
       加密
               保密与加密
               保密就是保证敏感信息不被非授权的人知道。加密是指通过将信息进行编码而使得侵入者不能够阅读或理解的方法,目的是保护数据和信息。解密是将加密的过程反过来,即将编码信息转化为原来的形式。古时候的人就已经发明了密码技术,而现今的密码技术已经从外交和军事领域走向了公开,并结合了数学、计算机科学、电子与通信等诸多学科而成为了一门交叉学科。现今的密码技术不仅具有保证信息机密性的信息加密功能,而且还具有数字签名、身份验证、秘密分存、系统安全等功能,来鉴别信息的来源以防止信息被篡改、伪造和假冒,保证信息的完整性和确定性。
               加密与解密机制
               加密的基本过程包括对原来的可读信息(称为明文或平文)进行翻译,译成的代码称为密码或密文,加密算法中使用的参数称为加密密钥。密文经解密算法作用后形成明文,解密算法也有一个密钥,这两个密钥可以相同也可以不相同。信息编码的和解码方法可以很简单也可以很复杂,需要一些加密算法和解密算法来完成。
               从破译者的角度来看,密码分析所面对的问题有三种主要的变型:①“只有密文”问题(仅有密文而无明文);②“已知明文”问题(已有了一批相匹配的明文与密文);③“选择明文”(能够加密自己所选的明文)。如果密码系统仅能经得起第一种类型的攻击,那么它还不能算是真正的安全,因为破译者完全可能从统计学的角度与一般的通信规律中猜测出一部分的明文,而得到一些相匹配的明文与密文,进而全部解密。因此,真正安全的密码机制应使破译者即使拥有了一些匹配的明文与密文也无法破译其他的密文。
               如果加密算法是可能公开的,那么真正的秘密就在于密钥了,密钥长度越长,密钥空间就越大,破译密钥所花的时间就越长,破译的可能性就越小。所以应该采用尽量长的密钥,并对密钥进行保密和实施密钥管理。
               国家明确规定严格禁止直接使用国外的密码算法和安全产品,原因主要有两点:①国外禁止出口密码算法和产品,目前所出口的密码算法都有破译手段,②国外的算法和产品中可能存在“后门”,要防止其在关键时刻危害我国安全。
               密码算法
               密码技术用来进行鉴别和保密,选择一个强壮的加密算法是至关重要的。密码算法一般分为传统密码算法(又称为对称密码算法)和公开密钥密码算法(又称为非对称密码算法)两类,对称密钥密码技术要求加密解密双方拥有相同的密钥。而非对称密钥密码技术是加密解密双方拥有不相同的密钥。
               对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类(这两种体制之间还有许多中间类型)。
               序列密码是军事和外交场合中主要使用的一种密码技术。其主要原理是:通过有限状态机产生性能优良的伪随机序列,使用该序列将信息流逐比特加密从而得到密文序列。可以看出,序列密码算法的安全强度由它产生的伪随机序列的好坏而决定。分组密码的工作方式是将明文分成固定长度的组(如64比特一组),对每一组明文用同一个密钥和同一种算法来加密,输出的密文也是固定长度的。在序列密码体制中,密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数;而在分组密码体制中,经过加密所得到的密文仅与给定的密码算法和密钥有关,而与被处理的明数据段在整个明文中所处的位置无关。
               不同于传统的对称密钥密码体制,非对称密码算法要求密钥成对出现,一个为加密密钥(可以公开),另一个为解密密钥(用户要保护好),并且不可能从其中一个推导出另一个。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。另外,公钥加密也用来对专用密钥进行加密。
               公钥算法不需要联机密钥服务器,只在通信双方之间传送专用密钥,而用专用密钥来对实际传输的数据加密解密。密钥分配协议简单,所以极大简化了密钥管理,但公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。
               密钥及密钥管理
               密钥是密码算法中的可变参数。有时候密码算法是公开的,而密钥是保密的,而密码分析者通常通过获得密钥来破译密码体制。也就是说,密码体制的安全性建立在对密钥的依赖上。所以,保守密钥秘密是非常重要的。
               密钥管理一般包括以下8个内容。
               (1)产生密钥:密钥由随机数生成器产生,并且应该有专门的密钥管理部门或授权人员负责密钥的产生和检验。
               (2)分发密钥:密钥的分发可以采取人工、自动或者人工与自动相结合的方式。加密设备应当使用经过认证的密钥分发技术。
               (3)输入和输出密钥:密钥的输入和输出应当经由合法的密钥管理设备进行。人工分发的密钥可以用明文形式输入和输出,并将密钥分段处理;电子形式分发的密钥应以加密的形式输入和输出。输入密钥时不应显示明文密钥。
               (4)更换密钥:密钥的更换可以由人工或自动方式按照密钥输入和密钥输出的要求来实现。
               (5)存储密钥:密钥在加密设备内采用明文形式存储,但是不能被任何外部设备访问。
               (6)保存和备份密钥:密钥应当尽量分段保存,可以分成两部分并且保存在不同的地方,例如一部分存储在保密设备中,另一部分存储在IC卡上。密钥的备份也应当注意安全并且要加密保存。
               (7)密钥的寿命:密钥不可以无限期使用,密钥使用得越久风险也就越大。密钥应当定期更换。
               (8)销毁密钥:加密设备应能对设备内的所有明文密钥和其他没受到保护的重要保护参数清零。
 
       认证
        认证又分为实体认证和消息认证两种。实体认证是识别通信对方的身份,防止假冒,可以使用数字签名的方法。消息认证是验证消息在传送或存储过程中有没有被篡改,通常使用报文摘要的方法。
               基于共享密钥的认证
               如果通信双方有一个共享的密钥,则可以确认对方的真实身份。这种算法依赖于一个双方都信赖的密钥分发中心(Key Distribution Center,KDC),如下图所示,其中的A和B分别代表发送者和接收者,KAKB分别表示A、B与KDC之间的共享密钥。
               
               基于共享密钥的认证协议
               认证过程如下:A向KDC发出消息{A,KA(B,KS)},说明自己要与B通信,并指定了与B会话的密钥KS。注意,这个消息中的一部分(B,KS)是用KA加密的,所以第三者不能了解消息的内容。KDC知道了A的意图后就构造了一个消息{KB(A,KS)}发给B。B用KB解密后就得到了A和KS,然后就可以与A用KS会话了。
               然而,主动攻击者对这种认证方式可能进行重放攻击。例如A代表雇主,B代表银行。第三者C为A工作,通过银行转账取得报酬。如果C为A工作了一次,得到了一次报酬,并偷听和复制了A和B之间就转账问题交换的报文,那么贪婪的C就可以按照原来的次序向银行重发报文2,冒充A与B之间的会话,以便得到第二次、第三次……报酬。在重放攻击中攻击者不需要知道会话密钥KS,只要能猜测密文的内容对自己有利或是无利就可以达到攻击的目的。
               基于公钥的认证
               这种认证协议如下图所示。A向B发出EB(A,RA),该报文用B的公钥加密。B返回EARARBKS),用A的公钥加密。这两个报文中分别有A和B指定的随机数RARB,因此能排除重放的可能性。通信双方都用对方的公钥加密,用各自的私钥解密,所以应答比较简单。其中的KS是B指定的会话键。这个协议的缺陷是假定双方都知道对方的公钥。
               
               基于公钥的认证协议
 
       身份认证
        身份认证的主要目标是检验身份,即确定合法用户的身份和权限,识别假冒他人身份的用户。认证系统可以与授权系统配合使用,在用户的身份通过认证后,根据其具有的授权来限制、其操作行为。常见的系统身份认证方式主要有入网访问控制和权限控制。
               入网访问控制
               入网访问控制为网络访问提供了第一层访问控制,限制未经授权的用户访问部分或整个信息系统。用户要访问信息系统,首先要获得授权,然后接受认证。对信息系统进行访问包含三个步骤:第一步,能够使用终端;第二步,进入系统;第三步,访问系统中的具体命令、交易、权限、程序和数据。目前,从市场上可以买到针对计算机、局域网、移动设备和拨号通信网的访问控制软件。访问控制规程要求为每个有效用户分配一个唯一的用户身份标识(UID),使用这个UID对要求访问信息系统用户的真实身份进行验证。可以使用数字证书、智能卡、硬件令牌、手机令牌、签名、语音、指纹及虹膜扫描等生物特征鉴别。
               其中,数字证书就是互联网通信中标志通信各方身份信息的一系列数据,提供了一种在Internet上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个权威机构——CA机构,又称证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书有两种形式,即文件证书和移动证书USBKEY。其中移动证书USBKEY是一种应用了智能芯片技术的数据加密和数字签名工具,其中存储了每个用户唯一、不可复制的数字证书,在安全性上更胜一筹,是现在电子政务和电子商务领域最流行的身份认证方式。其原理是通过USB接口与计算机相连,用户个人信息存放在存储芯片中,可由系统进行读/写,当需要对用户进行身份认证时,系统提请用户插入USBKEY并读出上面记录的信息,信息经加密处理送往认证服务器,在服务器端完成解密和认证工作,结果返回给用户所请求的应用服务。
               生物特征鉴别通过自动验证用户的生理特征或行为特征来识别身份。多数生物学测定系统的工作原理是将一个人的某些特征与预存的资料(在模板中)进行对比,然后根据对比结果进行评价。常见的测定方法如下。
               (1)脸部照片。计算机对脸部进行照相并将其与预存的照片进行对比。这种方法能够成功地完成对用户的识别,只是在识别双胞胎时不够准确。
               (2)指纹扫描。当用户登录时,可扫描用户的指纹并将其与预存的指纹进行对比,确定是否匹配。
               (3)手型识别。这种方法与指纹扫描非常类似,不同之处在于验证人员使用类似于电视的照相机对用户的手进行拍照,然后将手的某些特征(如手指长度和厚度等)与计算机中存储的信息进行对比。
               (4)虹膜扫描。这种技术是使用眼睛中有颜色的一部分来确定个人身份的方法,通过对眼睛进行拍照并对照片进行分析来确定用户身份,结果非常准确。
               (5)视网膜扫描。这种方法对视网膜上的血管进行扫描,将扫描结果与预存的照片进行对比。
               (6)语音扫描。这种方法通过对比用户的语音与计算机中预存的语音来验证用户身份。
               (7)签名。将签名与预存的有效签名进行对比。
               (8)击键动态。将用户键盘压力和速度与预存的信息进行对比。
               (9)还有脸部温度测定等方法。
               网络的权限控制
               网络权限控制是针对网络非法操作所提出的一种安全保护措施。用户和用户组被赋予一定的权限。网络控制用户和用户组可以访问哪些目录、子目录、文件和其他资源;可以指定用户对这些文件、目录、设备能够执行哪些操作;可以根据访问权限将用户分为特殊用户(系统管理员)和一般用户,系统管理员根据用户的实际需要为他们分配操作权限。网络应允许控制用户对目录、文件、设备的访问。用户在目录一级指定的权限对所有文件和子目录均有效,用户还可进一步指定目录下子目录和文件的权限。对目录和文件的访问权限一般有八种:系统管理员权限、读权限、写权限、创建权限、删除权限、修改权限、文件查找权限、存取控制权限。
 
       实体
        从上表中可见,在E-R模型中实体用矩形表示,通常矩形框内写明实体名。实体是现实世界中可以区别于其他对象的“事件”或“物体”。例如,企业中的每个人都是一个实体。每个实体由一组特性(属性)来表示,其中的某一部分属性可以唯一标识实体,如职工号。实体集是具有相同属性的实体集合,例如,学校所有教师具有相同的属性,因此教师的集合可以定义为一个实体集;学生具有相同的属性,因此学生的集合可以定义为另一个实体集。
 
       消息
        消息是对象间通信的手段、一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。消息只告诉接收对象需要完成什么操作,并不能指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法来完成所需的操作。
   题号导航      2016年下半年 信息安全工程师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第4题    在手机中做本题