大数据普遍存在巨大的数据安全需求。在大数据场景带来如下各项新技术挑战:
大数据普遍还存在隐私保护需求。大量事实表明,未能妥善处理会对用户的隐私造成极大的侵害。
大数据的生命周期包括数据产生、采集、传输、存储、使用、分享、销毁等诸多环节,每个环节都面临不同的安全威胁。
安全问题较为突出的是数据采集、数据传输、数据存储、数据分析与使用四个阶段。
**采集方对于用户终端、智能设备、传感器等产生的数据进行记录与预处理的过程。**在大多数应用中数据不需要预处理直接上传,而在某些特殊场景下,例如传输带宽存在限制、或采集数据精度存在约束时,数据采集方需要先进行数据压缩、变换甚至加噪处理等步骤,以降低数据大小或精度。一旦真实数据被采集,则用户隐私保护完全脱离用户自身控制。
数据采集是数据安全与隐私保护的第一道屏障,可根据场景需求选择安全多方计算等密码学方法,或选择本地差分隐私(LDP)等隐私保护技术。
将采集到的大数据由用户端、智能设备、传感器等终端传送到大型集中式数据中心的过程。
数据传输阶段中的主要安全目标是数据安全性。为了保证数据在传输过程中内容不被恶意攻击者收集或破坏,有必要采取安全措施保证数据的机密性和完整性。
现有的密码技术已经能够提供成熟的解决方案,例如目前普遍使用的SSL通讯加密协议、或采用专用加密机、 VPN技术等。
大数据被采集后常汇集存储于大型数据中心,而大量集中存储的有价值数据无疑容易成为高水平黑客团体的攻击目标。
大数据存储面临的安全风险是多方面的,不仅包括来自外部黑客的攻击、来自内部人员的信息窃取,还包括不同利益方对数据的超权限使用等。
因此,该阶段集中体现了数据安全、平台安全、用户隐私保护等多种安全需求。
大数据采集、传输、存储的主要目的是为了分析与使用,通过数据挖掘、机器学习等算法处理,从而提取出所需的知识。
本阶段焦点在于如何实现数据挖掘中的隐私保护,降低多源异构数据集成中的隐私泄露。防止数据使用者对用户数据挖掘,得出用户刻意隐藏的知识;防止分析者在进行统计分析时,得到具体用户的隐私信息。
访问控制(Access Control): 确保数据等资产只能经过授权的用户才能访问、使用和修改。
访问控制策略(Policies): 是对系统中用户访问资源行为的安全约束需求的具体描述。
访问控制模型(Model): 是对访问控制策略的抽象、 简化和规范。
早期的访问控制技术都是建立在可信引用监控机基础上的, 1972年由Anderson提出, 它能够对系统中的主体和客体之间的授权访问关系进行监控。
一般来说, 这类访问控制技术都涉及如下的概念:
主体: 能够发起对资源的访问请求的主动实体,通常为系统的用户或进程。
客体: 能够被操作的实体,通常是各类系统和数据资源。
操作: 主体对客体的读、写等动作行为。
访问权限: 客体及对其的操作形成的二元组<操作,客体>。
访问控制策略: 对系统中主体访问客体的约束需求描述。
访问(引用)授权: 访问控制系统按照访问控制策略进行访问权限的赋予。
引用监控机(Reference Monitor, RM) :指系统中监控主体和客体之间授权访问关系的部件。
引用验证机制(Reference Validation Mechanism, RVM): 是RM的软硬件实现。引用验证机制RVM是真实系统中访问控制能够被可信实施的基础。它必须满足如下三个属性:
(1) 具有自我保护能力;
(2) 总是处于活跃状态;
(3) 必须设计得足够小,以便于分析和测试。
早期访问控制模型和技术在大数据应用场景下,主要存在三方面问题:
安全管理员的授权管理难度更大 | 严格的访问控制策略难以适用 | 外包存储环境下无法使用 |
---|---|---|
工作量大 领域知识匮乏 |
访问需求无法预知 访问需求动态变化 |
数据所有者不具备海量存储能力 数据所有者不具备构建可信引用监控机的能力 |
客体的属主决定主体对客体的访问权限。自主访问控制模型可以被表述为(S,O,A)三元组。其中, Subject表示主体集合, Oblect表示客体集合。Access matrix表示访问矩阵, A(si,oj)则表示主体si能够对客体oj执行的操作权限。
能力表CL:基于主体的自主访问控制实现, 该表记录了每一个主体与一个权限集合的对应关系。 权限集合中每个权限被表示为一个客体以及其上允许的操作集合的二元组。
访问控制列表ACL:基于客体的自主访问控制实现, 该表记录了每一个客体与一个权限集合的对应关系。权限集合中的每个权限被表示为一个主体以及其能够进行的操作集合的二元组。
优点:在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。
缺点:在大数据环境下, 主体和客体数量巨大, 无论哪种实现方式, 自主访问控制模型都将面临权限管理复杂度爆炸式增长的问题。 因此,直接采用自主访问控制模型是非常困难的。
强制访问控制模型:其访问控制策略由安全管理员统一管理。
安全管理员为系统中每个主客体分配安全标记,然后依据主客体安全标记之间的支配关系来进行访问控制。由于安全标记之间的支配关系是满足偏序性质的,可以形成格结构,如下图所示。 因此,强制访问控制模型又可称为基于格的访问控制模型。
不足
BLP模型中在为系统中每个保护范围内的主客体都分配了安全标记后,主体对客体的访问行为应满足如下两条安全属性:
从信息流角度看, 上述两条读/写操作所应遵循的安全属性阻止了信息从高安全级别流入低安全级别, 且使得信息仅被需要知悉的人所知悉 ,因此, 能够有效地确保数据的机密性。
基于以下三条安全属性, 信息只能从高完整性级别的主客体流向低完整性级别的主客体,从而有效避免了低完整性级别的主客体对高安全级别主客体的完整性的“污染”。
Biba模型是第一个关注完整性的访问控制模型,用于防止用户或应用程序等主体未授权地修改重要的数据或程序等客体。 该模型可以看作是BLP模型的对偶。
Biba模型不关注机密性,没有定义BLP模型的安全级别,而是定义了完整性级别。完整性级别高的主体比完整性级别低的主体在行为上具有更高的可靠性;完整性级别高的客体比完整性级别低的客体所承载的信息更加精确和可靠。
Biba模型中信息只能从高完整性级别的主客体流向低完整性级别的主客体,从而有效避免了低完整性级别的主客体对高完整性级别主客体的完整性的“污染”。
BLP模型中阻止了信息从高安全级别流入低安全级别, 且使得信息仅被需要知悉的人所知悉。
基于角色的访问控制: 标准RBAC模型包括了RBAC0~3四个模型。
RBAC0模型(Core RBAC), 定义了用户、角色、会话和访问权限等要素。
RBAC1(Hierarchal RBAC) 在RBAC0的基础上引入了角色继承的概念。
在CoreRBAC基础上,HierarchalRBAC增加了角色继承操作。即一个角色r1继承了另一个角色r2,那么r1就拥有r2的所有权限。
角色继承分为多重继承和受限继承。
多重继承是指一个角色可以同时继承多个角色,且角色继承应满足偏序关系。
受限继承除了要求角色继承满足偏序关系外,还要求只能继承一个角色,因此形成的继承关系为树形结构。
RBAC2(Constraint RBAC) 增加了角色之间的约束条件,例如互斥角色、最小权限等。
Constraint RBAC在Core RBAC的基础上引入了职责分离的概念。若角色r1和角色r2所拥有的某些权限是冲突的,那么就需要增加职责分离约束,使两个角色不能并存。
根据约束生效的时期不同,这些约束可以分为两类:静态职责分离(Static Separation of Duty,SSD)和动态职责分离(Dynamic Separation ofDuty ,DSD)。
SSD主要作用于管理员为用户分配角色和定义角色继承关系阶段。若角色r1和角色r2由于存在权限上的某种冲突被设定了SSD约束,那么r1和r2不能同时被分配给同一个用户,并且管理员在设置角色继承关系时,r1和r2之间不能存在继承关系。
DSD主要作用于用户激活角色的阶段。若角色r1和角色r2由于存在权限上的某种冲突被设定了DSD约束,那么r1和r2不能在一个会话中被用户同时激活。
RBAC3(Combines RBAC)是RBAC1和RBAC2的综合,探讨了角色继承和约束之间的关系。
基于属性的访问控制(ABAC): 通过安全属性来定义授权,并实施访问控制。 由于安全属性可以由不同的属性权威分别定义和维护, 所以具备较高的动态性和分散性, 能够较好地适应开放式的环境。 具体地, 它包括如下几个重要概念:
实体: 系统中存在的主体、客体,以及权限和环境。
环境: 指访问控制发生时的系统环境。
属性: 用于描述上述实体的安全相关信息。它通常由属性名和属性值构成,又可分为:主体属性 客体属性 权限属性 环境属性
访问请求处理流程
优势 | 劣势 |
---|---|
适合大数据的开放式数据共享环境。 | 属性的管理和标记对于安全管理员来说仍然是劳动密集型工作且需要一定的专业领域知识。 在大数据场景下, 数据规模和应用复杂度使得这一问题更加严重。 |
在基于密钥管理的访问控制中,系统通过控制用户持有的密钥集合来区分用户,进而实施授权和访问控制。
基于对称加密实现
例如
选择红色节点处的密钥集{k0, k10, k110}进行数据加密,则未授权的普通用户就是U7,他将无法解密数据。
基于公钥加密(非对称加密)实现
由于采用公钥加密方式,所以系统的所有用户都可以是数据所有者,并向其他用户分享数据,消除了单发送者广播加密方案对发送者范围的限制。
基于属性加密的访问控制是通过更加灵活的属性管理来实现访问控制, 即将属性集合作为公钥进行数据加密,要求只有满足该属性集合的用户才能解密数据。
由于标准RBAC模型中角色可以继承并形成层次结构,所以在聚类时通常选择层次聚类算法以支持角色继承。根据层次聚类方式,又分为凝聚式角色挖掘和分裂式角色挖掘。
权限集合求并 用户集合求交
距离最近的类簇对的寻找方式
先寻找出拥有共同用户最多的类簇对集合S,再从S中选出包含权限最多的类簇对集合E。
权限集合求交 用户集合求并
从权限使用情况的历史数据来获得用户的权限使用模式,进而产生角色,并为它赋予合适的权限,同时根据用户属性数据为用户分配恰当的角色。
基本定义
发现一个有k个角色的集合,使得对应的PA、UA能够让λ距离(判断角色挖掘结果的质量)最小。
获得用户的权限使用模式
文档的生成: 一篇文档包括了多个主题,文档中的每个词都是由其中一个主题产生的。也就是存在两个多项式概率分布θ和φ, θ是一个文档上的主题分布, φ是一个主题上的单词出现的概率分布。
文档生成问题 | 角色挖掘问题 |
---|---|
包含多个文档的“语料库” | 访问控制日志 |
一个文档u | 用户u的权限使用记录 |
单词p | 权限p |
文档u中单词p的词频n | 用户u对权限p的使用次数n |
主题r | 角色r |
角色挖掘问题被映射为文档生成问题,采用LDA模型就能够挖掘出角色定义。
加密和解密密钥相同,或可以互相推导。就像需要用钥匙才能锁上的门锁。
具备机密性、可鉴别性、完整性;不保证抗抵赖性。
采用两个不同的密钥将加密和解密功能分开。
应用:数字签名 密钥交换
公钥密码必须具有如下重要特性:给定公钥,要确定出私钥在计算上是不可行的。就像常见的门,锁门很容易,但开门需要钥匙。
项目 | 对称加密技术 | 非对称加密技术 |
---|---|---|
特征 | 双方信息对等 | 双方信息不对等,根据公钥计算私钥是困难的 |
优点 | 对称密码算法速度快,适合加密大批量数据 | 密钥数量小,密钥的分发十分方便 |
缺点 | 密钥数量大,密钥的分配和管理困难 | 解密加密效率低,适合完成对称密码算法的密钥分配以及数字签名、身份鉴别等 各种密码协议 |
密钥个数 | n个人两两秘密通信需要 n(n-1)/2个密钥 | n个人两两秘密通信需要n对密钥 |
数字签名 | 不能提供不可否认的数字签名功能 | 可提供不可否认的数字签名功能 |
数字签名是一种可以验证的密码技术。
文件的数字签名是基于文件和签名者私人密钥的信息,目的是证明文件归签名者所有(不可抵赖性)。
是通过Hash函数的使用和私钥签名函数来完成的。
发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用发送方的私钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方。
接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该报文是发送方的。
讲故事
首先假设双方分别是Alice和Bob,他们就一个随机的初始的颜色达成了一致。这个颜色不需要被保密,但是每一次要不一样。在这个例子中,这个初始的颜色是黄色。然后他们两个人每一个人选择一个秘密的颜色,Alice只知道Alice的颜色,其他任何人都不知道Alice选的是什么颜色,Bob同理。在这个例子中,Alice选择的是红色,Bob选择的是蓝绿色。这个过程的关键部分是Alice和Bob每个人将他们自己的秘密颜色和他们对方彼此共享的颜色(初始的颜色即黄色)混合在一起,导致了分别是orang-tan色,和浅蓝色。他们公开的将混合之后的颜色进行交换。最终,他们每一个人将他们从对方收到的颜色和他们自己的private color进行混合。这个结果就是最终的混合颜色。在这个例子中是黄褐色。这个颜色和对方的颜色是一致的。
如果某个第三方听到了这个交换,他就会知道公共的颜色(黄色)和第一个混合的颜色(orange-tan和浅蓝色),但是对这个第三方来说,确定最终的秘密颜色(黄褐色)在计算上是很困难的。事实上,当在使用大的数字而不是颜色时,这个行为需要大量的计算。这个行为即使是现代超极计算机都是不可能在一个合理的时间内完成的。
算法
消息鉴别码(认证码)——MAC(message authentication code)
消息鉴别码(认证码)的作用: 验证接收消息的真实性(的确是由它所声称的实体发来的)和完整性(未被篡改、插入、删除)。
消息鉴别码(认证码)是指消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验和。
HMAC——基于HASH算法的、带密钥的消息鉴别码
Hash函数(也称哈希函数)可将任意长的消息压缩为固定长度的Hash值,Hash函数需满足如下性质:
单向性:从Hash值得到原消息是计算上不可行的
抗碰撞性:找到两个不同的报文Hash值相同,是计算上不可行的。
可用于文件完整性检验,密码保存,软件下载等场景。
不使用密码,任何人都可以计算,因此不能避免恶意篡改。比如在流氓软件的场景中,可以通过同时修改软件和Hash的方式实现恶意篡改。
将一个二进制串用其它二进制串替代
二进制串次序的被重新排列
特点:
DES算法简述:
3DES加密算法是对DES算法的改进加强版,它相当于是对每个数据块应用三次DES加密算法
当3DES中所有的密钥都相同时,3DES等同于普通DES
密钥长度增长,通过增加迭代次数提高了数据的安全性
但处理速度也随之变慢,加密效率不高
加密:明文P与密钥K分组后,对每组:明文组P与密钥组K处理->轮密钥加->10轮加密->密文组
解密:对每组:密文组->轮密钥加->10轮解密->明文组
以128位密钥分组为例:加密共10轮,第1轮到第9轮的轮函数一样,包括4个操作:字节代换、行位移、列混淆和轮密钥加。第十轮迭代不执行列混淆。解密同理。
轮数 ( Round) | Block Length=128 | Block Length=192 | Block Length=256 |
---|---|---|---|
Key Length=128 | 10 | 12 | 14 |
Key Length=192 | 12 | 12 | 14 |
Key Length=256 | 14 | 14 | 14 |
概述
电码本模式(Electronic Code Book,ECB)就是使用相同的密钥对明文组进行加密,一次只加密一组明文。解密时也使用相同的密钥对密文组进行解密,一次解密一组密文。
明文分组
假设明文分组长度为b,则可以将明文分为b位一组的明文组,必要时,可对最后一个明文组进行填充。
加解密过程
如果每个明文分组被记为Pi ,密文分组被记为Ci,则加解密过程如下图所示:
在这种工作模式下,一个明文组只能固定地被加密成一个对应的密文组,一个密文组也只能固定地被解密成对应的密文组。他们彼此是一一对应的。设想我们有一个厚厚的密码本,每次加密时,我们只需要从密码本中查出明文所对应的密文就可以。这也是电码本模式名称的由来。
ECB加解密方式可以表示为:
ECB模式的特点
简单高效, 可以实现并行操作。 ECB有良好的差错控制, 一个密文块(或明文块) 的改变, 在解密(或加密) 时, 只会引起相应的明文块(或密文块) 的改变, 不会影响其他分组。
对于短消息,ECB模式是比较适用的。但对于长消息,ECB模式就不太安全了。这是因为明文中相同的分组, 密文也是相同的。 这会导致频率特征暴露,造成安全隐患。
加解密方式:
密文分组链接模式(Cipher Block Chaining,CBC)中,加密算法的输入是明文分组和前一个密文分组的异或,同样均使用相同的密钥进行加密。其中第一个明文加密时,需先与初始向量 IV 异或,再进入加密算法进行加密。如下图所示:
就像前面说的那样,图中第一个明文分组P1先与初始向量IV 异或,然后被加密为密文C1。接下来C1与下一个明文分组异或,得到的结果被加密为C2,以此类推。所有的加密和解密都使用同一个密钥K 。
解密时,先对密文分组进行解密,然后再与上一个密文分组进行异或,即可得到明文分组结果。同样,第一个密文分组C1在解密后,需与初始向量IV异或,才能得到明文P1 。
加解密方式如下图所示(左为加密,右为解密):
CBC模式的特点
优点:安全性好
缺点: 加密不能并行处理, 解密可以并行
概述:
与ECB、CBC不同,在CFB(Cipher Feedback,CFB)模式下,明文本身并没有进入加密算法中进行加密,而是与加密函数的输出进行了异或,得到了密文。CFB以及后面要讲的OFB、CTR模式都具有这样的特征,这是流密码的典型特征。此外,CFB不需要将明文分组填充到分组长度的整数倍,可以实时操作。
加解密模式
加密算法的输入是一个b位移位寄存器的值,输出也是一个b位的值。在输出的b位值中,选择左边的高s位与s位的明文进行异或,得到s位的密文。以此同时,下一组的移位寄存器向左移动s位。然后将刚才得到的s位的密文填充到下一组移位寄存器的低s位。
简化版本
CFB模式的特点
概述
与CFB类似,输出反馈模式(Output Feedback,OFB)也是一种类似于流密码的工作模式。在这种模式中,明文分组同样没有进入到加密算法中,加密算法只是用来计算密钥流的。
在CFB中,是将密文反馈到下一分组加密算法输入的移位寄存器中;而在OFB中,是直接将加密算法的输出反馈到下一分组加密算法的输入中。
明文分组
在OFB中,明文分组一般要与加密算法的输入分组一致。但是,如果明文的最后一组不够加密算法的输入分组长度,也无需填充。(处理方法见下文)
加解密方式
假设加密算法的分组长度为b位。从图中可以看出,加密算法的b位输入来自于上一个分组加密算法的b位输出。同样,如果是第一个分组,就需要一个初始向量时变值来充当加密算法的输入。
在经过加密算法后,得到b位输出结果。这个结果再与b位的明文分组进行异或,即得到密文分组。
另外,所有加密算法的密钥都是相同的。加密算法仅仅用来产生密钥流,而没有对明文进行加密。真正的加密过程是明文分组与密钥流的异或。
在加密时,如果最后一组明文分组的位数(假设为s位)不够b位(s
解密过程与加密过程类似,只是改用密钥流与密文组异或,得到明文组。
与CFB相同,解密过程也只用到了加密算法,并没有用到解密算法。
OFB模式的特点
概述
计数器模式(counter,CTR)也是一种类似于流密码的模式。加密算法只是用来产生密钥流与明文分组异或。
分组长度
CTR的分组长度一般也要与加密算法的输入分组一致。但是,如果明文的最后一组不够加密算法的输入分组长度,也无需填充。(处理方法见下文)
加解密方式
假设加密算法的分组长度为b位。在图中,加密算法的输入是一个b位计数器的值,在密钥的作用下,产生了一系列b位的密钥流。然后密钥流与b位的明文分组进行异或,得到b位的密文分组。
在这个加密过程中,每个计数器的值都不能相同。为了便于处理,首先为第一个计数器设一个初始值,然后在接下来的每一个分组中,计数器逐个加一。
CTR模式的特点
总结
模式 | 优点 | 缺点 |
---|---|---|
ECB | 实现简单,不同分组可并行,速度快,无差错传播 | 对于长消息会导致频率特征暴露,造成安全隐患 |
CBC | 安全性好 | 加密不能并行处理, 解密可以并行;有限差错传播 |
CFB | 安全性好,可自同步(自同步密码流优点),加解密只需要加密算法 | 有差错传播,速度慢 |
OFB | 安全性好,无差错传播,加解密只需要加密算法 | 对于密文被篡改难以检测,初始向量需要保密,速度慢 |
CTR | 实现简单,可预处理,可并行处理,无差错传播,加解密只需要加密算法 | 对于密文被篡改难以检测,第一个计数器的值需要保密 |
RSA证明详解
影响RSA算法安全性的因素主要有以下几个方面:
密码分析者若能分解n,则能计算φ(n),由定义ed=1mod φ(n) 。然后从公钥e计算就得出私钥d。
在构造n时应选择p和q,使得p-1和q-1有大的素因子。一般选择p和(p-1)/2均是素数。
不同用户之间不要共享整数n。同模攻击:通过截获来自不同用户的密文,密码分析者能有机会计算出明文。
具体做法:
第一步: padding
– 补长到512的倍数
– 最后64位为消息长度的低64位
– 一定要补长(1~512),内容为100…0
第二步:消息块划分
– 把结果分割为512位的块: Y0,Y1,…YL-1
第三步:循环迭代运算
– 初始化MD buffer, 128位常量(4个字),进入循环迭代,共L次
– 每次:一个输入128位,另一个输入512位,结果输出128位,用于下一轮输入
第四步:输出结果
– 最后一步的输出即为散列结果128位
算法流程
第一步:padding 同MD5处理
第二步:消息块划分
– 把结果分割为512位的块: Y0,Y1,…YL-1
第三步:消息扩展
SM3的迭代压缩步骤没有直接使用数据分组进行运算,而是使用这个步骤产生的132个消息字。(一个消息字的长度为32位/4个字节)概括来说,先将一个512位数据分组划分为16个消息字,并且作为生成的132个消息字的前16个。再用这16个消息字递推生成剩余的116个消息字。
在最终得到的132个消息字中,前68个消息字构成数列 {Wj},后64个消息字构成数列 {Wj‘},其中下标j从0开始计数。
每个512位的消息块都要经过64轮压缩函数的压缩
压缩函数CF:
第五步:输出结果
– 最后一步的输出即为散列结果256位
为保证云数据的安全性,一种通用的方法是用户首先使用安全的加密机制对数据进行加密,然后再将密文数据上传至云服务器。由于只有用户知道解密密钥,而云存储服务提供商得到的信息是完全随机化的,数据的安全性完全掌握在用户手中。当用户需要对数据进行检索时,只能把全部密文下载到本地,将其解密后再查询。这个过程要求客户端具有较大的存储空间以及较强的计算能力,且没有充分发挥云存储的优势。
密文检索(Searchable Encryption,SE,叫做可搜索加密)技术支持云存储系统在密文场景下对用户数据进行检索,然后将满足检索条件的密文数据返回给用户。在检索过程中,云服务器无法获得用户的敏感数据和查询条件,即密文检索可以同时保护数据机密性以及查询机密性。
设存在 ≥ 1个服务器, 其存储的内容完全相同, 均为个比特的信息 = {1, 2, … , }, 且服务器之间不会进行相互通信。 A希望对服务器中的数据进行查询, 并得到 , 其具体查询过程如下:
如果在上述查询过程中, 任意服务器均不了解关于的任何信息, 则称这一交互是PIR的。
例 用户想要查询索引为2 (i=2) 的二进制位信息,例子里 DB[2] =1 ; DB[0] = 0 ; DB[1] =0; DB[3] = 0
前提:
构造两个请求,q1, q2, 满足:q1=S;q2=S ⨁ i
这里的⨁ 操作表示S集合中如果存在i 则剔除掉,如果不存在则加入i 到S中
也就是说 q1 与q2 相差索引i的查询
返回:
两个服务器各自返回 r1,r2,分别为所有索引对应二进制数字的异或值 r1 = 0 ; r2 = 1
用户最终查询结果 r_user = r1 XOR r2 = 1
一个典型的非对称密文检索过程如下:
A:数据检索者(数据接收者)
B:数据所有者(数据发送者)
在随机预言模型下, BDOP-PEKS方案对选择关键词攻击语义安全。
非对称密文检索方案的安全性:IND-CKA(在选择关键词攻击下的不可区分性安全)
口令攻击方式
网络入侵 数据库入侵 编程漏洞 暴力攻击 短信劫持(攻击短信验证方式)
双因子认证(2FA)是指结合密码以及实物(信用卡、SMS手机、令牌或指纹等生物标志)两种条件对用户进行认证的方法。
在这一验证过程中,需要用户提供两种不同的认证因素来证明自己的身份,从而起到更好地保护用户证书和用户可访问的资源。双因子验证比基于单因子的验证方式提供了一种更高级别的保证。
But 复杂的身份验证方式
风险和攻击 | 解决方案 |
---|---|
窃听 | 采用数据加密、密码杂凑算法等方法,对口令等敏感消息进行处理 |
重放攻击 | 采用随机数(Nonce)、时间戳等方法, 挑战-应答协议 (challenge-response protocol) |
伪造消息 | 采用数字签名、消息鉴别码等方法 |
中间人攻击 | 采用数字签名等方法 |
远程身份认证面临的风险和对策:
顾名思义,基于挑战/应答(Challenge/Response)方式的身份认证系统就是每次认证时认证服务器端都给客户端发送一个不同的"挑战"字串,客户端程序收到这个"挑战"字串后,做出相应的"应答",以此机制而研制的系统。认证过程为:
用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源。例如,用户要输入PIN码,插入银行卡,最后再经指纹比对,通过这三种认证方式,才能获得授权。这种认证方式可以提高安全性。
第一步:由用户终端设备(认证器)验证用户身份,验证方式可以多种多样,目前通常采用生物识别技术(指纹、人脸、声纹、虹膜等),验证通过后,从而解锁保存在认证器中的用户私钥;
第二步:使用解锁的用户私钥对响应消息进行签名,FIDO服务器端使用该用户对应的公钥进行验签,从而完成整个身份鉴别流程。
通过“两步走”的认证方式,FIDO UAF模型有效地分割了安全风险。
传统用户名/口令鉴别方式中用户的秘密都存储在服务器端并进行比对,一旦服务器被攻破,所有用户的秘密都将泄露;
而FIDO将用户的秘密前移到用户设备端,由设备中的认证器组件完成对用户身份的鉴别。
这样做的好处是:首先,用户秘密都存储在用户设备端,不会上传到服务器,这样避免了服务器被攻破时用户账户及生物特征模板泄露所造成的损失。由于用户生物模板存储在本地设备的安全区域,没有访问秘钥无法解锁和访问,这样就保证了生物特征模板的安全,即便设备丢失也无需担心秘密泄露。其次,设备中的认证器组件可以是多种多样的,例如指纹认证器、虹膜认证器、3D人脸认证器等等,这样就可以在用户设备端即插即用新的身份鉴别手段,而FIDO服务端不需要进行大的改动,从而提高身份鉴别系统的可扩展性,降低部署成本。
用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源。例如,用户要输入PIN码,插入银行卡,最后再经指纹比对,通过这三种认证方式,才能获得授权。这种认证方式可以提高安全性。
第一步:由用户终端设备(认证器)验证用户身份,验证方式可以多种多样,目前通常采用生物识别技术(指纹、人脸、声纹、虹膜等),验证通过后,从而解锁保存在认证器中的用户私钥;
第二步:使用解锁的用户私钥对响应消息进行签名,FIDO服务器端使用该用户对应的公钥进行验签,从而完成整个身份鉴别流程。
通过“两步走”的认证方式,FIDO UAF模型有效地分割了安全风险。
传统用户名/口令鉴别方式中用户的秘密都存储在服务器端并进行比对,一旦服务器被攻破,所有用户的秘密都将泄露;
而FIDO将用户的秘密前移到用户设备端,由设备中的认证器组件完成对用户身份的鉴别。
这样做的好处是:首先,用户秘密都存储在用户设备端,不会上传到服务器,这样避免了服务器被攻破时用户账户及生物特征模板泄露所造成的损失。由于用户生物模板存储在本地设备的安全区域,没有访问秘钥无法解锁和访问,这样就保证了生物特征模板的安全,即便设备丢失也无需担心秘密泄露。其次,设备中的认证器组件可以是多种多样的,例如指纹认证器、虹膜认证器、3D人脸认证器等等,这样就可以在用户设备端即插即用新的身份鉴别手段,而FIDO服务端不需要进行大的改动,从而提高身份鉴别系统的可扩展性,降低部署成本。