网络信息安全 课程第五讲 身份认证主讲 段云所 副教授北京大学计算机系问题的提出身份欺诈中间欺骗象棋大师问题 Mafia问题多身份欺诈身份认证概念定义 证实客户的真实身份与其所声称的身份是否相符的过程依据
Something the user know 所知密码 口令等
Something the user possesses 拥有身份证 护照 密钥盘等
Something the user is or How he behaves) 特征指纹 笔迹 声纹 虹膜 DNA等协议
PAP
CHAP
Kerberos
X.509
认证协议
双方认证(mutual authentication)
单向认证(one-way authentication)
双向认证协议
是最常用的协议 该协议使得通信各方互相认证鉴别各自的身份 然后交换会话密钥
基于认证的密钥交换核心问题有两个
a71保密性
a71时效性为了 会话密钥 基 认证与会话密码信
保密 通信 保密 密钥 实
密使用 个问题?为¢£? ¥?§
¥ 最currency1'“fifl – 会话密钥·?其?–
,?…‰的 常? `′ˉfifl…‰?˙
常¨的? ¥?§ 有
1 单 ¥?§? 单 后 ˇ—
2? 的§个 有效的时间 ¥?
个 时间 的?
3的? '“出 a?是a 信
o的· 有 ¥的信o的·
4 向 ¥ 向? —? ¥ 用 ‰?称 密方 时
§是的?为? — 单· 别— 的的
的?别
¥?§的? 方 是 认证交换中使用?个 每?个?
报文编号 仅?的? 顺 时才接受之 但 方 的困难是
双方 保持?次? 的 号两 更为?般的方 是
1 时间 A接受?个ˇ? 仅 该? 包含?个时间 该时间 A看 是足够接近A所知道的 前时间 方
同参与?之间的时钟需 同步
2 盘问/应答方 Challenge/Response A期望从B获得?个
ˇ? 首 — B?个临时值(challenge) 并 后续从B
的? response 包含 确的 个临时值时间 方 似乎用于面向连接的应用?为该技术固有的困难
(1)某些协议需 各 `′器时钟中维持同步 该协议
既?错网络出错 又 安全 ¥?§
(2)由于某?方的时钟机 故障fifl临时失去同步
ˉ增大?§的机会
(3)由于变化的 ¨的网络延迟的 性期望分布
时钟保持精确的同步?此 任何基于时间 的过程 用时间 的方 `′?方面时间 应足够大 包?网络延迟另?方面时间 应足够小 最大限度·减小遭受?§的机会盘问/应答方?适应非连接性的应用?为 输
之前 有握手的额外 销 抵?了?连接通信的主 特点安全的时间 器用 实 时钟同步是最?的方
[LAM92b]
‰ 密方 Needham/Schroeder Protocol [1978]
1 A → KDC ID
A
||ID
B
||N
1
2 KDC → A E
K
a
[K
s
||ID
B
||N
1
||E
K
b
[K
s
||ID
A
]]
3 A → B E
K
b
[K
s
||ID
A
]
4 B → A E
K
s
[N
2
]
5 A → B E
K
s
[f(N
2
)]
保密密钥K
a
K
b
分别是A KDC B KDC之间 的密钥 协议的o的 是 安全·分—?个会话密钥K
s
A
B
A 2步安全·得?了?个ˇ的会话密钥 3步?由B
密 并′ 4步 B 知道K
s
了 5步 B相信A知道
K
s
并是 的
4 5步o的是为了 某 的 ¥?§ 特别是
方?够 3步 获该? 并 ¥之 ˉ 某 程度?
”? currency1B方的?
方 有 4,5步的握手 但 然有
定?§方C 握A B之间通信的?个 的会话密
C? 3步?A 用 的会话密钥欺骗B 非B 所有
前使用的与A通信的会话密钥 否 B? 是?个 ¥
§ C? 中? 4步的握手信A
5步¢应 从?点£ C? 向B— 的B
认为是用认证的会话密钥与A¥ 的 常通信
Denning Protocol [1982]?¥
1 A → KDC ID
A
||ID
B
2 KDC → A E
K
a
[K
s
||ID
B
||T||E
K
b
[K
s
||ID
A
||T]]
3 A → B E
K
b
[K
s
||ID
A
||T]
4 B → A E
K
s
[N
1
]
5 A → B E
K
s
[f(N
1
)]
| Clock - T | <?t
1
+?t
2
其中?t
1
是KDC时钟与 ·时钟 A B 之间?§的currency1'值?t
2
是 期的网络延迟时间
Denning Protocol,Needham/Schroeder Protocol 安全性方面增?了?步 然 又提出ˇ的问题?
依?各时钟fi?通过网络同步
—?的时钟“接?的时钟 fl?§
从—? –? 并 后 时间?接?
为 前时 ¥ 接? ¥ˉ会得
的后 称为· ¥?§
KEHN92
1 A → B ID
A
||N
a
2 B → KDC ID
B
||N
b
|| E
K
b
[ID
A
|| N
a
|| T
b
]
3 KDC → A E
K
a
[ID
B
||N
a
||K
s
|| T
b
] || E
K
b
[ID
A
|| K
s
||
T
b
] || N
b
4 A → B E
K
b
[ID
A
|| K
s
|| T
b
] || E
K
s
[ N
b
]
钥 密方
个使用时间 的方 是
1 A → AS ID
A
||ID
B
2 AS → A E
KR
as
[ID
A
||KU
a
|| T ] || E
KR
as
[ID
B
||KU
b
|| T ]
3 A → B E
KR
as
[ID
A
||KU
a
|| T] || E
KR
as
[ID
B
|| KU
b
|| T] ||
E
KU
b
[E
KR
a
[K
s
||T]]
个基于临时值握手协议 WOO92a
1 A → KDC ID
A
||ID
B
2 KDC → A E
KR
auth
[ID
B
||KU
b
]
3 A → B E
KU
b
[N
a
||ID
A
]
4 B → KDC ID
B
||ID
A
|| E
KU
auth
[N
a
]
5 KDC → B E
KR
auth
[ID
A
||KU
a
]|| E
KU
b
[E
KR
auth
[N
a
||K
s
||ID
B
]]
6 B → A E
KU
a
[E
KR
auth
[ N
a
||K
s
|| ID
B
]||N
b
]
7 A → B E
K
s
[N
b
]
个基于临时值握手协议 WOO92b
1 A → KDC ID
A
||ID
B
2 KDC → A E
KR
auth
[ID
B
||KU
b
]
3 A → B E
KU
b
[N
a
||ID
A
]
4 B → KDC ID
B
||ID
A
|| E
KU
auth
[N
a
]
5 KDC → B E
KR
auth
[ID
A
||KU
a
]|| E
KU
b
[E
KR
auth
[N
a
||K
s
||ID
A
||ID
B
]]
6 B → A E
KU
a
[E
KR
auth
[ N
a
||K
s
||ID
A
|| ID
B
]||N
b
]
7 A → B E
K
s
[N
b
]
身份认证应用身份认证应用实实实例例
--Kerberos
Kerberos,part of Project Athena at MIT
Greek Kerberos,话故”中个…
的‰ 有?个? ` 是·′之?的?
ˉ
Modern Kerberos,?指有?个˙分的网络之?的保ˉ… 包¨
a71认证(authentication)
a71 (accounting)
a71?'(audit)
问题
个 ¥的分布 网络? 中 用户通过?
ˇ问 器?提 的
a71 器应?够限 非— 用户的ˇ问并?够认证?
的
a71够 网络 所信任其?够 确·认定用户
个个用户另?个用户
个用户变?个的网络· 从?另?
个用户 –?–的信 交换 并用 ¥?§获得?
个 器的ˇ问 中 器的?
Kerberos 的问题
所有? 问题? 为?个非— 用户?够获得其? ˇ问的 据
是为每?个 器?个身份认证协议
Kerberos提?个中心认证 器 提 用户?
器 器?用户的认证
Kerberos 用 ‰ 密
Kerberos Version4 Version5 (RFC1510)
信 …‰ 保护的 机
单用户单机…‰ 用户 文 受
′?的安全保护
多用户分时…‰ …‰提 基于用户
的ˇ问a 并用logon过程
用户
Client/Server网络 由
分布 中心 器
的安全方
相信每?个单 的客户 保证?其用户的
别 并依?于每?个 器? 实个基于用户 的安全
客户?…‰ˉ o自 向 器 身份认证但相信客户?…‰?其用户的 别
每?个用户?每?个 证 其 身份 同
器向客户?证 其 身份
Kerberos的 方
个分布 的client/server …机
中 用?个 多个Kerberos 器提
个认证
Kerberos…‰应?足的
安全 网络 –获得 信 其 用户
Kerberos应足够于 的 – 的?点连接
Kerberos应 度 并 应?于?个分布
器 … 使得?个…‰?够?份另?个…‰
′?'“? 用户 了 输?口令 外应
认证的—
缩 …‰应?够支持大 量的客户 器
Kerberos Version4
个信任的?方认证 用
个基于Needham & Schroeder协议
用DES 精心设'协议 提 认证
一个简单的认证对话
认证 器(AS)
知道所有用户的口令并ˉ o 储?个中央 据库中 AS与每?个 器 有?个唯?的保密密钥 些密钥?′? 更安全的手段分—
考虑? 定的?话
(1) C → AS,ID
C
|| P
C
|| ID
V
(2) AS → C,Ticket
(3) C → V,IDC || Ticket
Ticket = E
K
V
[ID
C
|| AD
C
|| ID
V
]
其中 C,client
AS,Authentication Server
V,server
ID
C
,identifier of user on C
ID
V
,identifier of V
P
C
,password of user on C
AD
C
,network address of C
K
V
,AS与V 有的保密密钥
C V
AS
(1)
(2)
(3)
更安全的认证?话
两个主 问题
a71?望用户输?口令的次 最?
a71口令 文 会 –
办
a71ticket reusable
a71ticket-granting server
¥后的?的?话
Once per user logon session:
(1) C → AS,ID
C
|| ID
tgs
(2) AS → C,E
K
C
[Ticket
tgs
]
Once per type of service
(3) C → TGS,ID
C
|| ID
v
|| Ticket
tgs
(4) TGS → C,Ticket
V
Once per service session
(5) C → V,ID
C
|| Ticket
V
Ticket
tgs
= E
K
tgs
[ID
C
||AD
C
||ID
tgs
||TS
1
||Lifetime
1
]
Ticket
V
= E
K
V
[ID
C
||AD
C
||ID
V
||TS
2
||Lifetime
2
]
C V
AS
(1) (2)
(3)
TGS
(4)
(5)
Kerberos
Kerberos V4 Authentication Dialogue
两个问题
a71与ticket-granting ticket相关的Lifetime问题
a71需 器向客户¥ 认证
方
a71session key
Summary of Kerberos Version 4 Message Exchanges
(a) 身份验证 交换 获得 —予的票据
(1) C → AS,IDC || IDtgs || TS1
(2) AS → C,EKC[Kc,tgs || IDtgs || TS2 || Lifetime2 || Tickettgs]
Tickettgs = EKtgs [Kc,tgs || IDC || ADC || IDtgs || TS2 || Lifetime2]
(b) 票据—予的 交换 获得 —予的票据
(3) C → TGS,IDV || Tickettgs || Authenticatorc
(4) TGS → C,EKc,tgs[Kc,v || IDV || TS4 || Ticketv]
Tickettgs = EKtgs[Kc,tgs|| IDC|| ADC|| IDtgs || TS2 || Lifetime2]
Ticketv = EKV[Kc,v||IDC||ADC|| IDv||TS4||Lifetime4]
Authenticatorc = EKc,tgs[IDc||ADc||TS3]
(c) 客户/ 器身份验证交换 获得
(5) C → V,Ticketv || Authenticatorc
(6) V → C,EKc,v[TS5+1] ( for mutual authentication)
Ticketv = EKV[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]
Authenticatorc = EKc,v[IDc||ADc||TS5]
Rationale for the Elements of the Kerberos Version 4 Protocol
(a) Authentication Service Exchang
Message(1) Client ticket-granting ticket
ID
C
:告诉AS client?的用户
ID
tgs
:告诉AS用户 ˇ问TGS
TS
1
:让AS验证client?的时钟是与AS的时钟同步的
Message(2) AS返 ticket-granting ticket
E
K
C
,基于用户口令的 密 使得AS client? 验证口令并保护Message(2)
K
c,tgs
,session key的副 由AS产 client?用于 AS与client
之间信 的安全交换? 用?个永久的key
ID
tgs
:确认 个ticket是为TGS 的
TS
2
:告诉client该ticket签—的时间
Lifetime
2
,告诉client该ticket的有效期
Ticket
tgs
,client用 ˇ问TGS的ticket
(b) Ticket-granting Service Exchange
Message(3) client service-granting ticket
ID
v
,告诉TGS用户 ˇ问 器V
Ticket
tgs
,向TGS证实该用户 AS认证
Authenticator
c
:由client? 用于验证ticket
Message(4) TGS返 service-granting ticket
E
K
c,tgs
,仅由C TGS 的密钥 用 保护Message(4)
K
c,tgs
,session key的副 由TGS? client server之间信 的安全交换? 用?个永久密钥
ID
v
,确认该ticket是为server V签—的
TS
4
,告诉client该ticket签—的时间
Ticket
V
,client用 ˇ问 器V的ticket
Ticket
tgs
:? 用 从 用户? ˇ输?口令
E
K
tgs
,ticket用 有AS TGS才知道的密钥 密 篡?
K
c,tgs
:TGS?用的session key副 用于 密authenticator,从
认证ticket
IDc,指 该ticket的 确主–
ADc,票据由?是初 票据的使用
Idtgs,向 器保障 确· 密此票据
TS2,通知TGS此票据—出的时间
Lifetime2,票据?期后的 ¥
Authenticator:
Ek
c
,
tgs
,使用 有客户机 TGS知道的密钥 密身份验证码 篡?
ID
c
,与票据中的ID匹配 验证票据
AD
c
,与票据中的· 匹配 验证票据
TS
2
:通知TGS此身份验证码的时间
(c)客户/ 器身份验证交换
Message(5) client service-granting ticket
Ticket
v
:向 器证实该用户 AS认证
Authenticator
c
:由client? 用于验证ticket
Message(6) 器?客户机?选的身份验证
E
Kc
cv
,仅由C 器 的密钥 用 保护Message(6)
TS
5
+1,向C保障?是 ¥的应答
Kerberos`′过程概
C
V
AS
(1) (2)
(3)
TGS
(4)
(5)
Kerberos
(6)
Kerberos 辖范围与多
个完整的Kerberos? 包¨?个Kerberos 器
应用 器?足?列
a71Kerberos 器 其 据库中拥有所有参与用户的
ID(UID) 口令散列 所有用户fi Kerberos 器
注册
a71Kerberos 器 与每?个 器之间?个保密密钥 所有 器fi Kerberos 器?注册
的? 视为?个 辖国界(realm)
a71每?个辖?的Kerberos 器与其 辖? 的Kerberos
器之间?个保密密钥 两个Kerberos 器互相注册
(1) C → AS,ID
C
|| ID
tgs
|| TS
1
(2) AS → C,E
K
C
[K
c,tgs
|| ID
tgs
|| TS
2
|| Lifetime
2
|| Ticket
tgs
]
(3) C → TGS,ID
tgsrem
|| Ticket
tgs
|| Authenticator
c
(4) TGS → C,E
K
c,tgs
[K
c,tgsrem
|| ID
tgsrem
|| TS
4
|| Ticket
tgsrem
]
(5) C → TGS
rem
,ID
vrem
|| Ticket
tgsrem
|| Authenticator
c
(6) TGS → C,E
K
c,tgsrem
[K
c,vrem
|| ID
vrem
|| TS
b
|| Ticket
vrem
]
(7) C → V
rem
:Ticket
vrem
|| Authenticator
c
C
AS TGS TGS
rem
V
rem
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Kerberos Version 5
¥version 4 的? 缺陷
a71 密…‰依?性
a71Internet协议依?性
a71? 字节次
a71Ticket的时效性
a71Authentication forwarding
a71Inter-realm authentication
Kerberos Version 5
¥Version 4 的技术缺陷
a71Double encryption
a71PCBC encryption
a71Session key
a71Password attacks
Kerberos References
MIT Kerberos Web Site,
http://web.mit.edu/kerberos/www
USC/ISI Kerberos Page:
Password-to-Key Transformation
Propagating Cipher Block Chaining Mode
Kerberos协议模 的分析
证 Kerberos协议模的 确性
— Kerberos协议模 依?于安全的时间
特性分析
信?方
a71所需的 密钥分配 ′变得十分 单
a71AS担 认证? 减轻应用 器的 担
a71安全相关 据的集中 ′ 保护 从 使?§?的?侵
难
Ticket
a71AS的认证 会话密钥安全· 应用 器
a71 期? 用 减?认证 销 提 方便性
特性分析
Ticket—¥
a71降低用户口令的使用频度 更?·保护口令
a71减轻AS的 担 提 认证…‰的效率
时间
a71?Ticket Authenticator的 ¥?§
秘密 密钥 为认证依据局限性分析
¥?§
a71ticket-granting ticket具有较长的 期?
易 ¥
a71?于有准?的?§? 5分钟的 期
¥ ¥?§
a71保 所有 活鉴别符并通过“较 ¥?
§的办 难 实
a71与其§ 的 ¥?§更?易
局限性分析
时间依?性
a71实 较?的时钟同步往往是 困难的
a71?§?误fi…‰时间并¥ ¥?§有?乘之机
a71基于安全的时间
猜 口令?§
a71脆?口令?易受§
a71协议模 未?口令提 额外的保护 猜?杂度为
O(K)
局限性分析
域间鉴别
a71多跳域间鉴别¢£ 多?素 实 过程?杂? 确
a71 信任瀑布 问题
篡?登 程
a71认证…‰ 身的程 完整性 难保证
密钥 储问题
a71口令£会话密钥? 安全 ¥于典 的' 机…‰中
MZ协议模
Kerberos协议模 的?¥模
a71? 认证协议?安全时间 的依?性
a71更?· ¥?§
a71提 口令猜 的?杂度
a71 化域间认证
a71使用混 密
a71使用nonce
X.509认证协议实实例例例分分分析析
Unix身份认证
Windows NT 4.0的身份鉴别
Windows NT —了专?的安全子…‰ Windows NT的安全子…‰主
由 ·安全— LSR 安全帐户 ′ SAM 安全参考监视器 SRM 等
·安全— ˙分提 了许多 程 保障用户获得 取…‰的许? 产 令牌 执 ·安全 ′ 提 交互 登陆认证
a 安全?查 由SRM产 的?查 信
安全帐户 ′˙分保 安全帐户 据库 SAM Database 该 据库包含所有? 用户的信 SAM提 用户登 认证?用户
Welcome?话框中输?的信 与SAM 据库中的信,? 并为用户赋予?个安全 符 SID 根据网络配置的?同 SAM 据库?
与?个 多个NT…‰中
安全参考监视器 ˇ问a?查 由LSA支持 SRM提
客 文 o 等 的 取 限 查主 用户帐户等 的 限产 的?查信 客 的安全 性由安全a ACE
全˙客 的ACEˇ问a ACL 有ACL的客? 任何主题?ˇ问 有ACL的客 由SRM 查其中的每? ACE
从 定主 的ˇ问是否 许
WinLogon
MSV1-0
LSA
SAM
Event
Logger
SRM
Local Security Policy Database
Audit Log
Security Policy
SAM Database
User Mode
Kernel Mode Audit Records
Windows NT有?个安全登 列 用信应用 取用户
口令 列 并有用户帐号 口令等 ′?
为了登 Windows NT 包¨通过网络登 每?用户 首 ¥
域 £用户 别 每?域 £用户 唯?· 了?个用户
…‰ ˙ 使用SID Security Identifier 予 征 每个SID是唯?
的 用 ˇ赋 其 任何用户?使?个用户帐号
了 另?用户 相同的用户 口令 的SID?会同 个 帐号的SID相同 Windows NT 每?¥程的primary
token中 使用用户的SID同该用户的¥程?应 由TCB?的?'
包¨了该SID?此 了某?特定的用户
Windows NT 许每?用户帐号有应的口令 TFM (Trusted
Facility Manual )? 了 确保所有用户帐号 有口令 该口令 用户登 时? 便鉴别用户身份
口令 储 SAM (Security Accounts Manager) 据库中 并由DAC机
保护 非 ˇ问
登 时 LSA (Local Security Authority) 保护 器使用SAM 据库中有关的信 与口令¥?照鉴别 确认 有 — 的用户?
用户 与口令相符?ˇ问 保护的…‰
1,身份认证的依据分为?
2,用RSA 何实 予提问/应答模
的双向身份认证
3,Kerberos身份认证的a′
Something the user know 所知密码 口令等
Something the user possesses 拥有身份证 护照 密钥盘等
Something the user is or How he behaves) 特征指纹 笔迹 声纹 虹膜 DNA等协议
PAP
CHAP
Kerberos
X.509
认证协议
双方认证(mutual authentication)
单向认证(one-way authentication)
双向认证协议
是最常用的协议 该协议使得通信各方互相认证鉴别各自的身份 然后交换会话密钥
基于认证的密钥交换核心问题有两个
a71保密性
a71时效性为了 会话密钥 基 认证与会话密码信
保密 通信 保密 密钥 实
密使用 个问题?为¢£? ¥?§
¥ 最currency1'“fifl – 会话密钥·?其?–
,?…‰的 常? `′ˉfifl…‰?˙
常¨的? ¥?§ 有
1 单 ¥?§? 单 后 ˇ—
2? 的§个 有效的时间 ¥?
个 时间 的?
3的? '“出 a?是a 信
o的· 有 ¥的信o的·
4 向 ¥ 向? —? ¥ 用 ‰?称 密方 时
§是的?为? — 单· 别— 的的
的?别
¥?§的? 方 是 认证交换中使用?个 每?个?
报文编号 仅?的? 顺 时才接受之 但 方 的困难是
双方 保持?次? 的 号两 更为?般的方 是
1 时间 A接受?个ˇ? 仅 该? 包含?个时间 该时间 A看 是足够接近A所知道的 前时间 方
同参与?之间的时钟需 同步
2 盘问/应答方 Challenge/Response A期望从B获得?个
ˇ? 首 — B?个临时值(challenge) 并 后续从B
的? response 包含 确的 个临时值时间 方 似乎用于面向连接的应用?为该技术固有的困难
(1)某些协议需 各 `′器时钟中维持同步 该协议
既?错网络出错 又 安全 ¥?§
(2)由于某?方的时钟机 故障fifl临时失去同步
ˉ增大?§的机会
(3)由于变化的 ¨的网络延迟的 性期望分布
时钟保持精确的同步?此 任何基于时间 的过程 用时间 的方 `′?方面时间 应足够大 包?网络延迟另?方面时间 应足够小 最大限度·减小遭受?§的机会盘问/应答方?适应非连接性的应用?为 输
之前 有握手的额外 销 抵?了?连接通信的主 特点安全的时间 器用 实 时钟同步是最?的方
[LAM92b]
‰ 密方 Needham/Schroeder Protocol [1978]
1 A → KDC ID
A
||ID
B
||N
1
2 KDC → A E
K
a
[K
s
||ID
B
||N
1
||E
K
b
[K
s
||ID
A
]]
3 A → B E
K
b
[K
s
||ID
A
]
4 B → A E
K
s
[N
2
]
5 A → B E
K
s
[f(N
2
)]
保密密钥K
a
K
b
分别是A KDC B KDC之间 的密钥 协议的o的 是 安全·分—?个会话密钥K
s
A
B
A 2步安全·得?了?个ˇ的会话密钥 3步?由B
密 并′ 4步 B 知道K
s
了 5步 B相信A知道
K
s
并是 的
4 5步o的是为了 某 的 ¥?§ 特别是
方?够 3步 获该? 并 ¥之 ˉ 某 程度?
”? currency1B方的?
方 有 4,5步的握手 但 然有
定?§方C 握A B之间通信的?个 的会话密
C? 3步?A 用 的会话密钥欺骗B 非B 所有
前使用的与A通信的会话密钥 否 B? 是?个 ¥
§ C? 中? 4步的握手信A
5步¢应 从?点£ C? 向B— 的B
认为是用认证的会话密钥与A¥ 的 常通信
Denning Protocol [1982]?¥
1 A → KDC ID
A
||ID
B
2 KDC → A E
K
a
[K
s
||ID
B
||T||E
K
b
[K
s
||ID
A
||T]]
3 A → B E
K
b
[K
s
||ID
A
||T]
4 B → A E
K
s
[N
1
]
5 A → B E
K
s
[f(N
1
)]
| Clock - T | <?t
1
+?t
2
其中?t
1
是KDC时钟与 ·时钟 A B 之间?§的currency1'值?t
2
是 期的网络延迟时间
Denning Protocol,Needham/Schroeder Protocol 安全性方面增?了?步 然 又提出ˇ的问题?
依?各时钟fi?通过网络同步
—?的时钟“接?的时钟 fl?§
从—? –? 并 后 时间?接?
为 前时 ¥ 接? ¥ˉ会得
的后 称为· ¥?§
KEHN92
1 A → B ID
A
||N
a
2 B → KDC ID
B
||N
b
|| E
K
b
[ID
A
|| N
a
|| T
b
]
3 KDC → A E
K
a
[ID
B
||N
a
||K
s
|| T
b
] || E
K
b
[ID
A
|| K
s
||
T
b
] || N
b
4 A → B E
K
b
[ID
A
|| K
s
|| T
b
] || E
K
s
[ N
b
]
钥 密方
个使用时间 的方 是
1 A → AS ID
A
||ID
B
2 AS → A E
KR
as
[ID
A
||KU
a
|| T ] || E
KR
as
[ID
B
||KU
b
|| T ]
3 A → B E
KR
as
[ID
A
||KU
a
|| T] || E
KR
as
[ID
B
|| KU
b
|| T] ||
E
KU
b
[E
KR
a
[K
s
||T]]
个基于临时值握手协议 WOO92a
1 A → KDC ID
A
||ID
B
2 KDC → A E
KR
auth
[ID
B
||KU
b
]
3 A → B E
KU
b
[N
a
||ID
A
]
4 B → KDC ID
B
||ID
A
|| E
KU
auth
[N
a
]
5 KDC → B E
KR
auth
[ID
A
||KU
a
]|| E
KU
b
[E
KR
auth
[N
a
||K
s
||ID
B
]]
6 B → A E
KU
a
[E
KR
auth
[ N
a
||K
s
|| ID
B
]||N
b
]
7 A → B E
K
s
[N
b
]
个基于临时值握手协议 WOO92b
1 A → KDC ID
A
||ID
B
2 KDC → A E
KR
auth
[ID
B
||KU
b
]
3 A → B E
KU
b
[N
a
||ID
A
]
4 B → KDC ID
B
||ID
A
|| E
KU
auth
[N
a
]
5 KDC → B E
KR
auth
[ID
A
||KU
a
]|| E
KU
b
[E
KR
auth
[N
a
||K
s
||ID
A
||ID
B
]]
6 B → A E
KU
a
[E
KR
auth
[ N
a
||K
s
||ID
A
|| ID
B
]||N
b
]
7 A → B E
K
s
[N
b
]
身份认证应用身份认证应用实实实例例
--Kerberos
Kerberos,part of Project Athena at MIT
Greek Kerberos,话故”中个…
的‰ 有?个? ` 是·′之?的?
ˉ
Modern Kerberos,?指有?个˙分的网络之?的保ˉ… 包¨
a71认证(authentication)
a71 (accounting)
a71?'(audit)
问题
个 ¥的分布 网络? 中 用户通过?
ˇ问 器?提 的
a71 器应?够限 非— 用户的ˇ问并?够认证?
的
a71够 网络 所信任其?够 确·认定用户
个个用户另?个用户
个用户变?个的网络· 从?另?
个用户 –?–的信 交换 并用 ¥?§获得?
个 器的ˇ问 中 器的?
Kerberos 的问题
所有? 问题? 为?个非— 用户?够获得其? ˇ问的 据
是为每?个 器?个身份认证协议
Kerberos提?个中心认证 器 提 用户?
器 器?用户的认证
Kerberos 用 ‰ 密
Kerberos Version4 Version5 (RFC1510)
信 …‰ 保护的 机
单用户单机…‰ 用户 文 受
′?的安全保护
多用户分时…‰ …‰提 基于用户
的ˇ问a 并用logon过程
用户
Client/Server网络 由
分布 中心 器
的安全方
相信每?个单 的客户 保证?其用户的
别 并依?于每?个 器? 实个基于用户 的安全
客户?…‰ˉ o自 向 器 身份认证但相信客户?…‰?其用户的 别
每?个用户?每?个 证 其 身份 同
器向客户?证 其 身份
Kerberos的 方
个分布 的client/server …机
中 用?个 多个Kerberos 器提
个认证
Kerberos…‰应?足的
安全 网络 –获得 信 其 用户
Kerberos应足够于 的 – 的?点连接
Kerberos应 度 并 应?于?个分布
器 … 使得?个…‰?够?份另?个…‰
′?'“? 用户 了 输?口令 外应
认证的—
缩 …‰应?够支持大 量的客户 器
Kerberos Version4
个信任的?方认证 用
个基于Needham & Schroeder协议
用DES 精心设'协议 提 认证
一个简单的认证对话
认证 器(AS)
知道所有用户的口令并ˉ o 储?个中央 据库中 AS与每?个 器 有?个唯?的保密密钥 些密钥?′? 更安全的手段分—
考虑? 定的?话
(1) C → AS,ID
C
|| P
C
|| ID
V
(2) AS → C,Ticket
(3) C → V,IDC || Ticket
Ticket = E
K
V
[ID
C
|| AD
C
|| ID
V
]
其中 C,client
AS,Authentication Server
V,server
ID
C
,identifier of user on C
ID
V
,identifier of V
P
C
,password of user on C
AD
C
,network address of C
K
V
,AS与V 有的保密密钥
C V
AS
(1)
(2)
(3)
更安全的认证?话
两个主 问题
a71?望用户输?口令的次 最?
a71口令 文 会 –
办
a71ticket reusable
a71ticket-granting server
¥后的?的?话
Once per user logon session:
(1) C → AS,ID
C
|| ID
tgs
(2) AS → C,E
K
C
[Ticket
tgs
]
Once per type of service
(3) C → TGS,ID
C
|| ID
v
|| Ticket
tgs
(4) TGS → C,Ticket
V
Once per service session
(5) C → V,ID
C
|| Ticket
V
Ticket
tgs
= E
K
tgs
[ID
C
||AD
C
||ID
tgs
||TS
1
||Lifetime
1
]
Ticket
V
= E
K
V
[ID
C
||AD
C
||ID
V
||TS
2
||Lifetime
2
]
C V
AS
(1) (2)
(3)
TGS
(4)
(5)
Kerberos
Kerberos V4 Authentication Dialogue
两个问题
a71与ticket-granting ticket相关的Lifetime问题
a71需 器向客户¥ 认证
方
a71session key
Summary of Kerberos Version 4 Message Exchanges
(a) 身份验证 交换 获得 —予的票据
(1) C → AS,IDC || IDtgs || TS1
(2) AS → C,EKC[Kc,tgs || IDtgs || TS2 || Lifetime2 || Tickettgs]
Tickettgs = EKtgs [Kc,tgs || IDC || ADC || IDtgs || TS2 || Lifetime2]
(b) 票据—予的 交换 获得 —予的票据
(3) C → TGS,IDV || Tickettgs || Authenticatorc
(4) TGS → C,EKc,tgs[Kc,v || IDV || TS4 || Ticketv]
Tickettgs = EKtgs[Kc,tgs|| IDC|| ADC|| IDtgs || TS2 || Lifetime2]
Ticketv = EKV[Kc,v||IDC||ADC|| IDv||TS4||Lifetime4]
Authenticatorc = EKc,tgs[IDc||ADc||TS3]
(c) 客户/ 器身份验证交换 获得
(5) C → V,Ticketv || Authenticatorc
(6) V → C,EKc,v[TS5+1] ( for mutual authentication)
Ticketv = EKV[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]
Authenticatorc = EKc,v[IDc||ADc||TS5]
Rationale for the Elements of the Kerberos Version 4 Protocol
(a) Authentication Service Exchang
Message(1) Client ticket-granting ticket
ID
C
:告诉AS client?的用户
ID
tgs
:告诉AS用户 ˇ问TGS
TS
1
:让AS验证client?的时钟是与AS的时钟同步的
Message(2) AS返 ticket-granting ticket
E
K
C
,基于用户口令的 密 使得AS client? 验证口令并保护Message(2)
K
c,tgs
,session key的副 由AS产 client?用于 AS与client
之间信 的安全交换? 用?个永久的key
ID
tgs
:确认 个ticket是为TGS 的
TS
2
:告诉client该ticket签—的时间
Lifetime
2
,告诉client该ticket的有效期
Ticket
tgs
,client用 ˇ问TGS的ticket
(b) Ticket-granting Service Exchange
Message(3) client service-granting ticket
ID
v
,告诉TGS用户 ˇ问 器V
Ticket
tgs
,向TGS证实该用户 AS认证
Authenticator
c
:由client? 用于验证ticket
Message(4) TGS返 service-granting ticket
E
K
c,tgs
,仅由C TGS 的密钥 用 保护Message(4)
K
c,tgs
,session key的副 由TGS? client server之间信 的安全交换? 用?个永久密钥
ID
v
,确认该ticket是为server V签—的
TS
4
,告诉client该ticket签—的时间
Ticket
V
,client用 ˇ问 器V的ticket
Ticket
tgs
:? 用 从 用户? ˇ输?口令
E
K
tgs
,ticket用 有AS TGS才知道的密钥 密 篡?
K
c,tgs
:TGS?用的session key副 用于 密authenticator,从
认证ticket
IDc,指 该ticket的 确主–
ADc,票据由?是初 票据的使用
Idtgs,向 器保障 确· 密此票据
TS2,通知TGS此票据—出的时间
Lifetime2,票据?期后的 ¥
Authenticator:
Ek
c
,
tgs
,使用 有客户机 TGS知道的密钥 密身份验证码 篡?
ID
c
,与票据中的ID匹配 验证票据
AD
c
,与票据中的· 匹配 验证票据
TS
2
:通知TGS此身份验证码的时间
(c)客户/ 器身份验证交换
Message(5) client service-granting ticket
Ticket
v
:向 器证实该用户 AS认证
Authenticator
c
:由client? 用于验证ticket
Message(6) 器?客户机?选的身份验证
E
Kc
cv
,仅由C 器 的密钥 用 保护Message(6)
TS
5
+1,向C保障?是 ¥的应答
Kerberos`′过程概
C
V
AS
(1) (2)
(3)
TGS
(4)
(5)
Kerberos
(6)
Kerberos 辖范围与多
个完整的Kerberos? 包¨?个Kerberos 器
应用 器?足?列
a71Kerberos 器 其 据库中拥有所有参与用户的
ID(UID) 口令散列 所有用户fi Kerberos 器
注册
a71Kerberos 器 与每?个 器之间?个保密密钥 所有 器fi Kerberos 器?注册
的? 视为?个 辖国界(realm)
a71每?个辖?的Kerberos 器与其 辖? 的Kerberos
器之间?个保密密钥 两个Kerberos 器互相注册
(1) C → AS,ID
C
|| ID
tgs
|| TS
1
(2) AS → C,E
K
C
[K
c,tgs
|| ID
tgs
|| TS
2
|| Lifetime
2
|| Ticket
tgs
]
(3) C → TGS,ID
tgsrem
|| Ticket
tgs
|| Authenticator
c
(4) TGS → C,E
K
c,tgs
[K
c,tgsrem
|| ID
tgsrem
|| TS
4
|| Ticket
tgsrem
]
(5) C → TGS
rem
,ID
vrem
|| Ticket
tgsrem
|| Authenticator
c
(6) TGS → C,E
K
c,tgsrem
[K
c,vrem
|| ID
vrem
|| TS
b
|| Ticket
vrem
]
(7) C → V
rem
:Ticket
vrem
|| Authenticator
c
C
AS TGS TGS
rem
V
rem
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Kerberos Version 5
¥version 4 的? 缺陷
a71 密…‰依?性
a71Internet协议依?性
a71? 字节次
a71Ticket的时效性
a71Authentication forwarding
a71Inter-realm authentication
Kerberos Version 5
¥Version 4 的技术缺陷
a71Double encryption
a71PCBC encryption
a71Session key
a71Password attacks
Kerberos References
MIT Kerberos Web Site,
http://web.mit.edu/kerberos/www
USC/ISI Kerberos Page:
Password-to-Key Transformation
Propagating Cipher Block Chaining Mode
Kerberos协议模 的分析
证 Kerberos协议模的 确性
— Kerberos协议模 依?于安全的时间
特性分析
信?方
a71所需的 密钥分配 ′变得十分 单
a71AS担 认证? 减轻应用 器的 担
a71安全相关 据的集中 ′ 保护 从 使?§?的?侵
难
Ticket
a71AS的认证 会话密钥安全· 应用 器
a71 期? 用 减?认证 销 提 方便性
特性分析
Ticket—¥
a71降低用户口令的使用频度 更?·保护口令
a71减轻AS的 担 提 认证…‰的效率
时间
a71?Ticket Authenticator的 ¥?§
秘密 密钥 为认证依据局限性分析
¥?§
a71ticket-granting ticket具有较长的 期?
易 ¥
a71?于有准?的?§? 5分钟的 期
¥ ¥?§
a71保 所有 活鉴别符并通过“较 ¥?
§的办 难 实
a71与其§ 的 ¥?§更?易
局限性分析
时间依?性
a71实 较?的时钟同步往往是 困难的
a71?§?误fi…‰时间并¥ ¥?§有?乘之机
a71基于安全的时间
猜 口令?§
a71脆?口令?易受§
a71协议模 未?口令提 额外的保护 猜?杂度为
O(K)
局限性分析
域间鉴别
a71多跳域间鉴别¢£ 多?素 实 过程?杂? 确
a71 信任瀑布 问题
篡?登 程
a71认证…‰ 身的程 完整性 难保证
密钥 储问题
a71口令£会话密钥? 安全 ¥于典 的' 机…‰中
MZ协议模
Kerberos协议模 的?¥模
a71? 认证协议?安全时间 的依?性
a71更?· ¥?§
a71提 口令猜 的?杂度
a71 化域间认证
a71使用混 密
a71使用nonce
X.509认证协议实实例例例分分分析析
Unix身份认证
Windows NT 4.0的身份鉴别
Windows NT —了专?的安全子…‰ Windows NT的安全子…‰主
由 ·安全— LSR 安全帐户 ′ SAM 安全参考监视器 SRM 等
·安全— ˙分提 了许多 程 保障用户获得 取…‰的许? 产 令牌 执 ·安全 ′ 提 交互 登陆认证
a 安全?查 由SRM产 的?查 信
安全帐户 ′˙分保 安全帐户 据库 SAM Database 该 据库包含所有? 用户的信 SAM提 用户登 认证?用户
Welcome?话框中输?的信 与SAM 据库中的信,? 并为用户赋予?个安全 符 SID 根据网络配置的?同 SAM 据库?
与?个 多个NT…‰中
安全参考监视器 ˇ问a?查 由LSA支持 SRM提
客 文 o 等 的 取 限 查主 用户帐户等 的 限产 的?查信 客 的安全 性由安全a ACE
全˙客 的ACEˇ问a ACL 有ACL的客? 任何主题?ˇ问 有ACL的客 由SRM 查其中的每? ACE
从 定主 的ˇ问是否 许
WinLogon
MSV1-0
LSA
SAM
Event
Logger
SRM
Local Security Policy Database
Audit Log
Security Policy
SAM Database
User Mode
Kernel Mode Audit Records
Windows NT有?个安全登 列 用信应用 取用户
口令 列 并有用户帐号 口令等 ′?
为了登 Windows NT 包¨通过网络登 每?用户 首 ¥
域 £用户 别 每?域 £用户 唯?· 了?个用户
…‰ ˙ 使用SID Security Identifier 予 征 每个SID是唯?
的 用 ˇ赋 其 任何用户?使?个用户帐号
了 另?用户 相同的用户 口令 的SID?会同 个 帐号的SID相同 Windows NT 每?¥程的primary
token中 使用用户的SID同该用户的¥程?应 由TCB?的?'
包¨了该SID?此 了某?特定的用户
Windows NT 许每?用户帐号有应的口令 TFM (Trusted
Facility Manual )? 了 确保所有用户帐号 有口令 该口令 用户登 时? 便鉴别用户身份
口令 储 SAM (Security Accounts Manager) 据库中 并由DAC机
保护 非 ˇ问
登 时 LSA (Local Security Authority) 保护 器使用SAM 据库中有关的信 与口令¥?照鉴别 确认 有 — 的用户?
用户 与口令相符?ˇ问 保护的…‰
1,身份认证的依据分为?
2,用RSA 何实 予提问/应答模
的双向身份认证
3,Kerberos身份认证的a′