文档介绍:信息安全原理与技术
1
第7章网络安全协议
网络安全协议按照其完成的功能可以分为:
(1)密钥交换协议:一般情况下是在参与协议的两个或者多个实体之间建立共享的秘密,通常用于建立在一次通信中所使用的会话密钥。
(2)认证协议:认证协议中包括实体认证(身份认证)协议、消息认证协议、数据源认证和数据目的认证协议等,用来防止假冒、篡改、否认等攻击。
2
(3)认证和密钥交换协议:这类协议将认证和密钥交换协议结合在一起,是网络通信中最普遍应用的安全协议。该类协议首先对通信实体的身份进行认证,如果认证成功,进一步进行密钥交换,以建立通信中的工作密钥,也叫密钥确认协议。
3
网络层的安全协议:IPSec
传输层的安全协议:SSL/TLS
应用层的安全协议:
SHTTP(Web安全协议)
PGP(电子邮件安全协议)
S/MIME(电子邮件安全协议)
MOSS(电子邮件安全协议)
PEM(电子邮件安全协议)
SSH(远程登录安全协议)
Kerberos(网络认证协议)等。
常见的网络安全协议
4
简单的安全认证协议
Needham-Schroeder 认证协议
是最为著名的早期的认证协议,许多广泛使用的认证协议都是以Needham-Schroeder协议为基础而设计的。
Otway-Rees协议
Otway-Rees协议的主要功能是完成身份的双向认证,使用对称密码。
5
Needham-Schroeder 认证协议
Needham--Schroder协议的目的是使得通讯双方能够互相证实对方的身份并且为后续的加密通讯建立一个会话密钥(session key)。
协议涉及三个主体:A和B,以及A,B信赖的可信第三方,也叫认证服务器(authentication server)S。
6
Needham和Schroeder于1978年提出的基于共享密钥体系的协议过程:
Needham-Schroeder认证过程
其中,Kas是A与S之间的共享密钥,Kbs是B与S之间的共享密钥。Kab 是认证服务器临时生成的密钥,用于A、B双方认证之后的加密通讯,称为会话密钥。Na和Nb分别是A和B生成的随机量(nonce)。
A
B
S
1
3
4
5
2
(1) A S:A,B,Na
(2)S A:{Na, B,Kab,{Kab, A}Kbs}Kas
(3) A B:{Kab,A}Kbs
(4) B A:{Nb}Kab
(5) A B:{Nb-1}Kab
7
Needham-Schroeder共享密钥协议的漏洞
假定有攻击者H记录下A与B之间执行Needham-Schroeder 共享密钥协议的一轮消息,并且进而破获了其会话密钥Kab (如经过蛮力攻击等),攻击者可以在第3步冒充A利用旧的会话密钥欺骗B。
在这个攻击中,攻击者H首先向B发送一个他记录的从A的第三步发出的旧消息,此消息用于向B表明是A在与B通讯并且Kab是会话密钥。
8
B无法知道这是不是一个A发送的正常通讯请求,也不记得他过去曾经用过Kab作为会话密钥。遵循协议,B将向A发送一个加密的新随机量作为挑战。
H截获之,并用Kab 解密得到此随机量,然后向B返回一个响应消息,使得B相信他正在用会话密钥 Kab与A通讯,而实际上A根本没有参加这一轮协议的运行。
除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击,攻击者由此可以随意冒充A与B进行通讯了!
9
Denning协议使用时间戳修正了这个漏洞,改进的协议如下:
其中T表示时间戳。T记录了认证服务器S发送消息(2)时的时间,A、B根据时间戳验证消息的“新鲜性”,从而避免了重放攻击。
(1) A S:A,B
(2) S A:{B, Kab,T,{Kab, A,T}Kbs}Kas
(3) A B:{Kab,A,T}Kbs
(4) B A:{Nb}Kab
(5) A B:{Nb-1}Kab
10