现代密码学第10讲:身份鉴别协议
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
口令认证协议
3)口令加盐(Salting Passwords) 第一环节:口令字段字符串的生成:s = Agen(Dsalt, Dpw) ① 给口令Dpw撒盐:Dpw = Asalt (Dsalt,Dpw); ② 用撒盐结果做密钥:K = Dpw; ③ 用一个64位的全0位串构造一个数据块Dp; ④ 设循环次数:i = 0; ⑤ 对数据块加密:Dc = Acrypt(K, Dp); ⑥ Dp = Dc,i = i + 1; ⑦ 如果i < 25,则回到第⑤步; ⑧ 把数据块变换成字符串:s = Atrans(Dc); ⑨ 返回s。
(3)通信的有效性;
(4)是否需要第三方的实时参与; (5)对第三方的可信度的要求; (6)安全保证(可证明安全、零知识证明); (7)用来存储共享秘密数据的地方和方法。
9
身份鉴别的定义
身份鉴别技术分类
①
Passwords(weak authentication):系统检查 口令是否与系统拥有的相应用户数据相匹配,批 准声明的身份访问资源
13
口令认证协议
第二环节:口令字段信息维护: ① 接收用户提供的口令Dpw; ② 生成一个盐值:Dsalt = Arandom( ); ③ 生成口令信息:s = Agen(Dsalt, Dpw); ④ 把口令信息s和Dsalt存入数据库的口令 字段中。
14
口令认证协议
第三环节:身份认证过程: ① 接收用户提供的帐户名Dname和口令 Dpw; ② 在帐户信息数据库中检查Dname的合法 性,如果合法,则找出其对应的s和Dsalt; ③ 生成临时口令信息:sr = Agen(Dsalt, Dpw); ④ 如果sr与s相等,则认证成功,否则,认 证失败。
34
挑战-应答身份鉴别协议
不幸的是,Alice用常用的方法给Bob证明她知道 的秘密。这样一来,Bob也知道了这些秘密了, 现在Bob要告诉其他人,Alice对此毫无办法。
问题:有没有一种有效的办法,让Alice能向Bob
证明她知道这些秘密,使得Bob可以确信Alice的 确知道这些,但Bob根本不能获得这些秘密的任 何信息呢?
用户ID是声称的身份 口令是支持声称的证据:固定口令、PIN和通行密钥
②
Challenge-response identification(strong authentication):通过向验证者展示与证明者 实体有关的秘密知识来证明自己的身份,但在协 议中并没有向验证者泄露秘密本身。
10
口令认证协议
固定口令 A
P assW ord
窃听?
B
IDA,PW
PW
检查口令 和身份
1)存储的口令文件
以明文形式将用户口令存储在系统口令文件中 存储安全? 口令文件需读保护和写保护 存储口令的单向函数值 口令文件需写保护
11
2)“加密的”口令文件
口令认证协议
服务器端的字典攻击:在这种攻击中,Eve 只对找到口令有兴趣,并不关心用户的ID。 例如,如果口令是六位数, Eve可以创建一 个六位数(000000~999999)的列表,然后对 每一个数使用散列函数,结果就是一个一百 万个散列的列表。她就可以得到口令档案并 搜索条目中的第二列,找出一个与之相匹配 的。这可以被编程并且在Eve的个人计算机 上脱机运行。找到匹配以后,伊夫就可以再 上线,用口令来访问系统。
18
口令认证协议
加强固定口令安全性的措施
避免“弱”口令 口令加盐 口令扩展为通行短语 放慢口令映射 定义口令生存期 限制口令的尝试次数 登录需输入指定图片中的随机数和字母的组合
19
口令认证协议
对固定口令的攻击:
从存储的数据库偷窃 字典攻击 窃听 固定口令的重放(远程登录)
16
口令认证协议
4)PIN (Personal Identification Numbers):
属于固定(时不变)口令类,作为身份验证的证 据,通常和磁卡(或芯片卡、门卡)等一起使用。 通常很短,如4-8位数字 限制PIN的输入尝试次数 也可与通行码生成器一起使用:映射为通行密 钥(如56 bits的DES密钥),以保证用户和知 道用户口令的系统间的安全通信
使用手持通行码生成器的实现
27
挑战-应答身份鉴别协议
基于对称加密的挑战-响应
单向认证,基于时戳: 单向认证,用随机数:
Ek为对称加密算法; tA为时戳; rA, rB为随机数; B*为与身份相关的消息
双向认证,用随机数:
28
挑战-应答身份鉴别协议
基于消息认证码的挑战-响应
单向认证 A --> B: rB A <-- B: hK(rB, A) 双向认证
25
时戳法
A收到的消息中包含时戳,且A看来这一时 戳充分接近自己的当前时刻,A才认为收到 的消息是新的并接收 要求各方时间同步
26
挑战-应答身份鉴别协议
1)基于对称密钥加密的挑战-应答
每对用户可预先共享一个密钥 通信的各方利用可信在线服务器来共享密钥
基于(带密钥的)单向函数的挑战-响应
31
挑战-应答身份鉴别协议
基于公钥加密的挑战-响应
单向认证:
r为随机数
双向认证:
r1, r2为随机数
32
挑战-应答身份鉴别协议
基于数字签名的挑战-响应
带时戳的单向认证: 带随机数的单向认证:
certA,certB为公钥证书; SA,SB为私钥;
带随机数的双向认证:
33
挑战-应答身份鉴别协议
15
口令认证协议
盐处理使字典攻击更为困难。如果原口令是 六位数,盐是四位数,那么散列处理的结果 就超过十位数。这就意味着伊夫现在要制作 一个有10,000,000个条目的列表,并为 每一个条目创建一个散列。这个散列列表也 有10,000,000个条目,比较这些条目要 花费很长时间。如果盐是一个很长的随机数 字,盐处理是非常有效的。UNIX操作系统 运用的就是这种方法的变种。
4
身份鉴别的定义
Bob? or Eve?
Alice? or Eve?
?
Alice Eve
?
Bob
5
身份鉴别的定义
已知事物:口令、个人识别码(PIN)、挑战 -响应协议中已被证实的秘密或私钥。 已拥有的事物:通常是物理配件。如,磁卡、 智能卡(或IC卡)、口令生成器 固有事物(对某个人):利用人类物理特征和 无意行为。如,手写签名、指纹、声音、视 网膜模式、手的几何形状等。(非密码学的)
《现代密码学》第十章
身份鉴别协议
1
上章内容回顾
密钥管理简介 密钥分配 密钥协商 PKI及数字证书简介 秘密共享
2
本章主要内容
身份鉴别的定义 口令认证协议 挑战应答协议 对身份识别协议的攻击和对策
3
身份鉴别的定义
身份鉴别:又称为身份识别、实体认证。
它是这样一个过程,即其中一方确信参与协 议的第二方的身份,并确信第二方真正参与 了该过程。 用户的身份识别是许多应用系统的第一道防 线,其目的在于识别用户的合法性,从而阻 止非法用户访问系统。身份识别(认证)对 确保系统和数据的安全保密是极其重要的。
20
口令认证协议
5)一次口令(向强口令的过渡) 防止窃听和随后的口令重放(无时变参数) 解决办法:每个口令只用一次 变体:
Βιβλιοθήκη Baidu
一次口令的共享列表 顺序更新一次口令 基于单向函数的一次口令序列:
21
口令认证协议
一次口令的共享列表 用户和系统都同意一个口令列表。列表中的每一个口令只能使用一次。 首先,系统和用户都要保存一个长的口令列表。其次,如果用户不按次序使用口 令,系统就要执行一个长的搜索才能找到匹配。这个方案就使窃听和口令的重 复使用毫无用处了。存储保护不善,会导致所有口令泄露。 顺序更新一次口令 用户和系统都同意连续升级口令。用户和系统也都同意一个初始口令P1,这个口 令仅在第一次访问时有效。在第一次访问的过程中,用户生成一个新的口令 P2,并且用P1作为密钥对这个口令加密,P2是第二次访问的口令。在第二次 访问的过程中,用户又生成了一个新的口令P3,用P2对它加密,P3在第三次 访问中使用。也就是说,Pi是用来创建Pi+1的。 如果Eve能够猜测出第一个口令(P1),她就可以找出所有这一系列的口令。 基于单向函数的一次口令序列 用户和系统运用这种方法中的散列函数,创建一个连续升级口令,这种方法是由 莱斯利· 莱姆波特设计的。用户和系统都同意这个初始口令w和一个计数器n。 系统算出hn(w),这里hn表示n次使用一个hash函数: w,H(w),H(H(w)), … ,hn(w)从后向前使用。 需保持认证方和服务器方同步。
36
挑战-应答身份鉴别协议
A 设Alice知道咒语, 可打开C和D之间的 秘密门,不知道者 都将走向死胡同中。
3)基于零知识证明的挑战-应答
零知识(Zero-knowledge)(ZK)证明的起源
Alice:我知道肯德基的土豆泥的配方以及做法。 Bob:不,你不知道。 Alice:我知道。 Bob:你不知道。 Alice:我确实知道! Bob:请你证实这一点! Alice:好吧,我告诉你!(她悄悄地说出了土豆泥的秘方) Bob:太有趣了!现在我也知道了。我要告诉《华盛顿邮报》 Alice:啊呀!
用于实现身份识别的协议。 协议:是一系列步骤,它包括两方和多方, 设计它的目的是要完成一项任务。
协议是从开始到结束的一个序列,每步必须依 次执行 完成协议至少需要两个人 协议的目的是为了做一些事情
8
身份鉴别的定义
分析和评价身份认证协议应考虑如下几个方面: (1)交互性:是单方还是双方的身份认证; (2)计算的有效性;
hk为MAC算法; rA, rB为随机数; A, B为声称的身份
29
挑战-应答身份鉴别协议
使用手持通行码生成器的实现
A是用户的私钥;
f是单向函数;
30
挑战-应答身份鉴别协议
2)使用公钥技术的挑战-应答 声称者证明他知道私钥的方式有两种:
声称者解密用它的公钥加密的挑战 声称者数字签署一个挑战
6
身份鉴别的定义
身份鉴别的定义: 1、在诚实的情况下,声称者A能向验证者B 证明他确实是A; 2、在声称者A向验证者B声称他的身份后, 验证者B不能获得任何有用的信息,B也不 能模仿A向其他第三方证明他就是A。 3、任何不同于A的实体C以A的身份,让B相 信C是A的概率可忽略不计
7
身份鉴别的定义
防止用户 使用弱口令造成危害
17
口令认证协议
在第四种方法中,两种身份验证的技术是结 合在一起的。该类验证的一个很好的例子就 是带有PIN(个人身份号码)的自动取款机卡。 这种卡属于"拥有某事"这一类,PIN属于"知 道某事"这一类。PIN就是一个可以提高卡的 安全性的口令。如果卡丢失了,不知道PIN 的话,也不能使用。然而,PIN的数字通常 是非常短的,这样持卡人才便于记忆。这就 使得它容易受到猜测攻击。
35
挑战-应答身份鉴别协议
零知识证明的思想 Alice要向Bob证明她知道某些秘密: Bob:问Alice一系列问题 Alice:若知道那个秘密,她就能正确回答所有 问题。如果她不知道,她仍有50%的机会回答 每一个问题。但要猜对每个问题的机会实在太 小了(几乎不可能)。 大约10个问题之后 Bob确信Alice是否知道那个秘密。然而所有回 答都没有给Bob提供Alice所知道的秘密的任何 信息。
22
挑战-应答身份鉴别协议
通过向验证者展示与证明者实体有关的秘密知识 来证明自己的身份,但在协议中并没有向验证者 泄露秘密(私钥)本身。 包括:
基于对称密钥技术的挑战-响应身份识别协议 基于公钥技术的挑战-响应身份识别协议 基于零知识概念的挑战-响应身份识别协议
时变参数(临时值、惟一数或非重复值):用来抵抗 重放和交织攻击
随机数 序列号 时戳
23
随机数
用户A向B发出一个一次性随机数作为询问, 如果收到B发来的应答消息也包含一正确的 一次性随机数,A就认为消息是新的并接受 之。 随机数中的生日重复 随机数的生成:伪随机数生成器的种子有足 够大的熵
24
序列号方法
对交换的每一条消息加上序列号,序列号正 确才被接收 要求每个用户分别记录与其他每一用户交互 的序列号,增加用户负担,因而很少使用
口令认证协议
3)口令加盐(Salting Passwords) 第一环节:口令字段字符串的生成:s = Agen(Dsalt, Dpw) ① 给口令Dpw撒盐:Dpw = Asalt (Dsalt,Dpw); ② 用撒盐结果做密钥:K = Dpw; ③ 用一个64位的全0位串构造一个数据块Dp; ④ 设循环次数:i = 0; ⑤ 对数据块加密:Dc = Acrypt(K, Dp); ⑥ Dp = Dc,i = i + 1; ⑦ 如果i < 25,则回到第⑤步; ⑧ 把数据块变换成字符串:s = Atrans(Dc); ⑨ 返回s。
(3)通信的有效性;
(4)是否需要第三方的实时参与; (5)对第三方的可信度的要求; (6)安全保证(可证明安全、零知识证明); (7)用来存储共享秘密数据的地方和方法。
9
身份鉴别的定义
身份鉴别技术分类
①
Passwords(weak authentication):系统检查 口令是否与系统拥有的相应用户数据相匹配,批 准声明的身份访问资源
13
口令认证协议
第二环节:口令字段信息维护: ① 接收用户提供的口令Dpw; ② 生成一个盐值:Dsalt = Arandom( ); ③ 生成口令信息:s = Agen(Dsalt, Dpw); ④ 把口令信息s和Dsalt存入数据库的口令 字段中。
14
口令认证协议
第三环节:身份认证过程: ① 接收用户提供的帐户名Dname和口令 Dpw; ② 在帐户信息数据库中检查Dname的合法 性,如果合法,则找出其对应的s和Dsalt; ③ 生成临时口令信息:sr = Agen(Dsalt, Dpw); ④ 如果sr与s相等,则认证成功,否则,认 证失败。
34
挑战-应答身份鉴别协议
不幸的是,Alice用常用的方法给Bob证明她知道 的秘密。这样一来,Bob也知道了这些秘密了, 现在Bob要告诉其他人,Alice对此毫无办法。
问题:有没有一种有效的办法,让Alice能向Bob
证明她知道这些秘密,使得Bob可以确信Alice的 确知道这些,但Bob根本不能获得这些秘密的任 何信息呢?
用户ID是声称的身份 口令是支持声称的证据:固定口令、PIN和通行密钥
②
Challenge-response identification(strong authentication):通过向验证者展示与证明者 实体有关的秘密知识来证明自己的身份,但在协 议中并没有向验证者泄露秘密本身。
10
口令认证协议
固定口令 A
P assW ord
窃听?
B
IDA,PW
PW
检查口令 和身份
1)存储的口令文件
以明文形式将用户口令存储在系统口令文件中 存储安全? 口令文件需读保护和写保护 存储口令的单向函数值 口令文件需写保护
11
2)“加密的”口令文件
口令认证协议
服务器端的字典攻击:在这种攻击中,Eve 只对找到口令有兴趣,并不关心用户的ID。 例如,如果口令是六位数, Eve可以创建一 个六位数(000000~999999)的列表,然后对 每一个数使用散列函数,结果就是一个一百 万个散列的列表。她就可以得到口令档案并 搜索条目中的第二列,找出一个与之相匹配 的。这可以被编程并且在Eve的个人计算机 上脱机运行。找到匹配以后,伊夫就可以再 上线,用口令来访问系统。
18
口令认证协议
加强固定口令安全性的措施
避免“弱”口令 口令加盐 口令扩展为通行短语 放慢口令映射 定义口令生存期 限制口令的尝试次数 登录需输入指定图片中的随机数和字母的组合
19
口令认证协议
对固定口令的攻击:
从存储的数据库偷窃 字典攻击 窃听 固定口令的重放(远程登录)
16
口令认证协议
4)PIN (Personal Identification Numbers):
属于固定(时不变)口令类,作为身份验证的证 据,通常和磁卡(或芯片卡、门卡)等一起使用。 通常很短,如4-8位数字 限制PIN的输入尝试次数 也可与通行码生成器一起使用:映射为通行密 钥(如56 bits的DES密钥),以保证用户和知 道用户口令的系统间的安全通信
使用手持通行码生成器的实现
27
挑战-应答身份鉴别协议
基于对称加密的挑战-响应
单向认证,基于时戳: 单向认证,用随机数:
Ek为对称加密算法; tA为时戳; rA, rB为随机数; B*为与身份相关的消息
双向认证,用随机数:
28
挑战-应答身份鉴别协议
基于消息认证码的挑战-响应
单向认证 A --> B: rB A <-- B: hK(rB, A) 双向认证
25
时戳法
A收到的消息中包含时戳,且A看来这一时 戳充分接近自己的当前时刻,A才认为收到 的消息是新的并接收 要求各方时间同步
26
挑战-应答身份鉴别协议
1)基于对称密钥加密的挑战-应答
每对用户可预先共享一个密钥 通信的各方利用可信在线服务器来共享密钥
基于(带密钥的)单向函数的挑战-响应
31
挑战-应答身份鉴别协议
基于公钥加密的挑战-响应
单向认证:
r为随机数
双向认证:
r1, r2为随机数
32
挑战-应答身份鉴别协议
基于数字签名的挑战-响应
带时戳的单向认证: 带随机数的单向认证:
certA,certB为公钥证书; SA,SB为私钥;
带随机数的双向认证:
33
挑战-应答身份鉴别协议
15
口令认证协议
盐处理使字典攻击更为困难。如果原口令是 六位数,盐是四位数,那么散列处理的结果 就超过十位数。这就意味着伊夫现在要制作 一个有10,000,000个条目的列表,并为 每一个条目创建一个散列。这个散列列表也 有10,000,000个条目,比较这些条目要 花费很长时间。如果盐是一个很长的随机数 字,盐处理是非常有效的。UNIX操作系统 运用的就是这种方法的变种。
4
身份鉴别的定义
Bob? or Eve?
Alice? or Eve?
?
Alice Eve
?
Bob
5
身份鉴别的定义
已知事物:口令、个人识别码(PIN)、挑战 -响应协议中已被证实的秘密或私钥。 已拥有的事物:通常是物理配件。如,磁卡、 智能卡(或IC卡)、口令生成器 固有事物(对某个人):利用人类物理特征和 无意行为。如,手写签名、指纹、声音、视 网膜模式、手的几何形状等。(非密码学的)
《现代密码学》第十章
身份鉴别协议
1
上章内容回顾
密钥管理简介 密钥分配 密钥协商 PKI及数字证书简介 秘密共享
2
本章主要内容
身份鉴别的定义 口令认证协议 挑战应答协议 对身份识别协议的攻击和对策
3
身份鉴别的定义
身份鉴别:又称为身份识别、实体认证。
它是这样一个过程,即其中一方确信参与协 议的第二方的身份,并确信第二方真正参与 了该过程。 用户的身份识别是许多应用系统的第一道防 线,其目的在于识别用户的合法性,从而阻 止非法用户访问系统。身份识别(认证)对 确保系统和数据的安全保密是极其重要的。
20
口令认证协议
5)一次口令(向强口令的过渡) 防止窃听和随后的口令重放(无时变参数) 解决办法:每个口令只用一次 变体:
Βιβλιοθήκη Baidu
一次口令的共享列表 顺序更新一次口令 基于单向函数的一次口令序列:
21
口令认证协议
一次口令的共享列表 用户和系统都同意一个口令列表。列表中的每一个口令只能使用一次。 首先,系统和用户都要保存一个长的口令列表。其次,如果用户不按次序使用口 令,系统就要执行一个长的搜索才能找到匹配。这个方案就使窃听和口令的重 复使用毫无用处了。存储保护不善,会导致所有口令泄露。 顺序更新一次口令 用户和系统都同意连续升级口令。用户和系统也都同意一个初始口令P1,这个口 令仅在第一次访问时有效。在第一次访问的过程中,用户生成一个新的口令 P2,并且用P1作为密钥对这个口令加密,P2是第二次访问的口令。在第二次 访问的过程中,用户又生成了一个新的口令P3,用P2对它加密,P3在第三次 访问中使用。也就是说,Pi是用来创建Pi+1的。 如果Eve能够猜测出第一个口令(P1),她就可以找出所有这一系列的口令。 基于单向函数的一次口令序列 用户和系统运用这种方法中的散列函数,创建一个连续升级口令,这种方法是由 莱斯利· 莱姆波特设计的。用户和系统都同意这个初始口令w和一个计数器n。 系统算出hn(w),这里hn表示n次使用一个hash函数: w,H(w),H(H(w)), … ,hn(w)从后向前使用。 需保持认证方和服务器方同步。
36
挑战-应答身份鉴别协议
A 设Alice知道咒语, 可打开C和D之间的 秘密门,不知道者 都将走向死胡同中。
3)基于零知识证明的挑战-应答
零知识(Zero-knowledge)(ZK)证明的起源
Alice:我知道肯德基的土豆泥的配方以及做法。 Bob:不,你不知道。 Alice:我知道。 Bob:你不知道。 Alice:我确实知道! Bob:请你证实这一点! Alice:好吧,我告诉你!(她悄悄地说出了土豆泥的秘方) Bob:太有趣了!现在我也知道了。我要告诉《华盛顿邮报》 Alice:啊呀!
用于实现身份识别的协议。 协议:是一系列步骤,它包括两方和多方, 设计它的目的是要完成一项任务。
协议是从开始到结束的一个序列,每步必须依 次执行 完成协议至少需要两个人 协议的目的是为了做一些事情
8
身份鉴别的定义
分析和评价身份认证协议应考虑如下几个方面: (1)交互性:是单方还是双方的身份认证; (2)计算的有效性;
hk为MAC算法; rA, rB为随机数; A, B为声称的身份
29
挑战-应答身份鉴别协议
使用手持通行码生成器的实现
A是用户的私钥;
f是单向函数;
30
挑战-应答身份鉴别协议
2)使用公钥技术的挑战-应答 声称者证明他知道私钥的方式有两种:
声称者解密用它的公钥加密的挑战 声称者数字签署一个挑战
6
身份鉴别的定义
身份鉴别的定义: 1、在诚实的情况下,声称者A能向验证者B 证明他确实是A; 2、在声称者A向验证者B声称他的身份后, 验证者B不能获得任何有用的信息,B也不 能模仿A向其他第三方证明他就是A。 3、任何不同于A的实体C以A的身份,让B相 信C是A的概率可忽略不计
7
身份鉴别的定义
防止用户 使用弱口令造成危害
17
口令认证协议
在第四种方法中,两种身份验证的技术是结 合在一起的。该类验证的一个很好的例子就 是带有PIN(个人身份号码)的自动取款机卡。 这种卡属于"拥有某事"这一类,PIN属于"知 道某事"这一类。PIN就是一个可以提高卡的 安全性的口令。如果卡丢失了,不知道PIN 的话,也不能使用。然而,PIN的数字通常 是非常短的,这样持卡人才便于记忆。这就 使得它容易受到猜测攻击。
35
挑战-应答身份鉴别协议
零知识证明的思想 Alice要向Bob证明她知道某些秘密: Bob:问Alice一系列问题 Alice:若知道那个秘密,她就能正确回答所有 问题。如果她不知道,她仍有50%的机会回答 每一个问题。但要猜对每个问题的机会实在太 小了(几乎不可能)。 大约10个问题之后 Bob确信Alice是否知道那个秘密。然而所有回 答都没有给Bob提供Alice所知道的秘密的任何 信息。
22
挑战-应答身份鉴别协议
通过向验证者展示与证明者实体有关的秘密知识 来证明自己的身份,但在协议中并没有向验证者 泄露秘密(私钥)本身。 包括:
基于对称密钥技术的挑战-响应身份识别协议 基于公钥技术的挑战-响应身份识别协议 基于零知识概念的挑战-响应身份识别协议
时变参数(临时值、惟一数或非重复值):用来抵抗 重放和交织攻击
随机数 序列号 时戳
23
随机数
用户A向B发出一个一次性随机数作为询问, 如果收到B发来的应答消息也包含一正确的 一次性随机数,A就认为消息是新的并接受 之。 随机数中的生日重复 随机数的生成:伪随机数生成器的种子有足 够大的熵
24
序列号方法
对交换的每一条消息加上序列号,序列号正 确才被接收 要求每个用户分别记录与其他每一用户交互 的序列号,增加用户负担,因而很少使用