目录
概论
信息安全的含义
信息安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性科学。
信息安全的整体目标
- 物理安全
- 防盗、防火、防静电、防雷击、防电磁泄漏
- 逻辑安全
- 计算机的逻辑安全需要用口令字、文件许可、查账等方法来实现
- 操作系统安全
- 联网安全
安全四要素
- 保密性
- 保证信息为授权者享用而不泄漏给未经授权者
- 完整性
- 数据完整性,未被未授权篡改或者损坏
- 系统完整性,系统未被非授权操纵,按既定的功能运行
- 可用性
- 保证信息和信息系统随时为授权者提供服务;不要出现由于非授权者的滥用,却对授权者拒绝服务的情况
- 可靠性
- 特定行为和结果的一致性
- 可靠性是指系统在规定条件下和规定时间内、完成规定功能的概率。可靠性是⽹网络安全最基本的要求之一,网络不可靠,事故不断,也就谈不上网络的安全。目前,对于⽹络可靠性的研究基本上偏重于硬件可靠性⽅面。研制⾼高可靠性元器件设备,采取合理的冗余备份措施仍是最基 本的可靠性对策,然而,有许多故障和事故,则与软件可靠性、⼈员可靠性和环境可靠性有关。
- 区分
威胁来源
- 物理威胁
- 偷窃、废物搜索、间谍行为、身份识别错误
- 系统漏洞造成的威胁
- 乘虚而入、不安全服务、配置和初始化
- 身份鉴别威胁
- 口令圈套(钓鱼)
- 口令破解
- 算法考虑不周
- 编辑口令
- 线缆连接威胁
- 窃听
- 拨号进入
- 冒名顶替
- 有害程序威胁
- 病毒
- 代码炸弹
- 特洛伊木马
- 更新或下载
安全威胁的分类
- 中断:系统的软、硬件资源由于各种各样的原因遭到破坏,使得程序的正常运⾏行行被中断或通信线路路 上数据的传送被中断。
- 窃取:未经允许的⽤用户⾮非法获得了了对系统资源的访问权,从中窃取了了对他有⽤用的数据,或者骗取计 算机为他供了了某种服务。
- 篡改:⾮非法⽤用户在获得了了对某项信息的访问权后,可以对它进⾏行行篡改,例例如修改程序使它完成⾮非法 操作者特定的功能,或者更更改数据,使⾃自⼰己获利利。在⽹网络上传送的信息也可能遭到篡改、添加,使 其结果对攻击者有利利,⽽而合法⽤用户⽆无法获得准确有⽤用的信息。
- 伪造:攻击者在未经许可的情形下,在系统中产⽣生出虚假的数据或虚假的服务,例例如在电⼦子商务中,攻击者可能希望在⽹网络通信系统上加上⼀一些假的交易易,或在数据库中增加⼀一此伪造的记录,另 外在⽹网络通信中重放以前过时的信息等,使⽹网络使⽤用者落⼊入攻击者的陷井。
- 冒充:假冒⽤用户身份是⼀一种常⻅见的⽹网络攻击⼿手段,例例如在甲、⼄乙双⽅方通信时,可能是丙在冒充⼄乙的 身份与甲通信,此时甲受到了了欺骗,由此引起甲受到经济甚⾄至政治上的损失。
- 抵赖:某些⽤用户为了了⾃自⼰己的利利益,否认⾃自⼰己曾经发出的信息(如否认他发出的转帐信息)或者否认他 ⾃自⼰己收到了了信息。
威胁原因
- 薄弱的认证环节:网络上的认证通常是使⽤用口令来实现的,但口令有公认的薄弱性。网上口令可以通过许多方法破译,其中最常用的两种方法是把加密的口令解密和通过信道窃取口令。
- 系统的易易被监视性:⽤户使⽤Telnet或FTP连接他在远程 主机上的账户,在网上传的口令是没有加密的。入侵者可以通过监视携带用户名和口令的IP包获取它们,然后使⽤这些用户名和⼝令通过正常渠道登录到系统。如果被截获的是管理员的⼝令,那么获取特权级访问就变得更容易了。成千上万的系统就是被这种⽅方式侵⼊入的。
- 易欺骗性:TCP或UDP服务相信主机的地址。如果使⽤“IP Source Routing”,那么攻击者的主机就可以冒充一个被信任的主机或客户。
- 有缺陷的网络服务和相互信任的主机:主机的安全管理既困难有费时。为了降低管理要求并增强局域网,一些站点使⽤了诸如NIS和NFS之类的服务。这些服务通过允许一些数据库(如⼝令文件)以分布式⽅式管理以及允许系统共享⽂件和数据,在很⼤程度上减轻了过多的管理工作量。但这些服务带来了不不安全因素,可以被有经验闯入者利用以获得访问权。
- 复杂的设置和控制:主机系统的访问控制配置复杂且难于验证。因此偶然的配置错误会使闯入者获取访问权。一些主要的Unix经销商仍然把Unix配置成具有最大访问权的系统,这将导致未经许可的访问。
- 无法估计主机的安全性:主机系统的安全性⽆法很好的估计:随着一个站点的主机数量量的增加,确保每台主机的安全性都处在⾼⽔平的能力却在下降。只⽤管理⼀台系统的能力来管理理如此多的系统就容易犯错误。另一因素是系统管理的作⽤经常变换并行动迟缓。这导致⼀些系统的安全性⽐另一些要低。这些系统将成为薄弱环节,最终将破坏这个安全链。
安全机制
- 加密机制
- 加密是提供信息保密的核⼼方法
- 访问控制机制
- 访问控制可以防止未经授权的用户非法使用系统资源,这种服务不仅可以供给单个用户,也可以供给用户组的所有用户。
- 分类
- 自主访问控制
- ⾃自主访问控制是指数据的拥有者有权决定系统中的哪些⽤用户对他的数据具有访问权,以及具有什么样的访问权。
- 强制访问控制
- 计算机系统根据事先确定的安全策略,对⽤用户的访问权限进⾏强制性的控制
- 基于角色的访问控制
- 为了反映实际工作中的需要,可根据用户的工作职责设置若干角色,不同的用户可以具有相同的角色,在系统中享有相同的权力,同一个用户又可以同时具有多个不同的角色,在系统中行使多个角色的权力。
- 自主访问控制
- 数据完整性机制
- 数据单元的完整性
- 是指组成一个单元的一段数据不被破坏和增删篡改
- 数据序列的完整性
- 是指发出的数据分割为按序列号编排的许多单元时,在接收时还能按原来的序列把数据串联起来,而不要发生数据单元的丢失、重复、乱序、假冒等情况。
- 数据单元的完整性
- 数字签名机制
- 解决:否认、伪造、冒充、篡改
- 交换鉴别机制
- 口令、密码技术、特征实物
- 公证机制
- 为了免得事后说不清,可以找一个大家都信任的公证机构,各方的交换的信息都通过公证机构来中转。公证机构从中转的信息里 取必要的证据,日后一旦发生纠纷,就可以据此做出仲裁
- 流量填充机制
- 流量填充机制能够保持流量基本恒定,因此观测者不能获取任何信息。流量填充的实现方法是:随机生成数据并对其加密,再通过网络发送
- 路由控制机制
- 路由控制机制使得可以指定通过网络发送数据的路径
- 审计
- 审计是模拟社会监察机构在计算机系统中用来监视、 记录和控制用户活动的一种机制,它使影响系统安全 的访问和访问企图留下线索,以便事后分析和追查。 现代安全计算机系统,除了要求有身份鉴别、访问控制、加密等安全措施外,还要求系统能对用户的行为进行有效的监控和记录,即要求有审计功能
密码学基础
密码学背景
- 通信保密:60-70年代
- 信息保密
- 信息安全:80-90年代
- 机密性、完整性、可用性、不可否认性
- 信息保障:90年代-2004
- 全生命周期的保护
- 信息保障是一种保证信息和信息系统能够安全运行的防护性行为,是信息安全在当前信息时代的新发展
- 目的是采取技术、管理等综合性手段,使信息和信息系统具备机密性、完整性、可用性、可认证性、不可否认性,以及在遭受攻击后的可恢复性
- 可恢复性(热回滚)
- 密码学与访问控制的统一:2005-
- 基础成功:基于身份密码学
- 核心成果
- 基于属性密码学(具有特定属性可解密)
- 代理重加密(数据拥有者可指定的解密)
- 可搜索加密(数据拥有者可委托的密文检索)
- 函数加密(满足特定函数可解密)
- 同态加密/签名(可计算的密文/签名)
- 重要应用
- 云存储安全
- 基于密码学的访问控制
密码学基本概念
- 矛:密码编码学
- 盾:密码分析学
密码算法分类
- 古典:受限制的算法
- 算法的保密性基于保持算法的秘密
- 现代:基于密钥(key-based)的算法
- 算法的保密性基于对密钥的保密
- 对称加密
- 发送方和接收方有相同的密钥
- 面对面协商->小范围
- 使用公钥密码协商
- 发送方和接收方有相同的密钥
- 非对称加密
- 公钥密码算法
- 加密密钥(公钥)和解密密钥(私钥)不同
- 公钥密码算法
- 分组密码:一次加密一块 * 实际应用
- 流密码;一次一位或一子节 * 多用于研究
- 为什么?
- 研究很难一步到位提出分组的新型公钥密码算法,为了简化难度,先做流式的,再扩展到分组式
- 为什么?
发展
- 1949前:艺术🎨 * 密码算法的安全性没有理论依据,无法回答到底有多安全
- 1949-1975:科学🔬 * 信息论的出现->理论依据 * 实用性? * 没有办法有效生成足够多的随机数
- 1976后:公钥密码学 * 基于计算复杂性理论的密码算法 * 理论上可被破解,但计算代价巨大
- 1976:Diffie & Hellman提出公钥密码,以公钥密码实现会话密钥的协商
- 1977:Rivest,Shamir & Adleman提出了RSA公钥算法,因此获得图灵奖
- 90年代逐步出现了基于椭圆曲线的公钥算法:比RSA更安全更高效,但实际应用依然较少
- 2000年左右出现了基于双线性映射的公钥算法:基于身份密码学的重要数学基础
- 2000年左右出现了基于格代数的公钥算法:后量子时代的利器
- 2005年以后公钥密码与访问控制的融合:实现了基于不可信存储第三方的加密数据共享
- 2005年以后出现了全同态加密:实现了密文的同态加法和乘法运算
- 安全通讯->安全控制->安全计算
密码分析
- 唯密:攻击者被动地(窃听)具有密⽂串y,但没有相应的明文x
- 已知明文:攻击者被动地(窃听)具有明⽂x和相应的密文y.
- 选择明文::攻击者可获得对加密机的暂时访问,因此可主动选择明文x,并得到相应的密文y
- 选择密文:攻击者可获得对解密机的暂时访问,因此可主动选择密⽂串y,并得到相应的明文x
现代密码学要求:
- 不能破解密钥
- 不能破解明文
- 不能破解明文的语义
密码算法的安全性度量
- 无条件安全
- 无论破译者有多少密文,他也无法解出对应的明文,即使他解出了,他也无法验证结果的正确性
- 常用于评估基于信息论的密码学算法
- 计算上安全
- 破译的代价超出信息本身的价值;破译的时间超出了信息的有效期
- 常用于基于计算复杂性的密码学算法
古典密码(计算题)
- 代替密码 * 明文空间换为密文空间
- 简单代替密码/单字母密码
- 明文的一个字符用相对固定的一个密文字符代替
- 多字母密码
- 明文中的字符映射到密文空间的字符还依赖于它在上下文中的位置
- 简单代替密码/单字母密码
- 同余:若整数a和b有
(a mod q) = (b mod q)
,则称a与b在mod q下同余- 移位密码
- 密钥
k in Z26
- 加密算法:
e(x) = x + k mod 26
- 解密算法:
d(y) = y - k mod 26
- 注:26个英文字母与模26剩余类集合
{0, ..., 25}
一一对应
- 密钥
- 乘数密码(对称加密)
- 密钥
k
与26互素,即K={1,3,5,7,9,11,15,17,19,21,23,25}
- 加密算法:
e(x) = kx mod 26
- 解密算法:
d(y) = k-1 y mod 26
- 为什么K要与26互素?
- 保证加密变换是一一映射的
- 保证K有逆元,使解密算法成立
- K逆计算
- 对于整数a、p,如果存在整数b,满足
ab mod p =1
,则说,b是a的模p乘法逆元
- 对于整数a、p,如果存在整数b,满足
- 更容易受唯密文攻击
- 密钥
- 仿射密码
- 密钥
a,b in {0, 25}
并且a
与26互素 - 加密算法:
e(x) = ax + b mod 26
- 解密算法:
d(y) = a-1 (y - b) mod 26
- 密钥
- 多名代替密码
- 映射是一对多的,掩盖明文的频率差异
- 重要:加上了抛币的随机数!
- 多表代替密码
- 是以一系列代换表依此对明文消息的字母进行代换的方法
- 非周期:所有明文字符,每个明文字符有一个不同的单表加密
- 周期:用一定数量的单表循环加密
- 依然保留一定频率
- 重码分析法
- Vigenére密码
- Vernam密码
- 加密:
Ci = Pi ^ Ki
- 解密:
Pi = Ci ^ Ki
- 加密:
- Playfair密码
- Hill密码
- 移位密码
- 古典密码的安全性缺陷
- 频率攻击
- 无随机
由《风语者》看密码无处不在
- 语言本身也是一种密码,受限的密码算法
- 加密:协商出一种只有发送方和接收方看得懂的语言
由“信任”看如何说明密码算法的安全性
- 到底什么是安全?
- 水的安全性?
- 为什么认为没毒?
- 因为喝过
- 正规厂商
- 正规渠道
- 相信给你说的人不会害你
- 相信厂家不会害你
- ….
- 因为相信了xxx,所以相信这瓶水是安全的
- 为什么认为没毒?
- 不能保证绝对安全
- 如果保证绝对安全,一定要试一下
- 安全在绝大多数情况下无法实证
- 安全来源于信任,依托于已知信任源,使得某一个场景是安全的
- 信任源有信任程度的差异
- 对安全造成影响
- 直观感觉同一瓶水安全性是常量,但通过给水的方式变了,导致水的安全性的改变。
- 因为信任源变了!
- 信任源是动态的
- 如果希望产品达到很好的安全性,则信任源要信任程度高而且稳健
- 现代密码学信任源:数学公理(公认的数学难题)
- 密码建立过程?
- 假设-证明
- 证明如果存在攻击者能够破解我的加密算法,那么我能用它解决公认的数学难题
- 逆否->不成立
- 什么是求解数学问题?
- 前提:有解
- 数学问题:解在问题中,关键在于能不能展示出来
- 数学难题:解在问题本身,但没办法有效展示出来
- 但有时额外增加一个量,就很好解
- 增加的量->解密密钥
- 原始问题->加密密钥
- 水的安全性?
现代常规对称加密技术
- DES
- Triple DES
- AES
分组密码
- 基本思想:密文的统计特性与密钥独立
- 设计原则
- 扩散(Diffusion)
- 明文中的单个数字影响密文中的多个数字,从⽽使明文的统计特征在密文中消失,相当于明文的统计结构被扩散
- 使破解明文变得困难
- 混乱(Confusion)
- 密钥与密文之间的统计信息的关系变得复杂,从⽽增加通过统计⽅法进⾏攻击的难度
- 使破解密钥变得困难
- 扩散(Diffusion)
- 软件要求
- 使用子块(8, 16, 32bit)和简单(CPU直接支持的)的操作
- 硬件要求
- 加密算法和解密算法尽可能一样->成本降低
DES
如何保障加解密正确性
- 依赖于Feistel结构实现加解密的正确性
密钥长度
- 48bit:子密钥长度
- 56bit:真正用加密和解密的密钥长度
- 64bit:其中有8比特不用做加解密,是用来做奇偶校验的
Feistel结构
- 不管F函数怎么设计,一定可以保证加密过程和解密过程一模一样
- 结构
S-Box
- S盒无法求逆
- 只依赖于Feistel结构实现加解密的正确性
- 最⼤保障安全性
DES缺陷
- 弱密钥
- 导致每一轮使用相同的子密钥
- 半弱密钥
- 使用不同密钥加密相同明文时会得到相同密文
分组密码的操作模式
- 电子密码本(ECB)
- 分块,单独对每一块进行DES加解密
- 优点
- 可并行
- 缺点
- 安全性不够高
- 篡改密文块位置
- 无随机->相同明文一定得到相同密文->存在频率分析的可能性
- 最直观,就是⽤用DES加密长文件,把⻓文件切块,但安全性很差
- 密码分组链接(CBC)
- 引入随机数->初始向量->解决频率分析
- 前一块对后一块有影响->解决篡改密文
- 优点
- 无法篡改密文块位置
- 缺点
- 无法并行
- 引⼊入随机数,引⼊入前后块的关联关系,但不不能实现流式
- 密码反馈模式(CFB)
- 流式加密->加密最小单位自定义
- 优点
- 加密最小单位自定义
- 防篡改(链接模式)
- 缺点
- 加密速度没准达不到流失数据产生的速度
- 无法并行
- 流式加密过程,但⽆无法应对⼤大量量流式数据短时间到达
- 输出反馈(OFB)
- 把中间结果反馈回去->可以预处理->加快速度,解决并行问题 进化原因:克服缺点
Triple DES
为什么出现
- 因为DES的56bit的秘钥长度不足以抵御穷举攻击
- 问题:DES安全性不高-> 再现有基础上改进 or 完全做一个新的
高安全性的必要性:多次DES加密与单次DES加密不等价
Triple DES
- DES-EEE3:三个不同的密钥加密
- DES-EDE3:加密-解密-加密
- DES-EEE2:K1 = K3
- DES-EDE2: K1 = K3
- 兼容常规DES:若K1=K2,相当于一次DES
- 为什么要兼容:有很多已用单次DES加密的数据
- 没有有效攻击方法
- 兼容常规DES:若K1=K2,相当于一次DES
AES
(为什么会有AES)提出全新的密码算法 * 比三重DES快 * 至少一样安全 * 数据分组长度为128比特 * 密钥长度为128/192/256比特
Rijindeal
- 不属于Feistel结构->加解密算法不同
- 有较好的数学理论作为基础
- 结果简单、速度快
- AES需要多少轮密钥:11个
- AES第10轮没有列列混操作
AES如何保证加解密的正确性
- 解密是加密的逆变换,加密过程中不存在不可逆变换
与DES的S盒比较
- 相同点
- 非线性替代
- 提供混乱作用
- 不同点
- 可逆
- 不会丢失信息
列混合变换(具有数学特征)
- 矩阵乘法,其中加法变成异或,乘法变为多项式乘法
- 代替操作,将状态的列看作有限域GF上的4维向量并被有限域GF上的一个固定可逆方阵A乘
- 举例
Rijndael安全性
- 没有发现弱密钥或补密钥
- 能有效抵抗目前已知的攻击算法
- 线性攻击
- 差分攻击
公钥密码
随机数产生
随机数的基本特点
- 随机性
- 均匀分布
- 独立性
- 不可预测性
伪随机数:攻击者在有效时间内分辨不出是真随机的还是伪随机的
把循环加密换成DES,在现代有啥问题?
- 秘钥⻓度不够,易被暴力破解从而丧失不可预测性
BBS产生器
- 基于大数分解
- 最后一步去掉有什么问题?
- 可预测,根据前一个可预测下一个
- 为什么选最后1比特?
- Xi的每个比特的随机性有差异,而随机性最强的比特是最低位,所以Bi取最低比特
公钥密码算法
起源(为什么会出现公钥加密算法?)
- 在广域网情况下,发送方如何让接收方提前知道对称密码的密钥是什么?
- 解决了对称加密的密钥的协商、发送问题
公钥密码特征
- 公钥:加密(公开的)
- 私钥:解密
- 不能从公钥推导出私钥
加密过程
- 发送方用接收方的公钥来加密(对称密钥)
- 为什么不直接加密文件?
- 公钥密码开销大,速度慢
- 发送方如何知道发送接收方的公钥?
数学定理
- 引理1:若
ac = bc mod m
, 且c和m互素,则a = b mod m
- 引理2:若a和m互素,则
a, 2a, 3a, ..., (m-1)a
的最小剩余(mod m
)按照某种次序排列后为:1, 2, 3, ...., m-1
- Fermat定理:
p
为素数,a
是整数且不能被p
整除,则 - Euler数:
o|o(n)
小于n
且与n
互素的正整数个数- 若
p
是素数,o|o(p) = p - 1
- 若
- Euler定理:若
a
与n
为互素的正整数,则:- 举例
- 证明
- 注:如果有
m | (a - b)
,即m
是a - b
的因子
- 注:如果有
- 推论:若
n = pq, p≠q
都是素数,k
是任意整数,则:
- 原根
- 离散对数
- 离散对数问题
- 给定上式,已知
g, y, p
,计算x
!
- 给定上式,已知
Diffie-Hellman密钥交换
- 基于离散对数问题 目的:允许两个用户可以安全地交换一个秘密信息,用于后续的通讯过程
算法
安全性保障:“直观上”依赖于计算离散对数的难度
中间人攻击
- 攻击者必须实时截获并冒充转发
为什么选取a是原根?
- 为了保证两两不相等,如果不选原根,对于攻击者破解难度降低
背包算法
MH公钥算法 公钥 = 私钥 * w mod m
- 举例
- 计算公钥
- 加密
- 解密
背包算法问题
- 加密无随机->容易破解
- 实际中不采用
RSA算法
实际用的RSA算法为RSA-OAEP 为什么实际用的与理论用的不一样?
- 教科书中讲的加密过程没有用到随机数
RSA安全性依据
- x的e次方mod n 是一个单向函数 -> 无法求出x
- 攻击者无法分解:n = pq
RSA算法
举例
密钥长度
- 95:512bit
- 99:1024bit
- 现在:2048bit
- 趋势:使用基于椭圆曲线的加密算法
- 因为基于比大数分解难题更难的难题
- 为什么选1024⽐比特?
- 计算复杂度 达到2^80
- 因为现在密码学认为超过2^80就是安全的
对RSA的选择密文攻击
- 攻击者可以自己选择一些密文,并获得对应的明文
- 选密攻击从不考虑不直接解密?
- 等同于用户把自己私钥暴露出去
- 这样所有密码体制都无法保证安全性
- 怎么保证用户一定会提供解密服务?
- 用户如果不解密,密文也看不懂;解密完发现看不懂,就什么也不做->间接提供给攻击者明文信息
- 这么假设为了保证加密算法的安全性
公共模攻击
- 能不能去相同的模数?
- 不可以 小加密指数攻击 小解密指数攻击
加密指数选择,能不能用小指数,为什么?
- 可以,因为实际应用中都是RSA-OAEP,加密前将消息与随机值混合,并保证m与n有相同的长度。小加密指数攻击无法实施。实际上为了提高加密速度,通常取e为特定的整数,ISO/IEC9796中甚至允许取e=3
Hash函数、数字签名与身份认证
Hash函数
Hash函数能不能直接用作数据完整性校验?
- 不能,因为hash函数结果也易被篡改
MAC
- 如果要在不安全的信道中保证消息的完整性,可以在Hash函数中引入一个密钥,其结果被称为消息验证码(MAC)
- Hash函数基本要求
- 快速
- 因为输入长度不固定
- 单向
- 根据H(M)=h无法计算出M
- 在MAC中防止解出密钥
- 防碰撞
- 快速
- 安全性
- 原像稳固:给定消息摘要y,能否找到x使得
h(x)=y
- 单向性
- 第二原像稳固:给定一个消息x,能否找到x’ ≠x ,使得
h(x)=h(x’)
- 防碰撞
- 碰撞稳固:寻找任意x’ ≠x,使得
h(x)=h(x’)
- 任意寻找两个不同的x,使得哈希结果相同的可能性为0
- 原像稳固:给定消息摘要y,能否找到x使得
数字签名
数字签名是传统签名的数字化,基本要求:
- 能与所签文件“绑定”
- 签名者不能否认自己的签名
- 签名不能被伪造
- 容易被自动验证
与MAC的区别:MAC不能保证双方自身的相互欺骗
必须保证的性质
- 可验证:签字是可以被确认的
- 防抵赖:发送者事后不承认发送报文并签名;
- 防假冒:攻击者冒充发送者向收方发送文件;
- 防篡改:收方对收到的文件进行篡改;
- 防伪造:收方伪造对报文的签名
三个过程
- 系统的初始化过程
- 在系统的初始化过程中要产生的数字签名方案中用到的一切参数,有公开的,也有秘密的
- 签名产生过程
- 在签名产生的过程中用户利用给定的算法对消息产生签名,这种签名过程可以公开也可以不公开
- 签名验证过程
- 在签名验证过程中,验证者利用公开验证方法对给定消息的签名进行验证,得出签名的有效性
数字签名问题
- 签名后文件可能被重复利用
- 签字后的文件可能被B重复使用。如果签字 后的文件是一张支票,B很容易多次用该电子支 票兑换现金,为此A需要在文件中加上一些该支票的特有的凭证,如timestamp等,以防止上述情况发生
- 公钥算法效率低
RSA数字签名
- 与加解密的异同?
- 利用私钥签名,公钥验证,而RSA加密是⽤公钥加密,私钥解密
身份认证
身份认证是对网络中的主体进行验证的过程,用户必须提供他是谁的证明,他是某个雇员,某个组织的代理、某个软件过程(如交易过程) 。
主要方法
- 口令认证
- 含义:用户名/口令认证
- 优点
- 最简单、最普遍的身份识别技术
- 缺点
- 大多数系统的口令是明文传送到验证服务器的, 容易被截获
- 口令维护的成本较高,难于记忆
- 口令容易在输入的时候被攻击者偷窥,而且用户无法及时发现
- 安全性要求
- 位数>6位
- 大小写字母混合
- 字母与数字混合
- 口令有字母、数字以外的符号
- 禁止使用缺省口令
- 定期更换口令
- 保持口令历史记录,使用户不能循环使用旧口令
- 用口令破解程序测试口令
- 攻击种类
- 字典攻击
- 穷举尝试
- 窥探
- 社交工程
- 垃圾搜索
- 重放攻击
- 智能卡认证
- 含义:网络通过用户拥有什么东西来识别的方法,一般是用智能卡或其它特殊形式的标志,这类标志可以从连接到计算机上的读出器读出来。访问不但需要口令,也需要使用物理智能卡(询问/应答模式)
- 优点
- 存储容量大 、体积小而轻、保密性强、网络要求低、 数据可靠性高 、防磁、防静电、防潮、耐温、抗干扰能力强,一张IC卡片可重复读写十万次,卡中数据可 保存几十年,对计算机的实时性、敏感性要求降低。内部数据保密性、可靠性好,读写稳定可脱机工作,易于安装维护
- 缺点
- 丢失后短时间内不好补回
- 安全性要求
- 攻击种类
- 基于生物特征的认证
- 含义:目前已有的设备包括:视网膜扫描仪、声音验证设备、手型识别器等
- 优点
- 安全性高
- 缺点
- 一旦泄露,生物信息不可更改!
- 安全性要求
- 攻击种类
- 双因素认证
- 含义:所知道的内容+所拥有的物品
- 优点
- 缺点
- 安全性要求
- 攻击种类
身份认证协议
- NSSK:通信双方A和B通过可信第三方协商会话密钥
- 基于对称密码的双向认证协议
- A向可信第三方T发送要和B勾搭的请求,加上随机数Na
- T给A回复相应的Na,B的信息,AB之间的密钥,和用Kbt的密钥加密的Kab与A的信息
- A解密之后,验证Na,然后把用Kbt的密钥加密的Kab与A的信息发给B
- B用Kbt解密,获取Kab,并生成随机数,用Kab加密发给A
- A解密后,把随机数+1,在用Kab加密发回B 信任建立
- A认证B:第四步,因为只有真正的B才能解出BT通讯的对称密钥
- B认证A:第五步,因为只有真正的A才能解出AB通讯的对称密钥
- NSPK:通信双方A和B通过可信第三方协商会话密钥
- 基于非对称密码的双向认证协议
- A向可信第三方T发送要和B勾搭的请求
- T臭不要脸的同意了,给了B的联系方式(B的公钥),怕A不相信,还在上面改了一个戳(用自己的私钥签名)
- A拿到B的公钥,随便选了个数,作为定情信数,然后附上自己的名片,用B的公钥加密,发送给B
- B收到这封信,用自己的私钥解密,知道是A这个小彪子要勾搭自己,精虫上脑,然后也向T去申请
- 同样的T也给了B一个自己盖过章的A的公钥
- B拿到A的公钥,又选了一个定情信数Nb,俩数一块用A的公钥加密发给A
- A解密出Nb的值,再用Kb加密发回给B 信任建立:
- B认证A:(6)里面B发给A的是用A的公钥加密的,只有A能解开,所以,(7)里面A把正确的Nb发回给B,证明他真的是A
- A认证B:(6)里面B能把A随便选的定情信数解密出来(之前是用Kb加密的),再发回给A,就证明自己是真的B
- 基于非对称密码的单向认证协议
PKI
概念:PKI-Public Key Infrastructure公钥基础设施。是一个用公钥技术来实施和提供安全服务的具有普适性的安全基础设施。
功能
- 签发证书
- 签发证书撤销列列表
- 密钥备份与恢复功能
- 证书、密钥对的⾃自动更更新
- 加密、签名密钥的分割 密钥历史的管理理
- 交叉认证
本质任务:绑定用户和公钥 为什么需要PKI:公钥和用户没有天然的绑定关系,所以需要KPI来完成这种绑定。 密钥备份及恢复系统:密钥的备份与恢复只能针对解密密钥,签名私钥不能备份
- 为什么?防⽌发生发送方抵赖,说签名不是⾃己签的,因为PKI也有自⼰的私钥
撤销方法:把证书列入证书撤销列表中(CRL)来实现
- 到期
- 临时
- 用户身份改变
- 对密钥的怀疑(丢失或泄露)
- 用户工作的变动
- 认为CA证书已泄露
交叉认证
- 为什么:在以前没有联系的PKI之间建立信任关系,就需要交叉认证。它能够让一个PKI团体的用户验证另一个PKI团体的用户证书,从而实现通信。
- 分类
- 域内/间交叉认证
- 单向/双向
- 正/反向交叉验证
- 验证步骤
- 验证真实性(基于证书链机制)。证书是否为可信任的CA认证中心颁发?
- 验证有效性。证书是否在有效期之内?
- 验证可用性(基于证书撤销机制)。证书是否已废除?
基于身份加密体制
为什么会出现?
- CA成为了PKI的性能瓶颈
- 公钥和用户没有天然的绑定关系,所以需要KPI来完成这种绑定
- 如果不用KPI,那么公钥和用户要有天然的绑定关系
概念:一种能够让用户及其公钥有天然的绑定关系的加密体制 天然的绑定关系?
- 属性
- 身份
- 需要从不同的角度考虑
算法含义
- Setup
- 系统初始化算法用于生成系统公开参数和系统秘密参数
- Extract
- 根据系统秘密参数和用户的身份信息(公钥),根据系统秘密参数和用户的身份信息(公钥) 生成用户的私钥
- Enc
- 发送方根据系统公开参数、接收方身份信息 (公钥),加密明文,并生成密文
- Dec
- 接收方用自己的私钥解密收到的密文
物联网安全
RFID威胁
- 物理攻击
- 针对节点本身进行物理上的破坏行为,导致信息泄露、恶意追踪等。
- 信道堵塞
- 攻击者长期占据信道导致通信无法传输。
- 伪造攻击
- 伪造电子标签生成系统认可的“合法用户标签”(实现代价较高)。
- 假冒攻击
- 截获合法用户身份信息后,截获合法用户身份信息后使用该信息假冒合法用户入网。使用该信息假冒合法用户入网
- 重放攻击
- 利用某次合法用户的身份登陆信息或者窃听到的有效信息过一段时间后重发送给接收者,骗取信任,达到攻击的目的。
- 中间人攻击
- 攻击者将窃听到的信息进行修改之后再将信息传给接收者。
无线传感网络的威胁
- 网关节点俘获
- 控制节点被俘获之后,可能导致通信密钥、广播密钥、配对密钥等全部 泄露,泄露 进而威胁到整个网络的通信安全。进而威胁到整个网络的通信安全
- 普通节点俘获
- 导致部分通信密钥泄露,对局部网络通信安全造成威胁。
- 传感信息窃听
- 攻击者对通信链路间传输的信息进行窃听,从而分析并得出其中的敏感信息。
- DoS攻击(拒绝服务攻击)
- 网关节点容易受到DoS攻击,耗尽节点资源,使得节点丧失运行能力。
- 虚假路由信息
- 通过欺骗,纂改或重发路由信息,攻击者可以创建循环路由,延长或者 屏蔽路径,屏蔽路径,增加端到端延迟,增加端到端延迟从而消耗节点能源。
传输层安全威胁
- 异构网络跨网认证
- 异步攻击(传输层的重放攻击等等)
- 合谋攻击
传输层相关措施
- 点到点加密机制:在路由节点解密后再加密传输:好多密钥
- 端到端加密机制:传输过程始终保持密文传输:单一密钥
应用层安全威胁
- 在满足数据智能化处理基础之上,加强数据库访问控制策略。
- 加强不同应用场景的认证机制和加密机制。
- 加强数据溯源能力和网络取证能力,完善网络犯罪取证机制。
密码学在分布式传感器网络(DSN)中的应用
密钥分发问题
- 单一密钥
- 优点
- 存储少
- 效率高
- 增加/删除新节点容易,不会对现有节点产生问题
- 缺点
- 单一节点被俘获,危害整个系统的安全
- 优点
- 每两个传感器采用不同密钥
- 优点
- 安全性高
- 缺点
- 每个传感器需要存储N-1个密钥
- 增加/删除传感器会对现有传感器产生影响
- 优点
- 折中方法
- 分组
安全性 VS 效率
- 追求极致的效率而不考虑安全性
- 看此问题有没有有效的解决方法->如果没有,则不必向下探究
- 追求极致的安全性而不考虑效率的开销
- 最大能达到的安全性
- 平衡安全性和效率
- 弱化第二种方案的安全性->减少步骤
基于密码学的RFID认证
安全性需求
- 保密性:即信息在Tag与Reader之间传输时需要进行保护,例如加密
- 不可伪造性:攻击者不能够伪装成一个合法的攻击者不能够伪装成个合法的Tag或者Reader
- 位置隐私:攻击者不能够获知Tag的位置信息, 即不可追踪
Hash-Lock协议(最简单)
- 实现Tag与Reader的互认证
- 第五步,Tag认证读写器
- 第六步,读写器认证Tag
- 优点
- 简单
- 问题:攻击者可以劫持传输的metaID和ID
- 伪造RFID标签
- 重放攻击(需要截获并记录以前的通讯)
随机化Hash-Lock协议
- 认证
- 第五步,Tag验证读写器
- 第四步,读写器验证Tag,因为解出一个正确的标签ID
- 但Tag标识仍以明文形式传 输,很容易对Tag进行跟踪,且易受伪造攻击和重传攻击
- 截获合法的IDk,放到伪造的标签里
- 第四步传回所有的ID,通信开销很大,读取器存储开销大
Hash链协议
- 单向认证
- 读写器认证Tag:第四步,因为解出一个正确的标签ID
- 合法RFID标签的ID值是动态变化的
- 优点
- 可防追逐
- 可防伪造
- 可重传攻击
- G、H不能相同
- 若相同则a变成下一次的状态信息
基于PKE的RFID认证
方案1
- 安全性:引入了随机数,因此可以抵抗消息重放攻击
- 读写器对Tag的单向认证
- 因为只有真正的Tag才会有正确的(ID, K)和刚发的随机数 方案2
- 安全性
- 读写去和Tag的双向认证
- 第三步,读写器验证Tag
- 第四步,Tag验证读写器
实际应⽤用中缺点:复杂、效率低、成本⾼高