本發(fā)明涉及數(shù)據(jù)加密領域,尤其涉及一種基于客戶端/服務器模式的通訊數(shù)據(jù)加密方法及裝置。
背景技術:
在安全對于IT行業(yè)的重要性越來越高的今天,如何保證網(wǎng)絡通訊的安全已成為一個廣泛關注的課題,故通常會采用各式各樣的加密算法或加密方法來保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
由于數(shù)據(jù)算法和數(shù)據(jù)本身的問題,加密后數(shù)據(jù)容易被破解,導致數(shù)據(jù)傳輸?shù)牟话踩?/p>
現(xiàn)有技術中,客戶端與服務器之間加密通訊中使用的會話密鑰一般采用硬件標識作為種子或采用時間作為種子,本加密方法采用多種方式結(jié)合,可以進一步提高加密內(nèi)容的隨機性,從而使破解難度增大。
技術實現(xiàn)要素:
本發(fā)明通過多種加密技術結(jié)合,并保證在客戶端與服務端進行通訊時,隨著時間的變化通訊所使用的密鑰發(fā)生變化,以提高通訊的安全性,增大密鑰破解的難度。
本發(fā)明提供的技術方案是:
一種基于客戶端/服務器模式的通訊數(shù)據(jù)加密方法,包括:
S1、運行客戶端程序,獲取主板BIOS中的主板ID和CPU的ID;
S1、客戶端依據(jù)所獲得的主板ID和CPU的ID生成密鑰段,所述密鑰段的生成公式為:當前UTC時間+BIOSID+客戶端IP+CPUID+GUID-md5(GUID+當前UTC時間+BIOSID+客戶端IP+CPUID)+10位隨機字符串;
S3、服務器檢驗客戶端所生成的密鑰段是否合法,若合法,則允許將所獲取的密鑰段上傳至服務器,若不合法,則不回應客戶端;
S4、服務器根據(jù)所獲取的密鑰段生成N組通訊密鑰組(其中N為大于200的自然數(shù)),所述通訊密鑰組的生成公式為:sha(密鑰段+服務器IP+GUID);
S5、將步驟S4中的N組通訊密鑰組加密傳送給客戶端,客戶端解密得到密鑰,實現(xiàn)服務器與客戶端的安全通訊。
進一步的,步驟S3中服務器具體是通過MD5來檢驗客戶端所生成的密鑰段是否合法。
進一步的,將步驟S4中所述的N組通訊密鑰組分隔以形成字符串,并使用步驟S2中所形成密鑰段的MD5值作為密鑰進行對稱加密。
進一步的,所述步驟S4中N組通訊密鑰組具體是通過英文半角逗號分隔成字符串;所述進行對稱加密所用的密鑰具體為步驟S2中所形成密鑰段的MD5值。
進一步的,客戶端與服務器的通訊隨機從一組通訊密鑰組中的某個密鑰對數(shù)據(jù)進行加密。
進一步的,當某個密鑰到達生命周期后,則跳轉(zhuǎn)到下一個密鑰對通訊數(shù)據(jù)進行加密。
進一步的,當一組通訊密鑰組到達生命周期后,則通過客戶端發(fā)起生成新的通訊密鑰組請求。
此外,本發(fā)明還提供一種基于客戶端/服務器模式的通訊數(shù)據(jù)加密裝置,包括:
參數(shù)獲取模塊,用于運行客戶端程序,以獲取主板BIOS中的主板ID和CPU的ID;
密鑰組生成模塊,用于通過客戶端依據(jù)所獲得的主板ID和CPU的ID生成密鑰段,所述密鑰段的生成公式為:當前UTC時間+BIOSID+客戶端IP+CPUID+GUID-md5(GUID+當前UTC時間+BIOSID+客戶端IP+CPUID)+10位隨機字符串;
檢驗模塊,用于通過服務器檢驗客戶端所生成的密鑰段是否合法,若合法,則允許將所獲取的密鑰段上傳至服務器,若不合法,則不回應客戶端;
通訊密鑰組生成模塊,用于通過服務器根據(jù)所獲取的密鑰段生成N組通訊密鑰組(其中N為大于200的自然數(shù)),所述通訊密鑰組的生成公式為:sha(密鑰段+服務器IP+GUID);
通訊運行模塊,用于將通過密鑰組生成模塊所獲得的N組通訊密鑰組加密傳送給客戶端,客戶端解密得到密鑰,實現(xiàn)服務器與客戶端的安全通訊。
進一步的,所述通訊數(shù)據(jù)加密裝置還包括,第一閾值判斷模塊,用于當某個密鑰到達生命周期后,則跳轉(zhuǎn)到下一個密鑰對通訊數(shù)據(jù)進行加密。
進一步的,所述通訊數(shù)據(jù)加密裝置還包括,第二閾值判斷模塊,用于當一組通訊密鑰組到達生命周期后,則通過客戶端發(fā)起生成新的通訊密鑰組請求。
本發(fā)明通過采用唯一的硬件ID號作為密鑰生成公式的參數(shù),且隨時間的變化密鑰發(fā)生變化,同時采用多種加密算法對客戶端與服務器的交互數(shù)據(jù)進行加密,增大了密鑰破解的難度,提高了客戶端與服務器通訊交互的安全性。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1為本發(fā)明實施例所提供的通訊數(shù)據(jù)加密方法流程圖;
圖2為本發(fā)明實施例所提供的通訊數(shù)據(jù)加密裝置框架圖。
具體實施方式
下面可以參照附圖1-2以及文字內(nèi)容理解本發(fā)明的內(nèi)容以及本發(fā)明與現(xiàn)有技術之間的區(qū)別點。下文通過附圖以及列舉本發(fā)明的一些可選實施例的方式,對本發(fā)明的技術方案(包括優(yōu)選技術方案)做進一步的詳細描述。需要說明的是:本實施例中的任何技術特征、任何技術方案均是多種可選的技術特征或可選的技術方案中的一種或幾種,為了描述簡潔的需要本文件中無法窮舉本發(fā)明的所有可替代的技術特征以及可替代的技術方案,也不便于每個技術特征的實施方式均強調(diào)其為可選的多種實施方式之一,所以本領域技術人員應該知曉:可以將本發(fā)明提供的任意技術手段進行替換或?qū)⒈景l(fā)明提供的任意兩個或更多個技術手段或技術特征互相進行組合而得到新的技術方案。本實施例內(nèi)的任何技術特征以及任何技術方案均不限制本發(fā)明的保護范圍,本發(fā)明的保護范圍應該包括本領域技術人員不付出創(chuàng)造性勞動所能想到的任何替代技術方案以及本領域技術人員將本發(fā)明提供的任意兩個或更多個技術手段或技術特征互相進行組合而得到的新的技術方案。
下面結(jié)合圖1-2對本發(fā)明提供的技術方案進行更為詳細的闡述。
實施例一
一種基于客戶端/服務器模式的通訊數(shù)據(jù)加密方法,如圖1所示,包括:
S1、運行客戶端程序,獲取主板BIOS中的主板ID和CPU的ID;
S2、客戶端依據(jù)所獲得的主板ID和CPU的ID生成密鑰段,所述密鑰段的生成公式為:當前UTC時間+BIOSID+客戶端IP+CPUID+GUID-md5(GUID+當前UTC時間+BIOSID+客戶端IP+CPUID)+10位隨機字符串;
S3、服務器檢驗客戶端所生成的密鑰段是否合法,若合法,則允許將所獲取的密鑰段上傳至服務器,若不合法,則不回應客戶端;
S4、服務器根據(jù)所獲取的密鑰段生成N組通訊密鑰組(其中N為大于200的自然數(shù)),所述通訊密鑰組的生成公式為:sha(密鑰段+服務器IP+GUID);
S5、將步驟S4中的N組通訊密鑰組加密傳送給客戶端,客戶端解密得到密鑰,實現(xiàn)服務器與客戶端的安全通訊。
本實施例所提出的通訊數(shù)據(jù)加密方法,首先通過啟動客戶端程序時運行芯片編碼,以獲得客戶端所在終端主板BIOS中的主板ID號以及CPU的ID號,然后通過公式:當前UTC時間+BIOSID+客戶端IP+CPUID+GUID-md5(GUID+當前UTC時間+BIOSID+客戶端IP+CPUID)+10位隨機字符串,以形成密鑰段,其中由于終端主板BIOS中的主板ID號以及CPU的ID號均屬于唯一的,所以,通過采用這兩個參數(shù)所獲得的密鑰段是不可重復的、唯一的,因而依據(jù)此所獲得的密鑰段具有更高的安全性;其次,通過服務器檢驗所獲得的密鑰段是否合法,其中是否合法具體是指服務器識別所接收的密鑰段是否是其所對應的客戶端所生成的,其實質(zhì)是某種標識的認證過程,為了避免服務器信息接收的準確性,當服務器校驗到客戶端所生成的密鑰段是相匹配的信息時,則允許將客戶端所生成的密鑰段上傳至服務器,否則,將不予回應;服務器將所獲取的密鑰段生成N組通訊密鑰組(其中N為大于200的自然數(shù)),并將通訊密鑰組加密傳送給客戶端,客戶端解密得到密鑰,以實現(xiàn)服務器與客戶端的安全通訊。
進一步的,步驟S3中服務器具體是通過MD5來檢驗客戶端所生成的密鑰段是否合法。這是由于MD5具有不可逆性,所以采用MD5檢驗客戶端所生成的密鑰是否合法具有難于破解,安全性更高的特性。
進一步的,將步驟S4中所述的N組通訊密鑰組分隔以形成字符串,并采用對稱加密算法進行加密。將通訊密鑰組分隔以形成字符串,并進行加密處理,便于在客戶端與服務器進行通訊時,能夠采用密鑰組內(nèi)的某個密鑰對通訊數(shù)據(jù)進行加密,使得密鑰能夠從通訊密鑰組中隨機提取,或者是隨著時間的變化產(chǎn)生變化,而不是采用統(tǒng)一的密鑰對通訊數(shù)據(jù)進行加密,同時在采用MD5加密算法的基礎上,結(jié)合對稱加密算法對通訊數(shù)據(jù)進行加密,從而提高客戶端與服務器交互時的安全性。
具體的,所述步驟S4中N組通訊密鑰組具體是通過英文半角逗號分隔成字符串;所述進行對稱加密所用的密鑰具體為步驟S2中所形成密鑰段的MD5值。通過采用英文半角逗號將通訊密鑰組分隔成字符串,由于采用了特殊的符號,所以增大了密鑰的破解難度,提高了通訊交互的安全性。
進一步的,客戶端與服務器的通訊隨機從一組通訊密鑰組中的某個密鑰對數(shù)據(jù)進行加密。通過不采用固定的密鑰對通訊數(shù)據(jù)進行加密,而是從通訊密鑰組中隨機提取某一密鑰對通訊數(shù)據(jù)進行加密,由于密鑰產(chǎn)生的不確定性,從而實現(xiàn)破解難度的增大。
進一步的,當某個密鑰到達生命周期后,則跳轉(zhuǎn)到下一個密鑰對通訊數(shù)據(jù)進行加密。當通訊密鑰組內(nèi)的某一密鑰到達生命周期,則采用該通訊密鑰組內(nèi)的下一個密鑰繼續(xù)對數(shù)據(jù)進行加密,其中生命周期是某個密鑰的使用閾值,使用次數(shù)達到使用閾值時,則不再使用該密鑰,而是跳轉(zhuǎn)到下一個密鑰繼續(xù)對通訊數(shù)據(jù)進行加密。通過控制某一密鑰的使用次數(shù),以實現(xiàn)增大破解的難度的目的。
進一步的,當一組通訊密鑰組到達生命周期后,則通過客戶端發(fā)起生成新的通訊密鑰組請求。當通某一通訊密鑰組到達生命周期,即是該通訊密鑰組內(nèi)的所有密鑰均達到使用閾值時,則回到步驟S1以重新開始密鑰獲取過程。
此外,本發(fā)明還提供一種基于客戶端/服務器模式的通訊數(shù)據(jù)加密裝置,如圖2所示,包括:
參數(shù)獲取模塊10,用于運行客戶端程序,以獲取主板BIOS中的主板ID和CPU的ID;
密鑰組生成模塊20,用于通過客戶端依據(jù)所獲得的主板ID和CPU的ID生成密鑰段,所述密鑰段的生成公式為:當前UTC時間+BIOSID+客戶端IP+CPUID+GUID-md5(GUID+當前UTC時間+BIOSID+客戶端IP+CPUID)+10位隨機字符串;
檢驗模塊30,用于通過服務器檢驗客戶端所生成的密鑰段是否合法,若合法,則允許將所獲取的密鑰段上傳至服務器,若不合法,則不回應客戶端;
通訊密鑰組生成模塊40,用于通過服務器根據(jù)所獲取的密鑰段生成N組通訊密鑰組(其中N為大于200的自然數(shù)),所述通訊密鑰組的生成公式為:sha(密鑰段+服務器IP+GUID);
通訊運行模塊50,用于將通過密鑰組生成模塊所獲得的N組通訊密鑰組加密傳送給客戶端,客戶端解密得到密鑰,實現(xiàn)服務器與客戶端的安全通訊。
進一步的,所述通訊數(shù)據(jù)加密裝置還包括,第一閾值判斷模塊,用于當某個密鑰到達生命周期后,則跳轉(zhuǎn)到下一個密鑰對通訊數(shù)據(jù)進行加密。
進一步的,所述通訊數(shù)據(jù)加密裝置還包括,第二閾值判斷模塊,用于當一組通訊密鑰組到達生命周期后,則通過客戶端發(fā)起生成新的通訊密鑰組請求。
本實施例通過采用唯一的硬件ID號作為密鑰生成公式的參數(shù),且隨時間的變化密鑰發(fā)生變化,同時采用多種加密算法對客戶端與服務器的交互數(shù)據(jù)進行加密,增大了密鑰破解的難度,提高了客戶端與服務器通訊交互的安全性。
最后應當說明的是:以上實施例僅用以說明本發(fā)明的技術方案而非對其限制;盡管參照較佳實施例對本發(fā)明進行了詳細的說明,所屬領域的普通技術人員應當理解:依然可以對本發(fā)明的具體實施方式進行修改或者對部分技術特征進行等同替換;而不脫離本發(fā)明技術方案的精神,其均應涵蓋在本發(fā)明請求保護的技術方案范圍當中。