OpenID认证协议三篇

2024-08-03

OpenID认证协议 篇1

关键词:云计算,网络安全,Open ID协议

随着云计算概念的普及,一些大型的门户网站开始使用云计算为用户提供更便利的服务,最基本的协议之一就是Open ID。随着该协议被广泛应用,其安全性问题也受到了关注,成为影响云计算大范围应用的一个因素。

1 Open ID协议的基本原理

1.1 Open ID的概念

Open ID是一个分布式身份认证系统。对于用户来说,只需要在一个中心网站上面注册过后,凭借注册后获得的Open ID URL,就可以不必在其他同样支持Open ID协议的网站上再次注册,免去用户在不同网站上面频繁的注册活动和省去了对不同帐号密码的记忆,达到凭一个账号可以在多个网站登录的效果。而对于服务提供者来说,利用中心网站提供的Open ID,不仅可以省去对用户账号的添加、删除、修改等管理工作,还可以快速沿用中心网站的庞大用户群。

使用Open ID时,URL就是用户的Open ID身份认证,可在多个网站上进行登录。URL的构成有两部分:账号名和提供Open ID身份的网址。例如:在中心网站openid.com上的账号是:user,对应的URL就是:http://user.openid.com/[1]。

1.2 Open ID的工作原理

1.2.1 角色定义

用户User (通常指用户浏览器)

服务提供者RP(Relying Party,又称为Service Provider)

身份提供者OP(Open ID Provider,又称为Open ID Server)

1.2.2 Open ID的工作流程

1)用户需要使用服务提供者RP的某项服务,首先提供自己的身份,即上面所述Open ID URL。

2)RP根据用户的Open ID URL与身份提供者OP进行通信。有两种通信模式:一种是不提示用户在后台进行;更常见的是第二种:RP在同一个浏览器窗口将用户引导到OP的身份认证页面。

3)用户在认证页面输入在OP之前设定的密码,向OP表明身份,完成认证。

4)认证结束,OP将用户引导回到RP,同时返回的信息包含认证用户的结果判断,以及RP需要的一些其他信息。

5)RP判断返回信息的有效性,如果认证成功,用户即可使用相应的服务[2]。

2 Open ID可能存在的风险

2.1 拒绝服务攻击

对于RP的连接请求,Open ID协议本身并没有设置检查机制,无法判断一个请求是否原始请求。恶意的RP可以重复请求连接, 认证或签名验证,并且在每个消息上指定系数与生成器,导致OP疲于运行每个消息,无法响应其他正常请求[3]。

2.2 网络钓鱼

RP将用户引导到OP的身份认证页面时,存在网络钓鱼攻击的风险。例如:恶意的RP事先构建某些提供OP服务的钓鱼网站,当用户输入其URL后,将用户重定向到伪造的页面,等用户输入密码后再跳转回RP网站。表面看来用户以为自己认证成功,但此时用户的Open ID和密码已被恶意RP窃取。

2.3 网络窃听

从Open ID的认证流程来看,当认证成功时会返回认证结果给服务提供者RP,同时伴随传送的还有用户的一些信息,例如Open ID URL,这个URL很容易被人截获并加以利用,攻击者可以从中截取一个成功的认证并重用[4]。

3 改进方案

3.1 选中的改进点

针对网络窃听,在Open ID身份提供者和服务提供者之间通过共享密钥的方法来应对。这里采用一个固定长度的随机字符串来加密URL,考虑采用RC4 流密码算法,加密后再把这个随机字符串放到密文的前面。因为之前已经协商好,服务提供者就能知道提取前面多少位的字符串来做为解密用的密钥,从而进行解密,得到正确的Open ID URL。

3.2 改进算法

流密码是指每次只加密数据流的一位或一个字节的加密方法。1949 年,香农(Shannon)提出只要一次一密的密码体制是绝对安全的,如果密钥流是随机的,除非是获得了密钥流,否则这个密码是不可破的。

基于这种思想,用随机生成的5位数字作为密钥来对产生的Open ID进行加密,由于密钥流的随机性和一次性,同一个Open ID的加密结果每次都是不同的,这样就能有效地对抗网络窃听。而这个随机密钥流要如何传送到服务提供端,有两种思路:第一种是把密钥流也加入到密文中,即使密钥流被人截获,也比较难判断出哪一部分是密钥了;第二种是以某种特定算法将密钥流再次进行加密然后通过TCP认证过程中传输的字段将其传输给服务提供方,服务提供者再用协商好的解密方法去获得密钥流。这里简单起见,采用第1种方法。

举例如下:假设在经过Open ID的验证之后,Open ID服务器要返回给服务提供者的URL为http://test.openid.com/ 而随机生成的5 位随机数字为12345,利用这5 位随机数字对Open ID URL进行一轮加密后得到的结果可能为grql5.- qans ll`mga*^m-,此时再将5位随机数字附加在密文前面,得出结果为:12345grql5.-qans,ll`mga*^m-,以此作为验证成功的数据发送给服务提供方,当然也可以把密钥流拆散放在密文当中的固定位置。当服务提供者接收到这样的密文时,由于事先协商好解密方法,知道应该提取前面的5 位字符来做为解密密钥,从而成功地获得用户的Open ID URL。而窃听方由于不知道密钥的位数、位置和加密算法,想要凭借截获的密文去获取用户的Open ID将变得较为困难。

4 结束语

本文首先阐述了Open ID协议的原理,接下来分析协议用于身份认证中存在的风险,最后针对网络窃听,设计了一种基于RC4流密码的加密方案,对用户的身份:Open ID URL进行加密。由于采用一次一密的方法,较好的预防了网络窃听。

参考文献

[1]豆丁网.什么是Open ID?Open ID概念、原理和案例介绍[EBOL].(2012).http://www.docin.com/p-65565629.html.

[2]刘为,郝梅.利用Open ID和OAuth进行安全授权及风险防范的分析[J].武汉商业服务学院学报,2011,25(5):90-93.

[3]张明西,刘晖.Open ID标准化认证机制的研究与应用[J].计算机应用与软件,2010,27(7):61-62.

OpenID认证协议 篇2

关键词 Kerberos 认证工作流程 AES RSA Diffie-Hellman密钥协商

中图分类号:TP311文献标识码:A

1引言

身份认证协议是一种特殊的通信协议,是通信双方身份认证的基础和前提,其目的在于通过协议消息的传递来达成通信主体身份的认证,并在此基础上为下一步的安全通信分配所使用的会话密钥。

Kerberos鉴别是一种使用对称密钥加密算法来实现通过可信第三方密钥分发中心(KDC)的身份认证系统。Kerberos是最早被广泛使用的认证服务。Kerberos实现了服务器和用户双向身份认证,防止了通信过程中非授权的用户获得未授权的服务或数据。

2 Kerberos认证协议

2.1 Kerberos认证协议基本原理

Kerberos使用对称密钥加密算法来实现通过可信第三方密钥分发中心的认证服务,它并不依赖于主机操作系统和地址,提供了通信双方之间相互的身份认证手段。

Kerberos协议中有3个参与方:包括通信双方及一个密钥分发中心(KDC)。当某个应用进程需要访问另外一个服务进程时,需要首先向服务器验证自己的身份,同时也要确认该服务器的身份,这样就构成了双向的身份认证。将发起认证服务的一方称为客户方,将客户方需要访问的对象称为服务器方。在Kerberos中,客户方证明自己身份的方式是向服务器方递交自己的“凭据”(ticket)。凭据是KDC发出的。客户方或者服务器方相信凭据真实性的基础是与KDC共享的密钥。一个凭据只在一段有限的时间内有效,称为凭据的生命期。

2.2 Kerberos认证协议的工作流程

Kerberos认证协议的工作流程如下:

(1)客户向认证服务器(Authentication Server,AS)提出“票据授予票据”(Ticket Granting Ticket,TCT)请求。

(2)Kerberos认证服务器返回会话密钥和一个TGT给客户。

(3)客户向TGS请求访问应用服务器的票据。

(4)票据授予服务器返回访问应用服务器的票据和新的会话密钥。

(5)客户用这个票据和认证器向应用服务器请求服务。

(6)服务器返回时间戳和服务器名来证明自己是客户需要的服务。

2.3 Kerberos协议的局限性

2.3.1 存在口令猜测攻击

Kerberos防止口令猜测攻击的能力很弱,Kerberos协议模型没有对口令进行额外的保护[6]。在Kerberos协议的第二个数据包中,会话密钥由KC进行加密的,而KC是由用户口令衍生而成的密钥,特别是当用户口令的强度不够时,将很容易受到基于密码字典的猜测攻击。攻击者通过以往搜集的用户信息,利用穷举的方法进行猜测攻击,并根据反馈的结果进行调整,最终获取用户的口令。

2.3.2客户方及服务器方缺乏相互认证

在Kerberos协议认证的过程中,服务器没有对用户进行认证,用户也没有确认服务器的真实性,导致了巨大的安全威胁。

对客户方而言,攻击者可以通过伪造认证服务器将以前截获的流程(2)中的数据包返回给用户,由于用户收到的是伪造的数据包和凭据信息,这些信息无法在后续过程中使用和验证,因此将造成用户验证失效,破坏系统的可用性。

对服务器方而言,攻击者可以利用认证服务器无需进行客户鉴别就产生“凭据”的漏洞对认证服务器进行拒绝服务攻击。例如攻击者在相当短的时间内发送大量的请求包,将造成认证服务器频繁创建票据许可票据,这将消耗大量的系统资源并有可能导致系统崩溃。

另外,不能提供抗否认认证机制,恶意软件攻击,抗重放攻击,密钥的管理、分配和存储等都是Kerberos协议面临的严峻问题。

3 Kerberos的改进

3.1 对称密钥与不对称密钥的结合使用

公共密钥方案相比对称密钥方案处理速度慢,因此通常把公共密钥与对称密钥技术结合起来实现最佳性能,即用公共密钥技术在通信双方之间传送对称密钥,而用对称密钥来实现对实际传输的数据加密和解密。

目前不对称密钥加密体制和对称密钥加密体制的代表算法分别为RSA算法和AES算法。RSA算法属于公共密钥方案,在密码体制中加密和解密采用两个不同的相关的密钥。每个通信方在进行保密通信的时候有两个相关的密钥,一个公开,另一个保密。对不同的通信对象只需保密自己的解密密钥即可,所以对加密密钥的更新非常便捷。AES算法属于对称密码体制,加密和解密采用相同的密钥,因此要求通信双方对密钥进行秘密分配,密钥的更新比较困难,而且对不同的通信对象,AES需产生和保管不同的密钥。AES算法的核心技术是在相信复杂函数可以通过简单函数迭代若干次得到的原则下,利用简单圈函数和对合等运算,充分利用了非线性运算,因此可以利用软件和硬件进行高速实现;而RSA算法中多次需要进行大整数的乘幂运算,通常密钥越长,加密效果越好,但加解密的开销也很大,相比而言效率上要相差很多。因此AES算法具有加解密速度快、安全强度高等优点,在军事、外交及商业应用中使用得越来越普遍,但是由于存在密钥发行与管理的不足,在提供数字签名、身份认证等方面需要与RSA算法共同使用,已达到更好的安全效果。

由于AES算法和RSA算法各具所长,因此我们可以将这两种算法相结合,得到一种新的加密方案,将其应用到Kerberos协议认证过程中去。这种加密方案的基本原理是:

在Kerberos通信双方的通信前期,若A要向B送去信息m,A可用A的保密的解密算法DA对m进行加密得到DA(m),再用B的公开算法E对DA(m)进行加密得到:

C=EB(DA (m))

B收到密文C后先用自己掌握的解密算法DB对C进行解密,再用A的公开算法EA对DAM进行节目得到EA(DA(m))=m,从而得到明文m。这样的加密方案既能保证数据传输的方便快捷,同时也确保了相关信息的安全性与机密性。

3.2 利用Diffie-Hellman密钥协商改进Kerberos协议

本文中提出的KDH协议利用了Diffie-Hellman密钥协商来克服Kerberos协议易受到口令攻击的安全缺陷。Diffie-Hellman密钥协商算法可以使得通信双方得到一个共享密钥从而安全地交换密钥。

假设x是素数,y是x的本原根,x和y作为全程的元素公开发布,不进行保密处理。A选择一个保密的随机整数a,并将A=ya mod x发送给B。B也选择一个保密的随机整数b,并将B=yb mod x发送给A。然后A计算K=Ba mod x,B计算K=Ab mod x,A和B通过计算可以得到相同的密钥。因为a和b是保密的,攻击者无法通过a或者b来获得K的信息,除非攻击者采用求离散对数难题的方式,但这几乎是不可行的。

在客户与认证服务器进行认证的过程中使用Diffie-Hellman密钥协商,采用强密钥KDH代替原中的弱密钥K进行加密,可以防范口令猜测攻击,缓解Kerberos协议中易受口令攻击的安全威胁。

4 总结

Kerberos协议是目前应用最广的网络身份认证协议,相对于其他身份认证协议而言,它有着安全性高和实用性高的特点。但是对称密钥方案的特性导致了Kerberos协议存在一定的局限性。本文深入研究了Kerberos认证协议规范,在此基础上提出了Kerberos协议改进方案,即在Kerberos协议中引人RSA+ AES相结合的数据传输加密方案和利用Diffie-Hellman密钥协商改进Kerberos协议,克服了传统Kerberos认证协议中容易受到口令攻击和密钥管理困难等缺点,提高了协议的安全性。Kerberos是一个运用很广泛的身份认证协议,随着应有的不断深入,为了使用网路的高度发展,我们对它的研究和改进还需要不断的进行。

参考文献

[1]文铁华,谷士文.增强Kerberos协议安全性的改进方案[J].通信学报,2004.25(6):76~79.

[2] 刘坤,杨世平.对基于对称密码体制的Kerberos协议改进[J].网络安全技术与应用,2005.(5):6~8.

[3]莫燕,张玉清,李学千.对Kerberos协议的攻击及对策研究[J].计算机工程,2005.31(10):66~69.

[4]王泽成,王文龙,李志斌.基于身份的可认证会议密钥协商[J].计算机工程与设计,2004.25(10):1767~1770.

[5]郝文江,杨永川.对Kerberos网络认证的一种改进技术[J].网络安全技术与应用,2007.6:24~26.

[6]范宏生,叶震,侯保花.基于公钥密码体制的Kerberos协议的改进[J].计算机技术与发展,2006.16(4):224~227.

[7]李继勇.基于Weil对改进的Kerberos协议设计[J].计算机应用,2008.2~28.

[8]陈云,高静,邓亚平. Kerberos认证协议的研究及其优化[J].重庆邮电学院学报,2006.6.

认证合同更改协议 篇3

认证方(乙方):__________________

双方此前已签订了□产品认证□质量管理体系□环境管理体系□职业健康安全的认证合同,并且该合同已得到认真履行,根据甲方/乙方的要求,进行下列更改:

1.认证范围:__________________________________

2.认证费用及其支付方式

(1)审定与注册费:______元。

(2)扩大审核费:______元。

(3)以上费用合计为:______元。请□单独支付,□与____________监督审核费一并支付。

3.其它: __________________________________________

受审核方(甲方):__________(盖章)

经办人员:__________________(签字)

认证方(乙方):____________(盖章)

经办人员:__________________(签字)

签认地点:__________________________

上一篇:关闭装置下一篇:建筑热环境