身份认证

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用5位或5位以下的字符作为口令。
安全口令的建议
口令长度至少要有8位 口令应包括大小写字母、数字、或者控制符 不要将口令写在电脑上或纸条上 要养成定期更换口令的习惯 一月一换 尽量不要在电脑上保存口令
一次性口令
一次性口令(OTP,One Time Password): 一次性口令的主要思路:在登录过程中加入不确定 因素,使每次登录过程的口令都不相同,以提高 登录过程安全性。 一次性口令的特点: 口令简单,易于使用 基于一个被记忆的密码,不需要任何附加的硬件 算法安全
一、身份认证的基本原理
在现实生活中,我们个人的身份主要是通过各种证 件来确认的,比如:身份证、户口本等。
认证是对网络中的主体进行验证的过程,用户必须 提供他是谁的证明,他是某个雇员,某个组织的代 理。 认证( authentication )是证明一个对象的身份的过程。 与决定把什么特权附加给该身份的授权 ( authorization )不同。
使用自己或者亲友的生日作为口令
使用学号、身份证号、单位内的员工号码等作为 口令
这种口令很脆弱,因为这样往往可以得到一个 6 位或者 8 位的口令,但实际上可能的表达方式只有 100×12×31=37200种。
使用常用的英文单词作为口令
这种方法比前几种方法要安全一些。一般用户选 择的英文单词几乎都落在黑客的字典库里。
固定口令
1)第二种方法
口令档案
对口令进行散列处理
针对第二种方法的攻击 • 字典攻击
攻击者可以创建一个六位数 例如 口令是6位数, (000000~999999)的列表,然后对每个数使用散 列函数,得到一个散列函数列表。他可以得到口令 档案并搜索列表,找出匹配的。
固定口令
1)第三种方法——盐处理口令 通过在口令任意固定位置插入特定的字符串,让散 列后的结果和使用原始密码的散列结果不相符,这种过 程称之为“加盐”。
• 为防止重放攻击, 必须使用询问-应答(咨询/应 答)方式(Challenge/Response) • 假设 Bob 要认证 Alice的身份
– Bob 发一个询问给 Alice – 正确应答只有Alice 才能提供 – 选择的询问使得重放攻击是不可能的
• 如何实现?
– 密码Alice 知道… – 一个 “仅使用一次的数字” 或当前数nonce
若采用传统密码,则A可通过下列过程认证B是否为其
意定通信站点(假定KAB 为 A,B 共享会话密钥): ① A B : E ( RA , K AB ) ② B A : E ( f ( RA ), K AB ) 我们称通信双方同时对其另一方的认证为双向认 证或相互认证。
相互认证(Mutual Authentication)?
―我是Alice‖, R E(R,KAB) Alice

E(R,KAB)
Bob
问题出在哪儿? 可能是 Trudy (或其他人)?
“Alice”
相互认证(Mutual Authentication)?
―我是Alice‖, RA RB, E(RA,KAB) Alice

E(RB,KAB)
Bob
还有问题吗? 可能是 Trudy (或其他人)! 中间人攻击(MiM)
③ A B : E ("Alice" || RB , K AB )
2、公开密码
• 用Alice的公钥加密 M: gn) M: E(M, SKA)
• 假设
D( E (M , PK A ), SK A ) M
D( E ( M , SK A ), PK A ) M
一次性口令的原理
基于客户端、服务器模式 客户端:每次登录生成一次性口令 服务器:验证客户端的一次性口令
一次性口令
1)第一种方法 用户和系统同意一个口令列表,每个口令用一次。 2)第二种方法
用户和系统同意连续升级口令。用户和系统同意
一个初始口令P1,在第一次使用有效。在第一次 访问过程中,用户生成一个新的口令P2,以此类推。
基于密码的认证技术
• Alice 必须向Bob证明她就是Alice
– Alice 和 Bob 可能是人或者是机器
• 或许需要Bob证明他是Bob (相互认证mutual authentication)
• 或许也需要建立一个会话密钥 • 其他的要求, 如
–使用公开密钥 –使用对称密钥 –使用hash函数 –匿名, 不可否认等等.
Bob
这样安全吗? 相互认证,但密钥不保密!

用公钥实现
(―我是 Alice‖, R) E(E(R||K,SKB),PKA) Alice

E(E((R +1)||K,SKA), PKB)
Bob
这样安全吗? 相互认证并且建立会话秘钥!
用公钥实现
(―我是 Alice‖, R) E(E(R||K,PKA), SKB) E(E((R +1)||K, PKB),SKA) Alice
3)第三种方法(S/KEY) 用户和系统用 hash函数连续升级口令.
第三种方法的安全原理:
使用一次性口令序列 n 次 第一个口令——使用单向函数n次 P1= h(h(h(h(P0)))) 第二个口令——使用单向函数 n-1 次 P2= h(h(h(P0)))) 依次类推
(2)签名识别
签名识别——不是能识别出被鉴别的签名是什么字, 而是要能识别出签名的人。
– 一定不能暴露密钥 – 必须避免重放攻击
使用对称密钥的认证
假设Alice和Bob的共享对称密钥 KAB
―我是Alice‖
R Alice, KAB

E(R,KAB)
Bob, KAB
允许 Bob 认证Alice,并防范了重放攻击
Alice 不能认证 Bob
我们称通信一方对另一方的认证为单向认证。设 A,B是意定的两个站点,A是发送方,B是接收方。
这样安全吗? Trudy 可让 Alice对任何文件签名!

必须有两个密钥对
公钥 (Public Keys)
• 不要用同一对公钥/私钥既做签名有做于加密 • 一个密钥对用于加密/解密 • 另一个密钥对用于签名/验证
会话密钥 (Session Key)
• 我们是否能够进行身份认证同时有建立一个共 享密钥? – 密钥可用于加密 – 密钥可用于保证消息的完整性
不安全口令的分析
使用用户名(账号)作为口令
使用用户名(账号)的变换形式作为口令将用户 名颠倒或者加前后缀作为口令
比如说著名的黑客软件John,如果你的用户名 是ABC,那么它在尝试使用ABC作为口令之后,还会 试着使用诸如ABC123、CBA、CBA123、BAC等作 为口令,只要是你想得到的变换方法,John也会想得 到。
简单认证(Simple Authentication)
―我是Alice‖ 证明这一点
我的密码是 “frank‖
Alice Bob
• 简单 • 但不安全
– 遭受重放攻击 – 密码明文传输
重放攻击(replay attack )
“我是 Alice”
证明这一点
Alice
我的密码是 “frank”
Bob
固定口令
1)第三种方法——盐处理口令
口令档案
对口令的盐处理
存在的问题: 口令系统的安全依赖于口令的保密性。
• 攻击者可能从口令档案中获取用户口令 如果用户的口令以明文形式存储在系统中,系统 管理员可以获得所有口令,攻击者也可利用系统 的漏洞来获得他人的口令。
• 攻击者可能在传输线路上截获用户口令 如果用户的口令在用户终端到系统的线路上以明 文形式传输,攻击者可在传输线路上截获用户口 令。
认证同时建立会话秘钥
(―我是 Alice‖, R) E(R||K,PKA) Alice

E(R +1||K,PKB)
Bob
这样安全吗? 对于密钥来说是安全的, 但未提供相互认证,哪 一方未认证? 注意 这里的K 相当于是 Bob的当前数(nonce)
用公钥实现
(―我是 Alice‖, R) E(R||K,SKB) E((R +1)||K,SKA) Alice
身份认证的常用识别法
身份认证的定义 证实客户的真实身份与其所声明的身份是否相符的 过程 身份认证的依据 (1)根据用户知道什么来判断(所知) 口令、密码等 (2)根据用户拥有什么来判断(拥有) 身份证、护照、门钥匙、磁卡钥匙等 (3)根据用户是什么来判断(特征) 指纹、声音、视网膜、签名、DNA等
常用的身份认证技术
(1)口令识别法 (2)签名识别法 (3)指纹识别技术 (4)语音识别系统
(1)口令识别法 口令是应用最广泛的身份认证技术
口令长度:通常为6~8的字符串
选择原则:易记、难猜、抗分析能力强
固定口令 一次性口令
口令的存储
(1)直接明文存储口令 写在纸上或直接明文存储在文件或数据库中, 最容易泄密。
用公钥认证 (Public Key Authentication)
―我是 Alice‖
E(R,PKA)
R
Alice Bob
这样安全吗? Trudy 就可让Alice解密任何密文!

必须有两个密钥对!
用公钥认证 (Public Key Authentication)
―我是 Alice‖
R E(R,SKA) Alice Bob
(―我是 Alice‖,RA) (RB, E(―Bob‖||RA,KAB)) E(―Alice‖||RB,KAB)
Alice
Bob
• 安全码? • OK!
上述A和B相互认证对方过程也可以用下列形式 表示:
E ( RA , K AB )) ① A B : (“我是 Alice”,
( Bob” || RB , K AB )) ② B A : ( RB , E“
询问-应答
―我是 Alice‖
当前数(Nonce)
h(Alice的密码, 当前数) Alice

Bob
当前数是询问 Hash是应答 当前数 防止重放攻击, 确保仅使用一次 密码只有Alice 知道 注意Bob必须知道Alice的密码
通用认证协议
―我是 Alice‖ 当前数
只能是来自Alice(而且Bob能够核实)的东西
固定口令
1)第一种方法
口令档案
用户身份和口令档案
针对第一种方法的攻击 • 网络窃听 • 盗窃口令 • 访问口令档案 • 猜测
口令的存储
(1)直接明文存储口令 写在纸上或直接明文存储在文件或数据库中,最容 易泄密。
(2)Hash杂凑存储 使用杂凑函数为口令文件产生“指纹”,即将 每一个用户的账号和杂凑值存储在一个口令文件 中。当用户登录时,输入口令后,系统计算口令 的杂凑码,并与口令文件中的杂凑值比对:成功, 则允许登录;否则,拒绝。
Alice
Bob
• 如何实现?
1、对称密码
• 用密钥K加密明文 P C = E(P,K) • 用密钥K解密密文 C P = D(C,K) • 假设加密算法是安全的
使用对称密钥的认证 (Symmetric Key Authentication)
主要思想
• • • • Alice 和Bob共享对称密钥 KAB 只有Alice 和Bob知道密钥 KAB 通过提供掌握共享对称密钥的证明来完成认证 如何实现上述目的?
“Alice”
相互认证(Mutual Authentication)?
1.―我是Alice‖, RA
2.RB, E(RA,KAB)
Trudy 5.E(RB,KAB)
Bob
3.―我是Alice‖, RB 4.RC, E(RB,KAB)
Trudy
Bob
用对称密钥相互认证 (Symmetric Key Mutual Authentication)
截获
Trudy
“我是 Alice”
证明这一点
Trudy
我的密码是 “frank”
Bob
• 怎样防止重放攻击?
较好的认证
―我是 Alice‖ 证明这一点 h(Alice的密码) Alice Bob
• 隐藏了Alice的密码
– 对于 Bob 和 攻击者
• 但仍然遭受重放攻击
询问-应答 (Challenge-Response)
Bob
这样安全吗? 似乎 “ OK”

-任何人可以得到 E[R||K,PKA] 以及 E[(R +1)||K,PKB]
相关文档
最新文档