范围划得虽大,但是主题不多,和往常一样记录一下重点。
考试范围
1、大数据安全概念及目标
2、传统访问控制技术和基于密码的访问控制技术。
3、角色挖掘的算法
4、对称密码,非对称密码,hash算法的原理及作用
5、密文索引的基本思想,及设计
6、身份认证技术及实现
已知:只会有七道题,而且不会考证明,个人认为数学相关的知识会减少或者几乎没有,因为“数论实在是太难了大家学不会”
2,3,6:身份认证和角色挖掘,访问控制技术都是同一章节中的,足见重视程度。
5:密文索引的技术明说“至少掌握一个”,大概是这一部分的确难度很高。我认为最好掌握理解的是基于关键词的文档索引技术,通过布隆过滤器来匹配。因此这部分可以说订好了复习范围了。
4:同样重要的部分,考虑到一共七道题个人认为这里有可能出俩。对于非对称加密,RSA差不多是必考的。对于对称加密,可能是概念性的或者AES,SM4.HASH部分有可能和对称或非对称合起来考。
1:概念部分不好复习,顺一遍即可。
提纲不会按照上述顺序来,看到哪写到哪,同等重要。
对称密码
流密码和分组密码。分组密码是网络传输加密,数据存储加密中最重要的加密方法之一(网络上以分组为单位传输)。
用于构造消息认证码(MAC),伪随机数生成器等。
分组密码算法
思路很简单,就是把分组后长度相同的原文分组和同样分组后的密钥分组进行一些操作(算法),得到密文。
设计原则:分组长度n要够大,防止明文穷举攻击。密钥长度够大,防止密钥穷举攻击;需要具有非线性运算部件(s盒为代表),充分混淆和扩散,形成雪崩效应(类似hash但是hash回不去)
性能要求:速度快,存储量大,多轮迭代形式。
对于多轮迭代,常常用子密钥生成算法把固定的密钥生成子密钥(轮密钥),用在每一轮中分别加密。
大多数采用了Feistel网络和S-盒结构(非线性结构)
S-盒:查表替代。
置换:按位置换。
Feistel密码结构
一种典型的加密结构,把原文分成两部分(长度相同则是平衡的,否则是不平衡的),对于其中一半A通过加密算法和子密钥K进行加密得到A‘,将加密结果与另一部分B亦或后放在密文对应A的位置;密文的B位置则由原文的A填充(不加密,但是下一轮会得到加密),如此在充分混淆的情况下保证所有字节都被加密了。
DES/3-DES
最早的分组密码算法之一。
明文密文均为64比特长度(分组)。加密解密使用同一算法。
密钥长度56比特,每个字节第八位是奇偶校验位。
流程:共计十六轮运算。
明文先进行初始置换(S-盒)
密钥先进行置换选择1,从64位变成56位,然后分为两部分,分别进行循环左移,循环左移位数是规定的,不同位不一样。每次左移后,进行置换选择2,从而得出当前轮的子密钥(显然是可逆的)48位,直到得出所有子密钥。
(E扩展运算:将32比特扩展为48比特,方法是将每一行前面的一位和后面的一位放在新矩阵中同一行的前面和后面,使每一行长度+2,总共8行,如此增加了16比特。)
(S-盒可以做到六字节进四字节出,原理是用其中两比特(第一和第六位)作为行号,另外四位作为列号,找到相应位置的数字并输出。)
每一轮运算中:遵循Feistel结构,将64位原文分为前32位L和后32位R,对于R,先用E扩展为48位,再和48位子密钥亦或,然后用压缩运算S将48位压缩回32位,最后再进行一次P置换(前面的合起来叫做F函数)。将R结果R’和L亦或放在R的位置,而R放在L的位置,第一轮结束。
题型:模拟一轮加密(全部建议找个计算金呢)
F函数记住如下顺序:扩展,加密钥,压缩,置换。
弱点:密钥太短,已经可以暴力攻破。
一种改进 3-DES,采用两个密钥,进行三次DES运算。
AES
安全性高于DES和3-DES,是新一代加密标准。
字节代替变换:一个非线性的字节代替,可以独立再每个字节上进行运算。先取乘法逆,再进行S盒仿射变换。
S-盒是固定的,可能会给,注意查表即可。
行移位变换:对每一行进行循环移位,第一行不动,第二行循环左移1,第三行左移2,以此类推。
列混合变化(列混淆):其实就是把列换到别的位置上,通过一个变换矩阵来乘列向量。同理矩阵也不用背过。
轮密钥加:对中间加密值和轮密钥进行轮密钥加(模2,也就是亦或)
密钥扩展:密钥数量不够如何扩展:对于编号为i的子密钥,如果i不是4的倍数就从i-4和i-1亦或得到。如果是4的倍数,由i-4和T(i-1)得到,T是个函数。
T:字循环左移:对四个字节循环左移一个字节;字节代换:用S-盒进行代换;与轮常量亦或。轮常量是一个字且是预设的,防止不同轮的轮密钥产生对称性或者相似性。
流程:字节代替变换-行位移-列混淆-轮密钥加。
SM4
我国的算法标准。
分组和密钥均为128比特。
32轮迭代和一次反序变换R组成。
非平衡Feistel结构。解密和加密算法相同,轮密钥使用相反。
(简单一提)
分组密码工作模式
上述算法都是针对一个分组加密的,可是一个信息中会有许多分组,如何协调起来?
传统模式:ECB,对每个分组单独执行加密,不用考虑分组之间的运算。可以实现并行。一个分组损坏只会影响一个分组。
缺点:相同分组其内容也相同,容易被找到规律。
CBC模式:不能并行加密但是可以并行解密。
CFB,OFB等;
CTR模式:可以并行,可以预处理,不需要解密算法,只需要加密算法,对于AES有优势。
(简单一提)
HASH
Hash是一种形成信息摘要的算法,可以把不等长的信息hash成登场的数据,但是信息会丢失,因此无法返回。Hash并不是对称加密算法,尽管他们操作过程有点类似。
Hash通用模型:把原始信息分成固定长度块,在最后一块的Padding中包含信息总长度,用压缩函数进行逐个压缩,最后得到结果。
MD5
预处理:补长到512的倍数,最后64位是消息长度最低64位,padding第一位1后面全0.
把消息化成长度512的块。
循环迭代。每次迭代用上一次的128位结果和512位消息进行运算。
输出结果,结果为128位。
MD5差不多完了。
SM3
国内hash标准,输出摘要长度256比特,每一块512比特,需要做64轮压缩计算。
消息扩展:对512字节的块,按照消息扩展算法生成132个字用于压缩函数CF。
图还是不用背。
MAC
消息鉴别码,用来验证消息真实性(验证签名)和完整性(没有被篡改)
也称作密码校验和,长度固定(hash)
为了保证消息完整,可以先发送MAC,再发送原文。由于算法是公开的,接收方只需要对原文也hash一下,比较和MAC是否相同。雪崩效应。
HMAC:基于Hash的MAC
基于分组算法的MAC FIPS 基于CBC模式的DES算法(简单一提)
非对称加密
数字签名。公钥加密私钥解密,私钥签名公钥验签。私钥永不暴露,公钥无法回推私钥。
大概率只考RSA。
RSA
基于大整数分解这个单向问题。
基本流程:
1.选择大质数p,q,求n=pq
2.求φ(n)=(p-1)(q-1)
3.选择私钥e,求e在mod φ(n)意义下的乘法逆元d。
4.e,n作为私钥,d,n作为公钥。
加密 设原文C,密文M
C^e (mod n) = M
M^d (mod n) = C
算法完成。
证明:略。
对于流程需要掌握的:大概是如何手算乘法逆元。用辗转相除(即当年的扩展欧几里得的手算版本)
流程:辗转相除法,把过程中所有的商记下来。
把商反序写在第一行然后逐个求对角线的乘积+第二行前一个数字,得到第二行当前列的数字。
商是偶数个,则最后一列的数字就是逆元,如果是奇数则要用原数减去最后一个数得到逆元。
Miller-Robin素性检验:理解大体原理就行。
其它非对称加密
椭圆曲线等,大概率不考,就算考了现在学就能会吗?
密钥管理
非对称密钥由CA认证中心管理,协商和分配。
对称密钥:数字信封,人工安装,对称密钥管理中心等。
用CA的私钥签名以保证信息真实性和完整性。
密文索引
这里明说至少掌握一个(一开始说的是两个,考虑到听懂的人比较少减少成了一个)
最简单的就是基于文档-关键词的密文索引算法。
布隆过滤器
某数据挖掘课程讲过了,就是一个桶里面把hash后的那一位置1,由此检验是否通过过滤器。一般用在邮件过滤中。
关键字检索基本流程:
设对于文档D有r个关键字w1,w2..wr,同时有k个hash函数h1,h2...hk以及k个伪随机数r1,r2...rk
对于每个关键词wi,用所有k个hash函数和伪随机数对他进行一次运算mj=h(wi,rj),得到k个结果m。
对于k个结果,还要和文档编号hash一次,即nj=h(mj,id),这样是为了让不同文档中的关键词结果也不同。
对于每个文档产生一个布隆过滤器,把针对每个关键词的k个结果全放到过滤器里。一共产生的位数应<=r*k(因为是hash,有时候会碰撞,所以不一定等于)
检索时,数据所有者提出一个关键词w,将关键词经过k轮hash之后的结果发给服务器(这样关键词w就不会暴露)。
服务器对用户发来的k个结果再分别与文档id进行一次运算,仍然得到k个结果。
对于这k个结果,尝试让他通过所有文档的布隆过滤器,如果通过了则说明当前文档就是目标文档。返回即可。
缺点
布隆过滤器是基于多轮hash的,有时候会出现错误查询。例如查的不是文档D却因为hash的结果与D碰撞了,而把D返回了。
解决方法一般是增大布隆过滤器长度减少碰撞,或者设置更大的k,增大hash轮数。
角色挖掘
差不多必考,是涉及到层次聚类对角色进行挖掘的,好在数据仓库中也有这部分。
算法很简单,先把每个权限单独设置一个簇,然后找距离最近的合并。
距离最近定义:共同用户数最多,如果相同则找权限最多的两个簇。
合并之后得到的新簇中,权限为并集,用户为交集,也就是权限规模越来越大,而属于该权限的用户越来越少。
直到达到迭代层数,或者不再存在非偏序关系的簇。
看清流程难度不大。
访问控制技术
访问控制就是只让有权限的人访问,使用或修改信息。
访问控制策略:对用户访问资源行为的安全约束需求的描述。
访问控制模型:对策略的抽象,简化,规范。
传统访问控制技术
自主访问控制
其实就是生成一些关系对,表示主体能否对某个客体进行访问。
客体权限没有泛化,因此数量非常高,维护困难。
能力表是基于主题的,访问控制列表是基于客体的。然而数量都很大。
强制访问控制模型
BLP模型用于保护机密性,特征是“不上读,不下写”,也就是高保密层不能向低层传递信息,而低层也无法访问高层数据,由此保证了数据始终在从低层往高层流动。
安全级别分为公开,秘密,机密,绝密。
范畴:一个类别信息构成的集合,具有该范畴的主体可以访问范畴所有子集中的客体。
支配关系dom:当A安全级别大于等于B且范畴也大于等于B时,A对B支配,A dom B。A支配B则A可以访问B的一切数据。
Biba模型,第一个关注完整性的模型,和BLP类似。
安全级别变为完整性级别,保证数据从高完整性的级别流向低完整性。
有效避免低完整性主客体对高完整性的污染。
缺点:安全标记的定义管理繁琐。来自多个应用的主客体也使得安全标记不好统一。
基于角色访问控制
常用,数据库的users列表就是用的这种模型。
管理员分配用户角色,用户根据角色访问资源。角色可以理解为权限集。
管理员也为角色分配权限。
基于属性访问控制
增加属性,属性描述实体的安全信息,如主体属性,权限属性,环境属性等。
原始请求先进入PEP,PEP会查询请求中实体的属性信息(如用户,权限等),查到之后发给PEP判定。
PDP向PAP查询策略,并判定是否能够通过。
PDP向PEP发送判定结果,如果通过则允许访问。
局限性
管理员工作量大,领域知识匮乏,访问需求无法预知,动态变化,且数据所有者通常无法存储海量数据。
基于数据分析的控制技术
同角色挖掘部分。
可能要看看贝叶斯。
风险自适应控制技术:加入风险访问控制,在静态规则通过后再进行风险判定,给出是否允许访问结果。
基于密码学的访问控制技术
基于密钥管理
通过密钥管理确保只有授权用户能获得解密数据的密钥,从而实现访问控制。
基于单发送者广播加密的访问控制
数据所有者从用户密钥树中找到需要解密的用户的密钥,用来加密,并广播给所有用户。
每个用户只拥有密钥树中和自己相关的密钥,如果拥有权限,则能够用自己的密钥解密,反之不能。
基于公钥广播加密的访问控制
公钥服务器把用户分成子集,并产生公钥,将私钥安全分发给子集中的用户。
数据所有者用公钥加密,广播分发,用户用私钥解密。
所有用户都能是数据所有者,可以分享数据,消除了单发广播对发送者的限制。
基于属性加密的访问控制
单属性权威访问控制
可信权威维护属性和密钥的对应关系,为用户发送属性密钥。
数据所有者定义访问策略,产生密文数据并发送给服务提供者。
用户:如果用户拥有属性,则会拥有属性密钥,从而解密明文。
多属性权威方案
CA为所有实体,包括用户和属性权威发布和维护身份。
多个属性权威管理用户和属性的关系。
其余类似。
身份认证技术及实现
概念性为主。
目的:对请求方身份进行认证,从而为请求方提供服务。
基本模型:请求方,验证方,认证信息,可信第三方TTP
基于口令的认证技术
口令:Password。其实就是用户自己设密码啦。
缺点:容易被猜到,传输过程中可能泄露。
短信认证:类似。
基于hash和salt的口令认证
口令传输的时候可能泄露,因此不应直接保存口令文件。
可以生成一个影子口令,该口令是由真实口令hash来的。
验证方不会得到真实口令,而是得到口令运算后的结果。因此验证方需要比较结果是否相同,如果相同则认证通过。
加盐:确保相同口令不会产生相同的hash结果(不同用户可能设同一个密码),应该与用户id进行hash。
同一用户使用不同系统时,如果口令相同,hash也应该不同。
智能IC卡/智能钥匙
就是IC卡,里面有密码协处理器,IO接口,存储器,内存等。用于验证身份。
饭卡。
远程身份认证
对于远程认证,有一些问题。
如口令传输被窃听:用数据加密或者hash。
重放攻击:加入随机数,时间戳。
伪造消息:数字签名,MAC。
中间人攻击:数字签名。
挑战-应答协议
请求方发送请求信息。
验证方发送一个随机数R
请求方用密钥和R加密后把结果发给验证方
验证方从数据库调取密钥,与R进行同样的加密后对比结果是否相同。根据结果决定是否通过。
双因子认证
多个认证因子一起用。
增加用户负担。
U盾。
生物信息身份认证
指纹识别,虹膜识别,面部识别等。
用传感器提取特征,加密后进行特征匹配。
FIDO身份认证
用户用身份认证器进行验证。
认证器用私钥签名,服务器用公钥验证,保证指纹安全。
服务器同时验证该验证器是否合法,以及用户是否通过验证(双因子)
发展历程
口令最早-升级口令-双因子认证-生物特征认证-多因素认证-未来(零信任模型,态势感知等)
概念性的东西。
大数据安全概念及目标
大数据安全
大数据存在巨大的数据安全需求。
1.如何在满足可用性下实现机密性和完整性。
2.如何实现安全共享
3.如何实现真实性验证和可信溯源。
大数据隐私保护
1.去匿名化技术的发展使得身份匿名难度越来越大,个人隐私被泄露。个人身份可能被逆向分析。
2.基于大数据对人们行为和状态进行预测,泄露隐私。如推荐算法等。
区别与联系
1.大数据安全关注的目标还包括完整性和真实性,不可否认性。隐私保护一般是保证匿名信。
2.机密性需求要求非授权完全不可访问。
3.用户隐私定义笼统,用户行为可能也算是隐私的一部分。
大数据生命周期中的安全风险(考过)
生命周期:数据产生,采集,传输,存储,使用,分享,销毁。
主要在四个阶段有安全问题:数据采集,数据传输,数据存储,数据分析和使用。
采集阶段
采集之后用户信息就完全脱离了自身控制,因此需要进行数据压缩,变换等处理。
是数据安全的第一道屏障,可以采用LDP等隐私保护技术。
传输阶段
主要目标是数据安全性, 防止传输过程中被破坏或者酸钙,保证机密性,完整性和安全性。
SSL通讯加密协议,专用加密机,VPN技术等。
存储阶段
防止黑客窃取存储信息,防止内部人员窃取以及利益方的超限使用。
体现了数据安全,平台安全,用户隐私保护等多种安全需求。
数据分析使用阶段
重点在实现数据挖掘中的隐私保护,防止通过数据挖掘得出用户隐藏的知识,防止统计分析得出用户隐私信息。
大数据安全与隐私保护技术框架
大数据安全技术
访问控制:角色挖掘,传统访问控制,密码访问控制
安全检索:密文索引技术,非对称加密
安全计算:同态加密等。
大数据隐私保护技术
关系型数据隐私保护
社交图谱保护
位置与轨迹保护
差分隐私:本地差分隐私
大数据服务信息安全
威胁发现技术:范围更大,时间跨度更长,未知威胁检测。
认证技术:安全性更高,减少用户负担。
真实性分析:过滤垃圾邮件,提高鉴别能力等。
基本密码学工具
加密技术:对称加密技术,公钥加密技术。
数字签名技术。
Hash和MAC消息鉴别码技术
密钥交换技术,身份鉴别和认证。
祝考试顺利!
来自考试后的话:只要你看了我的提纲,也能提前一小时交卷。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)