两种基于非对称密码学的密钥协商协议的分析
2024-05-19
来源:意榕旅游网
维普资讯 http://www.cqvip.com 36 福建电脑 2007年第9期 两种基于非对称密码学的密钥协商协议的分析 王爱新,冯永,金花 (河北农:lk大学信息学院河北保定071001) 【摘要】:密钥协商是安全通信的基础。文章分析了两种基于非对称密码学的密钥协商协议(MTI,STS),介绍了个协议 的基本原理,以及各协议的优缺点和应用范围,并对它们进行了基本比较。 【关键字】:密要协商Difie—Hellman中间人攻击 1.引言 结果:A和B双方得到共享密钥K。 在通信双方的加密通信中.双方需要通过协议来确定共享 (1)协议设置:选择一个合适的素数P以及Z。的本原元a(2 密钥。如果协议输出的共享密钥来自参与协议的某一个主体或 a p-2)。A随机选择一个整数a^作为长期私钥,1 s a^≤p’2, 实质相当于来自参与协议的某一个主体.则称该协议是通过密 并计算一个长期公钥ZA=a'a orod P(B同样有类似的密钥a 和 钥传输机制来建立密钥共享。传统的基于公钥加密的密钥传输 Z )。A和B获得对方的长期公钥的副本。 就是典型的通过密钥传输来建立秘要共享.基本过程为:一方先 f2) 协议消息。 选择一个共享密钥k,然后使用对方的公钥将其加密(E )),并 A-_'B:a rood P(1) 将加密后的共享密钥传送给对方,对方则以自己的私钥解密(E A+一B:aymod p f2) h, ))=k)以获得共享密钥k。密钥传输协议的缺点在于一方对 f3)协议步骤: 另一方产生的共享密钥具有接受的被动性.并且共享密钥由单 (a】A随机选择一个秘密x,1耋x耋p-2,并发送消息(1)给B。 方运算产生.在双方互相不能信任的条件下。不能起到可靠的产 (b)B随机选择一个秘密Y,1 Y p-2,并发送消息(2)给B。 生共享密钥的作用。因而.区别于密钥传输的密钥交换协议。就 (c)A计算密钥K,_(a Z rood P。 显得很重要 (d)B计算密钥K=(a 止Z^y orod D。 在双方通过协议来确定共享密钥的过程中.如果协议输出 (e)K,_K=a I^々 。 的共享密钥是某个函数的输出.并且该函数的输出是所有参与 M,I1密钥协商协议不能提供实体认证也不能提供密钥确 者的随机输入 则称该协议是密钥协商协议。与密钥传输相比。 认,同样只适用于被动攻击的应用。但由于在MTI协议中存在A 密钥协商的优点在于共享密钥的各参与方对最后的输出都有其 和B的长期私钥和长期公钥.这就使得可以通过对M,I1做一些 自己的控制权.因此对于所输出共享密钥的质量,各参与方都有 修改而得到隐式的实体证明。 较高的信心.并且这样产生的共享密钥还具有较好的前向保密 可以引入一个可信管理机构(TA)和一个带有公开验证算 性。 法vermA和一个秘密签名算法aigT^的签名验证系统。并且要求 1976年D娅e和Hellman提出的D衙e—Hellman算法可以 A和B具有一个证书C(i)=(ID(i),Zi,sigT^(ID(i),Zi))。这样,当A和B 认为是最基本的密钥协商协议.其基本方案如下: 想要得到对方长期公钥的副本的时候.A和B可以向对方发送 描述:A和B在公开信道上各自给对方发送一条信息 自己的证书Cfi),并通过公开验证算法ver,rA验证可信管理机构 结果:A和B双方得到共享密钥K。 (TA)对证书Cfi)的签名,从而确保得到可信的对方的公钥。 (1)协议设置:选择一个合适的素数P以及zb的本原元a(2 在修改的MTI密钥协商协议中.Cm的传输实现了公开消息 a p-2)。 的真实性的认证.因而使得中间人无法伪造消息形成共享密钥. f2) 协议消息。 抵抗了中间人攻击 但是修改的M,I1协议在其它的主动攻击方 A-- ̄B:ax orod P(1) 式下的安全性.并不能有效得到保证 A呻:ay orod P(2) 3.STS(端对端)密钥协商协议 f31协议步骤。 STS密钥协商协议是对Di£fie—Hellman密钥协商的三步交 (a)A选择一个随机秘密x,1 X耋p-2,并发送消息(1)到 换变体。允许在双方之问建立一个共享密钥.并带有相互实体认 B。 证和相互显示密钥认证。这种方案要就使用数字签名.其基本过 )B选择一个随机秘密Y,1 Y p-2,并发送消息(2)到 程如下(以双方使用RSA签名为例): A。 描述:A和B在公开信道上交换三条信息。 (c)B接收a‘rood P并计算共享密钥K,-(ax ymod P。 结果:实现A和B的密钥协商以及实体认证和密钥认证。 (d)A接收ay mod P并计算共享密钥K=(a')'mod P。 (1)协议设置: (e)K K。 选择一个可信的对称加密算法E。Sig (m)表示A对m的签 以上是DⅢie—Hellman密钥协商的基本形式.实现了无认证 名,例如使用RSA签名时候Sig^(m)=(H(m)d mod n)。 的密钥协商。这一基本方案能够抵抗敌手只能窃听的被动性攻 选择一个合适的素数P以及Z。的本原元a(2 a p一2)。 击,但是不能抵抗具有截取、篡改能力的主动性攻击.参与的双 用户A选择RSA环境下的公钥(eA n )和私钥dA。用户B 方不能保证消息提供者的身份或知道共享密钥的参与方的身 选择RSA环境下的公钥(e ,n )和私钥dB。并且A和B互相通 份,易受中间人攻击。 过可信机构(例如CA)得到了对方的公钥副本。 2.M11两步密钥协商协议 (2)协议消息: MTI两步密钥协商协议是Difie—Hellman密钥协商的变体。 A-_'B:a rood P (1) 能够在两条消息中.产生带有抵抗被动敌手攻击的隐式密钥认 A+.--B: mod P,Ek(Sigs(a ̄, (2) 证的共享密钥。其基本方案如下: A—+B:E (Sig^(a ,a,)) (3) 描述:两步的D//tle—Hellman密钥协商.能够抵抗被动敌手 (3)协议步骤。 攻击 (a)A生成一个随机密数x,2 x≤p’2,并且发送信息(1) (下转第15页) 维普资讯 http://www.cqvip.com 2007年第9期 福建 电脑 15 portldenfity类的LoginUser方法登录Passport,否则,调用Pass- KPP.SecureLeve1.Nothing) portldentity类的LogoTag2方法返回包含”登录”按钮的HTML段 Else 落.再输出到浏览器。 Response.Wrlte(passportManager.oLgoTag2(erdirectURL,—. TimeWindow,ForceLogin,coBrandArgs,lang..id,bSecure,一 Losin模块的详细内容如下: sNameSpace,KPP,SecureLeve1)) Imports System.Web.Security Return Fales Imports System.Globalization End fI Module OLgin End Funotion Public Function Authenticated(ByVal Request As HttpRequest,Byva1一 End Moduh Response As HttpResopnse,ByVal Server As HttpServerUtillty)As 3.2安全登录模块的调用 Boolean 下面笔者以一个自定义类AuthWebForm来说明Login模块 Dim passportManager As Passportldentity passoprtManager=New Passportldentity0 的调用方法。 Dim redinretURL As String Imports System.Web.Security Dim TimeWindow As Integer Public Class AuthWebFornl Dim ForeeLogin As Boolean Inherits System.Web.UI.Page Dim coBrandArgs As Stirng Page_Load事件在每次登录网页时自动触发 Dim langid As Integer Private Sub Page_oLad(ByVal sender As System.Object,ByVal e As—. ..Dim sNameSpace As Stirng System.EventArgs)Handles MyBese Load Dim bS ̄tlFe As Boolean i Not Authenticated(Request,Response,Server)) Dim SecureI vel As Integer 用户未通过认证的代码 Dim KPPAsInteger Else Dim redireetPrefixAs Stirng 用户已通过认证的代码 ForceLogin=False End If coBrandArgs=Nothing End Sub snareeSpace=Nothing End Clsas Ⅺ)P=-1 4.结束语 Dim Cuhure=New Cuhurelnfo(Request,UserLanguages(O)) 单一登录.NET Passport协议正逐渐成为网站开展身份验证 hag_id=Cuhure.LCIDO If Request.ServerVariables(”HI.Ⅱ,S”1=”on”'Inen 的关键技术。对于机密性要求高的网站,使用掭准登录具有重放 bSecure=Tme 攻击和字典攻击的安全漏洞.而安全登录中的安全通道级别可 TimeWindow=l00o0 防范重放攻击,安全密钥级别可防范重放攻击和字典攻击。本文 SecureLevel=l0o redireetPrefix=”https://” 首先说明了标准登录的脆弱性和安全登录的两种级别.最后以 Else Login模块为例给出了安全登录在ASP.NET中的实现.开发人 bsecure=False 员可参考其中代码进行扩展性设计并应用于实际的开发过程。 TimeWindow=300 SecureLevel=l erdireetPrefix=”http://” 参考文献: End fI 1.Microsoft:.Passport『EB/OL].http:llmsdn.microso ̄.com/archive/default. redireetURL=Server.UrlEncode(redierctPrefix&一 sap.accessed May 2006. Reqt;*st.esrverVariables(”SERVER—NAME”)&一 Request.ServerVariables(”SCRIPI--NAME”)) 2.Microsoft.Microsofc.NET Passport Review Guide[EB/OL].http:ll fI passportManager-IsAuthenticatedO en 、^nvw.microsoft.com/net/services/passport Return Tme /review_guide.sap.accessed May 2006. ⅡseIf passportManager.HasTicket Then 3.Microsoft:.MSDN Library for Visual Studio.NET 2003f M/CD],2003. passportManager.LoginUser(redirectURL,TimeWindow,一 4.Rum Barium.Rhchard Conway.王晓娜等译.ASP.NET安全性高级编程 ForceLogin,coBrandArgs。lang_.id,sNameSpace,—. fM1.北京:清华大学出版社,2003. (上接第36页) 给B。 议,不能提供密钥确认,只能提供隐式鉴别,可以证明其在随机 (b)B生成一个随机密数Y,2耋Y耋P一2,计算共享密钥k= OracIe模型下的被动安全性.但不能证明其主动安全性。STs是 (aX)y mod P。B产生ay orod P,并将ay mod P与ax orod P级联并 一个需要建立签名系统的三趟协议.带有密钥确认功能,但其在 对其计算签得到Sigs(a', ,然后用生成的密钥k对签名进行加 被动环境下的安全性和主动环境下的安全性都还未得到有效证 密得到E (SisB(ar,a 。B将消息(2)传给A。 明 但一般认为STs协议的安全性高于M耶协议。 (c)A计算共享密钥k=( )x mod P。并用这一密钥解密消息 在应用方面.M 协议不需要建立用户签名系统。而且是两 (2)中B所传过来的加密数据,然后用B的公钥(e ,n )来验证 趟协议.因而比较方便和简单。在一般性安全要求的环境中,尤 收到的B的签名是否是收到的加密指数 与消息(1)中发送 其在签名系统并没有普遍建立的当今网络环境中.有着广泛的 的指数ax的哈西杂凑函数值的签名。如果验证成功,则A可以 应用前景。 认为确实与B共享了密钥k。最后A也发送一个类似的消息(3) 两种协议都存在着各种变形应用.都可以实现密钥的协商 给B。 问题.但目前还没有有效的实用能完全实现密钥协商中的认证 (d)B用在步骤(b)中计算的共享密钥k解密收到的消息 问题。 (3),并且验证其中的A的签名。如果验证成功,B可以认为确实 与A共享了密钥k。至此.密钥协商完毕。 参考文献: STs协议是一个三趟协议。使用密钥k 1.Di1f%W。Helhnan M.New Directions in Cryptography[J].IEEE Tram. 加密可以使得双方进行密钥确认.避免中间人伪造中间密 on Information Theory,1976,IT一22(6):644—654. 钥进行欺骗攻击。同时用户的签名提供了用户及密钥的认证性。 2.William.Stallings著,刘玉珍,王丽娜.傅建明等译.密码编码学与网络 STs可以有效防止中间人插入攻击。 安全一一原理与实践(第三版).北京:电子工业出版社。2004 4.总结 3.Alfred 1.Menezes。Paul C.v ̄ll'l Oorschot著,胡磊,王鹏等译。应用密码 MTI密钥协商协议可以提供隐式签名.STS密钥协商协议可 学手册.北京.电子工业出版社.2005.6 以提供显式签名.因而都能抵抗中间人攻击。M 是一个两趟协