身份认证
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的内容,而不会带来 更大的损失,而且通信者发现会话密钥泄漏后,就可以用 原有的密钥协商出新的会话密钥,重新开始新的会话。所 以,无论是基于公钥的还是基于对称密钥的认证协议,都 经常要产生对称会话密钥。
在针对协议的攻击手法中 ,消息重放攻击(replay攻 击)是一种很常用的主动攻击。消息重放攻击最典型的情 况是:A与B 通信时,第三方 C 窃听获得了A过去发给B的 报文M ,然后冒充A的身份将M发给B ,希望能够以A的身 份与 B 建立通信,并从中获得有用信息。在最坏情况下, 重放攻击可能导致被攻击者误认对方身份、暴露密钥和其
比如f(N)=N+1。本协议的目的是认证A和B的身份后,安
全地分发一个会话密钥Ks给A和B。
第(1)步,A向KDC申请要和B通信。A在第(2)步 安全地得到了一个新的会话密钥。第(3)步,只能由B解 密并理解,B也获得会话密钥 。第(4)步,B告诉A 已知
道正确的Ks了 ,从而证明了B的身份。第(5)步表明B相 信A也知道Ks,从而认证A的身份。
针对前两类基础的技术起步较早,目前相对成熟,应 用比较广泛。有关第三类的技术也由于它在安全性上的优
势正在迅速发展。
7.1.2数学基础
示证者 P 试图向验证者V证明自己知道某信息。一种 方法是P说出这一信息使得V相信,这样V也知道了这一信 息,这是基于知识的证明。另一种方法是使用某种有效的 数学方法,使得V相信他掌握这一信息 ,却不泄露任何有 用的信息,这种方法被称为零知识证明问题。
提问 /应答方式的缺点是不适应非连接性的应用 ,因 为它要求在传输开始之前先有握手,要求实时性较高。
7.2身份认证协议
认证协议按照认证的方向可以分为双向认证协议和单 向认证协议,按照使用的密码技术可以分为基于对称密码 的认证协议和基于公钥密码的认证协议。
本节基于这两种分类介绍并分析几种基本的认证协议。
① V站在A点; ② P进入山洞,走到C点或D点; ③ 当P消失后,V进入到B点; ④ V指定P从左边或者右边出来; ⑤ P按照要求出洞(如果需要通过门,则使用咒语) ⑥ P和V重复①-⑤步骤n次。
如果P知道咒语,他一定可以按照 V 的要求正确的走 出山洞n次。如果P不知道咒语并想使V相信他知道咒语, 就必须每次都事先猜对V会要求他从哪一边出来,猜对一 次的概率是0.5,猜对n次的概率就是0.5n,当n足够大时, 这个概率接近于零。因此山洞问题满足零知识证明的所有 条件。
其中,KUa是A的公钥;KRa是A的私钥;KUauth是 KDC的公钥;KRauth是KDC的私钥。
第1步,A向 KDC 提出和B通信。第2步,A得到B的公 钥。第3步,A向B提出通信要求,包含一个现时。第4步, B向 KDC询问A的公钥。第5步,B得到A的公钥和一段KD
C签名的报文。第6步,B 将这段报文和现时 Nb发给A, A 在 KDC 签名的保文中找到Na ,知道这不是一个重放。第
| Clock T | t1 t2
其中,T是时间戳;t1是KDC时钟与本地时钟(A或 B)之间差异的估计值;t 2 是预期的网络延迟时间。
Denning 协议比Needham/Schroeder协议在安全性方面 增强了一步,然而又提出新的问题,即必须依靠时钟同步 。
可能发生针对时钟同步的攻击。如果发送者的时钟比 接收者的时钟要快,攻击者就可以从发送者处窃听消息, 并等待时间戳对接收者来说成为当前时重放给接收者,这 种重放将会得到意想不到的后果。称为抑制重放攻击。
零知识证明可以分为两大类:最小泄露证明(Minim um Disclosure Proof)和零知识证明(Zero Knowledge Pro of)。
最小泄露证明需要满足: (1) P几乎不可能欺骗V:如果P知道证明 ,他可 以使V以极大的概率相信他知道证明;如果P 不知道证明,则他使得V相信他知道证明的概 率几乎为零。 (2)V 几乎不可能知道证明的知识 ,特别是他不 可能向别人重复证明过程。
第(4)、(5)步的目的是为了防止某种类型的重放 攻击 ,特别是如果敌方能够在第(3)步捕获该消息并重 放之,这将在某种程度上干扰破坏B方的运行操作。
由于除了KDC之外只有A 知道Ka、只有B知道Kb,所
以双方都可以向对方证明自己的身份。
但是,这个协议仍然有漏洞。假定攻击方C已经掌握A 和 B 之间通信的一个老的会话密钥,C可以在第(3)步冒 充A,利用老的会话密钥欺骗B。 除非B记住所有以前使用 的与A通信的会话密钥,否则B无法判断这是一个重放攻击 。然后,如果C可以中途阻止第(4)步的握手信息则可以 冒充A在第(5)步响应。从这一点起C就可以向B发送伪造 的消息,而B认为是在与A进行正常通信
(1)由于某一方的时钟机制故障可能导致临时失去同 步,这将增大攻击成功的机会。
(2)由于变化的和不可预见的网络延迟,不能期望分 布式时钟保持精确的同步。
因此,任何基于时间戳的过程必须采用时间窗的方式 来处理:一方面,时间窗应足够大,以包容网络延迟;另 一方面,时间窗应足够小,以最大限度地减小遭受攻击的 机会。
单向认证协议中只有一方向另一方证明自己的身份, 因此过程一般都相对简单。下面是一个不需要第三方的基 于对称密码的单向认证协议 ,要求 A和B 事先拥有共享密 钥。
(1)A B:IDA || N1 (2)B A:EKab[KS || IDB ||f(N1) || N2] (3)A B:EKs[f(N2)],e.g.,f(x) x 1 第1步,A将自己的身份和一个nonce发给B,希望和
(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 )]
其中,KDC是密钥分发中心 ;IDA表示A的身份唯一 标识;密钥Ka和Kb分别是A和KDC、B和KDC之间共享的 密钥 ;N1 和N2 是两个nonce ;f(N) 是对N进行一个运算,
7.1.3协议基础
认证协议可以分为双向认证协议(mutual authenticatio n protocol)和单向认证协议(one-way authentication proto Col) 。双向认证协议是最常用的协议 ,它使得通信双方 互相认证对方的身份。单向认证协议是通信的一方认证另
一方的身份,比如服务器在提供客户申请的服务之前,先 要认证客户是否是这项服务的合法用户,但是不需要向用 户证明自己的身份。
他重要信息,至少也可以干扰系统的正常运行。 两种防止重放攻击的常用方式是时间戳方式和提问/
应答方式。 时间戳(Time Stamp)方式的基本思想是:A接受一
个新消息仅当该消息包含一个时间戳,并且该时间戳在A 看来是足够接近A所知道的当前时间。这种方法要求不同 参与者之间的时钟同步。
时间戳方法不能用于面向连接的应用,最大的困难是 时钟同步问题:
7步,A使用刚得到的会话密钥回答B。 协议中 ,A和B都向KDC索取对方的公钥,如果对方
能正确解密用其公钥加密的消息,就能够证明对方的身份 。
7.2.2单向认证协议
许多单向认证的应用(比如email)不需要双方同时在 线。一方在向对方证明自己身份的同时,即可发送数据, 另一方收到后,首先验证发送方的身份,如果身份有效, 就可以接受数据。
第七章 身份认证
身份认证是信息安全理论的重要组成部分。它以密码 理论为基础,同时也是访问控制和审计的前提,因此对网 络环境下的信息安全尤其重要。本章重点讲述身份认证的 作用、原理、实现和发展。
7.1身份认证基础
正确识别主体(用户、节点或终端等)的身份十分重 要。如,银行系统的自动取款机(ATM),用户可以直接
7.2.1.2基于公钥密码的双向认证协议
使用公钥密码算法,可以克服基于对称密码的认证协 议中的问题。
请看WOO92b协议,同样需要有可信的第三方参与:
(1)A KDC:IDA || IDB (2)KDC A:EKRauth[IDB || KUb ] (3)A B:EKUb[Na || IDA] (4)B KDC:IDB || IDA || EKUauth[Na ] (5)KDC B:EKRauth[IDA || KUa ]|| EKUb[EKRauth[Na || KS || IDA || IDB]] (6)B A:EKUa[EKRauth[Na || KS || IDA || IDB ]|| Nb ] (7)A B:EKS[Nb ]
零知识证明除了要满足以上两个条件之外,还要满足 第三个条件:
(3)V无法从P那里得到任何有关证明的知识。
图7.1 零知识问题
零知识证明最通俗的例子是图7.1中的山洞问题。图 中的山洞里C、D 两点之间有一扇上锁的门,P知道打开 门的咒语,按照下面的协议P就可以向V证明他知道咒语 但是不需要告诉V咒语的内容:
基于对称密钥的认证协议往往需要双方事先已经通过 其他方式(比如电话、信函或传递等物理方法)拥有共同 的密钥。而基于公钥的认证协议的双方一般需要知道对方 的公钥。公钥的获得相对于对称密钥要简便,比如通过C A 获得对方的数字证书,这是基于公钥的认证协议的优势 。但是,公钥的缺点是加解密速度慢、代价大,所以认证 协议的最后,双方要协商出一个对称密钥作为下一步通信 的会话密钥。产生会话密钥还有安全性方面的考虑:一旦
另一种提问/应答( Challenge/Response)方式不需要 时钟同步。提问/应答方式的基本原理是:A期望从B获得 一个新消息 ,首先发给B一个临时值(challenge), 并要求后续
从 B 收到的消息(response)中包含正确的这个临时值或是由 这个临时值进行某种事先约定的计算的正确结果。这个临 时值往往是一个随机数,称为现时(nonce)。
从取款机中提取现款,但ATM首先要确认用户的身份,否 则恶意欺诈会给银行和用户造成损失。身份认证是指是证 实主体的真实身份与其所声称的身份是否相符的过程。这 一过程是通过特定的协议和算法来实现的。
7.1.1物理基础
身份认证的物理基础可以分为三种: (1)用户所知道的(something the user knows); (2)用户拥有的(something the user possesses); (3)用户的特征(something the user is or how he/she
Denning结合了时间戳的方法,进行了改进: (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 )]
7.2.1双向认证协议
双向认证就是使通信双方确认对方的身份,适用于通 信双方同时在线的情况。
7.2.1.1基于对称密码的双向认证协议
Needham/Schroeder是一个基于对称加密算法的协议, 它要求有可信任的第三方KDC参与 ,采用Challenge/Resp onse的方式,使得 A、B互相认证对方的身份 。协议过程 是:
behaves)。
第一类的例子是最常用的密码和口令;第二类的例子 有身份证、护照、密钥盘等;第三类包括用户的生物特征 ,如指纹 、红膜、DNA、声纹 ,还包括用户的下意识行 为,比如签名。
这三类物理基础各有利弊。第一类方法最简单,系统 开销最小,但是最不安全;第二类泄漏秘密的可能性比较 小,因而安全性比第一类高,但是认证系统相对复杂;第 三类的安全性最高,比如想窃取一个人的指纹是很困难的 ,但是涉及更复杂的算法和实现技术。
B通信。第2步,B生成一个会话密钥Ks,连同对A的nonc
e的应答和一个新的 nonce 一起用两人的共享密钥加密后
在针对协议的攻击手法中 ,消息重放攻击(replay攻 击)是一种很常用的主动攻击。消息重放攻击最典型的情 况是:A与B 通信时,第三方 C 窃听获得了A过去发给B的 报文M ,然后冒充A的身份将M发给B ,希望能够以A的身 份与 B 建立通信,并从中获得有用信息。在最坏情况下, 重放攻击可能导致被攻击者误认对方身份、暴露密钥和其
比如f(N)=N+1。本协议的目的是认证A和B的身份后,安
全地分发一个会话密钥Ks给A和B。
第(1)步,A向KDC申请要和B通信。A在第(2)步 安全地得到了一个新的会话密钥。第(3)步,只能由B解 密并理解,B也获得会话密钥 。第(4)步,B告诉A 已知
道正确的Ks了 ,从而证明了B的身份。第(5)步表明B相 信A也知道Ks,从而认证A的身份。
针对前两类基础的技术起步较早,目前相对成熟,应 用比较广泛。有关第三类的技术也由于它在安全性上的优
势正在迅速发展。
7.1.2数学基础
示证者 P 试图向验证者V证明自己知道某信息。一种 方法是P说出这一信息使得V相信,这样V也知道了这一信 息,这是基于知识的证明。另一种方法是使用某种有效的 数学方法,使得V相信他掌握这一信息 ,却不泄露任何有 用的信息,这种方法被称为零知识证明问题。
提问 /应答方式的缺点是不适应非连接性的应用 ,因 为它要求在传输开始之前先有握手,要求实时性较高。
7.2身份认证协议
认证协议按照认证的方向可以分为双向认证协议和单 向认证协议,按照使用的密码技术可以分为基于对称密码 的认证协议和基于公钥密码的认证协议。
本节基于这两种分类介绍并分析几种基本的认证协议。
① V站在A点; ② P进入山洞,走到C点或D点; ③ 当P消失后,V进入到B点; ④ V指定P从左边或者右边出来; ⑤ P按照要求出洞(如果需要通过门,则使用咒语) ⑥ P和V重复①-⑤步骤n次。
如果P知道咒语,他一定可以按照 V 的要求正确的走 出山洞n次。如果P不知道咒语并想使V相信他知道咒语, 就必须每次都事先猜对V会要求他从哪一边出来,猜对一 次的概率是0.5,猜对n次的概率就是0.5n,当n足够大时, 这个概率接近于零。因此山洞问题满足零知识证明的所有 条件。
其中,KUa是A的公钥;KRa是A的私钥;KUauth是 KDC的公钥;KRauth是KDC的私钥。
第1步,A向 KDC 提出和B通信。第2步,A得到B的公 钥。第3步,A向B提出通信要求,包含一个现时。第4步, B向 KDC询问A的公钥。第5步,B得到A的公钥和一段KD
C签名的报文。第6步,B 将这段报文和现时 Nb发给A, A 在 KDC 签名的保文中找到Na ,知道这不是一个重放。第
| Clock T | t1 t2
其中,T是时间戳;t1是KDC时钟与本地时钟(A或 B)之间差异的估计值;t 2 是预期的网络延迟时间。
Denning 协议比Needham/Schroeder协议在安全性方面 增强了一步,然而又提出新的问题,即必须依靠时钟同步 。
可能发生针对时钟同步的攻击。如果发送者的时钟比 接收者的时钟要快,攻击者就可以从发送者处窃听消息, 并等待时间戳对接收者来说成为当前时重放给接收者,这 种重放将会得到意想不到的后果。称为抑制重放攻击。
零知识证明可以分为两大类:最小泄露证明(Minim um Disclosure Proof)和零知识证明(Zero Knowledge Pro of)。
最小泄露证明需要满足: (1) P几乎不可能欺骗V:如果P知道证明 ,他可 以使V以极大的概率相信他知道证明;如果P 不知道证明,则他使得V相信他知道证明的概 率几乎为零。 (2)V 几乎不可能知道证明的知识 ,特别是他不 可能向别人重复证明过程。
第(4)、(5)步的目的是为了防止某种类型的重放 攻击 ,特别是如果敌方能够在第(3)步捕获该消息并重 放之,这将在某种程度上干扰破坏B方的运行操作。
由于除了KDC之外只有A 知道Ka、只有B知道Kb,所
以双方都可以向对方证明自己的身份。
但是,这个协议仍然有漏洞。假定攻击方C已经掌握A 和 B 之间通信的一个老的会话密钥,C可以在第(3)步冒 充A,利用老的会话密钥欺骗B。 除非B记住所有以前使用 的与A通信的会话密钥,否则B无法判断这是一个重放攻击 。然后,如果C可以中途阻止第(4)步的握手信息则可以 冒充A在第(5)步响应。从这一点起C就可以向B发送伪造 的消息,而B认为是在与A进行正常通信
(1)由于某一方的时钟机制故障可能导致临时失去同 步,这将增大攻击成功的机会。
(2)由于变化的和不可预见的网络延迟,不能期望分 布式时钟保持精确的同步。
因此,任何基于时间戳的过程必须采用时间窗的方式 来处理:一方面,时间窗应足够大,以包容网络延迟;另 一方面,时间窗应足够小,以最大限度地减小遭受攻击的 机会。
单向认证协议中只有一方向另一方证明自己的身份, 因此过程一般都相对简单。下面是一个不需要第三方的基 于对称密码的单向认证协议 ,要求 A和B 事先拥有共享密 钥。
(1)A B:IDA || N1 (2)B A:EKab[KS || IDB ||f(N1) || N2] (3)A B:EKs[f(N2)],e.g.,f(x) x 1 第1步,A将自己的身份和一个nonce发给B,希望和
(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 )]
其中,KDC是密钥分发中心 ;IDA表示A的身份唯一 标识;密钥Ka和Kb分别是A和KDC、B和KDC之间共享的 密钥 ;N1 和N2 是两个nonce ;f(N) 是对N进行一个运算,
7.1.3协议基础
认证协议可以分为双向认证协议(mutual authenticatio n protocol)和单向认证协议(one-way authentication proto Col) 。双向认证协议是最常用的协议 ,它使得通信双方 互相认证对方的身份。单向认证协议是通信的一方认证另
一方的身份,比如服务器在提供客户申请的服务之前,先 要认证客户是否是这项服务的合法用户,但是不需要向用 户证明自己的身份。
他重要信息,至少也可以干扰系统的正常运行。 两种防止重放攻击的常用方式是时间戳方式和提问/
应答方式。 时间戳(Time Stamp)方式的基本思想是:A接受一
个新消息仅当该消息包含一个时间戳,并且该时间戳在A 看来是足够接近A所知道的当前时间。这种方法要求不同 参与者之间的时钟同步。
时间戳方法不能用于面向连接的应用,最大的困难是 时钟同步问题:
7步,A使用刚得到的会话密钥回答B。 协议中 ,A和B都向KDC索取对方的公钥,如果对方
能正确解密用其公钥加密的消息,就能够证明对方的身份 。
7.2.2单向认证协议
许多单向认证的应用(比如email)不需要双方同时在 线。一方在向对方证明自己身份的同时,即可发送数据, 另一方收到后,首先验证发送方的身份,如果身份有效, 就可以接受数据。
第七章 身份认证
身份认证是信息安全理论的重要组成部分。它以密码 理论为基础,同时也是访问控制和审计的前提,因此对网 络环境下的信息安全尤其重要。本章重点讲述身份认证的 作用、原理、实现和发展。
7.1身份认证基础
正确识别主体(用户、节点或终端等)的身份十分重 要。如,银行系统的自动取款机(ATM),用户可以直接
7.2.1.2基于公钥密码的双向认证协议
使用公钥密码算法,可以克服基于对称密码的认证协 议中的问题。
请看WOO92b协议,同样需要有可信的第三方参与:
(1)A KDC:IDA || IDB (2)KDC A:EKRauth[IDB || KUb ] (3)A B:EKUb[Na || IDA] (4)B KDC:IDB || IDA || EKUauth[Na ] (5)KDC B:EKRauth[IDA || KUa ]|| EKUb[EKRauth[Na || KS || IDA || IDB]] (6)B A:EKUa[EKRauth[Na || KS || IDA || IDB ]|| Nb ] (7)A B:EKS[Nb ]
零知识证明除了要满足以上两个条件之外,还要满足 第三个条件:
(3)V无法从P那里得到任何有关证明的知识。
图7.1 零知识问题
零知识证明最通俗的例子是图7.1中的山洞问题。图 中的山洞里C、D 两点之间有一扇上锁的门,P知道打开 门的咒语,按照下面的协议P就可以向V证明他知道咒语 但是不需要告诉V咒语的内容:
基于对称密钥的认证协议往往需要双方事先已经通过 其他方式(比如电话、信函或传递等物理方法)拥有共同 的密钥。而基于公钥的认证协议的双方一般需要知道对方 的公钥。公钥的获得相对于对称密钥要简便,比如通过C A 获得对方的数字证书,这是基于公钥的认证协议的优势 。但是,公钥的缺点是加解密速度慢、代价大,所以认证 协议的最后,双方要协商出一个对称密钥作为下一步通信 的会话密钥。产生会话密钥还有安全性方面的考虑:一旦
另一种提问/应答( Challenge/Response)方式不需要 时钟同步。提问/应答方式的基本原理是:A期望从B获得 一个新消息 ,首先发给B一个临时值(challenge), 并要求后续
从 B 收到的消息(response)中包含正确的这个临时值或是由 这个临时值进行某种事先约定的计算的正确结果。这个临 时值往往是一个随机数,称为现时(nonce)。
从取款机中提取现款,但ATM首先要确认用户的身份,否 则恶意欺诈会给银行和用户造成损失。身份认证是指是证 实主体的真实身份与其所声称的身份是否相符的过程。这 一过程是通过特定的协议和算法来实现的。
7.1.1物理基础
身份认证的物理基础可以分为三种: (1)用户所知道的(something the user knows); (2)用户拥有的(something the user possesses); (3)用户的特征(something the user is or how he/she
Denning结合了时间戳的方法,进行了改进: (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 )]
7.2.1双向认证协议
双向认证就是使通信双方确认对方的身份,适用于通 信双方同时在线的情况。
7.2.1.1基于对称密码的双向认证协议
Needham/Schroeder是一个基于对称加密算法的协议, 它要求有可信任的第三方KDC参与 ,采用Challenge/Resp onse的方式,使得 A、B互相认证对方的身份 。协议过程 是:
behaves)。
第一类的例子是最常用的密码和口令;第二类的例子 有身份证、护照、密钥盘等;第三类包括用户的生物特征 ,如指纹 、红膜、DNA、声纹 ,还包括用户的下意识行 为,比如签名。
这三类物理基础各有利弊。第一类方法最简单,系统 开销最小,但是最不安全;第二类泄漏秘密的可能性比较 小,因而安全性比第一类高,但是认证系统相对复杂;第 三类的安全性最高,比如想窃取一个人的指纹是很困难的 ,但是涉及更复杂的算法和实现技术。
B通信。第2步,B生成一个会话密钥Ks,连同对A的nonc
e的应答和一个新的 nonce 一起用两人的共享密钥加密后