密码学身份认证

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 设计动机 ──对开放式系统认证机制的要求
1) 安全性:足够安全,不致成为攻击 的薄弱环节 2) 可靠性:认证服务的可靠性决定整 个系统的可靠性 3) 透明性:除了输入口令之外,用户 应该感受不到认证服务的存在 4) 可伸缩:系统应能支持更多的客户 和服务器
2. 模型
1) 共涉及4种角色: ① 一个鉴别服务器AS(Authentication Server) ② 多个票据许可服务器TGS(Ticket Granting Server)──每个TGS对应一类服务器 ③ 多个客户C ④ 多个服务器S 2) AS用于鉴别C的身份,TGS用于对C针对某个 服务器S的服务请求进行授权,同属整个 Kerberos系统,但两者相互独立 3) AS中拥有所有TGS和所有C的密钥 4) 每个TGS拥有所有下属服务器S的密钥 5) AS可向某个TGS、 TGS可向其所属某个S证 实某个C的身份,并产生会话密钥供双方通信 使用,认证会话在认证结束后自动销毁
缺点:双方都必须同时在线并等待对方的回答
2. 基于对称密码和第三方的单向认证协议 1) A→KDC : IDA || IDB || N1 2) KDC→A : EKa[Ks || IDB || N1 || EKb[Ks || IDA]] 3) A→B : EKb[Ks || IDA] || EKs [M]
3. 实例:
钱琪(C)要在某宾馆的餐厅就餐,向大堂经理王雪 梅(AS)提出就餐申请,王雪梅认证其身份后给他一 张介绍信(TGT),让他去找餐厅经理程嘉(TGS)。 钱琪凭介绍信向程嘉请求餐厅服务员雷蕾(S)为他 提供就餐服务,程嘉验证其介绍信后给他一张对应 雷蕾的就餐证(SGT),让他直接找雷蕾; 钱琪凭就餐证向雷蕾提出就餐服务,雷蕾验证其就 餐证后给他回应,让他准备就餐。 注:钱琪若再次请求雷蕾为其服务,直接用原有就 餐证(SGT)即可,不必再找程嘉;钱琪若改变请求 要黄素娟为其服务,则需向程嘉请求一张对应黄素 娟的就餐证(SGT);而钱琪若改变请求要住宿,则 必需重新向王雪梅提出申请,王雪梅重新认证后让 他去找客房经理徐成城……
其中KU、KR分别是KDC的公钥、私钥; KUa和 KRa 、KUb和KRb 分别是A、B的公钥和私钥
A、B都向KDC索要对方的公钥,并用对方能否 解密用其公钥加密的消息来证明对方的身份
补.2.2 单向认证协议
1. 基于对称密码的单向(A向B证明)认证协议 1) A→B : IDA || N1 2) B→A : EKab[Ks || IDB || f(N1) || N2] 3) A→B : EKs[f(N2 )] 其中Kab是A、B的共享密钥
5. 防止重放的方法之二──提问-应答 1) “现时”──与当前事件有关的一 次性随机数N(互不重复即可) 2) 基本做法──期望从B获得消息的 A 事先发给B一个现时N,并要求 B应答的消息中包含N或f(N),f是 A、B预先约定的简单函数 3) 原理──A通过B回复的N或f(N)与 自己发出是否一致来判定本次消 息是不是重放的 4) 时钟要求──无 5) 适用性──用于连接性的对话
《信息安全技术》 补充: 身份认证
“身份认证”也称“身份鉴别”
──证实主体的真实身份与其声称 的身份是否相符
以密码理论为基础 是访问控制和审计的前提 通过特定的协议和算法实现
补.1 身份认证基础
补.1.1 物理基础
1. 用户知道什么(What you know)──密 码、口令、序列号、特定知识等 2. 用户拥有什么(What you have) ──身 份证、护照、通行证、门禁卡等 3. 用户是谁 (Who are you) ──指纹、 脸型、虹膜、声纹、DNA、笔迹等 生物特征


Kc,tgs是系统为C、TGS产生的会话密 钥 Ktgs是TGS的密钥 a是C的地址 v是会话密钥的生存周期(时间窗) t是时戳
② 服务许可票据SGT(Service Granting Ticket)──C向S证明身份并请求服务的凭
证(也称“服务票证”) ,记作:
ห้องสมุดไป่ตู้
Tc,s =EKs[IDc,IDs ,Kc,s ,a,v,t]
补.1.2 数学基础
1. 基于知识的证明──P为了向V证明自己知道什么 信息,说出或无意透露出得到该信息的某些知识 2. 零知识证明──P使V确信自己知道什么信息,但 却不泄露任何与得到该信息相关的知识 例1:钱琪向雷蕾声称他知道程嘉的偶像是谁, 雷蕾表示不信,钱琪有两种证明方式: ①钱琪不得已说出是章子怡,于是在让雷蕾相 信的同时也让她知道了这一信息──基于知识 的证明 ②钱琪让程嘉作证,于是雷蕾相信了,但雷蕾 仍不知程嘉的偶像是谁──零知识证明
4. 票据与鉴别码
1) 票据(Ticket) ──发送方向接收方证明自己身份或 拥有某种授权的凭证 ① 票据许可票据TGT(Ticket Granting Ticket) ──C向TGS证明身份并请求授权的凭证(也 称“用户票证”),记作:
其中:

Tc,tgs =EKtgs[IDc,IDtgs ,Kc,tgs,a,v,t]
③ 客户C发到TGS的鉴别码: Ac,tgs=EKc,tgs[IDc, a, t, key ],其中: Kc,tgs是系统为C、TGS产生的会话密钥 t是时戳 a是C的地址 key是可选的附加会话密钥 ④ 客户C发到服务器S的鉴别码 Ac,s=EKc,s[IDc, a, t, key ],其中: Kc,s是系统为C、S产生的会话密钥 其余同上
补.2 身份认证协议 补.2.1 双向认证协议
1. 基于对称密码和可信第三方的双向认证协议 N-S协议(由Roger Needham和Michael Schroeder 发明):
1) A→KDC : IDA || IDB || N1 2) KDC→A : EKa[Ks || IDB || N1 || EKb[Ks || IDA ]] 3) A→B : EKb[Ks || IDA ] 4) B→A : EKs [N2] 5) A→B : EKs[f(N2 )]
例3:王雪梅拥有钱琪的公钥,但没有见过钱 琪,而钱琪见过王雪梅的照片,偶然一天两人 见面了,钱琪认出了王雪梅,但王雪梅不能确 定面前的人是否是钱琪,这时钱琪要向王雪梅 证明自己是钱琪,也有两种证明方法: ①钱琪把自己的私钥给王雪梅,王雪梅用这个 私钥对某个数据加密,然后用钱琪的公钥解密, 如果正确,则王雪梅证实对方是钱琪,但钱琪 不情愿地泄漏了自己的私钥。 ──基于知识的 证明 ②王雪梅给出一个随机值,钱琪用自己的私钥 对其加密,然后把加密后的数据交给王雪梅, 王雪梅用钱琪的公钥解密,如果能够得到原来 的随机值,则证明对方是钱琪,但王雪梅并未 得到钱琪的私钥。 ──零知识证明
若|Clock-T|<Δt1+Δt2 ,则不是重放。其中Clock 是当前时刻、 Δt1是KDC与A或B时钟之差估计值、 Δt2是网络延迟估计值 注:此法要求A、B的时钟同步
2. 基于公钥密码和可信第三方的双向认证协议 WOO92b协议: 1) A→KDC : IDA || IDB 2) KDC→A : EKR[KUb || IDB ] 3) A→B : EKUb[IDA || Na ] 4) B→KDC : IDB || IDA || EKU[Na] 5) KDC→B : EKR[KUa || IDA] || EKUb[EKR[Ks || IDA || IDB || Na]] 6) B→A : EKUa[EKR[Ks || IDA || IDB || Na] || Nb] 7) A→B : EKs[Nb]
其中Ka、Kb分别是KDC与A、B的共享密钥,M是 A给B的消息本身
优点:无需双方同时在线,消息传递与认证同时进行
缺点:B在第3)步易受重放攻击
3. 基于公钥密码的单向认证协议 A→B : EKUb[Ks] || EKs[M || EKRa[H(M)]] B收到后用私钥解密出会话密钥, 然后用会话密钥解密出消息和A用 其私钥对消息的签名并进行验证, 从而确认A的身份。
其中: Kc,s是系统为C、S产生的会话密钥 Ks是S的密钥其余同上 2) 鉴别码(Authenticator)──用于证明票据 发送方就是票据拥有者的凭证 ① 接受方通过与相应票据中的信息进行 比较来证实发送方知道会话密钥 ② 由客户C通过会话密钥随时产生,但 与票据不同的是它只能使用一次
其中:Ka、Kb分别是KDC与A、B的共享密钥; Ks是A、B之间的会话密钥。N1用于防C冒充 KDC对A的重防攻击;N2用于防C冒充A对B的重 防攻击。
漏洞:假设攻击者C已经知道A、B之间以前用过 的会话密钥K’,则C可在第3)步用以前所截获 的EKb[K’ || IDA ]冒充A,实施重放攻击: C→B : EKb[K’ || IDA ] 只要B不记得K’是先前用过的会话密钥,便会以 为是一次新的认证过程,从而做第4)步: B→A : EK’ [N2]
例2:钱琪要向王雪梅证明自己拥有某个房间 的钥匙,假设该房间只能用该钥匙打开,而其 他任何方法都打不开。钱琪有两种证明方式: ①钱琪把钥匙交给王雪梅,王雪梅用这把钥匙 打开该房间,从而证明钱琪拥有该房间的钥匙。 ──基于知识的证明 ②王雪梅确定该房间内有某一物体,钱琪用自 己拥有的钥匙打开该房间的门,然后把物体拿 出来出示给王雪梅,从而证明自己确实拥有该 房间的钥匙,但王雪梅始终不能看到钥匙的样 子,从而避免了钥匙的泄露。──零知识证明
补.3 身份认证的实现── Kerberos认证协议
为TCP/IP设计的第三方认证协议 由可信第三方提供开放式系统中客户(Client)与 服务器(Server)之间的认证服务 由麻省理工学院MIT的Athena(雅典娜)计划 课题组开发,系整个计划的一部分 Greek Kerberos: 希腊神话故事中一种三头蛇尾 狗,是地狱之门的守卫 采用DES等对称密码 最常用的是第4、5版(V4、V5) 2004年9月3日MIT已承认Kerberos认证系统存 在潜在的拒绝服务缺陷。目前已经发布了矫正 缺陷的补丁程序;而随后发布的Kerberos51.35已包括修复程序
4. 防重放的方法之一──时间戳(Time Stamp) 1) “时戳”──代表当前时刻的数 2) 基本思想──A接收一个消息当且仅当其包含 一个对A而言足够接近当前时刻的时戳 3) 原理──重放的时戳将相对远离当前时刻 4) 时钟要求──通信各方的计算机时钟保持同步 5) 处理方式──设置大小适当的时间窗(间隔), 越大越能包容网络传输延时,越小越能防重 放攻击 6) 适用性──用于非连接性的对话 (在连接情 形下双方时钟若偶然出现不同步,则正确的 信息可能会被误判为重放信息而丢弃,而错 误的重放信息可能会当作最新信息而接收)
补.1.3 协议基础
1. 身份认证协议的类型 双向认证协议 单向认证协议 基于对称密码的认证协议
基于公钥密码的认证协议
双方直接认证协议 基于第三方的认证协议
2. 通过会话密钥(用于下次认证通信的对称 密钥)提供认证协议的安全性 3. 重放攻击──C用截获得的A已用过的认证 信息假冒A与B建立通信 典型例子:A与B建立认证会话时,C 通过窃听获得A发给B的认证信息M; 在A、B结束通信后,C用M冒充A与B 建立认证会话,使B信以为真,然后与 C进行通信。
C若能成功地阻止A收到此握手信息,则就可以用 K’解密出N2,并用K’加密得EK’[f(N2 )]冒充A 做第5)步: C→B : EK’[f(N2 )]
从而假冒A与B建立通信
Denning协议(使用时戳T):
1) A→KDC : IDA || IDB 2) KDC→A : EKa[Ks || IDB || T || EKb[Ks || IDA || T]] 3) A→B : EKb[Ks || IDA || T] 4) B→A : EKs [N1] 5) A→B : EKs[f(N1 )]
相关文档
最新文档