设计鉴别交换协议 鉴别和交换协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息安全引论
第九讲
身份鉴别(二)
陈钟教授
北京大学信息科学技术学院
软件研究所--信息安全研究室
chen@
2008-2009年度北京大学本科生课程2008/11/20 NISC-09 chenzhong©PKU
讨论议题
•密码协议
•鉴别协议
•鉴别与密钥交换协议•鉴别与交换协议实例
设计鉴别交换协议•介绍在设计鉴别协议时特别需要注意的问题,并给出抵抗这些攻击的具体设计策略。
•鉴别和密钥交换协议的核心问题有两个:–保密性
–时效性
•为了防止伪装和防止暴露会话密钥,基本鉴别与会话密码信息必须以保密形式通信。这就要求预先存在保密或公开密钥供实现加密使用。
•第二个问题也很重要,因为涉及防止消息重放攻击。
鉴别和交换协议
•如果用于连接完整性服务的密钥被在线建立,那么事实证明将鉴别和密钥交换功能组合在一个协议中是重要的(鉴别和密钥交换协议)。
•最常用的协议,该协议使得通信各方互相鉴别各自的身份,然后交换会话密钥。
重放及对策
•常见的消息重放攻击形式有:
①简单重放:攻击者简单复制一条消息,以后在重新发送它;
②可被日志记录的复制品:攻击者可以在一个合法有效的时间窗内
重放一个带时间戳的消息;
③不能被检测到的复制品:这种情况可能出现,原因是原始信息已
经被拦截,无法到达目的地,而只有重放的信息到达目的地。④反向重放,不做修改。向消息发送者重放。当采用传统对称加密
方式时,这种攻击是可能的。因为消息发送者不能简单地识别发送的消息和收到的消息在内容上的区别。
•对策:
①针对同一验证者的重放:非重复值
②针对不同验证者的重放:验证者的标识符
非重复值的使用
A.序列号:计数的策略:对付重放攻击的一种
方法是在认证交换中使用一个序数来给每一
个消息报文编号。仅当收到的消息序数顺序
合法时才接受之。但这种方法的困难是要求
双方必须保持上次消息的序号。
B.时间戳:A接受一个新消息仅当该消息包含
一个时间戳,该时间戳在A看来,是足够接近A所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步
C.验证者发送随机值(如询问):不可预测、
不重复
时间戳
•在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到
•一旦时钟同步失败
–要么协议不能正常服务,影响可用性
(availability),造成拒绝服务(DOS)
–要么放大时钟窗口,造成攻击的机会
•时间窗大小的选择应根据消息的时效性来确定
询问/应答方式(Challenge/Response)•A期望从B获得一个消息
–首先发给B一个随机值(challenge)
–B收到这个值之后,对它作某种变换,并送回去
–A收到B的response,希望包含这个随机值
•在有的协议中,这个challenge也称为nonce
–可能明文传输,也可能密文传输
–这个条件可以是知道某个口令,也可能是其他的事
情
–变换例子:用密钥加密,说明B知道这个密钥;
简单运算,比如增一,说明B知道这个随机值
•询问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。
相互鉴别协议
•在理论上,相互鉴别可通过组合两个单向鉴别交换协议来实现。然而,这种组合需要被仔细地考察,因为有可能这样的组合易受窃听重放攻击。•另外,设计协议消息数比相应的单向交换协议的消息数的两倍少得多的相互鉴别交换协议是可能的。
•因此,由于安全性和性能的原因,相互鉴别交换协议必须为此目的而特别地进行设计。
讨论议题
•密码协议
•鉴别协议
•鉴别与密钥交换协议•鉴别与交换协议实例
讨论议题•鉴别与交换协议实例
–CHAP
–S/Key
–双向鉴别
–单向鉴别
–Kerberos
–X.509鉴别服务
CHAP (challenge-Handshake
Authentication Protocol)
•拨号用户鉴别协议,是一种通过PPP链接传送数据,完成对PPP链接的身份鉴别协议。CHAP主要适用于NAS (network access Server)对来自于PSTN或ISDN的电路交换连接、拨入连接或专有连接的身份鉴别
•询问握手鉴别协议(CHAP):RFC1994–采用提问/应答方式进行鉴别,通过在PPP链接的双
方进行一次三次握手,完成对对方身份的鉴别
CHAP 示意
Challenge = SessionID,Challenge String Respond = MD5 Hash(SessionID,Challenge String,User Password),User Name
Client
Server
Succeed/failed
Challenge
Respond
工作原理-i
•CHAP 是验证方与被验证方之间的三次握手来验证访问者身份的协议。
•验证方周期地验证登录和访问请求,一旦检测到,就生成和发送一个随机数
challenge 给被验证者。被验证者据此生成一个单向加密的摘要值作为应答(response)传给验证方。验证方根据收到的response 来判断用户身份合法性。
工作原理-ii
•CHAP 成功鉴别的前提是验证双方共享同样的秘密值和单向加密(HASH )算法。实际验证中,服务器端在发出随机数的同时,会和客户端一道以共享的秘密值和challenge 为因子计算报文摘要,并把二者计算的结果汇总、比较、若相等,则认可该次访问,反之予以拒绝
HASH 算法
HASH 算法
HASH (A ,X )
Response=HASH(A,X)
Succeed/Failed
秘密值A
Challenge X
秘密值A
验证方(server)
被验证方(client)
CHAP 鉴别原理
CHAP 协议的优点与缺点
•优点
–协议简单、易于实现
–虽为单向鉴别协议,但可以通过在另一方的配置请求,实现对通信实体的双向鉴别
–通过不断地改变鉴别标识符和提问消息的值来防止重放(playback)攻击。
–利用周期性的提问防止通信双方在长期会话过程中被攻击。
•缺点
–CHAP 鉴别基于共享密钥,给密钥管理带来巨大不便,不适合于大规模用户鉴别–CHAP 要求提供明文的密钥形式。
讨论议题
•鉴别与交换协议实例
–CHAP –S/Key –双向鉴别–单向鉴别–Kerberos
–X.509鉴别服务