《认证与证书》PPT课件.ppt
《《认证与证书》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《认证与证书》PPT课件.ppt(93页珍藏版)》请在三一办公上搜索。
1、认证与证书,典型的认证应用,1Kerberos认证Kerberos认证服务是由麻省理工学院的Project Athena针对分布式环境的开放式系统开发的认证机制。Kerberos提供了一种在开放式网络环境下(无保护)进行身份认证的方法,它使网络上的用户可以相互证明自己的身份。它已被开放软件基金会(OSF)的分布式计算环境(DCE),以及许多网络操作系统供应商所采用。常用的有两个版本:第4版和第5版。其中版本5更正了版本4中的一些安全缺陷。,Kerberos认证,Athena的计算环境由大量的匿名工作站和相对较少的独立服务器组成。服务器提供例如文件存储、打印、邮件等服务,工作站主要用于交互和计算
2、。我们希望服务器能够限定仅能被授权用户访问,能够验证服务的请求。在此环境中,存在如下3种威胁:(1)用户可以访问特定的工作站并伪装成该工作站用户。(2)用户可以改动工作站的网络地址伪装成其它工作站。(3)用户可以根据交换窃取消息,并使用重放攻击来进入服务器。,Kerberos认证,在这样的环境下,Kerberos认证身份不依赖主机操作系统的认证、不信任主机地址、不要求网络中的主机保持物理上的安全。在整个网络中,除了Kerberos服务器外,其他都是危险区域,任何人都可以在网络上读取、修改、插入数据。解决的问题:认证、数据完整性、保密性,作为一种认证协议,特点基于口令的认证协议利用对称密码技术建
3、立起来的认证协议可伸缩性可适用于分布式网络环境环境特点User-to-server authentication密钥存储方案,认证协议:设计一个协议(一),假设A和B要进行通讯,A和B有一个共享的密钥Kab,如何利用这个密钥进行认证,并且商定一个会话密钥Ks,Kab,好的,我用它试试,可我怎么知道你是B呢,告诉你Ks,以后就用它,别让别人知道,我是A,如果你知道Kab,那么你就知道Ks,我就知道你是A,认证协议:设计一个协议(二),假设A和B要进行通讯,A和B与KDC各有一个共享密钥Ka和Kb,如何利用这两个密钥进行认证,并且商定一个会话密钥Ks,AKDC:(IDA|IDB)KDCA:EKaK
4、s|IDB|EKb(Ks,IDA)AB:EKb(Ks,IDA)|EKs(M),Kb,我是A,我想和B通讯,Ka,我把必要的信息告诉你,我把消息给你,如果你是B,你就可以解开,会话密钥Ks,由A送给B的认证信息,针对认证协议的一些常见攻击手段和相应对策,中间人攻击(MITM,man in the middle),如果通讯双方没有任何先决条件,那么这种攻击总是存在的A和B的协商过程很容易受到这一类攻击对策:增加A和B之间的先决知识,常见攻击和对策(二),重放攻击(replay attacks),偷听者可以记录下当前的通讯流量,以后在适当的时候重发给通讯的某一方,达到欺骗的目的对策:保证通讯的唯一性
5、增加时间戳,常见攻击和对策(三),字典攻击只要能够获得口令的密文形式,就可以实施字典攻击在线和离线字典攻击的有效性判断一个口令是有效的对策用户和管理员:选择好的口令协议设计:对口令的使用过程中,不要泄露口令的信息在密文中增加口令以外的额外信息,常见攻击和对策(四),已知明文攻击在许多认证协议中,一方会选择一个随机数,并且明文传输这个随机数,另一方加密这个随机数,并送回来Challenge/Response,所以偷听者可以获得已知明文/密文对对策:避免传输明文/密文对增加已知明文攻击的难度选择明文攻击在认证协议中,如果随机数的选择没有任何规则,那么中间人或者假冒方就有可能选择随机数,从而实施选择
6、明文攻击对策随机数的选择限制,认证协议中的常用技术(一),时间戳A收到一个消息,根据消息中的时间戳信息,判断消息的有效性如果消息的时间戳与A所知道的当前时间足够接近这种方法要求不同参与者之间的时钟需要同步在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到一旦时钟同步失败要么协议不能正常服务,影响可用性(availability),造成拒绝服务(DOS)要么放大时钟窗口,造成攻击的机会时间窗大小的选择应根据消息的时效性来确定,认证协议中的常见技术(二),询问/应答方式(Challenge/Response)A期望从B获得一个条件首先发给B一个随机值(challenge)B收到这个值之后
7、,对它作某种变换,得到response,并送回去A收到这个response,可以验证B符合这个条件在有的协议中,这个challenge也称为nonce可能明文传输,也可能密文传输这个条件可以是知道某个口令,也可能是其他的事情变换例子:用密钥加密,说明B知道这个密钥;简单运算,比如增一,说明B知道这个随机值常用于交互式的认证协议中,假设:我去邮件服务器申请邮件,服务程序必须能验证我是我所申明的那人笨办法:服务器让我输入口令(那么每个服务器必须知道用户的口令,如果网络有成千个用户,那么每个服务器就要知道成千条口令,如果想改变口令,就必须联系所有服务器,通知它们修改口令等)解决:每个用户知道自己的口
8、令每个服务器也知道自己的口令引入一个认证服务器AS(Authentication Server),它知道所有的口令,包括用户和服务器,并将口令保存在一个单独的中央数据库中,且AS和每台服务器共享惟一的密钥。,例,简单的认证对话,()用户向AS请求认证,必须告诉AS使用哪个服务()AS请用户证明身份,用户将密码送给AS()AS将密码与数据库中的密码想比较,如果相等,则通过验证(注:AS不能将邮件服务的密码给用户,否则下次用户想再次使用邮件服务时,就可以绕过AS了)()AS给用户一张票,票里有用户名,并且用邮件服务器的密码加密()用户向邮件服务器提出请求,并用票来证明自己的身份()服务器用自己的密
9、码来解开票,如果能正确解密,并得到用户的名字,将这个名字与随票一起送上的用户名进行比较,相同则通过验证。,问题:当服务解密票据时,如何知道它是被正确地解密的呢?解决:应该在票据里包含有服务的名字当解开票后,通过找到自己的名字来判断解密的正确性。票(用户名服务器名)用服务器的口令加密,问题:假设AS在将用户的票传给用户过程中,被截取了,或复制了,然后伪造成用户,并用窃取的票向邮件服务器提出请求,则服务被盗用了。解决:票用户名用户地址服务器名因为伪造的工作站用户名相同,而网络地址不匹配。,(1)C AS:IDc|Pc|IDs(2)AS C:Ticket(3)C S:IDc|Ticket Ticke
10、t=EksIDc|ADc|IDs 其中:C=客户机 AS=认证服务器 S=服务器 IDc=C上用户的标识符 IDs=S的标识符 Pc=C上用户的口令 ADc=C的网络地址 Ks=AS和S共享的加密密钥|=连接,更加安全的认证对话,问题:()用户每次想要得到服务都要取一张新票()当用户每次向AS认证时,密码以明文形式在网络上传输,如果口令被窃取,就可以伪造此用户来使用任何服务了。解决的目标:()用户口令只输入一次()口令不能在网络上进行明文传输解决的方法:引入票据授权TGS(Ticket-Granting Server)服务器,()用户与AS通讯,用户向AS证明自己的身份,并取得一张票据授权票,
11、现在用户想从邮件服务器上取邮件,但没有邮件服务器的票,所以用户要用“票据授权”票去取邮件服务的票。不需要使用口令去取新的服务票,票据授权票可以重复使用。,()用户取票据授权时,用户不将口令送给AS,只是送用户名。AS用用户名去查找用户口令,然后将票据授权票的包用用户的口令去加密。用户用自己的口令去解开包,就可以得到票据授权的票了。,问题:假设用户已在用一个不安全的工作站,在用户登录各种服务后,无意中在退出时留下了这些票,假设被人登录了工作站,并发现了这些票,就可以骗取服务,并将票拷走,永远使用它们。,解决:写一个程序,在用户退出时将票销毁。但销毁不是一个好的办法:因为当用户登录到工作站时,有人
12、打开一个监视网络并拷贝别人服务票据的程序并拷贝一份用户的票,当用户退出并离开,将它的工作站地址调整为用户刚登录时的地址,就可以欺骗服务器了。(因为它已有了用户名,用户地址,票据),解决:票不能永远合法,给每张票一个有效期票用户名用户地址服务名有效期时间戳,(1)C AS:IDc|IDtgs(2)AS C:EkcTickettgs(3)C TGS:IDc|IDc|IDv|Tickettgs(4)TGS C:Tickets(5)C S:IDc|TicketsTickettgs=EktgsIDc|ADc|IDtgs|TS1|Lifetime1Tickets=EksIDc|ADc|TS2|Liteti
13、me2,如果S能解开票,则说明票来自TGS,因为只有TGS和S共享KS,可以防止有人伪造假票。检查票是否在有效期内,如果过期,则服务拒绝,可以阻止使用旧票或偷来的票来骗取服务。测试票的用户名和地址是否匹配请求者的用户名和地址,如果测试失败,则说明使用了别有 票。,问题:(1)如果名字和地址匹配,证明了什么,什么也没有,因为票可以被偷走,用户名和网络地址都可以被改变,票也可以在有效期内被盗用(如果票的有效期为个小时,那么用户在使用了个小时后提前退出了,那个小时就有可能被盗用有效期内被盗用)。,(2)服务不能确定票的发送者是不是合法用户,服务之所以无法判断是因为它没有与用户共享一个秘密。(3)票据
14、授予票据的生存期,如果短,则需要重复输入口令,如果长,则对手可能重放攻击。(4)要求服务器向用户认证自己,伪造的服务器将会充当真的服务器,捕获来自用户的信息,而拒绝提供真正的服务。,解决:Kerberos认证,为了减轻每个服务器的负担,Kerberos把身份认证的任务集中在身份认证服务器上。Kerberos的认证服务任务被分配到两个相对独立的服务器:认证服务器AS(Authenticator Server)和票据许可服务器TGS(Ticket Granting Server),它们同时连接并维护一个中央数据库存放用户口令、标识等重要信息。整个Kerberos系统由四部分组成:AS,TGS,Cl
15、ient,Server。,Kerberos认证,Kerberos使用两类凭证:票据(ticket)和鉴别码(authenticator)。该两种凭证均使用私有密钥加密,但加密的密钥不同。,Kerberos认证,Ticket用来安全的在认证服务器和用户请求的服务之间传递用户的身份,同时也传递附加信息用来保证使用ticket的用户必须是Ticket中指定的用户。Ticket一旦生成,在生存时间指定的时间内可以被client多次使用来申请同一个server的服务。,Authenticator则提供信息与Ticket中的信息进行比较,一起保证发出Ticket的用户就是Ticket中指定的用户。Auth
16、enticator只能在一次服务请求中使用,每当client向server申请服务时,必须重新生成Authenticator。,Kerberos认证,这里我们首先介绍Kerberos认证版本4的内容,在叙述中我们使用以下记号:,Kerberos版本4认证过程,用户c请求服务s的整个Kerberos认证协议过程如下。,(1)C请求票据许可票据(2)AS发放票据许可票据 和C,TGS间会话密钥(3)C请求服务器票据(4)TGS发放服务器票据 和C,S间会话密钥(5)C请求服务(6)S提供服务器认证信息,以上是Kerberos V4过程的简要描述,详细过程分为以下3个阶段,共6步。,Kerberos
17、认证框图,(1)C请求票据许可票据用户得到票据许可票据的工作在登录工作站时进行。登录时用户被要求输入用户名,输入后系统会向认证服务器AS以明文方式发送一条包含用户和TGS服务两者名字的请求。C AS:IDC|IDtgs|TS1IDC是工作站的标识,其中的时间戳是用来防回放攻击的。,Kerberos版本4认证过程,(2)AS发放票据许可票据和会话密钥认证服务器检查用户是否有效,如果有效,则随机产生一个用户用来和TGS通信的会话密钥Kc,tgs,然后创建一个票据许可票据Tickettgs,票据许可票据中包含有用户名,TGS服务名,用户地址,当前时间,有效时间,还有刚才创建的会话密钥。票据许可票据使
18、用Ktgs加密。认证服务器向用户发送票据许可票据和会话密钥Kc,tgs,发送的消息用只有用户和认证服务器知道的Kc来加密,Kc的值基于用户的密码。,Kerberos版本4认证过程,AS C:EKcKc,tgs|IDtgs|TS2|Lifetime2|Tickettgs这里:Tickettgs=EKtgsKc,tgs|IDc|ADc|IDtgs|TS2|Lifetime2Lifetime与Ticket相关联,如果太短需要重复申请,太长会增加重放攻击的机会。,Kerberos版本4认证过程,AS发送的报文,(3)C请求服务器票据用户工作站收到认证服务器回应后,就会要求用户输入密码,将密码转化为DE
19、S密钥Kc,然后将认证服务器发回的信息解开,将票据和会话密钥保存用于以后的通信,为了安全性用户密码和密钥Kc则被删掉。,Kerberos版本4认证过程,当用户的登录时间超过了票据的有效时间时,用户的请求就会失败,这时系统会要求用户重新申请票据Tickettgs。用户可以查看自己所拥有的令牌的当前状态。一个票据只能申请一个特定的服务,所以用户必须为每一个服务s申请新的票据,用户可以从TGS处得到票据Tickets。用户首先向TGS发出申请服务器票据的请求。请求信息中包含s的名字,上一步中得到的请求TGS服务的加密票据Tickettgs,还有用会话密钥加密过的Authenticator信息。C T
20、GS:IDs|Tickettgs|AuthenticatorcTickettgs=EKtgsKc,tgs|IDc|ADc|IDtgs|TS2|Lifetime2 Authenticatorc=Ekc,tgsIDc|ADc|TS3,Kerberos版本4认证过程,用户向服务器申请服务的报文,(4)TGS发放服务器票据和会话密钥TGS得到请求后,用私有密钥Ktgs和会话密钥Kc,tgs解开请求得到Tickettgs和Authenticatorc的内容,根据两者的信息鉴定用户身份是否有效。如果有效,TGS生成用于c和s之间通信的会话密钥Kc,s,并生成用于c申请得到s服务的票据Tickets,其中包
21、含c和s的名字,c的网络地址,当前时间,有效时间和刚才产生的会话密钥。票据Tickets的有效时间是票据Tickettgs剩余的有效时间和所申请的服务缺省有效时间中最短的时间。Tgs最后将加密后的票据Tickets和会话密钥Kc,s用用户和TGS之间的会话密钥Kc,tgs加密后发送给用户。用户c得到回答后,用Kc,tgs解密,得到所请求的票据和会话密钥。TGS C:Ekc,tgsKc,s|IDs|TS4|Tickets这里:Tickets=EKsKc,s|IDc|ADc|IDs|TS4|Lifetime4,Kerberos版本4认证过程,(5)C请求服务用户申请服务s的工作与(3)相似,只不过
22、申请的服务由TGS变为s。用户首先向s发送包含票据Tickets和Authenticatorc的请求,s收到请求后将其分别解密,比较得到的用户名,网络地址,时间等信息,判断请求是否有效。用户和服务程序之间的时钟必须同步在几分钟的时间段内,当请求的时间与系统当前时间相差太远时,认为请求是无效的,用来防止重放攻击。C S:Tickets|Authenticatorc这里:Tickets=EKsKc,s|IDc|ADc|IDs|TS4|Lifetime4 Authenticatorc=Ekc,sIDc|ADc|TS5,Kerberos版本4认证过程,(6)S提供服务器认证信息当C也想验证S的身份时,
23、S将收到的时间戳加1,并用会话密钥Kc,s加密后发送给用户,用户收到回答后,用会话密钥解密来确定S的身份。S C:Ekc,sTS5+1通过上面六步之后,用户C和服务S互相验证了彼此的身份,并且拥有只有C和S两者知道的会话密钥Kc,s,以后的通信都可以通过会话密钥得到保护。,Kerberos版本4认证过程,Kerberos版本5,Kerberos版本5对Kerberos只做了两处改变:(1)因为意识到验证器用少于五分钟的有效期不足以防止攻击者进行重演。Kerberos版本5中,验证器真正只能用一次,因为服务器用“重演缓冲区”保存了最近一次提交的验证器的信息。如果攻击者试图截取验证器并重用它,“重
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 认证与证书 认证 证书 PPT 课件
链接地址:https://www.31ppt.com/p-5604428.html