第九章 身份鉴别技术

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 63

课程主要内容

 第1章 密码学概述
 第2章 古典密码技术
 第3章 分组密码
 第4章 公钥密码体制
 第5章 散列函数与消息鉴别
 第6章 数字签名技术
 第7章 密钥管理技术
 第8章 身份鉴别技术
 第9章 序列密码基础
 第 10 章 密码技术应用
1/43
• 问题的提出
身份欺诈问题
• 鉴别需求
某一成员(声称者)提交一 个主体的身份并
声称它是那个主体。
• 鉴别目的
使别的成员(验证者)获得对声称者所声称
的事实的信任。

鉴别就是可信地确认实体是它所声明的。
1. 身份鉴别的概念
为了保护网络资源及落实安全政策。需要提供可追究责任的
机制,这里涉及到三个概念:认证、授权及审计。
( 1 )鉴别 Authentication :在做任何动作之前必须要有方
法来识别动作执行者的真实身份。鉴别又称为认证。身份认证
主要是通过标识和鉴别用户的身份,防止攻击者假冒合法用户
获取访问权限。
( 2 )授权 Authorization :授权是指当用户身份被确认合法
后,赋予该用户进行文件和数据等操作的权限。这种权限包括
读、写、执行及从属权等。
( 3 )审计 Auditing :每一个人都应该为自己所做的操作负
责,所以在做完事情之后都要留下记录,以便核查责任。
身份认证往往是许多应用系统中安全保护的第一道设防,
它的失败可能导致整个系统的失败。
身份鉴别的相关实体

( 1 )申请者( Claimant ),出示身份信息的实体,


又称作示证者( Prover ),提出某种认证请求;
( 2 )验证者( Verifier ),检验申请者提供的认证
信息的正确性和合法性,决定是否满足其认证要求;
( 3 )攻击者,可以窃听和伪装申请者,骗取验证者
的信任。
( 4 )鉴别系统在必要时会有第三方,即可信赖者
(可信第三方)参与仲裁。
 对身份鉴别系统的主要要求
( 1 )验证者正确鉴别合法申请者的概率极大化。
( 2 )不具可传递性( Transferability ),验证者 B 不可能重
用申请者 A 提供给他的信息来伪装申请者 A ,而成功地骗取其他
人的验证,从而得到信任。
( 3 )攻击者伪装申请者欺骗验证者成功的概率要小到可以忽略
的程度,能抗击已知密文攻击,即能对抗攻击者截获到申请者和
验证者的多次通信密文,然后伪装申请者欺骗验证者。
( 4 )计算有效性,为实现身份鉴别所需的计算量要小。
( 5 )通信有效性,为实现身份鉴别所需通信次数和数据量要小。
( 6 )秘密参数能安全存储。
( 7 )相互鉴别,有些应用中要求双方能互相进行身份鉴别。
( 8 )第三方的实时参与,如在线公钥检索服务。
( 9 )第三方的可信赖性。
( 10 )可证明安全性。
2. 身份鉴别的基本方法 ( 按照证据特点 )

所知 所有 唯一特征
( Knowledge ) ( Possesses ) ( charecteristics )

• 验证实体所知什么,如一个秘密的口令或通行字。
• 验证实体拥有什么,如信物、通行证、智能 I C 卡。
• 验证实体不可改变的特性,如指纹、声音等生物学
测定得来的标识特征。
Something
其它,如:you know
• 相信可靠的第三方建立的鉴别(递推)。
Something you have
• 基于环境(如主机
Something you are IP 地址)。
针对身份鉴别的主要威胁和攻击手段
 主要威胁:假冒、伪造等。
 典型攻击手段
信道截获:由于认证信息要通过网络传递,并且很多
认证系统的口令是未经加密的明文,攻击者通过窃听网络数
据,就很容易分辨出某种特定系统的认证数据,并提取出用
户名和口令,或者其它有关的鉴别信息。
口令猜测:
重放:非授权用户截获信息,然后再传送给接收者。
修改或伪造:非授权用户截获信息,替换或修改信息
后再传送给接收者,或者非授权用户冒充合法用户发送信息。
其它:如反送攻击、交错攻击和选择性攻击等。
方案示意 1 假定用户 A 、 B 已安全共享对称密钥 k
①{ IDA , IDB ,
用户 A rA } 用户 B
② { rB , Ek(rA) }


T 怎么构造
{Ek(rB )}
出 Ek(rB) ? B 等待 D 返
回 Ek(rB)
① { IDA , IDB , rT
对手 T } 用户 B
② {rB , Ek(rT) }

① { IDA , IDB ,
rB }
② {rB2 , Ek(rB) }


{Ek(rB )}
方案示意 2 假定用户 A 、 B 已安全共享对称密钥 k
① { IDA , IDB ,
用户 A rA } 用户 B

② { Ek(rA , rB) }

③ { rB’ }
B 等待 T 返
特点: B 的质问信息是密文! 回
T 怎么构造出 Ek(rB , rA )
Ek(rB , rA ) ?
① { IDB , IDA ,
对手 T rB } 用户 B

①{ IDA , IDB , r
B }
②{ Ek(rB , rB2 )
}
② { Ek(rB , rB2 )
}

③ { rB2’ }
保证消息的实时性的基本方法
1 、时间戳: A 接受一个新消息仅当该消息包含一个时
间戳,该时间戳在 A 看来,是足够接近 A 所知道的当
前时间;这种方法要求不同参与者之间的时钟需要同步。
2 、质询 / 响应方式( Challenge/Response ): A 期望
从 B 获得一个新消息,首先发给 B 一个随机质询值
(Challenge) ,并要求后续从 B 收到的消息( Respons
e )包含正确的这个质询值(或其函数)。
 时间戳方法局限:
由于变化的和不可预见的网络延迟的本性,
不能期望分布式时钟保持精确的同步。
因此,任何基于时间戳的过程必须采用时间窗的
方式来处理:一方面时间窗应足够大以包容网络延迟,
另一方面时间窗应足够小以最大限度地减小遭受攻击的
机会。安全的时间服务器用以实现时钟同步可能是最好
的方法。

 质询 / 响应方式局限
不适应非连接性的应用,因为它要求在传输
开始之前先有握手的额外开销,这就抵消了无连接通信
的主要特点。
典型身份鉴别协议的基本过程:

( 1 ) 注册
( 2 )登录
( 3 )鉴别
( 4 )口令修改
( 5 )注销(选)
3. 常用身份鉴别技术

• 静态口令鉴别 身

(PAP; Password Authentication Protocol) 鉴

• 一次性口令鉴别 (OTP: One time Password ) 机

• 双因子身份鉴别(如基于智能卡)
• 生物特征鉴别
3.1 口令鉴别机制
( 1 )静态口令鉴别 (PAP; Password Authentication
 Protocol)
目前常用的身份鉴别机制大都是基于静态口令的,属于最简
单、传统的鉴别方法。
 该类系统为每个用户维护一个二元组信息 ( 用户 ID 、口令 ) ,
登录系统时用户输入自己的 ID 和口令,鉴别服务器根据用
户输入的信息和自己维护的信息进行匹配来判断用户身份的
合法性。
用户 A 服务器
IDA PWA
IDA, PWA
IDB PWB
… …
引入单向加密机制
用户 服务器 ·
A IDA h(PWA)
IDA , PWA
IDB h(PWB)
… ….

安全性分析:
攻击者可事先计算好各种长度的字符串的消息
摘要,并将其存放再文件(称为字典)中,一但攻击者
的得到了存在服务器中的口令文件,直接和字典中的值
相匹配,即可知道用户的口令 ( 字典攻击)。
基于单向函数的口令鉴别

13 字节口令

MD5 在线破解: http://www.cmd5.com


http://www.md5.com.cn/
MD5 加密

MD5 破解
引入加扰机制
IDA h(PWA||saltA)
用户 A 服务器
IDB h(PWB||saltB)

IDA , PWA … …

IDA saltA
IDB saltB
… …
攻击者在事先进行计算各种长度的字符
组成的口令的消息摘要时,由于每个用户的 salt
不同,攻击者必须把各种口令和 salt 进行组合
进行散列运算,使得攻击者得到字典的难度增
加。
20 世纪 70 年代 UNIX 操作系统采取的
UNIX crypt 口令算法是一种口令加盐的方
法。 循环 25 次

I=0(64bit) 交换
DES i 与 24+i 13byte 的字符串
存放在
/etc/passwd 文件
的 PASSWORD 域。

K= 用户口令的 随机选取 12bit 为 salt (作扰乱因


前 8 个 ASCII 字符 子)
(基于当前时间)
( 2 )一次性口令鉴别机制 ( One Time Password )
一次性口令的主要思路是 :
在登录过程中加入不确定因素,使每次登录传送
的鉴别信息都不相同,以提高登录过程安全性。
• 一次性口令机制确保在每次认证中所使用的口令不同,以
对付重放攻击。
• 确定口令的方法
( 1 )两端共同拥有一串随机口令,在该串的某一位置保
持同步;
( 2 )两端共同使用一个随机序列生成器,在该序列生
成器的初态保持同步;
( 3 )使用时戳,两端维持同步的时钟。
一次性口令有许多形式:
1) 共享一次性口令表 ( 口令序列 )

IDA PW1 IDA PW1

IDA PW2 IDA PW2


IDA,PW1 … …
… …

客户端 服务器
口令卡
2 )基于令牌的鉴别机制
给授权用户分配一个认证设备。通常称为“令
牌”,它产生一登录时必须使用的代码。其原理是时间同
步的动态口令。

实现方法:
— 通过种子值和当前时间,采用伪随机算法产生令牌码;
— 安全 ( 令牌服务器)通过基于其记录中的种子值,产生
它自己的一个当前有效代码。然后与用户提交的代码
相比较,达到对用户认证的目的;
— 缺点是算法不被信息系统使用者所知,存在安全风险,
维护成本高。
3) 基于时间同步的动态口令
以用户登录时间作为随机因素;这
种方式对双方的时间准确度要求较高。

IDA f (PWA, x)
用户 A 服务器
IDB f (PWB, x)
IDA,PWA … …
智能卡

用户注册阶段
(x 为服务器秘密信息,可存储在智能卡中 )
基于时间同步的动态口令
智能卡 T’ - T≤△T

PWA IDA f (PWA||


f x)

T g
g PWA’ IDA T
PWA’
T
x 比较

接受 拒绝
IDA
客户端 服务器
PWA’=g( f (PWA||x)||T)
1) 攻击者只知道用户的口令而没有用户的
智能卡,则不能通过服务器的鉴别;
2 )攻击者只拥有用户的智能卡而不知道用
户的口令,则不能通过服务器的鉴别;
3 )如果攻击者不能服务器进行时间同步,
则攻击者不能通过服务器的鉴别。
4) 基于质询 / 应答机制的动态口令

IDA f(PWA||
x)
IDA, PWA IDB f(PWB||
x)
智能卡 … …

客户端 服务器

用户注册阶段 (x 为服务器秘密信
息)
基于质询 / 应答机制的动态口令
智能卡

IDA f (PWA||
PWA f x)

g PWA’ IDA r g
PWA’
x
比较
随机数 r
接受 拒绝
IDA
客户端 服务器

PWA’ = g( f (PWA||x)||r)
一个基于 OTP 的用户鉴别方案( S-key 方案)
用户鉴别过程三阶段:注册、登录、鉴别。
用户鉴别信息表
IDA (请求登录) IDA hN(PWA) N
N (≠ IDB hN(PWB) N
1)
IDA, OTP=hN - 1(PWA) ……

U 服务器
服务器计算并验证等式, h(OTP)?=hN(PWA)
若通过验证,则服务器用 OTP 替换用户鉴别信息 , N=N - 1
直到 N=1 ,显然用户注册一次可以登录 N - 1 次。
问题:此方法如何体现 OTP ?它是如何保证鉴别的安全性的?
安全性分析:
1) 重放攻击:由于用户每次登录的口令不
同, 因此攻击者把上一次的口令传送给
服务器将通不过服务器的认证。
2 )口令以密文传输:口令散列后在通信信
道中传输,因此攻击者截获口令的散列值
后要计算用户的口令是困难的。
3.2 基于智能卡鉴别机制:
— 智能卡( Smart card ):是一个带 CPU 的安全芯
片卡

具有自己的操作系统 COS ,安全加解密算法;
—— 一般为接触式的,用户需要读卡器;
—— 内置加密口令或数字证书、私钥等,实现身份认

—— 缺点:费用高,需要读卡器。

工行 U 盾使用 USB 卡物理介质的证书认证方式。它内置微


型智能卡处理器,采用 1024 位非对称密钥算法对网上数据进行
数字签名。银行用数字证书验证客户的身份,确保客户为银行真
正的客户,防止其他客户非法使用。
U 盾具有不可复制性,仅由客户自己保管和使用,因此用了客
户 U 盾以后,即便是有假网站、病毒感染、黑客入侵,不慎泄露
3.3 基于证书的身份认证
目前国内外普遍使用的、技术成熟的、可
实际使用的还是基于证书的数字签名技术的认证。
作为公钥基础设施PKI可提供多种网上
安全服务,主要是认证、授权、数据保密性、数据
完整性和不可否认性。
安全的身份鉴别方案应该满足的两个要求:
(1) A 能向 B 证明自己的确是 A ;
(2) 当 A 向 B 证明了自己的身份后, B 得不到任何
用于假冒 A 的有用信息, B
无法向第三方声称自己是 A 。
即: A 向 B 证明自己的身份,但又不泄漏自己的秘
密。
身份鉴别的常用方法是:使验证方能验证出被验证
方拥有一个不会被泄漏的秘密,
如: CA 证书+“三趟消息”。
身份鉴别技术中的“三趟消息”
用户 服务器
ID Request

Ek(N)

?
Ek(N)
质询—响应系统提示用户,要求每次登录都给出不同的回答。
例如,系统可能显示一个四位数的询问数据,每个用户各
拥有一个应答函数(如一次性口令鉴别器)以供计算。
基于密码算法的鉴别协议、零知识证明技术:(略)
4. 零知识证明
( 1 )目的:
向别人证明自己知道某个秘密信息,同时又不能让别人知道该秘密信息。
( 2 )基本的零知识证明协议( J.J. Quisquater , L.C. Guillou )
 用户 Alice 拥有某个秘密信息(如打开 C 、 D 间密门的咒语);
 用户 Alice 要想 Bob 证明自己掌握该秘密,而又不能泄漏该秘密。
A
证明过程:
( 1 ) Bob 站在 A 点。
( 2 ) Alice 走进洞穴,到达 C 或 D
点。
( 3 ) 在 Alice 消失后, Bob 到达 B
B 点。
( 4 ) Bob 命令 Alice 从左通道或右
通道出来(随机)
( 5 ) Alice 遵从 Bob 的命令,必要 C D
时利用咒语打开 C 、 D 间的密门。
( 6 ) Alice 和 Bob 重复第 (1) ~ (5)
步 n 次。
零知识证明协议举例:
设 p 和 q 是两个大素数, n = p q 。 假设 Alice 知道 n 的因
子。如果 Alice 想让 Bob 相信他知道 n 的因子,但却不想让 Bob 知道 n
的因子。
(1) Bob x ,计算 协议:
Alice 和 Bob 可以执行下面的
则随机选取一个大整数
y = x4 mod n
Bob 将计算结果 y 告诉 Alice .
(2) Alice 计算 z  y mod n Alice 将结果 z 告诉 Bob
(3) Bob 验证 : y? = x2 mod n 是否成立。
上述协议重复多次,若 Alice 每次都能正确地计算 y mod n
则 Bob 就可以相信 Alice 知道 n 的因子 p 和 q 。
因为可以证明计算 y mod n 等价于对 n 进行因式分解。
若 Alice 不知道 n 的因子 p 和 q ,则计算 y mod n 是一个困难问题。
因此,当在重复执行该协议的情况下, Alice 都能正确地给出 y mod n
则 Bob 可以以非常大的概率认为 Alice 知道 n 的因子 p 和 q 。

而在协议执行过程中, Bob 却没有得到关于 n 的因子 p 和 q 的任何信息。


提供机密性、完整性和身份鉴别的安全通信示例(发送
端)

散列函数
Alice 的私钥

发送者
散列码
散列运算 签名运算
(数字指纹) Alice 的
明文消息 数字签名
Alice 加密运算 合并
加密信息
报文
对称密钥
( 随 机 产 加密运算
生) 数字信封

Bob 的公钥

发送(不安全信道)
接收者

Bob
提供机密性、完整性和身份鉴别的安全通信示例(接收
端)
Alice 的公钥

通过(接
收)
验证运算
失败(拒
绝)
Alice 的 散列码
分解
数字签名
报文

解密运算 散列
加密信息 运算

对称密钥 明文消息
解密运算
Bob 数字信封
散列函数
接收者
Bob 的私钥
身份鉴别技术应用实例:
Kerberos
Kerberos 需求
1. 安全:一个网络窃听者应该不能获得必要的信息
来假装成另一个用户。更一般地, Kerberos 应
该足够强以防止潜在的对手发现脆弱的链路。
2. 可靠:对所有依赖 Kerberos 进行访问控制的服
务来说,无法获得 Kerberos 服务就意味着无法
获得所要求的服务。因此, Kerberos 应该是高
可靠性的,应该使用分布式的服务器结构,一个
系统能够对另一个系统进行备份。
3. 透明:理想情况下,除了需要输入一个口令外,
用户应该没有意识到鉴别服务的发生。
4. 可扩缩:系统应该拥有支持大量客户和服务器的
能力。这意味着需要一个模块化的、分布式结构。
一个简单的鉴别对话
AS
( 1 ) C → AS: IDc|| PWc || IDv
(1)
( 2 ) AS → C: Ticket (2)

( 3 ) C → V: IDc||Ticket C
(3)
V

Ticket = Ekv[IDc || ADc || IDv ]

C: 客户 IDv : 服务器标识符
V: 服务器 PWc : 用户口令
AS: 鉴别服务器 ADc : C 的网络地址
IDc 用户标识符 Kv : AS 和 V 的共享密

:
更安全的鉴别对话
• 两个主要问题
1. 用户每次访问一种新服务就需要一个新的票据,
导致用户多次输入口令。
2. 用明文传递的用户口令会被窃听。
• 解决办法
– 票据可重用
– 避免明文口令
– 采用票据许可服务器
使用 TGS 的鉴别对话
每次用户的登陆会话 :
(1) C  AS : IDc || IDtgs
(2) AS  C : EKc [ Tickettgs ]

每种服务类型一次:
(3) C  TGS: IDc||IDv||Tickettgs
(4) TGSC: TicketV

每种服务会话一次:
(5) CV: IDc || TicketV
Tickettgs = EKtgs [ IDc || ADc || IDtgs || TS1 || Lifetime1] 票据许可票据
TicketV = EKv [ IDc || ADc || IDV || TS2 || Lifetime2 ] 服务许可票据
符号说明:
Idtgs : TGS 的标识符 Ktgs : AS 与 TGS 的共享密钥
Kc :由用户口令导出的密钥 KV : TGS 与 V 的共享密钥
TS1 :时间戳 TimeStamp
Lifetime1 、 2 :票据生存期
1. 客户通过向 AS 发送用户 ID 、 TGS ID 来请求一张代表
该用户的票据许可票据。 TGS ID 说明一个使用 TGS
服务的请求。
2. AS 发回一张加密过的票据作为响应,加密密钥是由用
户口令导出的。当该响应到达客户端时,客户端提示用
户输入口令,产生密钥,并试图对收到的报文解密。如
果提供的口令正确,票据就能正确恢复。
3. 客户代表用户请求一张服务许可票据。为达到这个目的,
客户向 TGS 发送一个包含用户 ID 、期望服务的 ID 和
票据许可票据的报文。
4. TGS 对收到的票据进行解密,通过检查 TGS 的 ID 是否
存在来验证解密是否成功。它检查票据中的生存期,确
保它没有过期。然后比较用户的 ID 和网络地址与收到
鉴别用户的信息是否一致。如果允许用户访问 v , TGS
就发回一张访问请求服务的许可票据。
5. 客户代表用户请求获得某项服务。为了达
到这个目的,客户向服务器传送一个包含
用户 ID 和服务许可票据的报文。服务器通
过票据的内容进行鉴别。
新的问题
• 第一个问题是票据许可票据的生存期。
– 如果这个生存期太短 ( 如数分钟 ) ,那么用户将总被
要求输入口令。
– 如果生存期太长 ( 如数小时 ) ,那么对手就有更多重
放的机会。对手可以窃听网络,获得票据许可可票据
的复制,然后等待合法用户的退出登录。这样对手便
可伪造合法用户的网络地址,并向 TGS 发送步骤 (3)
中的报文。这将使对手可以没有限制地访问合法用户
可获得的资源和文件。
– 同样,如果对手截获服务许可票据,并在过期前使用
它,对手便可访问相应的服务。
– 因此,我们得出另外一个需求。网络服务 (TGS 或应
用服务 ) 必须能够证明使用票据的人就是申请票据的
人。
新的问题
• 第二个问题是双向鉴别:
向用户鉴别它自己。
没有这样的鉴别,对手可能会阴
谋破坏系统配置,使发往服务器的报文被
转送到另一个位置。
假的服务器在那充当真正的服务
器,并接收来自用户的任何信息,拒绝向
用户提供真正的服务。
Kerberos 第 4 版
(a) 鉴别服务交换:获得 TGS 许可票据
(1) C→AS: IDC║IDtgs║TS1
(2) AS→C: EKc [ KC, tgs║IDtgs║TS2║Lifetime2║Ticket tgs ]

Tickettgs=EKtgs[Kc,tgs║IDc║ADc║IDtgs║TS2║Lifetime2 ] (可重用)
(b) 票据许可交换服务:获得服务许可票据
(3) C→TGS: IDv║Ticket tgs║Authenticatorc
(4) TGS→C: EKc tgs [ Ke,v║IDv║TS4║ Ticket v ]
Tickettgs=EktgsKc , tgs║IDc║ADc║IDtgs║TS2║Lifetime2 ](可重用)
Ticketv=EKv [ Kc,v║IDc║ADc║IDv║TS4║Lifetime4 ] (可重用)
Authenticatorc=EKc,tgs [ IDc ║ADc ║TS3 ] (对抗重放 Tickettg
s )
(c) 客户 / 服务器鉴别交换:获得服务
(5) C→V: Ticketv║ Authenticatorc
(6) V→C: EKc,v [ TS5+1 ] (对于相互鉴别)
Ticketv=EKv [ Kc,v║IDc║ADc║IDv║TS4║Lifetime4 ] (可重用)
Authenticatorc=EKc,v [ IDc ║ADc ║TS5 ]
 鉴别服务交换阶段:获得 TGS 许可票据

报文 (1) 客户请求票据许可票据( C→AS )


IDc : 从这个客户将用户的身份标识告诉 AS
IDtgs :告诉 AS 用户请求 TGS
TS1 : 允许 AS 验证客户的时钟是否与 AS 的时钟同步
采用了时间戳 TS1 ,以便让 AS 知道报文是及时的。
报文 (2) AS 返回票据许可票据( AS→C )
EKc : 基于用户口令的加密,使 AS 和客户能验证口令,并保护报
文 (2) 的内容。
Kc,tgs : 客户可理解的会话密钥的副本;由 AS 生成允许客户与
TGS 间无需共享一个永久密钥就能安全交换报文。
IDtgs : 证实这张票据是给 TGS 的。
TS2 : 通知客户这张票据发出的时间
Lifetime2 : 通知客户这张票据的有效期
Ticket tgs : 客户用来访问 TGS 的票据
 票据许可服务交换:获得服务许可票据
报文 (3) 客户请求服务许可票据 (C→TGS)
IDv : 告诉 TGS 用户请求访问的服务器 v
Tickettgs :使 TGS 确信这个用户已经经过 AS 的鉴别
Authenticatorc :由客户产生用来证明票据的有效性,
这可以用来防止攻击者重放票据许可票据
报文 (4) TGS 返回的服务许可票据 (TGS→C)
Kc,tgs :由 C 和 TGS 共享的密钥;用来保护报文 (4)
Kc,tgs : 客户可理解的会话密钥的副本;由 TGS 生成,
允许 客户与服务器间无需共享一个永久密钥
就 能安全交换报文
IDv : 证实这张票据是给服务器 v 的
TS4 : 通知客户这张票据发出的时间
Ticketv :客户用来访问服务器 V 的票据
 客户 / 服务器鉴别交换:获得服务
报文 (5) 客户请求服务 (C→V)
Ticketv :客户用来访问服务器 V 的票据
Authenticatorc :由客户产生 , 用来证明票据有效性的鉴别
符 Ticketv=EKv [ Kc,v║IDc║ADc║IDv║TS4║Lifetime4 ]
Authenticatorc=EKc,v [ IDc ║ADc ║TS5 ]

报文 (6) 完成双向鉴别 (V→C)


EKc,v [ TS5+1 ]

几个重要数据说明:
Tickettgs 可重用,以便用户不用重新输人口令
IDc: 指明这张票据的合法拥有者
ADc : 防止在其它工作站上使用该票据的人不是票据
的初始申请者
Kerberos 鉴别过程

1. 请求票据许可票据
Authenticator
2. 票据 + 会话密钥 Server (AS)
3. 请求服务许可票据
Ticket Granting
4. 票据 + 会话密钥 Server (TGS)

5. 请求服务

6. 提供服务标识符
Kerberos 领域和多个 Kerberos
• 完整服务的 Kerberos 环境包含一个 Kerberos
服务器、许多客户和许多应用服务
器。 Kerberos 环境有如下需求:
– Kerberos 服务器的数据库必须包含所有参与用户的
ID 和用户口令的散列码。所有用户都向 Kerberos 服
务器注册。
– Kerberos 服务器必须与每个服务器共享一个密钥。
所有服务器都向 Kerberos 服务器件注册。
• 这样的环境被称为一个领域。不同行政组织下的由客户
和服务器组成的网自成不同的领域。换句话说,这通常
是不切实际的,或因不能肯定管理的策略,让在一个管
月下的用户和服务器向别处的 Kerberos 服务器注册。
然而,在一个领域中用户可能需要访问他领域的服务器,
同时某些服务器可能也愿意向其他领域的用户提供服务,
如果这些用户月过鉴别的。
Kerberos 领域
• Kerberos 提供了一种支持不同领域间鉴
别的机制。
每个互操作领域中的 Kerberos 服务器要
与另一个领域中的 Kerberos 服务器共享一个密
钥。两个 Kerberos 服务器都必须相互注册。
这个方案需要一个领域中的 Kerberos 服
务器信任另一个领域中 Kerberos 服务器鉴别的
用户,并且第二个领域的参与服务器也愿意信任
第一个领域中的 Kerberos 服务器。
Kerberos 领域
1. 请求票据许可票据
Authenticator
2. 票据 + 会话密钥 Server (AS)
3. 请求远程 TGS 票
据 Ticket Granting
4. 远程 TGS 票据 Server (TGS)

5. 请求远程服务
许可票据

AS
6. 远程服务
器票据 TGS
第 4 版与第 5 版的差异
• 第 5 版打算两个方面改进第 4 版的不足:
– 环境上的缺点
– 技术上的不足
第四版的缺陷
环境上的不足

1. 加密系统的依赖性:第 4 版需要使用 DES 。在第 5 版


中,密文被附上加密类型标识符以便可以使用任何加密
技术。加密密钥也加上类型和长度标记,允许不同的算
法使用同样的密钥,允许说明给定算法的不同版本。

2. 对 Internet 协议的依赖性:第 4 版需要使用网际协议


(IP) 地址。不提供其他地址类型,如 ISO 网络地址。第
5 版中的网络地址加上了类型和长度标记,允许使用任
何类型的网络地址。
第四版的缺陷 ( 续 1)
3. 报文字节序:在第 4 版中,发方的报文使用的字节序由
它自己选择,可在报文中说明是低位字在低地址或者高
位字在低地址。在第 5 版中,所有报文结构采用抽象语
法记法 (ASN . 1) 和基本编码规则 (BER) ,这将提供
一个明确的字节序。
4. 票据有效期:有效期的值在第 4 版中是用 8bit 量编码
的,每个单位是 5 分钟。这样最长的有效期可表示为
28x 5 ; 1280 分钟,或者 21 小时多一点。
这对某些应用来说可能是不够的 ( 如运行时
间很长的仿真在整个执行期间都需要 Kerberos 的鉴别
证书 ) 。
在第 5 版中,票据包含显式的开始时间和结
束时间,允许票据有任意大小的有效期。
第四版的缺陷 ( 续 2)
5. 鉴别的转发:
• 第 4 版不允许发给一个用户的鉴别证书被转发到
其他主机或被其他客户使用。
• 这种能力可以使一个客户访问某服务器时,该服
务器能以这个客户的名义访问另一个服务器。例
如,一个客户向一个打印服务器发出请求,然后
使用客户的访问鉴别证书从一个文件服务器访问
该客户的文件。第 5 版提供了这种能力。
6. 领域间鉴别
• 在第 4 版中, N 个领域间的互操作需要如前面介
绍的 N2 数量级的 Kerberos 到 Kerboeros 的联系。
第 5 版支持一种需要更少关系的方法。
第四版的缺陷 ( 续 3)
技术上的不足
1. 双重加密:在 Kerberos 第 4 版中,提供给客户的票
据被加密了两次,一次采用目标服务器的密钥,然后
再采用客户知道的密钥。第二次加密是不必要的,造
成计算上的浪费。
2. 会话密钥:每张票据包括一个会话密钥,该密钥供客
户对发往与该票据有关服务器的鉴别符进行加密。此
外,客户与服务器随后可能要使用这个会话密钥来保
护会话过程中的报文。然而,因为同一票据会被多次
用作访问一个特定的服务器,存在对手使用与该客户
或该服务器旧会话的报文进行重放攻击的危险。
在第 5 版中,客户和服务器协商一个仅用
于那个连接的子会话密钥是可能的。客户进行新的访
问将导致使用新的子会话密钥。
第四版的缺陷 ( 续 4 )
• 口令攻击:
两个版本都容易遭到口令攻击。从 AS 发往
客户的报文中包含用基于客户口令的密钥加密的
内容。
对手可以截获这个报文,并试图通过尝试不
同的口令来对报文解密。如果测试解密的结果是
正确的形式,那么这个对手已经发现了该客户的
口令并可能随后用它获得的鉴别证书。
第 5 版提供了称为预鉴别 (preauthentication)
的机制,使口令攻击变得更加困难,但并不能避
免口令攻击。
(a) 鉴别服务交换:获得服务许可票据 Kerberos 第 5 版
(1) C→AS: Options║ IDC║ Realmc║ IDtgs║Times║ Nonce1
(2) AS→C: Realmc║ IDC║Tickettgs ║ EKc [ KC, tgs║Times║ Nonce1║Realmtgs║IDtgs ]
Tickettgs=EKtgs [ Flags ║ KC,tgs║Realmc ║ IDc║ADc║ Times ]

(b) 票据许可交换服务:获得服务许可票据
(3) C→TGS: Options║ IDv║ Times ║ Nonce2║Ticket tgs║Authenticatorc
(4) TGS →C: Reamlc║ IDc ║ Ticketv ║ EKc tgs[Ke,v║Times║Nonce2║Realmv║IDv ]
Ticket tgs =EKtgs [ Flags║KC, tgs║Realmc║ IDc║ADc║Times ]
Ticket v =EKv [ Flags║KC,v║Realmc║ IDc║ADc║Times ]
Authenticatorc=EKc,tgs [ IDc ║Realmc ║TS1 ]

(c) 客户 / 服务器鉴别交换:获得服务
(5)C→V: Options║Ticketv║ Authenticatorc
(6)V→C: EKc,v [ TS2 ║ Subkey║Seq# ]
Ticketv=EKv [ Flags║KC,v║Realmc║IDc║ADc║Times ]
Authenticatorc=Ekc,v [ IDc Realmc║ TS2 ║ Subkey║Seq# ]

You might also like