《设计鉴别交换协议鉴别和交换协议》由会员分享,可在线阅读,更多相关《设计鉴别交换协议鉴别和交换协议(14页珍藏版)》请在金锄头文库上搜索。
1、1信息安全引论信息安全引论第九讲第九讲身份鉴别身份鉴别 (二)二)陈钟教授北京大学信息科学技术学院软件研究所-信息安全研究室2008-2009年度北京大学本科生课程2008/11/20 NISC-09 chenzhongPKU讨论议题密码协议鉴别协议鉴别与密钥交换协议鉴别与交换协议实例设计鉴别交换协议介绍在设计鉴别协议时特别需要注意的问题,并给出抵抗这些攻击的具体设计策略。鉴别和密钥交换协议的核心问题有两个:保密性时效性为了防止伪装和防止暴露会话密钥,基本鉴别与会话密码信息必须以保密形式通信。这就要求预先存在保密或公开密钥供实现加密使用。第二个问题也很重要,因为涉及防止消息重放攻击。鉴别和交换
2、协议如果用于连接完整的密钥被在线建立,那么事实证明将鉴别和密钥交换功能组合在一个协议中是重要的(鉴别和密钥交换协议)。最常用的协议,该协议使得通信各方互相鉴别各自的身份,然后交换会话密钥。重放及对策常见的消息重放攻击形式有:简单重放:攻击者简单复制一条消息,以后在重新发送它;可被日志记录的复制品:攻击者可以在一个合法有效的时间窗内重放一个带时间戳的消息;不能被检测到的复制品:这种情况可能出现,原因是原始信息已经被拦截,无法到达目的地,而只有重放的信息到达目的地。反向重放,不做修改。向消息发送者重放。当采用传统对称加密方式时,这种攻击是可能的。因为消息发送者不能简单地识别发送的消息和收到的消息在
3、内容上的区别。对策:针对同一验证者的重放:非重复值针对不同验证者的重放:验证者的标识符非重复值的使用A.序列号:计数的策略:对付重放攻击的一种方法是在认证交换中使用一个序数来给每一个消息报文编号。仅当收到的消息序数顺序合法时才接受之。但这种方法的困难是要求双方必须保持上次消息的序号。B.时间戳:A接受一个新消息仅当该消息包含一个时间戳,该时间戳在A看来,是足够接近A所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步C.验证者发送随机值(如询问):不可预测、不重复2时间戳在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到一旦时钟同步失败要么协议不能正常服务,影响可用性(avai
4、lability),造成拒绝服务(DOS)要么放大时钟窗口,造成攻击的机会时间窗大小的选择应根据消息的时效性来确定询问 /应答方式 (Challenge/Response) A期望从B获得一个消息首先发给B一个随机值(challenge) B收到这个值之后,对它作某种变换,并送回去 A收到B的response,希望包含这个随机值在有的协议中,这个challenge也称为nonce可能明文传输,也可能密文传输这个条件可以是知道某个口令,也可能是其他的事情变换例子:用密钥加密,说明B知道这个密钥;简单运算,比如增一,说明B知道这个随机值询问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先
5、有握手的额外开销,这就抵消了无连接通信的主要特点。相互鉴别协议在理论上,相互鉴别可通过组合两个单向鉴别交换协议来实现。然而,这种组合需要被仔细地考察,因为有可能这样的组合易受窃听重放攻击。另外,设计协议消息数比相应的单向交换协议的消息数的两倍少得多的相互鉴别交换协议是可能的。因此,由于安全性和性能的原因,相互鉴别交换协议必须为此目的而特别地进行设计。讨论议题密码协议鉴别协议鉴别与密钥交换协议鉴别与交换协议实例讨论议题鉴别与交换协议实例 CHAP S/Key双向鉴别单向鉴别 Kerberos X.509鉴别服务CHAP (challenge-Handshake Authentication Pr
6、otocol)拨号用户鉴别协议,是一种通过PPP链接传送数据,完成对PPP链接的身份鉴别协议。CHAP主要适用于NAS (network access Server)对来自于PSTN或ISDN的电路交换连接、拨入连接或专有连接的身份鉴别询问握手鉴别协议(CHAP):RFC1994采用提问/应答方式进行鉴别,通过在PPP链接的双方进行一次三次握手,完成对对方身份的鉴别3CHAP示意Challenge = SessionID,Challenge StringRespond = MD5 Hash(SessionID,ChallengeString,User Password),User NameCl
7、ientServerSucceed/failedChallengeRespond工作原理 -i CHAP是验证方与被验证方之间的三次握手来验证访问者身份的协议。验证方周期地验证登录和访问请求,一旦检测到,就生成和发送一个随机数challenge给被验证者。被验证者据此生成一个单向加密的摘要值作为应答(response)传给验证方。验证方根据收到的response来判断用户身份合法性。工作原理 -ii CHAP成功鉴别的前提是验证双方共享同样的秘密值和单向加密(HASH)算法。实际验证中,服务器端在发出随机数的同时,会和客户端一道以共享的秘密值和challenge为因子计算报文摘要,并把二者计算
8、的结果汇总、比较、若相等,则认可该次访问,反之予以拒绝HASH算法HASH算法HASH(A,X)Response=HASH(A,X)Succeed/Failed秘密值A Challenge X秘密值A验证方(server)被验证方(client) CHAP鉴别原理CHAP协议的优点与缺点优点协议简单、易于实现虽为单向鉴别协议,但可以通过在另一方的配置请求,实现对通信实体的双向鉴别通过不断地改变鉴别标识符和提问消息的值来防止重放(playback)攻击。利用周期性的提问防止通信双方在长期会话过程中被攻击。缺点 CHAP鉴别基于共享密钥,给密钥管理带来巨大不便,不适合于大规模用户鉴别 CHAP要求
9、提供明文的密钥形式。讨论议题鉴别与交换协议实例 CHAP S/Key双向鉴别单向鉴别 Kerberos X.509鉴别服务4S/Key 协议背景避免以下的攻击搭线监听网络上传输的口令及用户,并在适当的时候利用这些信息,登录计算机阅读或修改用户信息由贝尔实验室于年公开发布并在RF1760中定义,是基于MD4、MD5的一次性口令生成机制 S/key protocol主要用于防止重放攻击S/KEY验证程序其安全性依赖于一个单向函数。为建立这样的系统A输入一随机数R,计算机计算f(R), f(f(R),f(f(f(R),,共计算100次,计算得到的数为x1, x2 , x3, x100,A打印出这样的
10、表,随身携带,计算机将x101存在A的名字旁边。第一次登录,键入x100,以后依次键入xi,计算机计算f(xi),并将它与xi+1比较。S/KEY协议组成三个组成部分客户端程序:为端用户提供登录程序,并在得到服务器质询值时,获取用户私钥,并调用口令计算器形成本次鉴别口令,然后发送给服务器程序口令计算器:负责产生本次口令服务器程序:验证用户口令整个过程中,用户的私钥不会暴露在网络上客户端服务器口令计算器端用户主机服务器三个组成部分关系用户登录客户端向服务器发出登录请求服务器向客户端发出S/KEY质询客户端要求用户键入私钥私钥与服务器发出的质询被送入计算器计算器产生本次口令客户端将口令传给服务器,
11、服务器对之进行验证S/KEY的口令生成准备S/KEY协议要求用户的私钥不少于8字节(64bit) ,它把种子和私钥粘接,进行MD4/MD5散列,并将输出分两部分异或并产生64bit输出.生成根据登录服务器的提示,多次使用安全散列函数,产生一个64-bit 最后的输出输出取64-bit一次性口令并按照可读的形式显示它。(根据包含211单词的字典,对应六个英文单词)5讨论议题鉴别与交换协议实例 CHAP S/Key双向鉴别单向鉴别 Kerberos X.509鉴别服务双向鉴别传统加密方法 Needham/Schroeder Protocol 1978 Denning Protocol 1982 K
12、EHN92公钥加密方法一个基于临时值握手协议:WOO92a一个基于临时值握手协议:WOO92bNeedham/Schroeder Protocol 1978传统加密方法1、A KDC:IDA|IDB|N12、KDC A:EKaKs|IDB|N1|EKbKs|IDA3、A B:EKbKs|IDA4、B A:EKsN25、A B:EKsf(N2)保密密钥Ka和Kb分别是A和KDC、B和KDC之间共享的密钥。本协议的目的就是要安全地分发一个会话密钥Ks给A和B。A在第2步安全地得到了一个新的会话密钥,第3步只能由B解密、并理解。第4步表明B已知道Ks了。第5步表明B相信A知道Ks并且消息不是伪造的。
13、第4,5步目的是为了防止某种类型的重放攻击。特别是,如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。Needham/Schroeder Protocol 1978上述方法尽管有第4,5步的握手,但仍然有漏洞。假定攻击方C已经掌握A和B之间通信的一个老的会话密钥。C可以在第3步冒充A利用老的会话密钥欺骗B。除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。如果C可以中途阻止第4步的握手信息,则可以冒充A在第5步响应。从这一点起,C就可以向B发送伪造的消息而对B来说认为是用认证的会话密钥与A进行的正常通信。Denning Protocol
14、 1982 改进:1、A KDC:IDA|IDB2、KDC A:EKaKs|IDB|T|EKbKs|IDA|T3、A B:EKbKs|IDA|T4、B A:EKsN15、A B:EKsf(N1)| Clock - T | t1+ t2其中:t1是KDC时钟与本地时钟(A或B)之间差异的估计值;t2 是预期的网络延迟时间。6Denning Protocol 比Needham/Schroeder Protocol在安全性方面增强了一步。然而,又提出新的问题:即必须依靠各时钟均可通过网络同步。如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者窃听消息,并在以后当时间戳对接收者来说成为当前时重放
15、给接收者。这种重放将会得到意想不到的后果。(称为抑制重放攻击)。一种克服抑制重放攻击的方法是强制各方定期检查自己的时钟是否与KDC的时钟同步。另一种避免同步开销的方法是采用临时数握手协议。KEHN921、A B:IDA|Na2、B KDC:IDB|Nb| EKbIDA| Na| Tb3、KDC A:EKaIDB|Na|Ks| Tb | EKbIDA| Ks| Tb | Nb4、A B:EKbIDA| Ks| Tb | EKs Nb讨论议题鉴别与交换协议实例 CHAP S/Key双向鉴别单向鉴别 Kerberos X.509鉴别服务单向鉴别One-Way Authentication E-mail传统加密体系无需第三方的单向认证:1、A B:IDA|Na2、B A:EKabKs| IDB | f(Na)| Nb3、A B:EKsf(Nb)要求:Kab双方已经拥有。f函数可以定义为:f(x)=x+1传统加密体系有第三方的单向认证:1、A KDC:IDA | IDB| Na2、KDC A:EKaKs| IDB | Na| EKb