本發明涉及一種時間戳認證系統和方法。
背景技術:
:現如今,當客戶端連接到服務器時,服務器根據其上配置的DHCP協議自動為客戶端分配IP地址等信息。當服務器上的DHCP協議的配置變更以后,服務器向客戶端發送ForceRenew數據包,通知客戶端向服務器重新申請IP地址等信息。但是客戶端不會對ForceRenew數據包進行驗證,使得當客戶端接收到虛假服務器發送的ForceRenew數據包后,客戶端會向虛假服務器申請IP地址,從而出現安全問題。技術實現要素:鑒于以上內容,有必要提供一種時間戳認證系統及方法,使得客戶端可以驗證ForceRenew數據包是否是從虛假服務器發出。一種時間戳認證系統,運行于服務器中,該服務器與客戶端通信連接,該系統包括:生成模塊,用于在服務器上的DHCP的配置變更以后,依次生成至少兩個ForceRenew數據包,所述ForceRenew數據包中包含時間戳FTime、時間差FTD;加密模塊,用于以服務器的私有秘鑰對生成的ForceRenew數據包進行非對稱加密;發送模塊,用于將至少兩個ForceRenew數據包按照其生成的先后順序發送給客戶端;及反饋模塊,用于在接收到客戶端發送的Renew數據包后,向客戶端發送Reply數據包。一種時間戳認證方法,應用于服務器中,該服務器與客戶端通信連接,該方法包括:生成步驟,在服務器上的DHCP的配 置變更以后,依次生成至少兩個ForceRenew數據包,所述ForceRenew數據包中包含時間戳FTime、時間差FTD;加密步驟,以服務器的私有秘鑰對生成的ForceRenew數據包進行非對稱加密;發送步驟,將至少兩個ForceRenew數據包按照其生成的先后順序發送給客戶端;及反饋步驟,在接收到客戶端發送的Renew數據包后,向客戶端發送Reply數據包。相較于現有技術,本發明中的服務器生成的ForceRenew數據包包含時間戳FTime以及時間差FTD,且ForceRenew數據包被服務器以私有秘鑰進行加密。客戶端可根據連續兩個ForceRenew數據包中的FTime以及FTD驗證該ForceRenew數據包是否是從虛假服務器中發出。通過本技術,提高了客戶端與服務器之間的安全性。附圖說明圖1是本發明時間戳認證系統的較佳實施例的運行環境示意圖。圖2是本發明時間戳認證方法的較佳實施例的流程圖。主要元件符號說明服務器1時間戳認證系統10生成模塊101加密模塊102發送模塊103反饋模塊104第一通信裝置11第一處理器12第一存儲裝置13客戶端2第二通信裝置21第二處理器22第二存儲裝置23如下具體實施方式將結合上述附圖進一步說明本發明。具體實施方式為便于理解,以下對本發明所涉及的術語做簡要說明:非對稱加密中的加密和解密需要以兩個不同的秘鑰進行處理,兩個秘鑰分別為:公有秘鑰和私有秘鑰。若以其中一個秘鑰加密,則需要以另一個秘鑰進行解密。例如以公有秘鑰進行加密,則需要以私有秘鑰進行解密。反之以私有秘鑰進行加密,則需要以公有秘鑰進行解密。動態主機配置協議(DynamicHostConfigurationProtocol,DHCP)是一個局域網的網絡協議。配置于客戶端和服務器上,當客戶端連接到服務器時,服務器自動為客戶端分配IP地址。網絡管理員可通過服務器管理內部網絡。當服務器上的DHCP的配置變更后,連接到該服務器上的客戶端需要重新獲取IP地址等信息。其過程如下:服務器以單播的方式向連接到該服務器的客戶端發送數據包以通知客戶端重新獲取IP地址等信息,該數據包為ForceRenew。當客戶端收到服務器發送的ForceRenew數據包后,向服務器發送請求重新配置的申請,也即Renew數據包。當服務器收到客戶端發送的Renew數據包后,向客戶端做出回應,也即向客戶端發送Reply數據包。客戶端根據接收到的Reply數據包變更相關的配置,例如變更IP地址等。參閱圖1所示,是本發明時間戳認證系統10的較佳實施例的運行環境示意圖。所述時間戳認證系統10運行于服務器1中,該服務器1與多個客戶端2相連接。所述服務器1包含第一通信裝置 11,每個客戶端2包含一個第二通信裝置21,所述服務器1與客戶端2通過第一通信裝置11與第二通信裝置21通信連接。所述第一通信裝置11與第二通信裝置21可以是WiFi設備、無線網卡等能夠實現無線網絡連接的設備,也可以是其他實現有線網絡連接的設備。所述服務器1還包括,但不限于,第一處理器12以及第一存儲裝置13。所述客戶端還包含第二處理器22以及第二存儲裝置23。所述第一存儲裝置13以及第二存儲裝置23可以是內存等內部存儲設備,也可以是智能媒體卡(SmartMediaCard)、安全數字卡(SecureDigitalCard)、快閃存儲器卡(FlashCard)等外部儲存設備。所述服務器1是配置有動態主機配置協議(DynamicHostConfigurationProtocol,DHCP)的DHCP服務器。所述客戶端2可以是手機、平板電腦、路由器等包含IP地址的設備。在本實施例中,本發明所述的時間戳認證系統10可以被分割成一個或多個模塊,所述一個或多個模塊均被存儲于第一存儲裝置13中,并由一個或多個第一處理器12(本實施例為一個處理器)所執行,以完成本發明。參閱圖1所示,本發明所述的時間戳認證系統10被分割成生成模塊101、加密模塊102、發送模塊103以及反饋模塊104。本發明所稱的模塊是指能夠完成特定功能的一系列計算機程序段,比程序更適合于描述所述時間戳認證系統10在服務器1中的執行過程。以下將結合圖2的流程圖來描述各個模塊的具體功能。參閱圖2所示,是本發明時間戳認證方法的較佳實施例的流程圖。在本實施例中,根據不同的需求,圖2所示的流程圖中的步驟的執行順序可以改變,某些步驟可以省略。當服務器1上的DHCP的配置變更以后,步驟S20,生成模塊101依次生成至少兩個ForceRenew數據包。所述ForceRenew數據包中包含時間戳FTime、時間差FTD以及服務器識別碼Server ID等信息,且后生成的ForceRenew數據包中的時間戳FTime是其前一個ForceRenew數據包中的時間戳FTime與時間差FTD的和。例如生成模塊101生成的第一個ForceRenew數據包的FTime為10000,FTD為20,則生成的第二個ForceRenew數據包的FTime必須為10000+20,也即10020。在本實施例中,生成模塊101生成的各個ForceRenew數據包中的時間差FTD不是一個固定的值。例如,生成模塊101每次從某一數值范圍內隨機取一個整數作為一個ForceRenew數據包的FTD。例如生成模塊101從10到100之間隨機取一個整數作為ForceRenew數據包的FTD。在其他實施例中,生成模塊101生成的各個ForceRenew數據包中的時間差FTD也可以是某一固定的值。步驟S21,加密模塊102以服務器1的私有秘鑰對生成的ForceRenew數據包進行非對稱加密。所述服務器1中的第一存儲裝置13中存儲有該服務器1的私有秘鑰。步驟S22,發送模塊103將至少兩個ForceRenew數據包按照其生成的先后順序發送給客戶端2。所述發送模塊103每隔指定時間間隔(例如100毫秒)按照生成順序向客戶端2發送一個ForceRenew數據包,直到收到客戶端2的回復(也即Renew數據包)時停止發送。需要說明的是,所述生成模塊101在首次運行時會生成兩個連續的ForceRenew數據包。加密模塊102加密生成的ForceRenew數據包后,經由發送模塊103發送給客戶端2。若在第二個ForceRenew數據包發出后的一定時間(例如80毫秒,假設兩個ForceRenew數據包的發送時間間隔是100毫秒)內,未收到客戶端2的回復,則生成模塊101生成第三個Forcerenew數據包,該第三個ForceRenew數據包經過加密模塊102加密處理后,由發送模塊103在第二個ForceRenew數據包發出后的指定時間間隔(例如100毫秒)時,發送給客戶端2。依次類推之后的Force Renew數據包。當客戶端2從某一服務器連續接收到至少兩個ForceRenew數據包后,所述客戶端2判斷發送ForceRenew數據包的服務器是不是虛假服務器,并在發送ForceRenew數據包的服務器不是虛假服務器時,向該服務器發送Renew數據包。所述客戶端2以服務器1的公有秘鑰解密接收到的ForceRenew數據包,并根據能否解密以及解密后的兩個ForceRenew數據包中的FTime與FTD判斷發送ForceRenew數據包的服務器是不是虛假服務器。若客戶端2不能以服務器1的公有秘鑰解密ForceRenew數據包,則表示該ForceRenew數據包不是從服務器1發出的,也即客戶端2判斷發送ForceRenew數據包的服務器是虛假服務器。當客戶端2能夠以服務器1的公有秘鑰解密ForceRenew數據包,則客戶端2判斷后接收的ForceRenew數據包中的FTime是否等于先接收的ForceRenew數據包中的FTime與FTD的和。若后接收的ForceRenew數據包中的FTime等于先接收的ForceRenew數據包中的FTime與FTD的和,則客戶端2判斷發送ForceRenew數據包的服務器不是虛假服務器。若后接收的ForceRenew數據包中的FTime不等于先接收的ForceRenew數據包中的FTime與FTD的和,則客戶端2無法判斷發送ForceRenew數據包的服務器是不是虛假服務器,客戶端2拒絕向發出該ForceRenew數據包的服務器做出回應。例如服務器1連續生成三個ForceRenew數據包并發送給客戶端2,因一些原因(例如網絡延遲、丟失數據包等),客戶端2連續接收的兩個ForceRenew數據包不是連續的,例如接收到第一個ForceRenew數據包和第三個ForceRenew數據包。則客戶端2無法根據ForceRenew數據包中的FTime與FTD判斷ForceRenew數據包是由服務器1發出的。在本實施例中,所述客戶端2的第二存儲裝置23中預先存儲有對應于服務器1中的私有秘鑰的公有秘鑰。在其他實施例中,所述客戶端2也可通過其他方式獲取對應于服務器1中的私有秘 鑰的公有秘鑰,例如從指定網站下載。當客戶端2判斷發送ForceRenew數據包的服務器不是虛假服務器時,客戶端2向該服務器發送Renew數據包以請求重新獲取IP地址等信息。步驟S23,反饋模塊104在接收到客戶端2發送的Renew數據包后,向客戶端2發送Reply數據包。客戶端2接收到Reply數據包后,根據Reply數據包變更相關的配置,例如變更IP地址等。最后所應說明的是,以上實施例僅用以說明本發明的技術方案而非限制,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或等同替換,而不脫離本發明技術方案的精神和范圍。當前第1頁1 2 3