一、章节梗概
1.身份认证的基本概念
2.基于口令的身份认证:Unix口令,动态口令
3.基于密码的身份认证技术
①.质询与应答认证技术
②.Needham-Schroeder 协议
③.KERBEROS协议
二、身份认证的基本概念
2.1 定义
宣称者向验证方出示证据,证明其身份的交互过程
至少涉及两个参与者,是一种协议
分为双向认证和单向认证
2.2 区分身份认证和报文鉴别
区分
1.报文鉴别是静态附加在报文之上;身份认证是动态的协议交互的过程;报文鉴别可以作为基本方法,用于设计身份认证协议
2.身份认证一般和时间相关,具有实时性
重大区别就是:
要保证用于身份认证的报文的“鲜活性”
最早是由毛文波提出的,鲜活性在身份认证里指用于身份认证的凭证每次都不一样;
对身份认证最大的威胁是:重放攻击
三、基于口令的身份认证
3.1 介绍
基于口令认证的一般过程分为两个阶段:
初始化阶段:
1.用户选择口令
2.口令经哈希后把哈希值存储在口令文件里
身份认证阶段:
1.用户登录系统,输入口令
2.系统同样方向计算哈希值,和之前存放在口令文件里的哈希值比较
是弱的认证方法:
口令在相当长一段时间内固定
明文存放或哈希之后存放
通过设置规则(如要求字母、数字、长度等),避免设置弱口令
Salt(盐值)提高字典攻击的穷举空间,有大量的应用实例:Unix口令和动态口令
3.2 对基于口令认证的攻击
1.重放攻击(因口令一般一段时间内固定)
2.穷举攻击:8个字符相当于40-50bits的穷举空间
3.字典攻击:
什么是口令字典?
典型的口令词典:容易被采用作为口令的词条
在线字典攻击:攻击者从字典文件里的词条拿出来一个一个去匹配口令
怎么防御在线字典攻击?
a.随机口令设置
b.或者通过一些规则避免设置弱的口令,增加穷举者攻击空间的目的
避免设置弱的口令,提高字典攻击的难度。
4.离线字典攻击
a.建立离线字典文件
字典文件包含两列:①口令②口令对应的哈希值
口令列表,与攻击目标系统采用同样哈希算法,计算生成口令的哈希值
b.获取password 文件
password文件里的哈希值与字典文件里的哈希值进行比对
离线字典攻击原理:
防范离线字典攻击典型方法:
撒点盐的方法,通过撒点盐的方法来提高离线字典攻击的穷举空间
以UNIX口令系统为例—撒盐方法
Salt(使用加密技术生成的随机数)
5.基于口令的认证方式总结
●一种弱的认证方法
窃取A的password ,将在很长一段时间拥有A的权限,直到A发现
●特别的,网络环境下远程认证
远程登录,password 传递形式,加密还是明文
早期的互联网协议,telnet 、 http 、 ftp都是明文传递
网络环境下口令认证又会带来新的问题
●可以通过设置一些规则避免简单的口令
●一种普遍的身份认证方式,因为容易部署、易使用
3.3 动态口令
解决的问题:基于口令的身份认证易受重放攻击,如何避免口令固定被重放?
需要事先共享口令序列,每次认证后更新,当前期待的口令与前一个的口令不一样。
如何共享?
要解决这个问题最早的方案是Lamport动态口令方案
四、身份认证协议的分类
1.弱的身份认证
基于口令、PIN码等
动态口令( one time passwords )半强的
2.强的(基于密码技术的)身份认证
质询与应答技术
3.基于可信第三方的身份认证(不但实现身份认证、还解决密钥分发问题)
Needham-Schroeder 协议
Kerberos协议
五、身份认证协议之质询与应答
引入
强的(基于密码技术的)身份认证:质询与应答技术
1.对称密钥实现质询与应答
2.公开密钥实现质询与应答
质询与应答的基本逻辑
质询与应答的实现方式
使用对称密钥秘密体制
①对称密钥加密②报文鉴别码
用公开密钥密码体制
①数字签名
5.1 对称密钥实现质询与应答
基于对称密钥–基本思想
单向身份认证,对称密钥
反射攻击
单向身份认证,使用时间戳
双向认证,对称密钥加密
对称密钥实现身份认证小结:
对称密钥密码技术通信之前需要做的事情是什么?
密钥交换。
5.2 公开密钥实现质询与应答
基于公开密钥
单向认证协议,基于数字签名
双向认证协议,基于数字签名
单向认证协议,基于对时间戳签名
质询与问答协议的标准化
六、Needham-Schroeder 协议
Needham-Schroeder 协议解决的主要问题?
密钥分发和认证。
思考:要求参与方事先完成对称密钥交换,可扩展性( Scalability)是个问题。
任意通信两方需要共享不同的密钥随着ServerlClient数量的增加…密钥如何分发,如何管理?最初Needham-Schroeder协议提出的动机就是要解决上述问题(密钥分发和认证)
协议历史
最著名的安全协议之一
1978年首次公开发表,1981年被发现有一定缺陷
几经改进最终称为Kerberos协议的基础
Needham-Schroeder提供的安全服务
Needham-Schroeder协议本身细节
对Needham-Schroeder协议的攻击
七、Kerberos协议
7.1 KERBEROS协议解决的问题
KERBEROS是一个经过长期考验的认证协议
解决的问题:认证、数据完整性、保密性
KERBEROS协议解决的问题
KERBEROS协议解决的问题小结
7.2 KERBEROS的引入协议
7.3KERBEROS的完整对话
前提条件
谈谈基于Kerberos的Windows Network Authentication[上篇]
PKI、身份认证、CA