專利名稱:一種dhcp安全通信方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及網(wǎng)絡技術(shù)領(lǐng)域,尤其是一種DHCP (Dynamic HostConfiguration Protocol,動態(tài)主機配置協(xié)議)安全通信方法、裝置以及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡技術(shù)的發(fā)展,網(wǎng)絡設備得到了大量應用。由于網(wǎng)絡的拓撲結(jié)構(gòu)易于變化,很多網(wǎng)絡設備需要通過動態(tài)獲取IP地址來接入網(wǎng)絡。在目前實現(xiàn)方案中,這些網(wǎng)絡設備很 多支持DHCP,由外部DHCP SERVER (服務器)分配動態(tài)IP地址。但是DHCP本身并沒有考慮 任何安全措施,實際應用中會存在比較多的安全隱患,使DHCP SERVER容易受到非法攻擊。在現(xiàn)有的一種解決方案中,網(wǎng)絡設備(即客戶端)向DHCP SERVER(即服務器端) 發(fā)起請求時,在請求中攜帶自己的ID (身份),服務器端根據(jù)客戶端的ID來識別客戶端是否 可信,如果可信,則允許客戶端接入。由于客戶端的ID由客戶端自身提供,攻擊者可以很容 易地截取客戶端的身份信息,從而偽造身份對服務器端發(fā)起非法攻擊,導致網(wǎng)絡系統(tǒng)的安 全性較差。
發(fā)明內(nèi)容
本發(fā)明實施例在于提供一種DHCP安全通信方法、裝置和系統(tǒng)。一方面,本發(fā)明實施例提供一種DHCP安全通信方法,該方法包括服務器端接收 客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器 端對該客戶端進行認證;服務器端生成服務器端消息,并進行加密得到服務器端密文;月艮 務器端向客戶端發(fā)送第一響應,第一響應包括服務器端密文;服務器端接收客戶端返回的 第二消息,第二消息包括服務器端消息,其中第二消息中的服務器端消息由客戶端對服務 器端密文解密后得到;服務器端驗證第二消息中的服務器端消息和服務器端本地保存的服 務器端是否消息一致,若一致則服務器端確認客戶端可信。一方面,本發(fā)明實施例提供還一種DHCP安全通信方法,該方法包括服務器端接 收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務 器端對該客戶端進行認證;服務器端生成服務器端消息,并進行加密得到服務器端密文; 服務器端向客戶端發(fā)送第一響應,第一響應包括服務器端密文;服務器端接收客戶端返回 的第二消息,第二消息包括客戶端第二密文;其中客戶端第二密文由客戶端對服務器端消 息和客戶端消息的組合進行加密得到,服務器端消息由客戶端對服務器端密文解密后得 到;服務器端解密客戶端第二密文得到服務器端消息;服務器端驗證解密后得到的服務器 端消息和服務器端本地保存的服務器端消息是否一致,若一致則服務器端確認客戶端可信。一方面,本發(fā)明實施例提供還一種DHCP安全通信方法,該方法包括客戶端向服 務器端發(fā)送第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器端 對該客戶端進行認證;客戶端接收服務器端返回的第一響應,第一響應包括服務器端密文;客戶端解密所述服務器端密文得到服務器端消息,客戶端生成客戶端消息,以及對客戶端 消息進行加密得到客戶端第一密文或者對服務器端消息和客戶端消息的組合進行加密得 到客戶端第二密文;客戶端向服務器端發(fā)送第二消息,第二消息包括服務器端消息和客戶 端第一密文,或者第二消息包括客戶端第二密文;客戶端接收服務器端返回的第二響應,第 二響應包括客戶端消息,其中客戶端消息由服務器端對客戶端第一密文或客戶端第二密文 解密后得到;客戶端驗證接收到的客戶端消息與客戶端本地保存的客戶端消息是否一致; 若是,則客戶端確認服務器端可信。另一方面,本發(fā)明實施例提供一種服務器端裝置,包括第一接收模塊,用于接收 客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器 端對該客戶端進行認證;生成模塊,用于在第一接收模塊接收到接入挑戰(zhàn)請求后生成服務 器端密文;第一發(fā)送模塊,用于向客戶端發(fā)送第一響應,第一響應包括生成模塊生成的服務 器端密文;第二接收模塊,用于接 收客戶端返回的第二消息,第二消息包括客戶端對服務器 端密文進行解密后得到的服務器端消息;驗證模塊,用于驗證第二消息中的服務器端消息 和服務器端本地保存的服務器端消息是否一致,在一致時確認客戶端可信。另一方面,本發(fā)明實施例還提供一種服務器端裝置,包括第一接收模塊,用于接 收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務 器端對該客戶端進行認證;生成模塊,用于在第一接收模塊接收到接入挑戰(zhàn)請求后生成服 務器端密文;第一發(fā)送模塊,用于向客戶端發(fā)送第一響應,第一響應包括生成模塊生成的服 務器端密文;第二接收模塊,用于接收客戶端返回的第二消息,第二消息包括客戶端第二密 文;其中客戶端第二密文由客戶端對服務器端消息和客戶端消息的組合進行加密得到,月艮 務器端消息由客戶端對服務器端密文解密后得到;解密模塊,用于解密客戶端第二密文得 到服務器端消息;第二接收模塊服務器端消息和服務器端本地保存的服務器端消息是否一 致,若一致時確認客戶端可信。又一方面,本發(fā)明實施例還提供一種客戶端裝置,包括第一發(fā)送模塊,用于向服 務器端發(fā)送第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器端 對該客戶端進行認證;第一接收模塊,用于接收服務器端返回的第一響應,第一響應包括服 務器端密文;第一解密模塊,用于對服務器端密文進行解密得到服務器端消息;生成模塊, 用于生成客戶端消息;加密模塊,用于對客戶端消息進行加密得到客戶端第一密文或者對 服務器端消息和客戶端消息的組合進行加密得到客戶端第二密文;第二發(fā)送模塊,用于向 服務器端發(fā)送第二消息,第二消息包括服務器端消息和客戶端第一密文,或者第二消息包 括客戶端第二密文;第二接收模塊,用于接收服務器端返回的第二響應,第二響應包括客戶 端消息,其中第二響應中的客戶端消息由服務器端對客戶端第一密文或客戶端第二密文解 密后得到;驗證模塊,用于驗證第二接收模塊接收到的客戶端消息與客戶端本地保存的客 戶端消息是否一致,在一致時確認服務器端可信。再一方面,本發(fā)明實施例提供一種系統(tǒng),包括上述客戶端裝置以及服務器端裝置。本發(fā)明實施例中服務器端向客戶端發(fā)送加密后的服務器端消息,并驗證客戶端返 回的服務器端消息和服務器端本地保存的服務器端消息是否一致,若一致,則確認客戶端 可以正確解密,從而服務器端確認客戶端可信。該方法可以有效驗證客戶端的合法性,減少 或避免服務器端遭受的非法攻擊,提高網(wǎng)絡應用的安全性。
圖1為本發(fā)明實施例提供的一種DHCP安全通信方法流程示意圖。圖2為本發(fā)明實施例提供的另一種DHCP安全通信方法流程示意圖。圖3為本發(fā)明實施例提供的另一種DHCP安全通信方法流程示意圖。圖4為本發(fā)明實施例提供的另一種DHCP安全通信方法流程示意圖。圖5為本發(fā)明實施例提供的一種服務器端裝置結(jié)構(gòu)示意圖。圖6為本發(fā)明實施例提供的另一種服務器端裝置結(jié)構(gòu)示意圖。圖7為本發(fā)明實施例提供的一種客戶端裝置結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明實施例作具體說明,顯然,下面所描述的實施例僅僅是本 發(fā)明一部分實施例,而不是全部的實施例。請參閱圖1,圖1為本發(fā)明實施例提供的一種DHCP安全通信方法。該方法主要包 括如下步驟。步驟102,服務器端接收客戶端發(fā)送的第一消息,其中第一消息包括接入挑戰(zhàn)請 求,所述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證。步驟104,服務器端生成服務器端消息,并對服務器端消息進行加密得到服務器端 密文。服務器端在接收到接入挑戰(zhàn)請求后,生成服務器密文用來驗證客戶端是否可靠或 可信。在具體應用時,服務器端消息可以是隨機數(shù),對該隨機數(shù)進行加密即可得到服務器端 密文。服務器端采用的加密算法可以為非對稱算法或者對稱算法。以非對稱算法為例,考 慮到一個服務器端往往對應多個客戶端,為了降低服務器端的工作量,可以采用服務器端 和該客戶端上一次認證過程中生成的服務器端共享密鑰對該隨機數(shù)進行加密。步驟106,服務器端向客戶端發(fā)送第一響應,其中第一響應包括服務器端密文。步驟108,服務器端接收客戶端返回的第二消息,第二消息包括服務器端消息;其 中第二消息中的服務器端消息由客戶端對服務器端密文解密后得到??蛻舳藢Ψ掌鞫嗣芪慕饷軙r,可以采用服務器端和該客戶端上一次認證過程中 生成的客戶端私鑰來解密。進一步地,第二消息中還可以包括客戶端第一密文,本實施例中客戶端第一密文 由客戶端對客戶端消息進行加密后得到??蛻舳讼⒁部梢允且粋€隨機數(shù),在進行加密時, 可以采用服務器端和該客戶端上一次認證過程中生成的客戶端共享密鑰對該隨機數(shù)進行 加密,得到客戶端第一密文。步驟110,服務器端驗證接收到的服務器端消息和服務器端本地保存的服務器端
消息一致。為驗證客戶端是否可信,服務器端可以通過驗證客戶端能否正確解密服務器端密 文來進行。具體來說,服務器驗證客戶端返回的服務器端消息(即第二消息中包括的服務 器端消息)是否與服務器端本地保存的服務器端消息一致。步驟112,若服務器端接收到的服務器端消息和服務器端本地保存的服務器端消息一致,則服務器端確認客戶端可信。在服務器端接收到的服務器端消息和服務器端本地保存的服務器端消息一致時,服務器端認為客戶端可以正確解密服務器端密文,從而認為客戶端是可信的。進一步地,若第二消息中還可以包括客戶端第一密文,則服務器端還可以對客戶 端第一密文進行解密得到客戶端消息,并發(fā)送第二響應給客戶端,其中第二響應包括該解 密后得到的客戶端消息。通過向客戶端發(fā)送客戶端消息可以起到由客戶端來驗證服務器端 是否可信的作用。本實施例中服務器端向客戶端發(fā)送加密后的服務器端消息即服務器端密文,并驗 證客戶端返回的服務器端消息和服務器端本地保存的客戶端消息是否一致,若一致,則確 認客戶端可以正確解密,從而確認客戶端可信。該方法可以有效驗證客戶端的合法性,減少 或避免服務器端遭受的非法攻擊,提高網(wǎng)絡應用的安全性需要指出的是,本發(fā)明實施例除應用于因特網(wǎng)之外,還可以應用于支持DHCP協(xié)議 和I P協(xié)議的通信網(wǎng)絡系統(tǒng),例如無線通信網(wǎng)絡,其中客戶端具體可以是基站,服務器端具 體可以是基站控制器,或者是其它應用方式,本發(fā)明實施例對此不作限定。請參閱圖2,圖2為本發(fā)明實施例提供的另一種DHCP安全通信方法。該方法主要 包括如下步驟。其中步驟202-206與步驟102-106大致相同,具體可參見上一實施例,此處不再詳 述。步驟208,服務器端接收客戶端返回的第二消息,第二消息包括客戶端第二密文; 其中客戶端第二密文由客戶端對服務器端消息和客戶端消息的組合進行加密得到,服務器 端消息由客戶端對服務器端密文解密后得到。服務器端消息、客戶端消息均可以是一個隨機數(shù),將服務器端消息和客戶端消息 組合后得到一個隨機數(shù)串,對該隨機數(shù)串進行加密得到客戶端第二密文。如果采用的是非 對稱算法,可以采用服務器端和該客戶端上一次認證過程中生成的客戶端共享密鑰對該隨 機數(shù)串進行加密。步驟210,服務器端解密客戶端第二密文,得到服務器端消息。服務器端解密客戶端第二密文后,得到服務器端消息和客戶端消息的組合,例如 一個隨機數(shù)串,進而可以根據(jù)該組合的結(jié)構(gòu)得到服務器端消息和客戶端消息。通常在一個消息中,會包含如下部分消息類型,消息長度和消息內(nèi)容。服務器端 消息和客戶端消息在進行組合時,一種組合結(jié)構(gòu)可以是服務器端消息類型,服務器端消息 長度,服務器端消息內(nèi)容,客戶端消息類型,客戶端消息長度,客戶端消息內(nèi)容?;蛘呖梢允?其它組合結(jié)構(gòu),例如將客戶端消息置于服務器端消息之前,本發(fā)明實施例對此不作限定。在進行解密時,還是以非對稱算法為例進行說明,由于客戶端采用服務器端和該 客戶端上一次認證過程中生成的客戶端共享密鑰對該隨機數(shù)串進行加密,相應地,服務器 端可以采用服務器端和該客戶端上一次認證過程中生成的服務器端私鑰對該隨機數(shù)串進 行解密。步驟212,服務器端驗證解密后得到的服務器端消息和服務器端本地保存的服務 器端消息是否一致。為驗證客戶端是否可信,服務器端可以通過驗證客戶端能否正確解密服務器端密文來進行。具體來說,服務器解密客戶端返回的第二消息得到服務器端消息后,驗證該解密 后得到的服務器端消息是否與服務器端本地保存的服務器端消息一致。步驟214,若服務器端解密后得到的服務器端消息和服務器端本地保存的服務器 端消息一致,則服務器端確認客戶端可信。在服務器端解密后得到的服務器端消息和服務器端本地保存的服務器端消息一 致時,服務器端認為客戶端可以正確解密服務器端密文,從而認為客戶端是可信的。
本實施例中服務器端向客戶端發(fā)送加密后的服務器端消息即服務器端密文,并解 密客戶端返回的第二消息,通過比較解密得到的服務器端消息和服務器端本地保存的客戶 端消息是否一致,來確認客戶端是否可以正確解密,從而確認客戶端是否可信。該方法可以 有效驗證客戶端的合法性,減少或避免服務器端遭受的非法攻擊,提高網(wǎng)絡應用的安全性。請參閱圖3,圖3為本發(fā)明實施例提供的另一種DHCP安全通信方法。該方法主要 包括如下步驟。步驟302,客戶端向服務器端發(fā)送第一消息,其中第一消息包括接入挑戰(zhàn)請求,所 述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證。步驟304,客戶端接收服務器端返回的第一響應,第一響應包括服務器端密文。服務器端密文由服務器端對服務器端消息進行加密得到。在具體應用時,服務器 端消息可以是隨機數(shù),對該隨機數(shù)進行加密即可得到服務器端密文。服務器端采用的加密 算法可以為非對稱算法或者對稱算法。以非對稱算法為例,考慮到一個服務器端往往對應 多個客戶端,為了降低服務器端的工作量,可以采用服務器端和該客戶端上一次認證過程 中生成的服務器端共享密鑰對該隨機數(shù)進行加密。步驟306,客戶端解密所述服務器端密文得到服務器端消息,并生成客戶端第一密 文或客戶端第二密文??蛻舳松煽蛻舳讼ⅲ瑢蛻舳讼⑦M行加密得到客戶端第一密文;或者客戶 端對服務器端消息和客戶端消息的組合進行加密得到客戶端第二密文。在具體應用時,客戶端消息可以是一個隨機數(shù)。對該隨機數(shù)進行加密,得到客戶端 第一密文;或者將服務器端消息和客戶端消息組合后得到一個隨機數(shù)串,對該隨機數(shù)串進 行加密得到客戶端第二密文,以非對稱算法為例進行說明,在進行加密時,可以采用服務器 端和該客戶端上一次認證過程中生成的客戶端共享密鑰進行加密。步驟308,客戶端向服務器端發(fā)送第二消息,第二消息包括服務器端消息和客戶端 第一密文,或者第二消息包括客戶端第二密文。以非對稱算法為例,在實際應用時,在步驟308之前,客戶端在本次認證過程中還 可以重新生成一個客戶端私鑰和客戶端公鑰(即生成一個新的客戶端私鑰和一個新的客 戶端公鑰),具體算法可以參考現(xiàn)有技術(shù),此處不再詳述??蛻舳丝梢赃M一步保存該重新生成的客戶端私鑰。客戶端還可以在第二消息中攜帶該新的客戶端公鑰,以保證服務器端能夠在本次 認證過程中根據(jù)該新的客戶端公鑰來生成一個新的服務器端共享密鑰。步驟310,客戶端接收服務器端返回的第二響應,第二響應包括客戶端消息。服務器端在接收到第二消息后,若驗證出第二消息中包含的服務器端消息和服務 器端本地保存的服務器端消息一致,會確認客戶端可信。進一步地,服務器端會對客戶端第一密文進行解密得到服務器端消息;服務器端將對客戶端第一密文解密后得到的服務器端 消息發(fā)送給客戶端,以便客戶端可以來驗證服務器端是否可信?;蛘叻掌鞫嗽诮拥降诙⒑?,對客戶端第二密文解密得到服務器端消息和客 戶端消息,并驗證出解密后得到的服務器端消息和服務器端本地保存的服務器端消息一致 時,會確認客戶端可信。進一步地,服務器端將對客戶端第二密文解密后得到的服務器端消 息發(fā)送給客戶端,以便客戶端可以來驗證服務器端是否可信。步驟312,客戶端驗證接收到的客戶端消息和客戶端本地保存的客戶端消息是否一致。步驟314,若客戶端接收到的客戶端消息和客戶端本地保存的客戶端消息一致,則 客戶端確認服務器端可信。在客戶端接收到的客戶端消息和客戶端本地保存的客戶端消息一致時,客戶端認 為服務器端可以正確解密客戶端密文,從而認為服務器端是可信的。在實際應用時,為了進一步加強服務器端和客戶端之間的安全通信,步驟310中 的客戶端消息也可以是服務器端重新加密后的客戶端消息,服務器端在加密時可以利用上 一次認證過程中生成的服務器端共享密鑰;相應地,對客戶端而言,利用上一次認證過程中 客戶端生成的私鑰來進行解密?;蛘撸掌鞫嗽诩用軙r也可以利用本次認證過程中生成 的服務器端共享密鑰,這時服務器端還需要進一步將本次認證過程中生成的新的服務器端 公鑰發(fā)給客戶端,客戶端基于該新的服務器端公鑰生成一個新的客戶端共享密鑰,即本次 認證過程中生成的客戶端共享密鑰。此外,在步驟310中,第二響應中還可以包括服務器端分配給客戶端的IP地址;則 在步驟314中客戶端確認服務器端可信之后還可以包括客戶端獲取該IP地址,與服務器 端建立連接。本實施例中在服務器端通過對客戶端的認證之后,進一步由客戶端來對服務器端 進行認證,能夠進一步加強服務器端和客戶端之間的安全通信。請參閱圖4,圖4為本發(fā)明實施例提供的另一種DHCP安全通信方法。該實施例中 采用的加密算法為非對稱算法。該方法主要包括如下步驟。步驟402,客戶端向服務器端發(fā)送第一消息,其中第一消息包括接入挑戰(zhàn)請求,所 述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證。 考慮到和DHCP協(xié)議的兼容,本實施例中第一消息可以是DHCPDISC0VER/0PTI0N消 息。進一步地,該DHCP DISCOVER/OPTION消息中還可以攜帶客戶端ID,時間戳。步驟404,服務器端生成服務器端消息并加密,以及生成服務器端第一信息摘要。本實施例中服務器端消息可以是隨機數(shù)s,對隨機數(shù)s進行加密即可得到服務器 端密文。服務器端第一信息摘要可以用于防止服務器端密文被篡改??紤]到一個服務器端往往對應多個客戶端,為了降低服務器端的工作量,可以采 用服務器端和該客戶端上一次認證過程中生成的服務器端共享密鑰對隨機數(shù)s進行加密。步驟406,服務器端向客戶端發(fā)送第一響應,其中第一響應包括服務器端密文和服 務器端第一信息摘要。這里,第一響應可以是DHCP OFFER/OPTION消息。步驟408,客戶端對服務器端密文進行解密,得到服務器端消息??蛻舳松煽蛻舳讼?,對服務器端消息和客戶端消息的組合進行加密得到客戶端第二密文??蛻舳诉€生 成客戶端信息摘要。此外,客戶端還生成客戶端公鑰和客戶端私鑰。顯然,步驟408中所生成的客戶端公鑰和客戶端私鑰在本次認證過程中生成的新 的客戶端公鑰和客戶端私鑰??蛻舳诵畔⒄梢杂糜诜乐箍蛻舳说诙芪谋淮鄹?。本實施例中客戶端消息可以是隨機數(shù)C,服務器端消息和客戶端消息的一種組合 為C-S,即將隨機數(shù)C和隨機數(shù)S進行合并得到隨機數(shù)串C-S,對隨機數(shù)C-S進行加密得到 客戶端第二密文,例如可以采用服務器端和該客戶端上一次認證過程中生成的客戶端共享 密鑰對該隨機數(shù)串C-S進行加密。步驟410,客戶端向服務器端發(fā)送第二消息,第二消息包括客戶端第二密文,客戶 端公鑰和客戶端信息摘要。具體實現(xiàn)時,第二消息可以是DHCP REQUEST/OPTION消息,該DHCPREQUEST/ OPTION消息攜帶客戶端公鑰、客戶端信息摘要以及加密后的隨機數(shù)串c-s。步驟412,服務器端解密客戶端第二密文,得到服務器端消息和客戶端消息,在該 解密后得到的服務器端消息和服務器端本地保存的服務器端消息一致時,確認客戶端可
fn °具體地,在進行解密時,采用上一次服務器端和該客戶端認證過程中生成的服務 器端私鑰對該隨機數(shù)串C-S進行加密,得到隨機數(shù)C和隨機數(shù)S,若隨機數(shù)S沒有發(fā)生改變, 則確認客戶端可信。服務器端還生成服務器端公鑰和服務器端私鑰,以及生成服務器端第二信息摘要。此外,服務器端根據(jù)客戶端公鑰生成服務器端共享密鑰;進一步地,服務器端利用 該服務器端共享密鑰對客戶端消息例如隨機數(shù)c進行加密。步驟414,服務器端向客戶端返回第二響應,第二響應包括服務器端公鑰,加密后 的客戶端消息,以及服務器端第二信息摘要。服務器端第二信息摘要用于防止加密后的客戶端消息被篡改。具體地,第二響應可以是DHCP ACK消息,該DHCP ACK消息攜帶服務器端公鑰,力口 密后的隨機數(shù)c,以及服務器端第二信息摘要。步驟416,客戶端進行解密得到客戶端消息,在該解密后得到的客戶端消息和客戶 端本地保存的客戶端消息一致時,確認服務器端可信。具體地,在進行解密時,客戶端利用本次認證過程中生成的客戶端私鑰(即步驟 408中生成的客戶端私鑰)進行解密,得到隨機數(shù)c,若隨機數(shù)c沒有發(fā)生改變,則確認服務
器端可信。本實施例中對服務器端來說,可以有效驗證客戶端的合法性,對客戶端來說,可以 有效驗證服務器端的合法性,從而保證客戶端和服務器端之間的安全通信,減少或避免服 務器端遭受的非法攻擊,提高網(wǎng)絡應用的安全性。圖5為本發(fā)明實施例提供的一種服務器端裝置結(jié)構(gòu)示意圖。該裝置主要包括第一接收模塊502,生成模塊504,第一發(fā)送模塊506,第二接收模塊508以及驗證模塊510。其中第一接收模塊502,用于接收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;生成模塊504,用于在第 一接收模塊502接收到接入挑戰(zhàn)請求后生成服務器端密文;第一發(fā)送模塊506,用于向客戶 端發(fā)送第一響應,第一響應包括生成模塊504生成的服務器端密文;第二接收模塊508,用 于接收客戶端返回的第二消息,第二消息包括客戶端對服務器端密文進行解密后得到的服 務器端消息;驗證模塊510,用于驗證第二消息中的服務器端消息和服務器端本地保存的 服務器端消息是否一致,在一致時確認客戶端可信。其中生成模塊504在生成服務器端密文時,生成服務器端消息并進行加密得到服務器端密文,例如對非對稱算法來說,可以采用服務器端和該客戶端上一次認證過程中生 成的服務器端共享密鑰對該隨機數(shù)進行加密。若第二消息中還包括客戶端第一密文,則服務器端還可以包括解密模塊以及第二 發(fā)送模塊,其中解密模塊用于在驗證模塊510確認客戶端可信后,對客戶端第一密文進行 解密得到客戶端消息,第二發(fā)送模塊用于發(fā)送第二響應給客戶端,其中第二響應包括客戶 端消息。本實施例中服務器端向客戶端發(fā)送加密后的服務器端消息即服務器端密文,并驗 證客戶端返回的服務器端消息和服務器端本地保存的客戶端消息是否一致,若一致,則確 認客戶端可以正確解密,從而確認客戶端可信。該方法可以有效驗證客戶端的合法性,減少 或避免服務器端遭受的非法攻擊,提高網(wǎng)絡應用的安全性圖6為本發(fā)明實施例提供的另一種服務器端裝置結(jié)構(gòu)示意圖。該裝置主要包括 第一接收模塊602,生成模塊604,第一發(fā)送模塊606,第二接收模塊608,解密模塊610以及 驗證模塊612。其中第一接收模塊602,用于接收客戶端發(fā)送的第一消息,第一消息包括接入挑 戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;生成模塊604,用于在 第一接收模塊接收到接入挑戰(zhàn)請求后生成服務器端密文;第一發(fā)送模塊606,用于向客戶 端發(fā)送第一響應,第一響應包括生成模塊604生成的服務器端密文;第二接收模塊608,用 于接收客戶端返回的第二消息,第二消息包括客戶端第二密文;其中客戶端第二密文由客 戶端對服務器端消息和客戶端消息的組合進行加密得到,服務器端消息由客戶端對服務器 端密文解密后得到;解密模塊610,用于解密客戶端第二密文得到服務器端消息;驗證模塊 612,用于驗證解密后得到的服務器端消息和服務器端本地保存的服務器端消息是否一致, 若一致時確認客戶端可信。其中生成模塊602在生成服務器端密文時,生成服務器端消息并進行加密得到服 務器端密文,例如對非對稱算法來說,可以采用服務器端和該客戶端上一次認證過程中生 成的服務器端共享密鑰對該隨機數(shù)進行加密。由于解密模塊610解密客戶端第二密文除得到服務器端消息外,還可以得到客戶 端消息,因而服務器端還可以進一步包括第二發(fā)送模塊,用于發(fā)送第二響應給客戶端,其中 第二響應包括客戶端消息。本實施例中服務器端向客戶端發(fā)送加密后的服務器端消息即服務器端密文,并解 密客戶端返回的第二消息,通過比較解密得到的服務器端消息和服務器端本地保存的客戶 端消息是否一致,來確認客戶端是否可以正確解密,從而確認客戶端是否可信。該方法可以 有效驗證客戶端的合法性,減少或避免服務器端遭受的非法攻擊,提高網(wǎng)絡應用的安全性。
圖7為本發(fā)明實施例提供的一種客戶端裝置結(jié)構(gòu)示意圖。該裝置主要包括第一發(fā)送模塊702,第一接收模塊704,第一解密模塊706,生成模塊708,加密模塊710,第二發(fā)送 模塊712,第二接收模塊714,驗證模塊716。其中,第一發(fā)送模塊702用于向服務器端發(fā)送第一消息,第一消息包括接入挑戰(zhàn) 請求,所述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;第一接收模塊704,用于 接收服務器端返回的第一響應,第一響應包括服務器端密文;第一解密模塊706,用于對服 務器端密文進行解密得到服務器端消息;生成模塊708,用于生成客戶端消息;加密模塊 710,用于對客戶端消息進行加密得到客戶端第一密文或者對服務器端消息和客戶端消息 的組合進行加密得到客戶端第二密文;第二發(fā)送模塊712,用于向服務器端發(fā)送第二消息, 第二消息包括服務器端消息和客戶端第一密文,或者第二消息包括客戶端第二密文;第二 接收模塊714,用于接收服務器端返回的第二響應,第二響應包括客戶端消息,其中客戶端 消息由服務器端對客戶端第一密文或客戶端第二密文解密后得到;驗證模塊716,用于驗 證接收到的客戶端消息與客戶端本地保存的客戶端消息是否一致,在一致時確認服務器端 可信。進一步地,若第二響應中的客戶端消息為服務器端重新加密后的客戶端消息;則 所述客戶端裝置還包括第二解密模塊,用于對所述重新加密后的客戶端消息進行解密。驗 證模塊716用于確認解密后得到的客戶端消息與客戶端本地保存的客戶端消息是否一致, 在一致時確認服務器端可信。此外,若第二響應中還包括服務器端分配給客戶端的IP地址,則客戶端裝置還可 以包括連接建立模塊,用于獲取服務器端分配給客戶端的IP地址,并與服務器端建立連 接。本實施例中在服務器端通過對客戶端的認證之后,向客戶端返回客戶端消息,由 客戶端來驗證該返回的客戶端消息是否保持不變,從而實現(xiàn)對服務器端的認證,能夠進一 步加強服務器端和客戶端之間的安全通信。此外,本發(fā)明實施例還提供了一種系統(tǒng),該系統(tǒng)包括有服務器端裝裝置和客戶端 裝置。其中,客戶端裝置或服務器端裝孩子具體實現(xiàn)方式可以參照上述實施例,此處不再詳 敘。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述所有實施例方法中的全部或部分步驟是 可以通過程序來指令相關(guān)的硬件完成,該程序可以存儲于一種計算機可讀存儲介質(zhì)中。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解其依然 可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替 換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精 神和范圍。
權(quán)利要求
一種DHCP安全通信方法,其特征在于,包括服務器端接收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;服務器端生成服務器端消息,并進行加密得到服務器端密文;服務器端向客戶端發(fā)送第一響應,第一響應包括服務器端密文;服務器端接收客戶端返回的第二消息,第二消息包括服務器端消息,第二消息中的服務器端消息由客戶端對服務器端密文解密后得到;服務器端驗證第二消息中的服務器端消息和服務器端本地保存的服務器端消息是否一致,若一致則服務器端確認客戶端可信。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第二消息還包括客戶端第一密文,所 述方法還包括服務器端解密客戶端第一密文得到客戶端消息;服務器端發(fā)送第二響應給客戶端,第二響應包括客戶端消息。
3.—種DHCP安全通信方法,其特征在于,包括服務器端接收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請 求用于請求服務器端對該客戶端進行認證;服務器端生成服務器端消息,并進行加密得到服務器端密文; 服務器端向客戶端發(fā)送第一響應,第一響應包括服務器端密文; 服務器端接收客戶端返回的第二消息,第二消息包括客戶端第二密文;其中客戶端第 二密文由客戶端對服務器端消息和客戶端消息的組合進行加密得到,服務器端消息由客戶 端對服務器端密文解密后得到;服務器端解密客戶端第二密文得到服務器端消息;服務器端驗證解密后得到的服務器端消息和服務器端本地保存的服務器端消息是否 一致,若一致則服務器端確認客戶端可信。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,服務器端解密客戶端第二密文后還得到 客戶端消息,所述方法還包括服務器端發(fā)送第二響應給客戶端,第二響應包括客戶端消息。
5.一種DHCP安全通信方法,其特征在于,包括客戶端向服務器端發(fā)送第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入挑戰(zhàn)請求用 于請求服務器端對該客戶端進行認證;客戶端接收服務器端返回的第一響應,第一響應包括服務器端密文; 客戶端解密所述服務器端密文得到服務器端消息,客戶端生成客戶端消息,以及對客 戶端消息進行加密得到客戶端第一密文或者對服務器端消息和客戶端消息的組合進行加 密得到客戶端第二密文;客戶端向服務器端發(fā)送第二消息,第二消息包括服務器端消息和客戶端第一密文,或 者第二消息包括客戶端第二密文;客戶端接收服務器端返回的第二響應,第二響應包括客戶端消息,第二響應中的客戶 端消息由服務器端對客戶端第一密文或客戶端第二密文解密后得到;客戶端驗證接收到的客戶端消息與客戶端本地保存的客戶端消息是否一致;若是,則客戶端確認服務器端可信。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,第二響應中的客戶端消息為服務器端重 新加密后的客戶端消息;在所述驗證之前所述方法還包括客戶端對重新加密后的客戶端消息進行解密。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,第二響應中還包括服務器端分配給客戶 端的IP地址;客戶端確認服務器端可信之后所述方法還包括 客戶端獲取該IP地址,與服務器端建立連接。
8.一種服務器端裝置,其特征在于,包括第一接收模塊,用于接收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接 入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;生成模塊,用于在第一接收模塊接收到接入挑戰(zhàn)請求后生成服務器端密文; 第一發(fā)送模塊,用于向客戶端發(fā)送第一響應,第一響應包括生成模塊生成的服務器端 密文;第二接收模塊,用于接收客戶端返回的第二消息,第二消息包括客戶端對服務器端密 文進行解密后得到的服務器端消息;驗證模塊,用于驗證第二消息中的服務器端消息和服務器端本地保存的服務器端消息 是否一致,在一致時確認客戶端可信。
9.根據(jù)權(quán)利要求8所述的服務器端裝置,其特征在于,若第二消息中還包括客戶端第 一密文,則服務器端裝置還包括解密模塊,用于在驗證模塊確認客戶端可信后,對客戶端第一密文進行解密得到客戶 端消息;第二發(fā)送模塊,用于發(fā)送第二響應給客戶端,其中第二響應包括客戶端消息。
10.一種服務器端裝置,其特征在于,包括第一接收模塊,用于接收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,所述接 入挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;生成模塊,用于在第一接收模塊接收到接入挑戰(zhàn)請求后生成服務器端密文; 第一發(fā)送模塊,用于向客戶端發(fā)送第一響應,第一響應包括生成模塊生成的服務器端 密文;第二接收模塊,用于接收客戶端返回的第二消息,第二消息包括客戶端第二密文;其中 客戶端第二密文由客戶端對服務器端消息和客戶端消息的組合進行加密得到,服務器端消 息由客戶端對服務器端密文解密后得到;解密模塊,用于解密客戶端第二密文得到服務器端消息;驗證模塊,用于驗證解密模塊解密得到的服務器端消息和服務器端本地保存的服務器 端消息是否一致,若一致時確認客戶端可信。
11.根據(jù)權(quán)利要求10所述的服務器端裝置,其特征在于,若第二消息中還包括客戶端 第一密文,則服務器端還包括第二發(fā)送模塊,用于發(fā)送第二響應給客戶端,其中第二響應包括客戶端消息,其中客戶端消息由解密模塊解密客戶端第二密文得到。
12.—種客戶端裝置,其特征在于,包括第一發(fā)送模塊,用于向服務器端發(fā)送第一消息,第一消息包括接入挑戰(zhàn)請求,所述接入 挑戰(zhàn)請求用于請求服務器端對該客戶端進行認證;第一接收模塊,用于接收服務器端返回的第一響應,第一響應包括服務器端密文; 第一解密模塊,用于對服務器端密文進行解密得到服務器端消息; 生成模塊,用于生成客戶端消息;加密模塊,用于對客戶端消息進行加密得到客戶端第一密文或者對服務器端消息和客 戶端消息的組合進行加密得到客戶端第二密文;第二發(fā)送模塊,用于向服務器端發(fā)送第二消息,第二消息包括服務器端消息和客戶端 第一密文,或者第二消息包括客戶端第二密文;第二接收模塊,用于接收服務器端返回的第二響應,第二響應包括客戶端消息,第二響 應中的客戶端消息由服務器端對客戶端第一密文或客戶端第二密文解密后得到;驗證模塊,用于驗證第二接收模塊接收到的客戶端消息與客戶端本地保存的客戶端消 息是否一致,在一致時確認服務器端可信。
13.根據(jù)權(quán)利要求12所述的客戶端裝置,其特征在于,所述第二響應中還包括服務器 端分配給客戶端的IP地址;所述客戶端裝置還包括連接建立模塊,用于獲取服務器端分配給客戶端的IP地址,并與服務器端建立連接。
14.根據(jù)權(quán)利要求12所述的客戶端裝置,其特征在于,第二響應中的客戶端消息為服 務器端重新加密后的客戶端消息;所述客戶端裝置還包括第二解密模塊,用于對所述第二接收模塊接收到的重新加密后的客戶端消息進行解密;所述驗證模塊,用于驗證第二解密模塊解密后得到的客戶端消息與客戶端本地保存的 客戶端消息是否一致,在一致時確認服務器端可信。
15.一種系統(tǒng),包括服務器端裝置,以及如權(quán)利要求12-14中任意一項所述的客戶端裝置。
全文摘要
本發(fā)明實施例提供一種DHCP安全通信方法,包括服務器端接收客戶端發(fā)送的第一消息,第一消息包括接入挑戰(zhàn)請求,用于請求服務器端對該客戶端進行認證;服務器端生成服務器端消息,并進行加密得到服務器端密文;服務器端向客戶端發(fā)送第一響應,第一響應包括服務器端密文;服務器端接收客戶端返回的第二消息,第二消息包括服務器端消息,其中服務器端消息由客戶端對服務器端密文解密后得到;服務器端驗證第二消息中的服務器端消息和服務器端本地保存的服務器端是否消息一致,若一致則服務器端確認客戶端可信。此外,本發(fā)明實施例還提供一種服務器端裝置和客戶端裝置。
文檔編號H04L29/06GK101827106SQ201010166238
公開日2010年9月8日 申請日期2010年4月29日 優(yōu)先權(quán)日2010年4月29日
發(fā)明者徐煒 申請人:華為技術(shù)有限公司