第三章电子商务之认证技术
(2)提供保密性:因为只有A和B知道密钥k; (3)不能提供数字签名:接收方可以伪造消息,
发送方可以抵赖消息的发送
利用公钥加密体制实现消息认证
① 公钥加密:保密性
M Bob
E
D
Ka
EKa(M)
K’a
提供保密 不能提供认证
M Alice
利用公钥加密体制实现消息认证
② 私钥加密:认证与签名
M Bob
MAC=Ck(M)
MAC函数类似于加密函数,但不需要可逆 性。因此在数学上比加密算法被攻击的弱 点要少
利用MAC实现消息认证
MAC的基本用法:消息认证
K
M Alice
C
||
M
比较
C
Bob
K
CK(M)
提供认证 不能提供保密、签名
利用MAC实现消息认证
MAC的基本用法:与明文有关的认证
M
||
M
EM
① 加随机数。双方记住使用过的随机数,如发 现报文中有以前使用过的随机数,就认为是重 放攻击。缺点是需要额外保存使用过的随机数,
② 加时间戳。该方法优点是不用额外保存其他 信息;缺点是认证双方需要准确的时间同步, 同步越好,受攻击的可能性就越小。
③ 加流水号。就是双方在报文中添加一个逐步 递增的整数,只要接收到一个不连续的流水号 报文(太大或太小),就认定有重放威胁
声称者
验证者
ID 口令
ID 口令
比较
通过共享秘密进行身份认证方式的总结
② 不出示口令方式。申请者用口令加密一个消 息,将加密的消息发给验证者,验证者用口令 解密,如果得到消息明文则验证通过。该方式 解决了口令被窃听和不能双向认证的缺陷,但 仍存在被重放的缺点。
利用散列函数实现消息认证
散列函数的基本用法(a)
K
M
||
M
E
M
D
H K
H(M)
EK(M|H(M))
H
Bob
M
比较
提供保密、提供认证
Alice
利用散列函数实现消息认证
散列函数的基本用法(b)
M
||
M
HE
H 比较
D
EK(H(M)) K
K
Bob
Alice
提供认证
利用散列函数实现消息认证
散列函数的基本用法(c)
若用随机数的话,认证方必须保存以往用过 的所有随机数,避免重复,随着服务次数的增加, 这张表会越来越大。
对付重放攻击的另一种方法
声称者
验证者
ID p
密码p
f
ID
n
r’ ID
n
f
比较
该案称为挑战-应答机制,较好的抵抗了重 放攻击。但付出的代价是增加了一次通信
对付重放攻击-要求输入验证码
对付重放攻击的三种方法
第三章 认证技术
目录
3.1 消息认证 3.2 身份认证 3.3 口令机制 3.4 零知识证明 3.5 其他身份认证机制 3.6 单点登录技术
密码学的基本概念
认证(Authentication)又称鉴别 是验证通信对象是原定者而不是冒名顶替者 (身份认证), 或者确认收到的消息是希望的而不是伪造的 或被篡改过的(消息认证)。
D
E
M
K’b
EK’b(M)
Kb
Alice
提供认证 提供签名
利用公钥加密体制实现消息认证
私钥签名再公钥加密:保密、认证与签名
M
D
E
K’b Dk’b(M)
Ka EKa(Dk’b(M))
Bob
M
E
D Alice
Kb
Dk’b(M)
K’a
提供保密、提供认证
提供签名
利用公钥加密体制实现消息认证
先公钥加密再私钥签名:保密、认证与签名
对付重放攻击的一种方法
声称者
验证者
n
密码p
f
ID
r’ ID n
ID p
f
比较
掺入一个随机数n,使线路上传输的认证 信息每次都不相同
对付重放攻击的方法比较
上述方案中的n是一个非重复值,认证方负责 检查n是否以前曾被用过。若用过,则请求被拒 绝。非重复值可用的实现方法有时戳,随机数等。
若用时戳方法的话,则两边要维护时钟的同步。 很明显,时戳的精度越高,抵抗攻击的强度也越 好。
用户所知道的某种信息(Something the user knows),如口令或某个秘密。
用户拥有的某种物品(Something the user possesses),如身份证、银行卡、密钥盘、 IP地址等。
用户具有的某种特征(Something the user is or how he/she behaves),如指纹、虹膜、 DNA、脸型等。
同时使用两种依据的认证叫做双因素 (Two-factor)认证方式
身份认证系统的组成
一方是出示证件的人,称为示证者P(Prover),又称声 称者(Claimant)。
另一方验证者V(Verifier),检验声称者提出的身份的正 确性和合法性,决定是否满足其要求。
第三方是可信赖者TP(Trusted third party),
S
|| H
M
||
M
比较
|| H S
H(M||S)
Bob
Alice
提供认证
利用散列函数实现消息认证
散列函数的基本用法(f)
K
M
|| M
EM
D
|| H
K
S
H(M||S) EK(M||H(M||S)
M
S
|| H 比较
提供保密
Bob
提供认证
Alice
利用MAC实现消息认证
消息认证码: 使用一个密钥生成一个固定大小的短数据 块,并将该数据块加载到消息后面,称 MAC(或密码校验和)
认证技术的实现通常要借助于加密和数字签名 等密码学的技术。实际上,数字签名本身也是 一种认证技术,它可用来鉴别消息的来源。
3.1 消息认证
消息认证是一个过程,用来验证接收消息的真 实性(的确是由它所声称的实体发来的)和完 整性(未被篡改、插入、删除),同时还可用 来验证消息的顺序性和时间性(未重排、重放、 延迟)。
较
重放攻击
把口令加密传输可以让攻击者无法知道真 实的口令,可是,这对聪明的攻击者并不造 成麻烦。
他只需把监听的消息录制下来,再用其它的 软件把口令的散列值原封不动的重放给验证 者进行认证,而验证者看到正确的口令散列 值就认为是登录成功的用户,这样攻击者就 可以冒名顶替受害者,从认证者处获取服务 了,我们称这种形式的攻击为重放攻击。
ID Password tade df324 rest hr45 admin tang4 ……
第四步:服务器通知用户
客户机
欢迎admin,您可以 1. 查看账户 2. 转账汇款……
登录成功
服务器
口令机制的身份认证模型
该口令认证模型包括声称者和验证者,上图中 的客户机是声称者,而保存有用户数据库的服 务器是验证者M源自||MHD
H 比较
E
DK’b(H(M)) K’b
Kb
Bob
Alice
提供认证
利用散列函数实现消息认证
散列函数的基本用法(d)
K
M H
Bob
||
M
D DK’b(H(M))
K’b 比较
E
M
D
K Ek(M|DK’b(H(M)) H
M
E
Alice
提供保密 提供认证
Kb
利用散列函数实现消息认证
散列函数的基本用法(e)
利用对称加密体制实现消息认证 利用公钥加密体制实现消息认证 利用散列函数实现消息认证 利用MAC实现消息认证
利用对称加密体制实现消息认证
发送方A和接收方B事先共享一个密钥
M Bob
E
D
K
EK(M)
K
提供保密、提供认证 不能提供签名
M Alice
利用对称加密体制实现消息认证
(1)它能提供鉴别:可确认消息只能发自A, 传输途中未被更改;
声称者
验证者
ID 口令
ID 口令
比较
口令机制面临的威胁
声称者
线路窃听 重放攻击
ID 口令
危及验证 者的攻击
验证者 ID 口令
比较
对付线路窃听的措施
必须在客户端对口令进行加密,可以使用单向 散列函数在客户端对口令进行加密,而服务器 端也只保存口令的散列值
声称者
验证者
ID
口令p
f
ID p’
ID p’
口令机制
口令是目前使用最广泛的的身份认证机制。从 形式上看,口令是字母、数字或特殊字符构成 的字符串,只有被认证者知道。
提示:银行卡密码、邮箱登录密码、保险柜密 码等,准确地说应该叫口令,因为密码(密钥) 是用来加密信息的,而口令是用来作为某种鉴 别的秘密
口令的基本工作过程
第一步:系统提示用户输入用户名和口令
身份认证
身份认证的定义:
声称者向验证者出示自己的身份的证明过程 证实客户的真实身份与其所声称的身份是否相符
的过程
身份认证又叫身份鉴别、实体认证、身份识别 认证目的:
使别的成员(验证者)获得对声称者所声称的事 实的信任。身份认证是获得系统服务所必须的第一 道关卡。
身份认证的依据
M
E
D
Ka
Ea(M)
K’b EK’b(Eka(M))
Bob
M
D
Alice E
K’a