身份认证
身份认证的方式(2/2)
• 本地多用户认证
– Login:如何管理口令
• 远程用户认证
– 一次性
• 访问资源或者服务之前进行认证
– 多次访问资源或者服务
• 身份,获得credential • 利用credential访问资源或者服务
身份认证基本途径
• 基于你所知道的(What you know )
• PAP(Password Authentication Protocol):
– 口令认证协议 – 两次握手验证过程 – 用户名和密码以明文(不加密的)形式发送到远程访问 服务器
请求信息(用户名,密码)
客户端 (Client) 验证结果(Ack/Nak)
服务器端 (Server)
简单口令认证
Peer-ID Code Identifier Length Length Password Peer-ID Length Password
PAP请求包格式 Code Identifier Length
MsgLength
Message
PAP应答包格式
• PAP简单且易于实现。 • PAP存在很大的安全问题,用户的用户名和密码是 以明码的方式进行传送的,数据在从用户端发出 到认证方接收到的整个过程中毫无遮拦的暴露在 线路上面。
一次性口令认证(OTP)
• 身份认证系统一旦被攻破:
– 系统的所有安全措施将形同虚设
– 黑客攻击的首要目标往往就是身份认证系统
8/18/2018
2
提纲
1. 身份认证技术概述 2. 基于口令的身份认证 3. Kerberos 身份认证协议 4. 基于X.509的身份认证 5. 基于生物特征的身份认证 6. Windows系统身份认证设计
– 口令管理的作用:
• 生成了合适的口令 • 口令更新 • 能够完全保密
8/18/2018
35
上讲回顾
• 基于口令的身份认证
8/18/2018
3
身份认证的概念
• 身份认证是计算机及网络系统识别操作者身份的 过程。
– 计算机只能识别用户的数字身份,所有对用户的授权 也是针对用户数字身份的授权 – 现实世界是一个真实的物理世界,每个人都拥有独一 无二的物理身份 保证操作者的物理身份与数字身份相对应
8/18/2018
4
身份认证的分类
• 抵抗被动的威胁(窃听),口令不在网上 明文传输
sniffer 进行下列网络服务的身份认证时, 口令传输哪些是明文传输,哪些是 源 目的 加密传输:
Telnet,FTP,SMTP,SSH
8/18/2018 7
Wireshark抓包验证telnet明文传输密码
8/18/2018
8
身份认证的需求(2/2) • 抵抗主动的威胁,比如阻断、伪造、重放 ,网络上传输的认证信息不可重用
CHAP认证结果响应包格式
• CHAP对PAP进行了改进,不再直接通过链路 发送明文口令,而是使用挑战口令以哈希 算法对口令进行加密,安全性比PAP高。
8/18/2018 34
口令管理
• 口令管理
– 口令属于“他知道什么”这种方式,容易被窃取。 – 口令的错误使用:
• 选择一些很容易猜到的口令; • 把口令告诉别人; • 把口令写在一个贴条上并把它贴在键盘旁边。
OK / Disconnect
s
MAC’=H(R,K) 比较MAC’和MAC
MAC的计算可以基于Hash算, 对称密钥算法,公开密钥算法
8/18/2018 32
质询/握手认证协议(CHAP)
Code Identifier ValueValue Name Size CHAP口令请求和应答包格式 Length Identifier Length Message
Code
CHAP认证结果响应包格式
• Code
–1 –2 –3 –4
8/18/2018
Challenge Response Success Failure
33
质询/握手认证协议(CHAP)
Code Identifier Length ValueSize Value Name
CHAP口令请求和应答包格式 Code Identifier Length Message
B
1. AB: (IDA||N1) 2. BA: EKab[Ks,IDB,f(N1),N2)] 3. AB: EKs[f(N2)] 这里的f函数为某个确定的运算,比如f(x)=x+1
8/18/2018
14
身份认证的基本模型
• 假设A和B要进行通讯,A和B与KDC各有一个共享密 钥Ka和Kb, 如何利用这两个密钥进行认证,并且 商定一个会话密钥Ks 会话密钥Ks
• 网络接入服务
– Internet – 校园网 – 企业内部网
• 远程服务登录
– – –
8/18/2018
• 在线交易
– 网上银行 – 电子证券 – 电子商务
Telnet FTP Email VPN
6
身份认证的需求(1/2) • 唯一的身份标识(ID):
– uid,uid@domain – E.g., Email = dhx@
• OTP: One Time Password
– 系统在用户登录时给用户提供一个随机数,用户将 这个随机数送入口令发生器,口令发生器以用户的 密钥对随机数加密,然后用户再将口令发生器输出 的加密口令送入认证系统。认证系统再进行同样方 法计算出一个结果,比较两个结果决定是否该身份 有效。 – 动态口令
否 认证没通过
简单口令认证 • Windows本地登录认证
Winlogon
GINA
LSA
msv1_0
SAM
简单口令认证 • Linux本地登录认证
帐户 查询/etc/passwd 合法帐户?
密码 否
加密算法(Hash) 查询/etc/shadow 密码正确? 是 认证通过 否
退出
简单口令认证协议
passwd
加密
$%@&)*=-~`^,{
解密
8/18/2018
9
身份认证的方式(1/2)
• 单向认证
– 只有通信的一方认证另一方的身份 ,而没有反向的认证过程
• 双向认证
– 用于通信双方的相互认证 – 认证的同时可以协商会话密钥
• 单点认证(Single Sign-On)
– 用户只需要一次认证操作就可以访 问多种服务
8/18/2018 15
常用的身份认证技术/协议
• 口令认证技术
– 简单口令认证 – 质询/响应认证 – 一次性口令认证(OTP)
• Kerberos认证技术 • 基于公钥证书的身份认证 • 基于生物特征的身份认证
8/18/2018
16
回顾
• 网络安全中的“身份认证”
– 网络安全服务:数字身份 – 场景 – 方式(单向、双向、单点) – 本地与远程 – 模型 – 基本途径
8/18/2018
19
基于口令的身份认证 1 2 3 4 5 本地简单口令认证 简单口令认证协议(PAP) 一次性口令(OTP) 质询/响应认证协议(CHAP) 口令的管理
8/18/2018
20
简单口令认证
• 本地简单口令认证
帐户 查询帐户/口令信息表 系统已知合法帐户 的密码 比较 口令
口令是否正确? 是 认证通过
PAP请求包格式 Code Identifier Length MsgLength Message
PAP应答包格式
• Code –1 –2 –3
Authenticate-Request Authenticate-Ack Authenticate-Nak
简单口令认证
Peer-ID Code Identifier Length Length Password Peer-ID Length Password
交换AI 申请AI
验证AI
申请AI
8/18/2018
验证AI
13
身份认证的基本模型
• 假设A和B要进行通讯,A和B有一个共享的密钥 Kab,如何利用这个密钥进行认证,并且商定一个 会话密钥Ks 我是A
A
好的,我用它 试试,可我怎 么知道你是B呢 Kab
告诉你Ks, 以后就用它, 别让别人知道 如果你知道Kab, 那么你就知道Ks, 我就知道你是A
• 用户与主机之间的认证 – 认证人的身份
– 单机/网络环境下的身份认证 – 计算机验证人的身份:你是否是你声称的那个人?
• 主机与主机之间的认证 – 通信的初始认证握手
– 网络环境下的身份认证 – 计算机验证计算机
8/18/2018
5
当前计算环境中的什么场景会用到身份认证?
• 操作系统登录
– Windows – Unix – Linux
我是A,我 想和B通讯 KDC ,由A送给B 的认证信息
A
Ka
我把必要的 信息告诉你
Kb
B
我把消息给你,如果 你是B,你就可以解开
1. AKDC: (IDA||IDB||N1) 2. KDCA: EKa[Ks||IDB||N1||EKb(Ks,IDA)] 3. AB: EKb(Ks,IDA)||EKs(M)
– 知识、口令、密码
• 基于你所拥有的(What you have )
– 身份证、信用卡、钥匙、智能卡、令牌、私钥 等
• 基于你的个人特征(What you are)
– 指纹,笔迹,声音,手型,脸型,视网膜,虹 膜
• 双因素、多因素认证
8/18/2018 12
身份认证的基本模型
• • • • 申请者(Claimant) 验证者(Verifier) 认证信息AI(Authentication Information) 可信第三方(Trusted Third Party)