專利名稱:一種安全通信的負(fù)載均衡方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種安全通信的負(fù)載均衡方法及系統(tǒng)。
背景技術(shù):
近年來隨著各種信息終端的增多,單個(gè)應(yīng)用服務(wù)器已經(jīng)很難為眾多終端同時(shí)提供服務(wù),而負(fù)載均衡和云技術(shù)的發(fā)展為解決這個(gè)問題提供了可能性。負(fù)載均衡技術(shù)中的負(fù)載均衡器能把眾多的終端服務(wù)請(qǐng)求分配到多個(gè)應(yīng)用服務(wù)器節(jié)點(diǎn)上,從而實(shí)現(xiàn)為盡可能多的終 端提供服務(wù)的目的。它具有高可靠、可伸縮、易擴(kuò)展和費(fèi)用相對(duì)低廉的特點(diǎn)。但是隨著這種技術(shù)的應(yīng)用,安全問題也逐漸浮現(xiàn)出來,其中安全通信問題相比傳統(tǒng)單個(gè)應(yīng)用服務(wù)器通信具有更復(fù)雜的環(huán)境?,F(xiàn)在通常把SSL技術(shù)應(yīng)用于安全通信,在集群系統(tǒng)中利用專有設(shè)備或服務(wù)器處理數(shù)據(jù)加解密,再由后臺(tái)服務(wù)器處理具體請(qǐng)求,但這種方法常常導(dǎo)致進(jìn)行數(shù)據(jù)加解密的設(shè)備或服務(wù)器成為瓶頸,無法滿足大數(shù)據(jù)量的通訊。
發(fā)明內(nèi)容
本發(fā)明所要解決的第一個(gè)技術(shù)問題是針對(duì)上述現(xiàn)有技術(shù)提供一種安全通信的負(fù)載均衡方法,該方法既能防止非授權(quán)終端進(jìn)入應(yīng)用服務(wù)器請(qǐng)求服務(wù),同時(shí)能為大量授權(quán)終端提供安全通信。本發(fā)明所要解決的第二個(gè)技術(shù)問題是技術(shù)提供一種安全通信的負(fù)載均衡系統(tǒng),該方系統(tǒng)既能防止非授權(quán)終端進(jìn)入應(yīng)用服務(wù)器請(qǐng)求服務(wù),同時(shí)能為大量授權(quán)終端提供安全通f目。本發(fā)明解決上述第一個(gè)技術(shù)問題所采用的技術(shù)方案為該安全通信的負(fù)載均衡方法,其特征在于設(shè)置多個(gè)終端、多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器,在每個(gè)終端內(nèi)存儲(chǔ)其相應(yīng)的用戶ID和終端密鑰,在每個(gè)負(fù)載均衡器內(nèi)儲(chǔ)存所有終端的用戶ID、終端密鑰、所有應(yīng)用服務(wù)器的ID,在每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)存儲(chǔ)負(fù)載均衡器和應(yīng)用服務(wù)器進(jìn)行加密通信的通信密鑰,同時(shí)將多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器時(shí)間同步;另外,在每個(gè)終端、每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均保存相互事先約定的授權(quán)請(qǐng)求命令、認(rèn)證請(qǐng)求命令、認(rèn)證回復(fù)命令、授權(quán)命令和增加授權(quán)命令;上述安全通信的負(fù)載均衡方法包括如下步驟步驟一、終端產(chǎn)生一個(gè)終端隨機(jī)數(shù)并存儲(chǔ),把授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)發(fā)送給負(fù)載均衡器;步驟二、負(fù)載均衡器收到終端發(fā)送的上述授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有該用戶ID,如果沒有就產(chǎn)生一個(gè)負(fù)載均衡隨機(jī)數(shù),把該用戶ID和負(fù)載均衡隨機(jī)數(shù)保存起來;如果負(fù)載均衡器保存有該用戶ID,讀取該用戶ID和其對(duì)應(yīng)的負(fù)載均衡隨機(jī)數(shù),然后把認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)發(fā)送給終端;
步驟三、終端收到負(fù)載均衡器發(fā)送的上述認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)后,比較終端隨機(jī)數(shù),如果不符就丟棄上述認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù),如果符合,就對(duì)認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰進(jìn)行散列,得到第一散列值,并把認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值發(fā)送給負(fù)載均衡器;步驟四、負(fù)載均衡器收到終端發(fā)送的上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有對(duì)應(yīng)的用戶ID和負(fù)載均衡隨機(jī)數(shù),如果沒有 就丟棄上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值,否則就用散列算法計(jì)算出認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰的散列值,得到第二散列值,如果第二散列值與終端發(fā)送的第一散列值不同就丟棄上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值,否則就轉(zhuǎn)到下一步;步驟五、負(fù)載均衡器選擇一個(gè)應(yīng)用服務(wù)器,記錄該應(yīng)用服務(wù)器的ID、IP地址及端口號(hào),產(chǎn)生一個(gè)隨機(jī)數(shù)的授權(quán)碼和一個(gè)隨機(jī)數(shù)的密碼因子,對(duì)增加授權(quán)命令、應(yīng)用服務(wù)器ID、授權(quán)碼、終端IP地址和當(dāng)前時(shí)間戳進(jìn)行散列,得到第三散列值;并用應(yīng)用服務(wù)器保存的通信密鑰和密碼因子進(jìn)行散列,得到第四散列值;將第四散列值作為密鑰對(duì)增加授權(quán)命令、服務(wù)器ID、授權(quán)碼、終端IP地址、當(dāng)前時(shí)間戳和第三散列值進(jìn)行加密,得到第一加密數(shù)據(jù),然后把密碼因子和第一加密數(shù)據(jù)發(fā)送給應(yīng)用服務(wù)器;對(duì)用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)、授權(quán)碼和應(yīng)用服務(wù)器的IP地址及端口號(hào)進(jìn)行散列,得到第五散列值,用終端密鑰和密碼因子的散列值作為密鑰對(duì)用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)、授權(quán)碼、應(yīng)用服務(wù)器的IP地址及端口號(hào)和第五散列值進(jìn)行加密,得到第二加密數(shù)據(jù),然后把授權(quán)命令、密碼因子和第二加密數(shù)據(jù)發(fā)送給終端;最后負(fù)載均衡器把用戶ID和負(fù)載均衡隨機(jī)數(shù)刪除;步驟六、應(yīng)用服務(wù)器收到密碼因子和第一加密數(shù)據(jù)后,利用應(yīng)用服務(wù)器保存的通信密鑰和密碼因子對(duì)第一加密數(shù)據(jù)進(jìn)行解密,如果解密失敗就丟棄,否則對(duì)解密后的數(shù)據(jù)校驗(yàn)第三散列值,如果第三散列值不符就丟棄,否則比較服務(wù)器的ID是否符合,如果不符就丟棄,然后比較本地時(shí)間與時(shí)間戳之差是否超過規(guī)定限值,如果超過就丟棄,否則把授權(quán)碼和終端的IP地址保存起來;步驟七、終端收到授權(quán)命令、密碼因子和第二加密數(shù)據(jù)后,利用終端密鑰和密碼因子對(duì)第二加密數(shù)據(jù)進(jìn)行解密,如果解密失敗就丟棄,否則對(duì)解密后的數(shù)據(jù)校驗(yàn)第五散列值,如果第五散列值不符就丟棄,否則比較終端隨機(jī)數(shù),如果不符就丟棄,否則刪除終端隨機(jī)數(shù)并獲取服務(wù)器的IP地址和服務(wù)器的端口號(hào),通過SSL/TLS連接應(yīng)用服務(wù)器,并通過該連接上傳授權(quán)碼;步驟八、應(yīng)用服務(wù)器收到終端連接,判斷終端IP地址和授權(quán)碼是否符合,如果不符就拒絕連接,否則連接成功提供應(yīng)用服務(wù)。所述步驟二中,當(dāng)負(fù)載均衡器收到終端發(fā)送的上述授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有該用戶ID,如果沒有就產(chǎn)生一個(gè)負(fù)載均衡隨機(jī)數(shù),把該用戶ID和負(fù)載均衡隨機(jī)數(shù)保存起來,然后啟動(dòng)超時(shí)機(jī)制,在指定時(shí)間內(nèi)如果沒有完成授權(quán)就把授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)刪除。所述步驟六中、應(yīng)用服務(wù)器在比較本地時(shí)間與時(shí)間戳之差是否超過規(guī)定限值時(shí),如果判斷為超過就丟棄,否則把授權(quán)碼和終端的IP地址保存起來,然后啟動(dòng)超時(shí)機(jī)制,在指定時(shí)間內(nèi)如果沒有終端連接就將解密后的數(shù)據(jù)移除。上述各步驟中,散列時(shí)采用的散列算法為MD5或SHA。上述各步驟中,加密時(shí)采用的加密算法為對(duì)稱加密算法或不對(duì)稱加密算法。而上述步驟二中,終端在選擇負(fù)載均衡器進(jìn)行通訊時(shí),選擇最近的負(fù)載均衡器或者通過DNS輪詢的方法選擇一個(gè)負(fù)載均衡器進(jìn)行通信。本發(fā)明解決上述第二個(gè)技術(shù)問題所采用的技術(shù)方案為該安全通信的負(fù)載均衡系統(tǒng),其特征在于包括多個(gè)終端、多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器,每個(gè)終端內(nèi)存儲(chǔ)有其相應(yīng)的用戶ID和終端密鑰,每個(gè)負(fù)載均衡器內(nèi)儲(chǔ)存有所有終端的用戶ID、終端密鑰、所有應(yīng)用服務(wù)器的ID,每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均存儲(chǔ)有負(fù)載均衡器和應(yīng)用服務(wù)器進(jìn)行加密通信的通信密鑰,同時(shí)將多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器時(shí)間保持同步;另外,每個(gè)終端、每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均保存有相互事先約定的授權(quán)請(qǐng)求命令、認(rèn)證請(qǐng)求命令、認(rèn)證回復(fù)命令、授權(quán)命令和增加授權(quán)命令;而上述安全通信的負(fù)載均衡系統(tǒng)的通訊方法采用上述描述的安全通信的負(fù)載均衡方法。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于采用本發(fā)明提供的安全通信的負(fù)載均衡方法和系統(tǒng),能防止非授權(quán)終端的進(jìn)入,同時(shí)能為大量授權(quán)終端提供安全通信,且在保證通信安全的基礎(chǔ)上,有效降低了計(jì)算量和負(fù)載均衡器的壓力,有助于構(gòu)建更大規(guī)模的安全負(fù)載均衡系統(tǒng)。
圖I為本發(fā)明實(shí)施例中安全通信的負(fù)載均衡系統(tǒng)的部署框圖。
具體實(shí)施例方式以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。首先構(gòu)建一個(gè)安全通信的負(fù)載均衡系統(tǒng),參見圖I所示,該系統(tǒng)包括多個(gè)終端、多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器,每個(gè)終端內(nèi)存儲(chǔ)有其相應(yīng)的用戶ID和終端密鑰,每個(gè)負(fù)載均衡器內(nèi)儲(chǔ)存有所有終端的用戶ID、終端密鑰、所有應(yīng)用服務(wù)器的ID,每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均存儲(chǔ)有負(fù)載均衡器和應(yīng)用服務(wù)器進(jìn)行加密通信的通信密鑰,同時(shí)多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器時(shí)間同步;另外,每個(gè)終端、每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均保存有相互事先約定的授權(quán)請(qǐng)求命令、認(rèn)證請(qǐng)求命令、認(rèn)證回復(fù)命令、授權(quán)命令和增加授權(quán)命令;參見圖I所示。該系統(tǒng)的通訊方法包括步驟一、終端產(chǎn)生一個(gè)終端隨機(jī)數(shù)并存儲(chǔ),把授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)發(fā)送給負(fù)載均衡器;終端在選擇負(fù)載均衡器進(jìn)行通訊時(shí),選擇最近的負(fù)載均衡器或者通過DNS輪詢的方法選擇一個(gè)負(fù)載均衡器進(jìn)行通信; 步驟二、負(fù)載均衡器收到終端發(fā)送的上述授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有該用戶ID,如果沒有就產(chǎn)生一個(gè)負(fù)載均衡隨機(jī)數(shù),把該用戶ID和負(fù)載均衡隨機(jī)數(shù)保存起來;如果負(fù)載均衡器保存有該用戶ID,讀取該用戶ID和其對(duì)應(yīng)的負(fù)載均衡隨機(jī)數(shù),然后把認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)發(fā)送給終端; 步驟三、終端收到負(fù)載均衡器發(fā)送的上述認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)后,比較終端隨機(jī)數(shù),如果不符就丟棄上述認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù),如果符合,就對(duì)認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰進(jìn)行散列,得到第一散列值,并把認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值發(fā)送給負(fù)載均衡器;步驟四、負(fù)載均衡器收到終端發(fā)送的上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有對(duì)應(yīng)的用戶ID和負(fù)載均衡隨機(jī)數(shù),如果沒有就丟棄上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值,否則就用散列算法計(jì)算出認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰的散列值,得到第二散列值,如果第二散列值與終端發(fā)送的第一散列值不同就丟棄上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值,否則就轉(zhuǎn)到下一步;步驟五、負(fù)載均衡器選擇一個(gè)應(yīng)用服務(wù)器,記錄該應(yīng)用服務(wù)器的ID、IP地址及端口號(hào),產(chǎn)生一個(gè)隨機(jī)數(shù)的授權(quán)碼和一個(gè)隨機(jī)數(shù)的密碼因子,對(duì)增加授權(quán)命令、應(yīng)用服務(wù)器ID、授權(quán)碼、終端IP地址和當(dāng)前時(shí)間戳進(jìn)行散列,得到第三散列值;并用應(yīng)用服務(wù)器保存的通信密鑰和密碼因子進(jìn)行散列,得到第四散列值;將第四散列值作為密鑰對(duì)增加授權(quán)命令、服務(wù)器ID、授權(quán)碼、終端IP地址、當(dāng)前時(shí)間戳和第三散列值進(jìn)行加密,得到第一加密數(shù)據(jù),然后把密碼因子和第一加密數(shù)據(jù)發(fā)送給應(yīng)用服務(wù)器;對(duì)用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)、授權(quán)碼和應(yīng)用服務(wù)器的IP地址及端口號(hào)進(jìn)行散列,得到第五散列值,用終端密鑰和密碼因子的散列值作為密鑰對(duì)用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)、授權(quán)碼、應(yīng)用服務(wù)器的IP地址及端口號(hào)和第五散列值進(jìn)行加密,得到第二加密數(shù)據(jù),然后把授權(quán)命令、密碼因子和第二加密數(shù)據(jù)發(fā)送給終端;最后負(fù)載均衡器把用戶ID和負(fù)載均衡隨機(jī)數(shù)刪除;步驟六、應(yīng)用服務(wù)器收到密碼因子和第一加密數(shù)據(jù)后,利用應(yīng)用服務(wù)器保存的通信密鑰和密碼因子對(duì)第一加密數(shù)據(jù)進(jìn)行解密,如果解密失敗就丟棄,否則對(duì)解密后的數(shù)據(jù)校驗(yàn)第三散列值,如果第三散列值不符就丟棄,否則比較應(yīng)用服務(wù)器的ID是否符合,如果不符就丟棄,然后比較本地時(shí)間與時(shí)間戳之差是否超過規(guī)定限值,如果超過就丟棄,否則把授權(quán)碼和終端的IP地址保存起來;步驟七、終端收到授權(quán)命令、密碼因子和第二加密數(shù)據(jù)后,利用終端密鑰和密碼因子對(duì)第二加密數(shù)據(jù)進(jìn)行解密,如果解密失敗就丟棄,否則對(duì)解密后的數(shù)據(jù)校驗(yàn)第五散列值,如果第五散列值不符就丟棄,否則比較終端隨機(jī)數(shù),如果不符就丟棄,否則刪除終端隨機(jī)數(shù)并獲取服務(wù)器的IP地址和服務(wù)器的端口號(hào),通過SSL/TLS連接應(yīng)用服務(wù)器,并通過該連接上傳授權(quán)碼;步驟八、應(yīng)用服務(wù)器收到終端連接,判斷終端IP地址和授權(quán)碼是否符合,如果不符就拒絕連接,否則連接成功提供應(yīng)用服務(wù)。下面,以一個(gè)具體的例子說明上述通訊方法的過程每個(gè)終端、每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)保存的相互事先約定的授權(quán)請(qǐng)求命令、認(rèn)證請(qǐng)求命令、認(rèn)證回復(fù)命令、授權(quán)命令和增加授權(quán)命令分別為0x01、0x02、0x03、0x04、0x05 ;
設(shè)終端a的用戶ID為A,終端a產(chǎn)生一個(gè)終端隨機(jī)數(shù)B并存儲(chǔ),終端a把授權(quán)請(qǐng)求命令0x01、用戶ID和終端隨機(jī)數(shù)B發(fā)送給負(fù)載均衡器,即把數(shù)據(jù)(0x01,A,B)發(fā)送給負(fù)載均衡器;負(fù)載均衡器收到終端發(fā)送的數(shù)據(jù)(0x01,A,B)后,產(chǎn)生負(fù)載均衡隨機(jī)數(shù)C,把數(shù)據(jù)(A,C)保存起來,同時(shí)啟動(dòng)超時(shí)機(jī)制,將認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)發(fā)送給終端,即并把數(shù)據(jù)(0x02,A,B,C)發(fā)送給終端;終端收到數(shù)據(jù)(0x02,A,B,C)后,校驗(yàn)終端隨機(jī)數(shù)B,如果驗(yàn)終端隨機(jī)數(shù)B相符,取出終端a的密鑰D,對(duì)認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰進(jìn)行散列,即對(duì)數(shù)據(jù)(0x03,A,B,C,D)進(jìn)行MD5計(jì)算,得到第一散列值E,并把認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值發(fā)送給負(fù)載均衡器,即把數(shù)據(jù)(0x03,A,B,C,E)發(fā)送給負(fù)載均衡器;
負(fù)載均衡器接收到數(shù)據(jù)(0x03,A,B,C,E)后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有對(duì)應(yīng)的用戶ID和負(fù)載均衡隨機(jī)數(shù),即查找A和C,如果查到A和C,取出該終端密鑰D,對(duì)數(shù)據(jù)(0x03,A,B,C,D)進(jìn)行MD5散列,得到第二散列值,如果第二散列值與第一散列值相同,轉(zhuǎn)到下一步;負(fù)載均衡器選擇一個(gè)應(yīng)用服務(wù)器,記錄該應(yīng)用服務(wù)器的ID為H、應(yīng)用服務(wù)器的IP地址及端口號(hào)為I,負(fù)載均衡器產(chǎn)生授權(quán)碼F和密碼因子G,記錄終端a的IP為J,當(dāng)前時(shí)間戳為K,對(duì)增加授權(quán)命令、應(yīng)用服務(wù)器的IP地址及端口號(hào)、授權(quán)碼、終端IP地址和當(dāng)前時(shí)間戳進(jìn)行散列,即對(duì)數(shù)據(jù)(0x05,H,F(xiàn),J,K)進(jìn)行MD5計(jì)算,得到第三散列值L,設(shè)服務(wù)器的通信密鑰為M,對(duì)數(shù)據(jù)(G,M)進(jìn)行MD5計(jì)算得到第四散列值N,用N對(duì)數(shù)據(jù)(0x05, H,F(xiàn),J,K,L)進(jìn)行AES加密得到第一加密數(shù)據(jù)P,把數(shù)據(jù)(P,G)發(fā)送給應(yīng)用服務(wù)器;然后對(duì)數(shù)據(jù)(A,B,C,F(xiàn),I)進(jìn)行MD5計(jì)算得到五散列值Q,對(duì)數(shù)據(jù)(G,D)進(jìn)行MD5計(jì)算得到R,用R對(duì)數(shù)據(jù)(A,B,C,F(xiàn),I,Q)加密得到第二加密數(shù)據(jù)S,把數(shù)據(jù)(0x04,S,G)發(fā)送給終端;負(fù)載均衡器把用戶ID和負(fù)載均衡隨機(jī)數(shù)刪除;應(yīng)用服務(wù)器接收到數(shù)據(jù)(P,G)后,取出服務(wù)器的通信密鑰M,用相同算法解密數(shù)據(jù)P,得到數(shù)據(jù)(0x05,H,F(xiàn),J,K,L),檢驗(yàn)第三散列值L符合,檢驗(yàn)H、K符合要求,保存F和J,并啟動(dòng)對(duì)應(yīng)超時(shí)機(jī)制;終端接收數(shù)據(jù)(0x04,S,G)后,取出終端a的密鑰D,用相同算法解密第二加密數(shù)據(jù)S,得到數(shù)據(jù)(A,B,C,F(xiàn),I,Q),檢驗(yàn)第五散列值Q符合,檢驗(yàn)B符合要求,刪除終端隨機(jī)數(shù),獲取服務(wù)器的IP地址和服務(wù)器的端口號(hào),終端根據(jù)服務(wù)器的IP地址I通過SSL/TLS連接應(yīng)用服務(wù)器,上傳授權(quán)碼F ;應(yīng)用服務(wù)器檢查終端IP與J相符,授權(quán)碼F相符,提供應(yīng)用服務(wù)。
權(quán)利要求
1.一種安全通信的負(fù)載均衡方法,其特征在于設(shè)置多個(gè)終端、多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器,在每個(gè)終端內(nèi)存儲(chǔ)其相應(yīng)的用戶ID和終端密鑰,在每個(gè)負(fù)載均衡器內(nèi)儲(chǔ)存所有終端的用戶ID、終端密鑰、所有應(yīng)用服務(wù)器的ID,在每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)存儲(chǔ)負(fù)載均衡器和應(yīng)用服務(wù)器進(jìn)行加密通信的通信密鑰,同時(shí)將多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器時(shí)間同步;另外,在每個(gè)終端、每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均保存相互事先約定的授權(quán)請(qǐng)求命令、認(rèn)證請(qǐng)求命令、認(rèn)證回復(fù)命令、授權(quán)命令和增加授權(quán)命令;上述安全通信的負(fù)載均衡方法包括如下步驟 步驟一、終端產(chǎn)生一個(gè)終端隨機(jī)數(shù)并存儲(chǔ),把授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)發(fā)送給負(fù)載均衡器; 步驟二、負(fù)載均衡器收到終端發(fā)送的上述授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有該用戶ID,如果沒有就產(chǎn)生一個(gè)負(fù)載均衡隨機(jī)數(shù),把該用戶ID和負(fù)載均衡隨機(jī)數(shù)保存起來;如果負(fù)載均衡器保存有該用戶ID,讀取該用戶ID和其對(duì)應(yīng)的負(fù)載均衡隨機(jī)數(shù),然后把認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)發(fā)送給終端; 步驟三、終端收到負(fù)載均衡器發(fā)送的上述認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù)后,比較終端隨機(jī)數(shù),如果不符就丟棄上述認(rèn)證請(qǐng)求命令、用戶ID、終端隨機(jī)數(shù)和負(fù)載均衡隨機(jī)數(shù),如果符合,就對(duì)認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰進(jìn)行散列,得到第一散列值,并把認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值發(fā)送給負(fù)載均衡器; 步驟四、負(fù)載均衡器收到終端發(fā)送的上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有對(duì)應(yīng)的用戶ID和負(fù)載均衡隨機(jī)數(shù),如果沒有就丟棄上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值,否則就用散列算法計(jì)算出認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和終端密鑰的散列值,得到第二散列值,如果第二散列值與終端發(fā)送的第一散列值不同就丟棄上述認(rèn)證回復(fù)命令、用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)和第一散列值,否則就轉(zhuǎn)到下一I K少; 步驟五、負(fù)載均衡器選擇一個(gè)應(yīng)用服務(wù)器,記錄該應(yīng)用服務(wù)器的ID、IP地址及端口號(hào),產(chǎn)生一個(gè)隨機(jī)數(shù)的授權(quán)碼和一個(gè)隨機(jī)數(shù)的密碼因子,對(duì)增加授權(quán)命令、應(yīng)用服務(wù)器ID、授權(quán)碼、終端IP地址和當(dāng)前時(shí)間戳進(jìn)行散列,得到第三散列值;并用應(yīng)用服務(wù)器保存的通信密鑰和密碼因子進(jìn)行散列,得到第四散列值;將第四散列值作為密鑰對(duì)增加授權(quán)命令、服務(wù)器ID、授權(quán)碼、終端IP地址、當(dāng)前時(shí)間戳和第三散列值進(jìn)行加密,得到第一加密數(shù)據(jù),然后把密碼因子和第一加密數(shù)據(jù)發(fā)送給應(yīng)用服務(wù)器;對(duì)用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)、授權(quán)碼和應(yīng)用服務(wù)器的IP地址及端口號(hào)進(jìn)行散列,得到第五散列值,用終端密鑰和密碼因子的散列值作為密鑰對(duì)用戶ID、終端隨機(jī)數(shù)、負(fù)載均衡隨機(jī)數(shù)、授權(quán)碼、應(yīng)用服務(wù)器的IP地址及端口號(hào)和第五散列值進(jìn)行加密,得到第二加密數(shù)據(jù),然后把授權(quán)命令、密碼因子和第二加密數(shù)據(jù)發(fā)送給終端;最后負(fù)載均衡器把用戶ID和負(fù)載均衡隨機(jī)數(shù)刪除; 步驟六、應(yīng)用服務(wù)器收到密碼因子和第一加密數(shù)據(jù)后,利用應(yīng)用服務(wù)器保存的通信密鑰和密碼因子對(duì)第一加密數(shù)據(jù)進(jìn)行解密,如果解密失敗就丟棄,否則對(duì)解密后的數(shù)據(jù)校驗(yàn)第三散列值,如果第三散列值不符就丟棄,否則比較服務(wù)器的ID是否符合,如果不符就丟棄,然后比較本地時(shí)間與 時(shí)間戳之差是否超過規(guī)定限值,如果超過就丟棄,否則把授權(quán)碼和終端的IP地址保存起來; 步驟七、終端收到授權(quán)命令、密碼因子和第二加密數(shù)據(jù)后,利用終端密鑰和密碼因子對(duì)第二加密數(shù)據(jù)進(jìn)行解密,如果解密失敗就丟棄,否則對(duì)解密后的數(shù)據(jù)校驗(yàn)第五散列值,如果第五散列值不符就丟棄,否則比較終端隨機(jī)數(shù),如果不符就丟棄,否則刪除終端隨機(jī)數(shù)并獲取服務(wù)器的IP地址和服務(wù)器的端口號(hào),通過SSL/TLS連接應(yīng)用服務(wù)器,并通過該連接上傳授權(quán)碼; 步驟八、應(yīng)用服務(wù)器收到終端連接,判斷終端IP地址和授權(quán)碼是否符合,如果不符就拒絕連接,否則連接成功提供應(yīng)用服務(wù)。
2.根據(jù)權(quán)利要求I所述的安全通信的負(fù)載均衡方法,其特征在于所述步驟二中,當(dāng)負(fù)載均衡器收到終端發(fā)送的上述授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)后,查找負(fù)載均衡器內(nèi)是否存儲(chǔ)有該用戶ID,如果沒有就產(chǎn)生一個(gè)負(fù)載均衡隨機(jī)數(shù),把該用戶ID和負(fù)載均衡隨機(jī)數(shù)保存起來,然后啟動(dòng)超時(shí)機(jī)制,在指定時(shí)間內(nèi)如果沒有完成授權(quán)就把授權(quán)請(qǐng)求命令、用戶ID和終端隨機(jī)數(shù)刪除。
3.根據(jù)權(quán)利要求I所述的安全通信的負(fù)載均衡方法,其特征在于所述步驟六中、應(yīng)用服務(wù)器在比較本地時(shí)間與時(shí)間戳之差是否超過規(guī)定限值時(shí),如果判斷為超過就丟棄,否則把授權(quán)碼和終端的IP地址保存起來,然后啟動(dòng)超時(shí)機(jī)制,在指定時(shí)間內(nèi)如果沒有終端連接就將解密后的數(shù)據(jù)移除。
4.根據(jù)權(quán)利要求I或2或3所述的安全通信的負(fù)載均衡方法,其特征在于散列時(shí)采用的散列算法為MD5或SHA。
5.根據(jù)權(quán)利要求I或2或3所述的安全通信的負(fù)載均衡方法,其特征在于加密時(shí)采用的加密算法為對(duì)稱加密算法或不對(duì)稱加密算法。
6.根據(jù)權(quán)利要求I或2或3所述的安全通信的負(fù)載均衡方法,其特征在于終端在選擇負(fù)載均衡器進(jìn)行通訊時(shí),選擇最近的負(fù)載均衡器或者通過DNS輪詢的方法選擇一個(gè)負(fù)載均衡器進(jìn)行通信。
7.一種安全通信的負(fù)載均衡系統(tǒng),其特征在于包括多個(gè)終端、多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器,每個(gè)終端內(nèi)存儲(chǔ)有其相應(yīng)的用戶ID和終端密鑰,每個(gè)負(fù)載均衡器內(nèi)儲(chǔ)存有所有終端的用戶ID、終端密鑰、所有應(yīng)用服務(wù)器的ID,每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均存儲(chǔ)有負(fù)載均衡器和應(yīng)用服務(wù)器進(jìn)行加密通信的通信密鑰,同時(shí)將多個(gè)負(fù)載均衡器和多個(gè)應(yīng)用服務(wù)器時(shí)間保持同步;另外,每個(gè)終端、每個(gè)負(fù)載均衡器和每個(gè)應(yīng)用服務(wù)器內(nèi)均保存有相互事先約定的授權(quán)請(qǐng)求命令、認(rèn)證請(qǐng)求命令、認(rèn)證回復(fù)命令、授權(quán)命令和增加授權(quán)命令;而上述安全通信的負(fù)載均衡系統(tǒng)的通訊方法采用如權(quán)利要求I中描述的安全通信的負(fù)載均衡方法。
全文摘要
本發(fā)明涉及一種安全通信的負(fù)載均衡方法及系統(tǒng),負(fù)載均衡器在為終端和應(yīng)用服務(wù)器提供通訊連接過程中,利用了區(qū)別的加密方法,使得終端和應(yīng)用服務(wù)器握手連接。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于采用本發(fā)明提供的安全通信的負(fù)載均衡方法和系統(tǒng),能防止非授權(quán)終端的進(jìn)入,同時(shí)能為大量授權(quán)終端提供安全通信,且在保證通信安全的基礎(chǔ)上,有效降低了計(jì)算量和負(fù)載均衡器的壓力,有助于構(gòu)建更大規(guī)模的安全負(fù)載均衡系統(tǒng)。
文檔編號(hào)H04L29/06GK102624749SQ20121011075
公開日2012年8月1日 申請(qǐng)日期2012年4月13日 優(yōu)先權(quán)日2012年4月13日
發(fā)明者毛維波 申請(qǐng)人:寧波市北侖海伯精密機(jī)械制造有限公司