
1.信息安全的基本属性主要表现在那几个方面?(5个主要属性)
答:
保密性(Confidentiality)、
完整性(Integrity)、
有效性(Availability)、
不可抵赖性(Non-repudiation)、
可控性(Controllability)。
2.ISO7498-2标准,安全服务、安全机制和OSI参考模型各层的关系。
安全服务:X.800定义:为了保证系统或者数据传输有足够的安全性,开发系统通信协议所提供的服务。RFC 2828:安全服务是一种由系统提供的对资源进行特殊保护的进程或通信服务。【安全服务通过安全机制来实现安全策略, 共五类十四仲安全服务】蓝皮书P33
⏹ISO安全服务不足:缺少防止DoS攻击的定义;对入侵检测,几乎没有涉及;大多数安全服务是对同级实体的,缺少多级或分层实体的内涵;本质上是一个被动安全服务定义;其它,如授权;
安全机制:安全机制是一种技术,一些软件或实施一个或更多安全服务的过程。
两种安全机制:
特殊安全机制:在特定协议层实现,8种。
普遍安全机制:不属于任何协议层或安全服务,5种。
(1)可信功能度(2)安全标志、
(3)事件检测(检查和报告本地或远程发生的事件)、
(4)安全审计跟踪(任何机制都允许你监视和记录你网络上的活动)、
(5)安全恢复(对一些事件作出反应,包括对于已知漏洞创建短期和长期的解决方案,还包括对受危害系统的修复)
关系:
3.流密码的概念、基本结构和关键问题。蓝皮书P66 红皮书P46
4.分组密码设计的主要指导原则是什么?其实现的手段是什么?
答:设计准则【蓝皮书P71 及《密码学基础》P17】
实现手段:
⏹替代称为为加密过程加入混淆
强调密钥的作用;增加密钥与密文之间关系的复杂性
⏹移位称为加入发散
小扰动的影响波及到全局;密文没有统计特征,明文一位影响密文的多位,增加密文与明文之间关系的复杂性。
5.DES 、3DES
DES:蓝皮书P74
3DES:红皮书P53
为了避免三重DES使用3个密钥进行三阶段加密带来的密钥过长的缺点(168bit),Tuchman提出使用两个密钥的三重加密方法,这个方法只要求112bit密钥,即令其K1=K3:
C=EK1(DK2(EK1(M)))
三重DES的第二阶段的解密并没有密码编码学上的意义。它的唯一优点是可以使用三重DES解密原来的单次DES加密的数据,即K1=K2=K3。
C=EK1(DK1(EK1(M)))=EK1(M)
6.分组密码的四种使用方式,其特点和应用场合。 红皮书P
答:
ECB主要用于发送少数量的分组数据(如加密密钥等);
⏹相同明文=》相同密文(相同密码):好像有一个密码本
⏹同样信息多次出现造成泄漏
⏹信息块可被替换
⏹信息块可被重排
⏹密文块损坏=》仅对应明文块损坏
⏹适合于传输短信息,数据较少的情况,典型应用:单个数据的安全传输
CBC适合加密长度大于比特的消息,还可以用来进行用户鉴别;
⏹需要共同的初始化向量IV,如密钥一样保护?
⏹相同明文不同密文
⏹初始化向量IV可以用来改变第一块
⏹密文块损坏两明文块损坏
⏹安全性好于ECB,重排
⏹加密算法的输入是上一个密文组和下一个明文组的异或
优点:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的 标准。
缺点:
1.不利于并行计算;
2.误差传递;
3.需要初始化向量IV
CFB适合数据以比特或字节为单位出现,常用于流模式中;
⏹CFB:分组密码=》流密码(密文和明文等长)
⏹一次处理j位
⏹延迟小
⏹需要共同的移位寄存器初始值IV
⏹对于不同的消息,IV必须唯一
⏹一个单元损坏影响多个单元: (W+j-1)/j
W为分组加密块大小,j为流单元位数
⏹一次处理 j 位,上一分组密文作为伪随机数输入加密算法,输出和明文异或生成下一组密文。
OFB用于需要反馈错误或者需要在消息可用前进行加密的场合。
⏹OFB:分组密码=》流密码
⏹需要共同的移位寄存器初始值IV
⏹一个单元损坏只影响对应单元(没有错误扩散问题)
⏹导致抗流窜改攻击的能力不如CFB
⏹用于噪声通道上的数据传输(如卫星通信),适用于必须避免错误传播的应用领域。
⏹与CFB基本相同,只是加密算法的输入(填充移位寄存器)是上一次加密函数的输出,而CFB是密文单元来填充移位寄存器。
7.构建公钥密码的数学难题常见的有哪些,数学难题在构造公钥算法时有何考虑?红皮书P66
常见难题:
背包问题
整数分解问题
离散对数问题
丢番图方程
矩阵覆盖问题
设计考虑:
公钥和私钥必须相关,而且从公钥到私钥不可推断,必须要找到一个难题,从一个方向走是容易的,从另一个方向走是困难的。
计算可行和不可行的界
【单向陷门函数是有一个陷门的一类特殊单向函数。它首先是一个单向函数,在一个方向上易于计算而反方向却难于计算。但是,如果知道那个秘密陷门,则也能很容易在另一个方向计算这个函数】
8.掌握RSA加密和解密的方法。 蓝皮书P98 红皮书P69
9.掌握逆元、欧拉函数、乘幂powmod等的计算。 蓝皮书P98
用扩展的欧几里德算法可以求乘法逆元e,算法描述如下:
ExtendedEuclid(e,f)
1、(X1,X2,X3):=(1,0,f)
2、(Y1,Y2,Y3):=(0,1,e)
3、if (Y3=0) then return e=null//无逆元
4、if (Y3=1) then return e=Y2 //Y2为逆元
5、Q:=X3 div Y3
6、(T1,T2,T3):=(X1-Q*Y1,X2-Q*Y2,X3-Q*Y3)
7、(X1,X2,X3):=(Y1,Y2,Y3)
8、(Y1,Y2,Y3):=(T1,T2,T3)
9、goto 3
举个例子:求7关于96的乘法逆元。
10.Hash的单向性、抗弱碰撞性和抗强碰撞性。 蓝皮书P120
单向性: 给定h,找到x使h=H(x)在计算上不可行
抗弱碰撞性:Weak Collision Resistence(WCR):给定x,找到yx使H(x)=H(y)在计算上不可行
抗强碰撞性:Strong Collision Resistence(SCR): 找到任意的yx使H(x)=H(y)在计算上不可行
11.如何理解生日攻击在数字签名中的应用。 蓝皮书P121
生日攻击理论基础:
⏹若k1.182m/22m/2, 则k个在[1,2m]的随机数中有两个数相等的概率不低于0.5
⏹若k0.83n1/2,两个在[1,n]的k个随机数集合有交集的概率不小于0.5
因此,当Hash算法选用N位的Hash值时,两组消息(选择k=2N/2)中有一对消息产生相同Hash值的概率超过0.5
应用:
MD5
⏹2004年,王小云证明MD5数字签名算法可以产生碰撞。
⏹2007年,Marc Stevens,Arjen K. Lenstra和Benne de Weger进一步指出通过伪造软件签名,可重复性攻击MD5算法。研究者使用前缀碰撞法(chosen-prefix collision),使程序前端包含恶意程序,利用后面的空间添上垃圾代码凑出同样的MD5 Hash值。
⏹2008年,荷兰埃因霍芬技术大学科学家成功把2个可执行文件进行了MD5碰撞,使得这两个运行结果不同的程序被计算出同一个MD5。
⏹2008年12月一组科研人员通过MD5碰撞成功生成了伪造的SSL证书,这使得在https协议中服务器可以伪造一些根CA的签名。
SHA
⏹2005年,Rijmen和Oswald发表了对SHA-1较弱版本(53次的加密循环而非80次)的攻击:在280的计算复杂度之内找到碰撞。
⏹2005年二月,王小云、殷益群及于红波发表了对完整版SHA-1的攻击,只需少于269的计算复杂度,就能找到一组碰撞。(利用生日攻击法找到碰撞需要280的计算复杂度。)
⏹2005年8月17日的CRYPTO会议尾声中王小云、姚期智、姚储枫再度发表更有效率的SHA-1攻击法,能在263个计算复杂度内找到碰撞。
⏹2006年的CRYPTO会议上,Christian Rechberger和Christophe De Cannière宣布他们能在容许攻击者决定部分原讯息的条件之下,找到SHA-1的一个碰撞。
⏹在密码学的学术理论中,任何攻击方式,其计算复杂度若少于暴力搜寻法所需要的计算复杂度,就能被视为针对该密码系统的一种破密法;但这并不表示该破密法已经可以进入实际应用的阶段。
12.消息认证解决什么问题?HMAC的优点是什么? 蓝皮书P132
答:消息认证 (报文鉴别):对收到的消息进行验证,证明确实是来自声称的发送方,并且没有被修改过。如果在消息中加入时间及顺序信息,则可以完成对时间和顺序的认证。
三种方式:
1.Message encryption:用整个消息的密文作为认证标识(接收方必须能够识别错误)
2.MAC:使用一个双方共享的秘密密钥生成一个固定大小的小数据块,并加入到消息中,称MAC,或密码校验和(cryptographic checksum)。MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少。
3.Hash function:一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识
优点是可以与任何迭代散列函数捆绑使用,并引入了密钥增强安全性。
13.挑战-响应身份认证技术 蓝皮书P172
14.密钥分配中心KDC的工作方式、交互流程、现时数的使用。 蓝皮书P107
15.Kerberos认证系统的工作流程。蓝皮书P179
一个更安全的认证流程,5步。
16.PGP工作原理。
PGP优点:蓝皮书P256。
A、PGP是RSA和传统加密的杂合算法,PGP实际上并不是用RSA来加密内容本身,而是采用了IDEA的传统加密算法。PGP是用一个随机生成密钥(每次加密不同)及IDEA算法对明文加密,然后再用RSA算法对该密钥加密。这样的链式加密方式做到了既有RSA体系的保密性,又有IDEA算法的快捷性。
B、密钥管理:PGP采用了一种公钥介绍机制来解决这个问题。经过介绍人私钥签字的用户公钥可以上载到网上供人使用,没人可以篡改它而不被发现,即使是网站的管理员,这就是PGP所设计的从公共渠道传递公钥的安全手段。
工作流程:
A、首先产生一对钥匙.一个私钥,一个公钥
B、传送一封保密邮件时,首先取得对方的公钥,再利用对方的公钥加密
C、对方收到加密后的邮件后,利用相应的私钥来解密,还可以只签名而不加密
17.PKI的工作流程,CA证书、PKI中的几种信任模型。 PPT 蓝皮书P210、214、217
PKI是Public Key Infrastructure的缩写,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施.
PKI运行:X509标准
1)署名用户向证明机构(CA)提出数字证书申请;
2)CA验明署名用户身份,并签发数字证书;
3)CA将证书公布到证书库中;
4)署名用户对电子信件数字签名作为发送认证,确保信件完整性,不可否认性,并发送给依赖方。
5)依赖方接收信件,用署名用户的公钥验证数字签名,并到证书库查明署名用户证书的状态和有效性;
6)证书库返回证书检查结果;
18.强制访问控制模型,Biba模型和Bell-Lapadula模型。 蓝皮书P198
强制访问控制(MAC)中,系统包含主体集S和客体集O,每个S中的主体s及客体集中的客体o,都属于一固定的安全类SC,安全类SC= Bell-LaPadula :保证保密性 a)下读:仅当SC(o)≤SC(s)时,s 可以读取o b)上写: 仅当SC(s) ≤SC(o)时,s可以修改o 简单安全特性(ss特性) 如果(主体、客体、访问)是当前访问,一定有 level(主体) ≥level(客体) 下读; 星号安全特性(*s特性) a访问; level(客体) ≥level(主体) 上写; w访问; level(客体) =level(主体) ; r访问; level(客体) ≥level(主体) 下读; 自主安全特性(ds特性) 当前访问一定是在访问控制矩阵M中; 三个特性的前两个是强制访问控制,ds特性是自主访问控制,前者是系统强制,后者是拥有者确定; 如果系统中的每一次变化状态满足这三个特性,那么系统的安全性不会被破坏。 贝拉模型包含等级分类(整数)和非等级分类(集合)。 Biba :保证完整性 c)上读:仅当SC(o)>SC(s)时,s 可以读取o d)下写:仅当SC(s) >SC(o)时,s可以修改o 规则1:当且仅当 i(O) ≤i(S),主体S可以写客体O;(下写) 规则2:当且仅当 i(S1) ≤i(S2),主体S2可以写主体S1; 主要用于防治木马病毒的执行。程序的完整性;数据的完整性; 19.RBAC访问模型。 蓝皮书P200 RBAC三原则: 最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。 责任分离原则可以通过调用相互互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。 数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。然而这些原则必须通过RBAC各部件的详细配置才能得以体现。 RBAC与传统访问控制的差别:增加一层间接性带来了灵活性。 RBAC与DAC的区别 ●DAC的主体可直接访问客体,而RBAC不行 ●DAC的权限要么在主体(能力表),要么在客体,而RBAC的却在角色控制模块 RBAC与MAC的区别 ●大致与DAC的相同 ●MAC是多级的,而RBAC可以是单级的 相对DAC/MAC,RBAC灵活且容易实现 RBAC的角色很难定义 Core RBAC 包括五个基本数据元素: ●用户USERS ●角色ROLES ●目标OBJECT ●操作OPERATION ●许可权PERMISSION 关系:多对多,用户被分配一定角色,角色被分配一定的许可权 会话sessions: 是用户与激活的角色集合之间的映射 在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What进行How的操作”。 Core RBAC的几点说明 session由用户控制,允许动态激活/取消角色,实现最小。应避免同时激活所有角色 session和user分离可以解决同一用户多账号带来的问题,如审计、计账等 Hierarchical RBAC 角色的结构化分层是反映一个组织的授权和责任的自然方式 定义了角色的继承关系 ●Role r1 “inherits” role r2,角色r2的权限同样是r1的权限 RBAC的特点 符合各类组织机构的安全管理需求。RBAC模型支持最小原则、责任分离原则,这些原则是任何组织的管理工作都需要的。这就使得RBAC模型由广泛的应用前景。 RBAC模型支持数据抽象原则和继承概念。由于目前主流程序设计语言都支持面向对象技术,RBAC的这一特性便于在实际系统中应用实现。 模型中概念与实际系统紧密对应。RBAC模型中的角色、用户和许可权等概念都是实际系统实际存在的实体,便于设计者建立现存的或待建系统的RBAC模型。 RBAC模型仍属具访问控制类模型,本质是对访问矩阵模型的扩充,能够很好的解决系统中主体对客气的访问控制访问权力的分配与控制问题,但模型没有提供信息流控制机制,还不能完全满足信息系统的全部安全需求。 缺点:RBAC模型没有提供操作顺序控制机制。这一缺陷使得RBAC模型很难应用关于那些要求有严格操作次序的实体系统,例如,在购物控制系统中要求系统对购买步骤的控制,在客户未付款之前不应让他把商品拿走。RBAC模型要求把这种控制机制放到模型外去实现。 RBAC96模型故意回避了一些问题,如是否允许一个正在会话的用户再创建一个新会话,管理模型不支持用户和许可权的增加与删除等管理工作等,都是需要解决而未提供支持的问题,这些问题都还在研究中,但是如果缺少这些能力的支持,模型的而应用也将受到影响。相反,访问矩阵模型提供了用户和权限修改功能,因此,不能说RBAC模型能够完全取代访问矩阵模型。 授权的管理:授权的管理决定谁能被授权修改允许的访问 分为: 强制访问控制的授权管理 在强制访问控制中,允许的访问控制完全是根据主体和客体的安全级别决定。其中主体(用户、进程)的安全级别是由系统安全管理员赋予用户,而客体的安全级别则由系统根据创建它们的用户的安全级别决定。因此,强制访问控制的管理策略是比较简单的,只有安全管理员能够改变主体和客体的安全级别。 自主访问控制的授权管理 集中式管理:只单个的管理者或组对用户进行访问控制授权和授权撤消 分级式管理:一个中心管理者把管理责任分配给其它管理员,这些管理员再对用户进行访问授权和授权撤消。分级式管理可以根据组织结构而实行 所属权管理:如果一个用户是一个客体的所有者,则该用户可以对其它用户访问该客体进行授权访问和授权撤消 协作式管理:对于特定系统资源的访问不能有单个用 户授权决定,而必须要其它用户的协作授权决定 分散式管理:在分散管理中,客体所有者可以把管理权限授权给其他用户 角色访问控制的授权管理 角色访问控制提供了类似自由访问控制的许多管理策略。而且,管理权限的委托代理是角色访问控制管理的重要特点,在以上的两种访问控制的管理策略中都不存在。 20.IPSec协议 、隧道模式和传输模式的特点 蓝皮书P238,红皮书146
