获取动态主机配置协议密钥的方法、服务器及客户端装置的制作方法

文档序号:7920480阅读:214来源:国知局

专利名称::获取动态主机配置协议密钥的方法、服务器及客户端装置的制作方法
技术领域
:本发明涉及移动网络通信
技术领域
,尤其涉及一种获取动态主机配置协议(DynamicHostConfigurationProtocol,DHCP)密钥的方法、服务器、客户端装置及DHCP系统。
背景技术
:随着移动网络的发展和扩大,基站(BaseStation,BS)设备由传统的宏基站往微型基站、家用基站发展,因此这种BS设备的需求量成数以百计的增长。同时,客户或用户要求买回的这类设备能即插即用,原先移动网络应用中,BS等网元的IP地址及其接入网络时的一些通信实体(如网关)的IP地址,由现场操作人员手工配置的方式已不能满足市场需求。为节约劳动成本、简化管理,DHCP协议被应用于这类移动网络设备的IP地址分配等应用场景,以实现该类设备的IP地址自动分配和获取。但是,DHCP协议是一种不需要进行身份认证的协议,毫无安全性可言,容易给运营网络带严重的安全隐患。比如攻击者不断变换物理地址,尝试申请一个DHCP域中所有的地址,耗尽DHCP服务器端(Server)地址池中的地址,导致其他正常用户无法获得地址;当租约用户或用户登录的设备接入网络时,用户或设备不需要提供信任凭证即可获取租期,任意DHCP客户端(Client)都可以向DHCPServer获取IP地址的使用租约,这样,恶意的用户就可以向DHCPServer发起拒绝服务(DenialofService,DoS)攻击,以耗尽DHCPServer的IP地址租约,从而拒绝合法用户的租约请求;由于DHCP请求报文以广播形式发送,所以DHCPServer仿冒者可以侦听到,并且回应4晉误的网关、域名系统(DomainNameSystem,DNS)、IP地址,比如IP地址的副本、不正确的路由信息,比如非法路由器、获取合法的DHCPC1ient信息等等。现有技术中,为了提高DHCP的安全性,RFC3118标准定义了DHCP消息iU正选项——DHCPOption90。RFC3118标准利用DHCPOption90定义了一种延迟i人i正(Delayedauthentication)方法。RFC3118标准还在附录里提出一种密钥管理技术,对密钥进行安全管理。为了避免服务器端集中管理一系列随机密钥,对每个客户端通信使用的会话密钥K是根据二元组(客户端标识、子网地址)计算出来的,并且对每个客户端而言都是唯一的。发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷会话密钥存在安全隐患,安全可靠性较低。
发明内容本发明实施例的目的在于提出一种获取动态主机配置协议密钥的方法、服务器、客户端装置及DHCP系统,以一强DHCP会话的安全性。本发明实施例提供了一种获取动态主机配置协议密钥的方法,包括接收DHCP客户端发送的客户端公钥;使用Diffie-Hellman算法计算服务器端私钥;对所述服务器端私钥及客户端公钥进行Diffie-Hellman计算获得主密钥。本发明实施例提供了一种获取动态主机配置协议密钥的方法,包括使用Diffie-Hellman计算获得客户端私钥;接收DHCP服务器端发送的服务器端公钥;对所述服务器端公钥及所述客户端私钥进行Diffie-Hellman计算,获得客户端主密钥。本发明实施例还提供了一种服务器,包括接收单元,用于接收DHCP客户端发送的客户端公钥;密钥生成单元,用于使用Diffie-Hellman算法计算服务器端私钥;主密钥生成单元,用于对所述服务器端私钥及客户端公钥进行Diffie-Hellman计算获得主密钥。本发明实施例还提供了一种客户端装置,包括密钥生成单元,用于使用Diffie-Hellman计算获得客户端私钥;接收单元,用于接收DHCP服务器端发送的服务器端公钥;主密钥生成单元,用于对所述服务器端公钥及客户端私钥进行Diffie-Hellman计算,获得客户端主密钥。本发明实施例还提供了一种动态主机配置协议系统,包括上述方案中的服务器及客户端装置。上述实施例中,DHCP客户端和服务器端通过Diffie-Hellman(DH)协商主密钥,使得每次会话都使用不同的会话密钥,保证了一个会话一个密钥,增强了DHCP会话的安全性。并且,DHCP客户端和服务器端也不需要长期存储主密钥和共享密钥,减少了共享密钥分发带来的管理负担。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1为本发明获取动态主机配置协议密钥的方法实施例的流程图2A为本发明获取动态主机配置协议密钥的方法实施例中DHCPDISCOVER消息认证选项及DHCPOFFER消息i人i正选项的i殳置示意图2B为本发明获取动态主机配置协议密钥的方法实施例中DHCPREQUEST消息认证选项及DHCP其它消息认证选项的设置示意图3为本发明服务器实施例的结构示意图4为本发明客户端装置实施例的结构示意图。具体实施例方式发明人在实现本发明各实施例的过程中发现由于事先计算出的会话密钥K需要通过安全的途径分发到所有客户端进行存储,使得会话密钥K在时间较长的情况下容易被泄露或破解,导致安全性大大降低;同时,对于不同的DHCP服务器端,客户端需要保存多个或多组会话密钥;通过安全途径分发的过程也存在安全隐患,如,这种途径要么在产品出厂是预先存储,要么在开局时采用拷贝方式,都容易出错,出现把其它客户端的密钥配给另一个客户端的问题。并且,由于DHCP服务器端需要存储主密钥(MasterSecretKey,MSK),同样存在长时间的情况下被泄露或破解的危险。另外,会话密钥自动更新复杂。当客户端的密钥K或服务器端的MSK过期或者泄露时,更新过程复杂,特别是使用上述密钥管理技术,一旦MSK被泄露或破解,所有的客户端都需要更新,不能保证一个会话一个密钥。综上,本发明实施例服务器端获取动态主机配置协议密钥的方法可包括接收DHCP客户端发送的客户端公钥;使用DH算法计算服务器端私钥及服务器端公钥;对所述服务器端私钥及客户端公钥进行DH计算获得主密钥。本实施例中,客户端公钥及DH算法指示标识等用于DH算法协商的数据可通过标准RFC3118中的认证选项Option90岸义载传输,也可在DHCP消息中另增加选项或字段承载传输,如重新定义一个DHCPOption选项,其值不等于90。DH算法中,有两个全局公开的参数一个素数p和一个整数g,g是P的一个原根。DH算法指示标识为指示〈素数p、原根g〉組的DH算法的GroupID。其中,GroupID与DH算法采用的〈素数p、原根g〉值相对应,GroupID不同,相应进行DH计算时所采用的〈素数p、原根g〉值也不同。假设客户端和服务器端希望共享一个密钥,客户端选择一个伪随机数Xc<(p-l)/2作为其私有密钥,并计算公开密钥Ye=gxemodp。为便于描述,这里将该算法的不公开的参数称为私钥,将可公开密钥称为公钥,下同。客户端对X。的值保密存放而使Ye能被服务器端公开获得或直接发送给服务器端,类似地,服务器端选择一个私有的伪随机数Xs<(p-1)/2,并计算其公开密钥Ys=gxsmodp。服务器端对Xs的值保密存放而使Ys能被客户端公开获得或直接发送给客户端。客户端产生主密钥的计算方式是Ke=(Ys)xemodp。同样,服务器端产生秘密主密钥的计算是Ks=(Yc)xsmodp。这两个计算会产生相同的结果Kc=(Ys)xcmodp=(gxsmodp)xcmodp=(gxs)Xcmodp=gxsxcmodp=(gxc)xsmodp=(gxcmodp)xsmodp=(Yc)xsmodp=Ks;这样双方就完成了主密钥的协商。由于主密钥根据每次会话需要产生,因此,可直接用来作为会话密钥验证DHCP消息,使得DHCP客户端与服务器端不需要长期存储共享密钥,保证了每次会话都使用不同的共享密钥,增强了DHCP消息交换的安全性。图1为本发明获取动态主机配置协议密钥实施例的流程图。本实施例中,将DH算法计算共享密钥所需要的关键参数素数p、原根g以及公钥信息通过DHCPOption90携带,进行传输,以减少认证复杂度。或者,素数p、原根g可固定的在DH算法里,建议原根g采用2,素数p采用DH算法的GroupID为Gro叩2所对应的值,这种情况下传输的是通信双方需要交换的公钥信息。对DHCPOption90里的AuthenticationInformation域的格式进行如图2A、图2B所示的修改,并新增Protocol及Algorithm的值。其中,61为DHCPDISCOVER消息中0ption90选项内容;62为DHCPOFFER消息0ption90选项内容;63为DHCPREQUEST消息0ption90选项内容;64为DHCP其它消息的0ption90选项内容。阴影部分为0ption90中的AuthenticationInformation域。修改后的AuthenticationInformation域中的字,殳描述如表2所示。表2AuthenticationInformation域中各字段说明<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>其中,长度及'丄en,,的单位均为字节。AuthenticationInformation使用类型长度值(TypeLengthValue,TLV)格式,可以承载更多信息内容,如用户名/口令等,针对不同的用户,提高了部署灵活性。基站请求分配IP地址之前,DHCP客户端使用DH算法计算出其私钥Xc/公钥Yc,然后构造DHCPDISCOVER消息,并用Option90选项里的AuthenticationInformation域携带其公钥Yc,以及指示〈素数p、原根g>组的GroupID,并把私钥Xc安全存储在内存中。同时,产生一个伪随机数Rc,并设置于AuthenticationInformation域的CNonce字段中。然后请求DHCP服务器端进行认证,认证过程包括步骤51、DHCP客户端广播DHCPDISCOVER消息,并在DHCPDISCOVER消息中携带Option90,以通知服务器需要进行认证。DHCPDISCOVER消息还携带能唯一标识客户端身份的标识选项0ption61。步骤52、网络上的DHCP服务器端(可能不止一个)收到该消息后,如果判断自己可以提供服务,则保存好客户端的随机数Rc,同时产生自己的伪随机数Rs。DHCP服务器端根据客户端的标识选项Option61查找数据库,得到用来计算该客户端会话密钥K所需要的密钥物料(KeyingMateriel),如客户端标识、子网地址等。这些物料需客户端本身具有或可配置。DHCP服务器端根据DHCP客户端发送的GroupID找到素数p、原根g,并使用DH算法计算出服务器端私钥Xs、公钥Ys。当素数p、原根g固定在DH算法里时,Option61可不携带GroupID,DHCP服务器端直接进行DH算法即可。利用DHCP客户端发送过来的公钥Yc及自己的私钥Xs计算出一个主密钥MSK-(Yc)xsmodp。此时,MSK可作为会话密钥对后续DHCP消息进行验证。也可通过标准RFC3118里提出的密钥管理技术里的密钥计算方法K=MAC(MSK:KeyingMaterielIRc),计算出共享密钥K,作为会话密钥。关于DH算法的实现以及共享密钥的生成,可采用标准RFC4306。DHCP服务器端构造DHCPOFFER消息,在AuthenticationInformation域里携带服务器端公钥Ys、用会话密钥K加密的客户端伪随机数Rc和服务器端伪随机数Rs,并用会话密钥K按标准RFC3118计算该消息的认证码,填充到AuthenticationInformation域里的MAC字段中。本步骤中,AuthenticationInformation域可进一步携带其它更多的用以证明服务器端身份的加密信息。步骤53、DHCP服务器端将DHCPOFFER消息发送给DHCP客户端。步骤54、DHCP客户端收到DHCPOFFER消息后,提取DHCPOFFER消息里的服务器端公钥Ys,并利用前述存储的私钥Xc,进行DH计算,得到一个主密钥MSK-(Ys)xemodp。这个主密钥与服务器计算出来的MSK完全相同。当DHCP服务器端将MSK作为会话密钥时,DHCP客户端获得的MSK相应地成为会话密钥。此时,便完成了会话密钥的协商,DHCP客户端可4吏用MSK对后续的DHCP消息进行验证。DHCP客户端也可进一步获取计算共享会话密钥所需要的物料(KeyingMateriel)如客户端标识、子网地址等,并利用前述生成的伪随机数及K=MAC(MSK,KeyingMateriel|Rc)计算出共享密钥K,并将计算得到的共享会话密钥K存储在本地内存中,将K作为会话密钥。此时,在DHCP客户端与DHCP服务器端之间完成了共享密钥K的协商。然后,DHCP客户端使用共享密钥K解密DHCPOFFER消息里加密的伪随机数,并验证解密得到的数据是否是前述DHCP客户端产生的随机数Rc。同时,DHCP客户端按要求验证消息认证码是否正确,如果验证失败,则根据其本地的安全策略进行相应的处理;如果验证通过,则选中一个DHCP服务器进行交互,并构造DHCPREQUEST消息,在消息中携带Option90选项。Option90选项中携带明文的服务器端的伪随机数以及用共享密钥K计算出来的该消息的认证码。本步骤中,Option90选项可进一步携带其它更多的用以证明客户端身份的信息,如用共享密钥K加密的用户名/口令等。步骤54、DHCP客户端向选中的DHCP服务器发送DHCPREQUEST消息,请求服务。步骤55、DHCP服务器端收到DHCPREQUEST消息后,使用本地的共享密钥K验证该消息里的随机数和消息认证码,或其他可能的身份信息。如果验证失败,则直接丟弃该消息,回复DHCPNAK消息;否则,构造DHCPACK消息。DHCPNAK消息及DHCPACK消息均需携带Option90选项,该选项可只携带其消息认证码。步骤56、DHCP服务器端将DHCPACKDHCPNAK消息发送给DHCP客户端;步骤57、DHCP客户端收到DHCPACKDHCPNAK消息后,根据验证该消息的消息认证码。本实施例中,在DHCP客户端与服务端使用Diffie-Hellman算法协商共享秘钥K,即对通过DHCPOption90选项传输的参数如GroupID、公钥等进行DH计算,获得的MSK作为计算共享密钥的主密钥,使得DHCP客户端及服务器端无需保存主密钥,从而解决了MSK被泄露或被破解的危险。并且,由于MSK实时计算获得,保证了一个会话一个密钥,因而共享密钥K也根据MSK实时更新,也无需长时间保存,从而大大减少了共享密钥被泄露或被破解所带来的危险,大大提供了DHCP会话的安全性。此外,由于共享密钥K由会话双方各自生成,避免了传输所带来的不安全因素。另外,本发明实施例还提供了另一种获取动态主机配置协议密钥的方法,即DHCP客户端获得主密钥的实施例DHCP客户端使用DH计算获得所述客户端私钥及客户端公钥;接收DHCP服务器端发送的服务器端公钥;对所述服务器端公钥及所述客户端私钥进行DH计算,获得客户端主密钥。本实施例中各步骤详细实施方式在图1所示实施例中已有描述,在此不再赘述。图3为本发明服务器实施例的结构示意图。服务器包括接收单元71、密钥生成单元72及主密钥生成单元73。接收单元71用于接收动态主机配置协议DHCP客户端发送的客户端公钥及DH算法指示标识;密钥生成单元72用于根据所述DH算法指示标识进行DH计算,获得服务器端私钥及服务器端公钥;主密钥生成单元73用于对所述服务器端私钥及客户端公钥进行DH计算获得主密钥。当服务器将主密钥生成单元73生成的密钥作为计算共享密钥的主密钥时,所述接收单元71还用于接收DHCP客户端发送的客户端标识选项。此时,服务器还包括物料获取单元74及共享密钥生成单元75。物料获取单元74用于根据所述客户端标识选项获得密钥物料;共享密钥生成单元75用于用所述主密钥及密钥物料生成共享密钥。本实施例中,服务器通过上述接收单元71、密钥生成单元72及主密钥生成单元73等单元能够生成自身所使用的会话密钥,从而保证了DHCP能够在服务器端每次都能使用不同的会话密钥,增强了服务器端的安全性。图4为本发明客户端装置实施例的结构示意图。客户端装置包括密钥生成单元81、^接收单元82及主密钥生成单元83。密钥生成单元81用于通过DH计算获得客户端私钥;接收单元82用于接收DHCP服务器端发送的服务器端公钥;主密钥生成单元83用于对所述服务器端公钥、客户端私钥进行DH计算,获得客户端主密钥。当将主密钥生成单元83生成的密钥作为计算共享密钥的主密钥时,客户端还包括共享密钥生成单元84。共享密钥生成单元84用于根据所述客户端主密钥获得客户端共享密钥。本实施例中,客户端装置通过上述密钥生成单元81及主密钥生成单元83等单元能够生成自身所使用的会话密钥,从而保证了DHCP能够在客户端每次都能使用不同的会话密钥,增强了客户端的安全性。本发明DHCP系统实施例包括上述装置实施例中的服务器与客户端。DHCP系统中,服务器与客户端商定统一用主密钥作为会话密钥,或统一用共享密钥作为会话密钥,保证了DHCP系统每次会话都使用不同的共享密钥,大大增强了DHCP会话的安全性。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。权利要求1、一种获取动态主机配置协议密钥的方法,其特征在于,包括接收DHCP客户端发送的客户端公钥;使用Diffie-Hellman算法计算服务器端私钥;对所述服务器端私钥及客户端公钥进行Diffie-Hellman计算获得主密钥。2、根据权利要求1所述的获取动态主机配置协议密钥的方法,其特征在于,还包括根据源于所述DHCP客户端的客户端标识获得密钥物料;用所述主密钥及密钥物料生成共享密钥。3、根据权利要求1或2所述的获取动态主机配置协议密钥的方法,其特征在于,还包括接收所述DHCP客户端发送的Diffie-Hellman算法指示标识;使用Diffie-Hellman算法时采用所述Diffie-Hellman算法指示标识所指示的参数进行计算。4、根据权利要求1或2所述的获取动态主机配置协议密钥的方法,其特征在于,所述客户端公钥通过DHCP认证选项承栽传输。5、一种获取动态主机配置协议密钥的方法,其特征在于,包括使用Diffie-Hellman计算获得客户端私钥;接收DHCP服务器端发送的服务器端公钥;对所述服务器端公钥及所述客户端私钥进行Diffie-Hellman计算,获得客户端主密钥。6、根据权利要求5所述的获取动态主机配置协议密钥的方法,其特征在于,还包括使用所述客户端主密钥计算获得客户端共享密钥。7、根据权利要求5或6所述的获取动态主机配置协议密钥的方法,其特征在于,所述服务器端公钥通过DHCP认证选项承载传输。8、一种服务器,其特征在于,包括接收单元,用于接收DHCP客户端发送的客户端公钥;密钥生成单元,用于使用Diffie-Hellman算法计算服务器端私钥;主密钥生成单元,用于对所述服务器端私钥及客户端公钥进行Diffie-Hellman计算获得主密钥。9、根据权利要求8所述的服务器,其特征在于,所述接收单元还用于接收所述DHCP客户端发送的客户端标识;所述服务器还包括物料获取单元,用于根据所述客户端标识获得密钥物料;共享密钥生成单元,用于用所述主密钥及密钥物料生成共享密钥。10、一种客户端装置,其特征在于,包括密钥生成单元,用于使用Diffie-Hellman计算获得客户端私钥;接收单元,用于接收DHCP服务器端发送的服务器端公钥;主密钥生成单元,用于对所述服务器端公钥及客户端私钥进行Diffie-Hellman计算,获得客户端主密钥。11、根据权利要求IO所述的客户端装置,其特征在于,还包括共享密钥生成单元,用于根据所述客户端主密钥获得客户端共享密钥。12、一种动态主机配置协议系统,其特征在于,包括上述权利要求8或9所述的服务器及上述权利要求10或11所述的客户端装置。全文摘要本发明涉及一种获取动态主机配置协议密钥的方法、服务器及客户端装置,方法包括接收DHCP客户端发送的客户端公钥;使用Diffie-Hellman算法计算服务器端私钥;对服务器端私钥及客户端公钥进行Diffie-Hellman计算获得主密钥。服务器包括接收单元、密钥生成单元及主密钥生成单元。客户端装置包括密钥生成单元、接收单元及主密钥生成单元。本发明还涉及一种DHCP系统,包括服务器及客户端装置。DHCP客户端和服务器端通过DH协商主密钥,使得每次会话都使用不同的会话密钥,增强了DHCP会话的安全性。并且,DHCP客户端和服务器端也不需要长期存储主密钥和共享密钥,减少了共享密钥分发带来的管理负担。文档编号H04L9/32GK101388770SQ200810170280公开日2009年3月18日申请日期2008年10月20日优先权日2008年10月20日发明者吴颂期申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1