身份认证(Authentication)的定义:
宣称者向验证方出示证据,证明其身份的交互过程 至少涉及两个参与者,是一种协议 分为双向认证和单向认证
身份认证并不是一种静态的加密,而是一个协议过程

区分两个概念
身份认证和报文鉴别
区别:
①报文鉴别是静态附加在报文之上;身份认证是动态的协议交互的过程;报文鉴别可以作为基本方法,用于设计身份认证协议
②身份认证一般和时间相关,具有实时性;
-Message authentication has no timeliness
-Entity authentication happens in real time
重大区别就是: 要保证用于身份认证的报文的鲜活性
最早是由毛文波提出的,鲜活性在身份认证里指用于身份认证的凭证每次都不一样
对身份认证最大的威胁是重放攻击(Replay Attack)

理解身份认证讨论的问题本质
报文鉴别是要对报文加密;
我们在讨论身份认证协议时总是假设底层的密码算法是安全的,研究身份认证协议时是在挑协议的漏洞,也就是说在协议交互过程中替换一个报文,或者删除一个报文,或者增加一条报文,然后看看是否造成协议出错,针对身份认证最大攻击就是重放攻击。

身份认证基本方法(基于一个凭证)
宣称者所知道的(秘密)-passwords、PINs、keys…
宣称者拥有的(设备或信物)-cards、handhelds…
宣称者继承的生物特征(每个人独有的)-biometrics
PINs与Keys的关系
用短的PIN码锁住长的密钥Key,提供两级安全保护

基于口令的身份认证
基于口令身份认证的一般模式
基于口令认证的一般过程 分为两个阶段:
初始化阶段
①用户选择口令
②口令经哈希后把哈希值存储在口令文件里
身份认证阶段
①用户登录系统,输入口令
②系统同样方向计算哈希值,和之前存放在口令文件里的哈希值比较
基于口令的身份认证-弱的认证方法
口令在相当长一段时间内固定
明文存放或哈希之后存放
通过设置规则(如要求字母、数字、长度等),
避免设置弱口令
Salt(盐值)提高字典攻击的穷举空间
有大量的应用实例

  • Unix口令
  • 动态口令

基本身份认证是明文吗 身份认证的基本概念_网络

对基于口令认证的攻击
重放攻击(因口令一般一段时间内固定)
穷举攻击 8个字符相当于40-50bits的穷举空间

字典攻击-数量化讨论

什么是口令字典?

典型的口令词典:

容易被采用作为口令的词条

– 人们的名字、宠物名字、生日或生日的组合、普通单词

穷举攻击和字典攻击哪个效率更高

基本身份认证是明文吗 身份认证的基本概念_离线_02

在线字典攻击(本质就是挨个口令试)

在线字典攻击:攻击者从字典文件里的词条拿出来一个一个去匹配口令

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_03


怎么防御在线字典攻击?

①随机口令设置

②或者通过一些规则避免设置弱的口令,增加穷举者攻击空间的目的

基本身份认证是明文吗 身份认证的基本概念_身份认证_04

离线字典攻击原理

建立离线字典文件 字典文件包含两列:

①口令

②口令对应的哈希值

口令列表,与攻击目标系统采用同样哈希算法,

计算生成口令的哈希值

获取password文件 password文件里的哈希值与字典文件里的哈希值进行比对

基本身份认证是明文吗 身份认证的基本概念_身份认证_05

离线字典攻击原理小结(本质就是比较hash)
所谓离线字典攻击就是攻击者前提能拿到口令文件倒算哈希值变成查表,查表这个运算对计算机来说处理速度非常快,这个攻击如果成功的话危害非常大,这意味着一旦口令文件丢失,所有用户的口令都发生了泄露; 如果没有离线字典文件的话,攻击者窃取了口令文件,它想从哈希值倒算口令它是做不到的,但有了离线字典文件后,针对口令文件攻击者直接查表,一旦哈希值匹配成功了,那么可以得到口令明文甚至口令值不一定一样,但是哈希值相同,这个时候也等价于找到口令了,这就是离线字典攻击的原理

防范离线字典攻击的方法
防范离线字典攻击典型方法: 撒点盐的方法,通过撒点盐的方法来提高离线字典攻击的穷举空间

以UNIX口令系统为例—撒盐方法

UNIX标准口令Hash函数(使用改造的DES算法) 将DES改造成Hash函数,改造方法:

①明文全部变成常量,64bit0;

②Salt值从系统的时钟提取,取值范围[a-z,A-Z,0-9,./],对时钟做一个简单变换变成ASCII字符,这个时钟有效比特数量是12bit

③用对称密钥key对其进行加密,key包括两个部分:口令明文+Salt(12bit)

④迭代25次;修改DES扩展函数;

⑤加密完成之后,获得一个11个ASCII字符的密文输出作为哈希值,把哈希值存放到口令文件里password字段的后面一部分,前面两位放置Salt的两个字符[from Red Hat Linux 6.2]

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_06

基本身份认证是明文吗 身份认证的基本概念_笔记_07

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_08

基于口令的认证方式总结
一种弱的认证方法 窃取A的password,将在很长一段时间拥有A的权限,直到A发现
特别的,网络环境下远程认证 远程登录,password传递形式?加密还是明文
早期的互联网协议,telnet、http、ftp都是明文传递 网络环境下口令认证又会带来新的问题
可以通过设置一些规则避免简单的口令 一种普遍的身份认证方式 因为容易部署、易使用 如何管理passwords

基于口令的身份认证:动态口令

动态口令又叫One-time passwords(OTP)

解决的问题:基于口令的身份认证易受重放攻击,如何避免口令固定被重放?

需要事先共享口令序列每次认证后更新,当前期待的口令与前一个的口令不一样 如何共享?

要解决这个问题最早的方案是Lamport动态口令方案

基本身份认证是明文吗 身份认证的基本概念_身份认证_09


基本身份认证是明文吗 身份认证的基本概念_离线_10

基本身份认证是明文吗 身份认证的基本概念_离线_11

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_12


小结

总结lamport方案:就是利用哈希函数的单向性首先用哈希算法生成一系列的口令共享串,然后把最后一个口令哈希值告诉B,攻击者即便得到之前的口令,想知道下一次口令不可行,因为哈希函数的单向性不可行 这个方案比较简单后面有些系统基于Lamport方案的,但是没有大规模使用

基本身份认证是明文吗 身份认证的基本概念_网络_13

动态口令的安全性分析
安全性: 不能防御预先播放攻击(pre-play attack)
在口令更新的时间窗口(常见1分钟、30秒)还是可以遭受重放攻击
缺点 使用500-1000次需要reinitialization 开销不小 不支持双向认证,无法确认口令提交给了合法的Bob Server

身份认证协议的分类
弱的身份认证 基于口令、PIN码等
动态口令(one time passwords)半强的
强的(基于密码技术的)身份认证 质询与应答技术
基于可信第三方的身份认证(不但实现身份认证、还解决密钥分发问题)
Needham-Schroeder协议
Kerberos协议

身份认证协议的第二类
强的(基于密码技术的)身份认证
质询与应答认证技术
对称密钥实现质询与应答
公开密钥实现质询与应答

质询与应答(Challenge-Response)的基本逻辑
设B要完成对A的身份认证
身份认证基于A所知道的某个秘密(例如密钥) 首先B发给A一个随机数(Challenge) A收到这个随机数后,对它做某种变换,得到Response报文,并发送回去 Response同时依赖于随机数和A所知道的这个秘密 B收到Response,可以验证A是知道这个秘密的
在有的协议中,这个Challenge也称为Nonce(Number used ONCE)
质询与应答** 可能明文传输也可能密文传输** A生成Response报文的典型变换有: A用密钥加密,说明A知道这个密钥 有时会对Challenge简单运算,比如增一,再做加密处理
质询与应答的意义在哪里? 是构造更复杂的交互式认证协议的基本组件

质询与应答的实现方式

使用对称密钥秘密体制

①对称密钥加密

②报文鉴别码

使用公开密钥密码体制

①数字签名

基本身份认证是明文吗 身份认证的基本概念_离线_14


基本身份认证是明文吗 身份认证的基本概念_网络_15

基本身份认证是明文吗 身份认证的基本概念_网络_16

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_17

基本身份认证是明文吗 身份认证的基本概念_身份认证_18

基本身份认证是明文吗 身份认证的基本概念_离线_19

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_20

基本身份认证是明文吗 身份认证的基本概念_网络_21

基本身份认证是明文吗 身份认证的基本概念_离线_22

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_23

基本身份认证是明文吗 身份认证的基本概念_笔记_24

基本身份认证是明文吗 身份认证的基本概念_离线_25

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_26

基本身份认证是明文吗 身份认证的基本概念_网络_27

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_28

基本身份认证是明文吗 身份认证的基本概念_离线_29

基本身份认证是明文吗 身份认证的基本概念_离线_30


Needham-Schroeder协议

基本身份认证是明文吗 身份认证的基本概念_网络_31

基本身份认证是明文吗 身份认证的基本概念_身份认证_32

基本身份认证是明文吗 身份认证的基本概念_网络_33

基本身份认证是明文吗 身份认证的基本概念_笔记_34

基本身份认证是明文吗 身份认证的基本概念_离线_35

基本身份认证是明文吗 身份认证的基本概念_笔记_36

基本身份认证是明文吗 身份认证的基本概念_离线_37

基本身份认证是明文吗 身份认证的基本概念_网络_38

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_39

基本身份认证是明文吗 身份认证的基本概念_笔记_40

基本身份认证是明文吗 身份认证的基本概念_身份认证_41


基本身份认证是明文吗 身份认证的基本概念_笔记_42

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_43


基本身份认证是明文吗 身份认证的基本概念_笔记_44

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_45

基本身份认证是明文吗 身份认证的基本概念_网络_46

基本身份认证是明文吗 身份认证的基本概念_离线_47

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_48

基本身份认证是明文吗 身份认证的基本概念_身份认证_49

基本身份认证是明文吗 身份认证的基本概念_身份认证_50

基本身份认证是明文吗 身份认证的基本概念_身份认证_51

基本身份认证是明文吗 身份认证的基本概念_基本身份认证是明文吗_52