信息安全原理及应用:第09章数字签名与身份认证ppt课件.ppt
1,第9章 数字签名与身份认证,2,数字签名,数字签名(Digital Signature)是公开密钥体系加密技术发展的一个重要的成果。,3,不可否认性的应用需求,网络通信中,希望有效防止通信双方的欺骗和抵赖行为。 简单的报文鉴别技术只能使通信免受来自第三方的攻击,无法防止通信双方之间的互相攻击。 Y 伪造一个不同的消息,但声称是从 X 收到的;X可以否认发过该消息,Y 无法证明 X 确实发了该消息;原因:鉴别技术基于秘密共享。数字签名技术为此提供了一种解决方案。,4,数字签名的功能,是对现实生活中笔迹签名的功能模拟。 必须能够用来证实签名的作者和签名的时间。 对消息进行签名时,必须能够对消息的内容进行鉴别。 签名应具有法律效力,必须能被第三方证实用以解决争端。 必须包含对签名进行鉴别的功能。,5,数字签名的设计目标,签名的比特模式是依赖于消息报文的,也就是说,数据签名是以消息报文作为输入计算出来的,签名能够对消息的内容进行鉴别;数据签名对发送者来说必须是惟一的,能够防止伪造和抵赖;产生数字签名的算法必须相对简单易于实现,且能够在存储介质上保存备份;对数字签名的识别、证实和鉴别也必须相对简单,易于实现;伪造数字签名在计算上是不可行的,无论攻击者采用何种方法(利用数字签名伪造报文,或者对报文伪造数字签名)。,6,数字签名的解决方案,可分为两类:直接数字签名方案;基于仲裁的数字签名方案。,7,直接数字签名,实现比较简单,在技术上仅涉及到通信的源点X和终点Y双方。 终点Y需要了解源点X的公开密钥Kux。 发送方A可以使用其私有密钥KRx对整个消息报文进行加密来生成数字签名。 更好的方法是使用KRx对消息报文的散列码进行加密来形成数字签名。,8,直接数字签名的安全性,方案的安全性依赖于发送方X私有密钥的安全性。 发送方可以声称自己的私有密钥丢失或被盗用,而否认其发送过某个报文。 改进:每个签名报文中包含一个时间戳。 问题:X 的私有密钥确实在时间 T 被窃取;攻击者窃取 X 的密钥后,则可能发送带有 X 的签名报文,附上一个等于 T 的时间戳,接受者无法判别。,9,基于仲裁的数字签名,通过引入仲裁来解决直接签名方案中的问题。 仲裁者必须是一个所有通信方都能充分信任的仲裁机构。 基本工作方式(假定用户X和Y之间进行通信):每个从X发往Y的签名报文首先被送给仲裁者A;A检验该报文及其签名的出处和内容,然后对报文注明日期,并附加上一个“仲裁证实”的标记发给Y。,10,基于仲裁的数字签名-对称密钥加密方式,发送方X和仲裁A共享一个密钥Kax 。 数字签名由X的标识符IDx和报文的散列码H(M)构成 ,用密钥Kax进行加密。过程:(1)X A :MEKax( IDxH(M) )。(2)A Y :EKay( IDxMEKax( IDxH(M) )T )。 (3) Y存储报文M及签名。,11,基于仲裁的数字签名-对称密钥加密方式,争端解决方式Y A :EKay( IDxMEKax( IDxH(M) ) )。仲裁A可用Kay恢复出IDx 、M及签名,然后再用Kax对签名解密并验证其散列码。 特点:Y 不能直接验证 X 的签名。双方都需要高度相信 AY 相信 A 已对消息认证,X 不能否认其签名;X 信任 A 没有暴露 Kxa,无人可伪造 DS;双方都信任 A 处理争议是公正。问题:报文 M 明文传送给,有可能被窃听。,12,基于仲裁的数字签名-对称密钥加密方式,明文加密的方案(1)X A :IDxEKxy (M)EKax( IDxH (EKxy(M) )。(2)A Y :EKay( IDxEKxy (M)EKax( IDxH (EKxy(M)T )。特征:X 与 Y 之间共享密钥 Kxy 。DS 的构成:IDx 和消息密文的散列码用 Kxa 加密。DS 的验证:A 解密签名,用散列码验证消息。A 只能验证消息的密文,而不能读取其内容。A 将来自 X 的所有信息加上时间戳并用 Kay 加密后发送给Y 。问题:A 和发送方 X 联手可以否认签名的信息。A和接收方 Y 联手可以伪造发送方 X 的签名。,13,基于仲裁的数字签名公开密钥加密方式,特点:仲裁者看不见消息的内容。过程:X 对报文 M 进行两次加密。经过双重加密后,报文 M 只有 Y 能够阅读,A 不能读取 XA: IDx | EKRx IDx | EKUy EKRx(M) A 能进行外层的解密,从而证实报文确实是来自 X 的因为只有 X 拥有KRx 。验证后 A 向 Y 发送用 KUy 加密的报文,其中包括时间戳 T AY: EKRa IDx | EKUy EKRx(M) | T优点:通信各方之间无须共享任何信息,从而避免了联手作弊;只要 KRa 安全,则不会出现伪造 A 发送的消息;消息的内容是保密的,包括对 A 在内。,14,认证( Certification),证实通信中某一方的身份。 两个基本的方式 :相互鉴别(mutual Certification);单向鉴别 (one-way Certification)。,15,相互鉴别,目的:用于通信各方之间的相互进行身份认证,同时交换会话密钥。 需要解决的核心问题:密钥交换的机密性和时效性。机密性防止会话密钥被篡改或和泄露;用户身份信息和会话密钥都必须以密文形式交换;前提:通信各方与事先保存一个密钥(共享或公开密钥)。时效性为了防止消息的重放攻击。,16,报文重放(replay) 攻击,攻击过程:窃听。复制或部分复制一个报文。在以后的某个时间重放 可以拦截原信息,用重放消息取代;可以在一个合法有效的时间窗内重放一个带时间戳的消息。后果扰乱接收者正常的工作。 窃取会话密钥,假扮成一个通信方欺骗其他人。,17,重放攻击问题的解决方式,报文序号方式在认证交换中对消息报文编排序号,消息序号合法时才接受。问题:通信各方必须保持序号同步。时间戳方式在报文中附加发送的时间戳;接收时只有报文时间戳与本地时间足够接近时,才认为是一个合法的新报文。问题:通信各方的时钟同步比较困难;时间窗口的大小如何确定。,18,基于对称密钥加密的相互鉴别,须具备的条件可信的密钥分配中心(KDC);通信各方都与 KDC 共享一个主密钥;主密钥 Ka 和 Kb 是安全。目的: KDC 为通信双方A、B产生短期的会话密钥 Ks 。工作过程:(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),19,基于对称密钥加密的相互鉴别过程,A在会话开始时首先向KDC发送报文,包含A和B的标识和一个与时间相关的现时标识符N1 。A就可安全地从KDC获得一个新的会话密钥Ks 。A将用Kb加密的会话密钥Ks发送给B,这个会话密钥只有B能够通过解密获得。B向A发送用会话密钥加密的现时值N2,向A证实B已经正确获得了会话密钥 KsA使用新建立的会话密钥Ks对f(N2)加密后返回给B,20,基于对称密钥加密的相互鉴别,问题:过期的会话密钥 X可冒充A,使用过期密钥,并重放第3步的报文,就可以欺骗B。 改进 :增加时间戳机制 :需要通信各方周期性地与KDC通信进行时钟校准。 通信时使用现时握手。 1,2结合。,21,基于对称密钥加密的相互鉴别,改进后的协议过程 (增加时间戳):(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)T 是时间戳,需满足:其中,C 本地时间, t1 时钟偏差, t2 网络时延。,22,基于对称密钥加密的相互鉴别,改进后的协议过程 (增加时间戳和现时握手 )(1) A B: IDA Na(2) B KDC :IDBNbEKb ( IDANaTb )(3) KDC A :EKa (IDBNaKsTb)EKb (IDAKsTb) Nb(4) A B:EKb (IDAKsTb) EKs(Nb)其中,称EKb ( IDANaTb )为访问B的“票据”(ticket)。,23,基于公开密钥加密的相互鉴别,过程(1)A AS :IDAIDB(2)AS A :CACB(3)A B:CACB EKUb(EKRa(KsT)其中:A 的公钥和私钥分别为 KUa 和 Kra ;B 的公钥和私钥分别为 KUb 和 KRb ;AS(鉴别中心) 的公钥和私钥分别为 KUas 和 KRas ;CA = EKRas(IDAKUaT),A 的公开密钥证书;CB = EKRas(IDBKUbT),B 的公开密钥证书。,24,基于公开密钥加密的相互鉴别,改进(使用现时值N代替时间戳)(1) A KDC :IDAIDB(2) KDC A :EKRk ( IDBKUb)(3) A B: EKUb ( NaIDA )(4) B KDC :IDBIDAEKUk( Na )(5) KDC B: EKRk ( IDAKUa)EKUb ( EKRk (NaKsIDB )(6) B A : EKUa( EKRk (NaKsIDB )Nb )(7) A B : EKs ( Nb ),25,单向鉴别,One-Way Authentication。主要用于电子邮件认证等应用。特点:发方和收方无需同时在线。鉴别时收发方不能在线交互。,26,基于对称密钥加密的单向鉴别,以KDC策略为基础。 具体过程:(1) A KDC :IDAIDBN1(2) KDC A :EKa ( KsIDBN1EKb ( KsIDA) )(3) A B: EKb ( KsIDA)EKs(M)其中,Ka、Kb分别为A和B与KDC间的共享主密钥,N1为一个现时值。,27,基于公开密钥加密的单向鉴别,保密性为主: A B :EKUb (Ks)EKs(M)。 签名和鉴别: A B :MEKRa (H(M)。保密和鉴别: A B :EKUb( MEKRa (H(M) )。数字证书: A B :MEKRa (H(M)EKRas (TIDAKUa)。,28,数字签名标准(DSS),美国国家标准技术研究所(NIST)公布的美国联邦信息处理标准FIPS PUB 186。 DSS最早发表于1991年,并于1993年和1996年进行了修改。 DSS基于安全散列算法(SHA)并设计了一种新的数字签名技术,即DSA(数字签名算法)。,29,数字签名算法( DSA ),设计基础基于离散对数的计算。三个p、q、g 作为全局公开的密钥分量: p是一个素数,其长度在512比特到1024比特之间,可以对p进行更精确的描述:p是素数,且满足2L-1 p 2L(其中512 L 1024,且L是64的倍数);q是一个长度在160为素数,且q是p-1的一个素因子,即2159 p 2160,且(p-1) mod q = 0;g定义为g = h(p-1)/q mod p ,其中h是一个整数,且满足1 h (p-1),故g = h(p-1)/q mod p 1。用户的私有密钥x必须是一个1 (p- l) 之间的随机数或伪随机数(即1 x p)。 公开密钥y利用私有密钥计算出来的:y = gx mod p 。,30,DSS的数字签名方案,31,DSS的数字签名方案,同时采用散列函数H()和签名函数Sig()。签名函数的输入是散列函数输出的散列码及一个用于生成签名的随机数k。签名函数还需要使用发送方的私有密钥(用KRa表示)和由参数集构成了组成一个全局公开密钥(KUG)。 签名函数输出的最终结果(即数字签名)由两个分量组成,记为s和r。 在接收端,验证函数的输入包括了报文的散列码、数字签名、全局公开密钥KUG以及发送方公开密钥KUa 。,32,签名函数Sig(),输入为:公开的密钥分量(p,q,g);用户私有密钥x;报文的散列码H(M),报文的散列码采用SHA-1算法计算;一个额外的整数密数k,k是随机或伪随机整数,且对每个签名是惟一,也就是说对每一个报文需要选择不同的k。,33,验证函数(Ver),34,DSS的签名函数和验证函数,35,身份认证技术及协议,数字签名和鉴别技术的一个最主要的应用领域就是身份认证。,36,纯认证系统模型,认证的基本思想是通过验证称谓者的一个或多个参数的真实性和有效性,以验证其是否名副其实。身份认证是系统对网络主体进行验证的过程,用户必须向证明他是谁。,37,身份认证技术和数字签名的区别,两者都是确保数据真实性的安全措施。 认证一般是基于收发双方共享的保密数据,以证实被鉴别对象的真实性;而用于验证签名的数据是公开的。 认证允许收发双方互相验证其真实性,数字签名则允许第三者验证。 对于数字签名来说,发送方不能抵赖、接收方不能伪造,并且可由仲裁进行调解,而认证却不一定具备这些特点。 认证技术的实现可能需要使用数字签名技术。,38,身份认证系统的特征,验证者正确识别合法客户的概率极大。攻击者伪装示证者骗取验证者信任的成功率极小化。通过重放认证信息进行欺骗和伪装的成功率极小。计算有效性,实现身份认证的算法计算量足够小。通信有效性,实现身份认证所需的通信量足够小。秘密参数能够安全存储。第三方的可信赖性。可证明安全性。,39,基本的身份认证方法,主体特征认证视网膜扫描、声音验证、指纹识别器。口令机制口令是约定的代码,假设只有用户和系统知道。智能卡访问不但需要口令,也需要使用物理智能卡。一次性口令用户每次使用不同的口令,需要口令发生器设备。PAP 协议(Password Authentication Protocol)用于 PPP(点对点)协议的身份认证协议,明文口令传输。CHAP 协议(Challenge Handshake Authentication Protocol)不在网络上传送口令信息, 比 PAP 具有更强的安全性。,40,分布式环境中的身份认证,分布式网络环境由大量的客户工作站和分布在网络中的公共服务器组成;服务器向网络用户提供各种网络应用的服务,是关键;用户需要访问分布在网络不同位置上的服务。服务器的安全服务器需要通过授权来限制用户对资源的访问;授权和访问限制建立用户身份认证基础上的。网络系统的安全性可采用不同身份认证策略实现:基于客户工作站的用户身份认证;基于客户系统的身份认证;基于服务的用户身分认证。,41,身份认证协议 Kerberos,是美国麻省理工学院(MIT)开发的一种身份鉴别服务。 “Kerberos”的本意是希腊神话中守护地狱之门的守护者。 Kerberos提供了一个集中式的认证服务器结构,认证服务器的功能是实现用户与其访问的服务器间的相互鉴别。 Kerberos建立的是一个实现身份认证的框架结构。 其实现采用的是对称密钥加密技术,而未采用公开密钥加密。 公开发布的Kerberos版本包括版本4和版本5。,42,Kerberos 的设计目标,安全性能够有效防止攻击者假扮成另一个合法的授权用户。可靠性分布式服务器体系结构,提供相互备份。对用户透明性可伸缩能够支持大数量的客户和服务器。,43,Kerberos的设计思路(1),基本思路:使用一个(或一组)独立的认证服务器(AS Authentication Server),来为网络中的客户提供身份认证服务; 认证服务器 (AS),用户口令由 AS 保存在数据库中;AS 与每个服务器共享一个惟一保密密钥(已被安全分发)。会话过程:(1) C AS: IDC | PC | IDV(2) AS C: Ticket(3) C V : IDC | Ticket Ticket = EKVIDC | ADC | IDV,44,Kerberos的设计思路 (2),问题:用户希望输入口令的次数最少。口令以明文传送会被窃听。解决办法 票据重用(ticket reusable)。 引入票据许可服务器(TGS - ticket-granting server)用于向用户分发服务器的访问票据;认证服务器 AS 并不直接向客户发放访问应用服务器的票据,而是由 TGS 服务器来向客户发放。,45,Kerberos中的票据,两种票据服务许可票据(Service granting ticket)是客户时需要提供的票据;用 TicketV 表示访问应用服务器 V 的票据。TicketV 定义为 EKv IDCADCIDVTS2LT2 。 票据许可票据(Ticket granting ticket)客户访问 TGS 服务器需要提供的票据,目的是为了申请某一个应用服务器的 “服务许可票据”;票据许可票据由 AS 发放;用 Tickettgs 表示访问 TGS 服务器的票据;Tickettgs 在用户登录时向 AS 申请一次,可多次重复使用;Tickettgs 定义为 EKtgs IDCADCIDtgsTS1LT1 。,46,Kerberos V4认证过程示意图,47,Kerberos V4认证过程(1),第一阶段,认证服务器的交互,用于获取票据许可票据:(1) C AS :IDCIDtgsTS1(2) AS C :EKc KC,tgsIDtgsTS2LT2Tickettgs 其中:Tickettgs = EKtgs KC,tgsIDCADCIDtgsTS2LT2,48,Kerberos V4认证过程(2),第二阶段,票据许可服务器的交互,用于获取服务许可票据: (3) C TGS :IDVTickettgsAUC(4) TGS C :EKc,tgs KC,VIDVTS4TicketV 其中:Tickettgs = EKtgs KC,tgsIDCADCIDtgsTS2LT2TicketV = EKv KC,VIDCADCIDVTS4LT4AUC = EKc,tgs IDCADCTS3,49,Kerberos V4认证过程(3),第三阶段,客户与应用服务器的交互,用于获得服务:(5) C V :TicketVAUC(6) V C :EKc,v TS5 + 1其中: TicketV = EKv KC,VIDCADCIDVTS4LT4 AUC = EKc,v IDCADCTS5,50,Kerberos V4中各关键元素的说明(1),51,Kerberos V4中各关键元素的说明(2),52,Kerberos V4中各关键元素的说明(3),53,Kerberos 领域(realm),构成:一个完整的 Kerberos 环境包括一个 Kerberos 服务器,一组工作站和一组应用服务器。Kerberos 服务器数据库中拥有所有参与用户的 UID 和口令散列表。Kerberos服务器必须与每一个服务器之间共享一个保密密钥。所有用户均在 Kerberos 服务器上注册。所有服务器均在 Kerberos 服务器上注册。领域的划分是根据网络的管理边界来划定的。,54,Kerberos 领域间的互通,跨领域的服务访问一个用户可能需要访问另一个 Kerberos 领域中应用服务器;一个应用服务器也可以向其他领域中的客户提供网络服务。领域间互通的前提 支持不同领域之间进行用户身份鉴别的机制; 互通领域中的 Kerberos 服务器之间必须共享一个密钥; 同时两个 Kerberos 服务器也必须进行相互注册。,55,远程服务访问的认证过程,56,Kerberos v4 的缺陷,依赖性加密系统的依赖性(DES)、对 IP 协议的依赖性和对时间依赖性。字节顺序票据有效期有效期最小为5分钟,最大约为21小时, 往往不能满足要求。认证转发能力不允许签发给一个用户的鉴别证书转发给其他工作站或其他客户使用。领域间的鉴别管理起来困难。加密操作缺陷非标准形式的 DES 加密(传播密码分组链接 PCBC)方式,易受攻击。会话密钥存在着攻击者重放会话报文进行攻击的可能。口令攻击未对口令提供额外的保护,攻击者有机会进行口令攻击。,57,Kerberos v5 的改进,加密系统支持使用任何加密技术。通信协议IP 协议外,还提供了对其他协议的支持。报文字节顺序采用抽象语法表示(ASN.1)和基本编码规则(BER)来进行规范。票据的有效期允许任意大小的有效期,有效期定义为一个开始时间和结束时间。鉴别转发能力更有效的方法来解决领域间的认证问题口令攻击提供了一种预鉴别(preauthentication)机制,使口令攻击更加困难。,58,X.509认证服务,由ITU-T制定的。 X.509是ITU-T的X.500(目录服务)系列建议中的一部分。 X.500是一套有关目录服务的建议,而X.509定义了目录服务中向用户提供认证服务的框架。 X.509协议的实现基于公开密钥加密算法和数字签名技术。,59,X.509 证书,证书由可信证书权威机构(CA - CertficateAuthority)创建用户或 CA 将证书存放在目录服务器中;表示法:证书机构 Y 颁发给用户 X 的证书表示为 YCA 表示 CA 颁发给用户 A 的证书。CA 用其私有密钥对证书进行了签名用户可用 CA 的公开密钥验证证书的有效性;任何拥有 CA 公开密钥的用户都可以从证书中提取被该证书认证的用户的公开密钥;除了CA外,任何用户都无法伪造证书或篡改证书的内容;由于证书是不可伪造的,可将证书存放数据库(即目录服务)中,而无需进行特殊的保护。,60,X.509证书格式,61,用户证书的获取,通信双方 A 和 B 如何获得对方的证书小型网络中,共同信任同一个 CA。通过访问公共目录服务获取对方的证书,或直接传递。大型网络, 多个 CA,层次化管理。CA 之间交换公开密钥(即交换证书)。,62,X.509的分层结构,63,证书的撤消,撤销的情况:证书过期; 在证书过期之前申请将其作废。例如,用户密钥被泄露,CA的密钥被泄露,或者用户不再使用某一个CA颁发的证书等。,64,X.509 的认证(1),单向认证,65,X.509 的认证(2),双向认证,66,X.509 的认证(3),三向认证,67,X.509 V3的功能扩展,密钥和策略信息这类扩展用于指示有关主体和颁发者的附加信息和与证书相关的策略。证书主体和颁发者的属性这类扩展支持可选主体名字或颁发者名字。证书路径约束这类扩展字段用于在签发给CA的证书中包含一定的约束。,