面向雲計算平臺的三層認證系統及認證方法與流程
2023-06-05 01:19:26
本發明屬於網際網路技術領域,更進一步涉及中計算平臺的三層認證系統及其方法,可用於對雲平臺下用戶、雲平臺伺服器、虛擬機群的身份認證,保護雲計算平臺用戶的隱私和數據安全。技術背景伴隨著雲計算的快速發展,越來越多的用戶將數據和應用託管到了雲端,但是雲計算中的安全問題已成為目前阻礙雲計算發展的最主要的問題之一。雲計算具有多用戶、多層次、體系結構龐大的特性,正是因為這些新特性使得雲計算的安全有著其特殊性:1)雲平臺用戶認證的開放性特性,使得其認證安全需求高;2)雲平臺伺服器的易偽造特性,使得雲平臺認證伺服器需要對伺服器進行認證;3)雲平臺虛擬機的資源隔離特性,使得其認證保密性要求高,並且保證內部共享。無錫成電科大科技發展有限公司申請的專利「一種雲平臺的認證與接入方法及系統」(申請號CN201310139306.0申請公布號CN103312691A)公開了一種雲平臺的認證與接入方法及系統。該方法包括:檢查對端的數字證書是否是由本端信賴的CA籤發;對端用私鑰數字籤名,本端用與其對應的公鑰解密數字籤名,以此來認證對端身份。該發明對用戶和雲平臺伺服器進行雙向身份認證,通過雙向身份認證,進一步保障雲平臺及整個網絡的安全。該方法存在的不足之處是對於提供服務的雲平臺的認證任務留給了缺乏權威性的用戶,所以認證的結果同樣缺乏權威性。武漢大學申請的專利「一種防止雲平臺虛擬機非法啟動的鏡像加解密方法」(申請號CN201310478092.X申請公開號CN103516728A)公開了一種防止雲平臺虛擬機非法啟動的鏡像加解密方法。其特徵在於:雲管理伺服器的密鑰管理中心為每個虛擬機的鏡像創建一個唯一的密鑰,並採用雲管理伺服器中TPM(TrustedPlatformModule,可信賴平臺模塊)的SRK(StorageRootKey,存儲根密鑰)密鑰保護該密鑰;在雲管理伺服器下發虛擬機的鏡像時,將受雲管理伺服器中TPM保護的密鑰遷移至虛擬機運行的計算節點上,然後利用計算節點上TPM的SRK密鑰保護該密鑰;虛擬機第一次啟動時正常啟動,在每次虛擬機關閉時,利用遷移到計算節點上的密鑰對虛擬機的鏡像進行加密;之後虛擬機每次啟動時對已加密虛擬機的鏡像進行解密。該方法的不足之處用戶的虛擬機的密碼由伺服器掌握,從而使虛擬機密碼可信度下降,導致用戶數據保密性下降。
技術實現要素:
本發明的目的在於針對上述現有技術的不足,提出一種面向雲計算平臺的三層認證系統及方法,以提高了雲計算平臺用戶層、伺服器層和虛擬機層的安全性,保證用戶數據和隱私的安全性。為了實現上述目的,本發明的技術方案是這樣實現的:一.本發明的三層認證系統本發明的三層認證系統包括用戶層認證模塊、伺服器層認證模塊和虛擬機層認證模塊,其特徵在於:所述用戶層次認證模塊,包括:用戶證書列表子模塊,用於認證伺服器存儲用戶的證書信息V;分配子模塊,用於通過認證伺服器為用戶分配不同的角色,即用戶在雲平臺操作時會選擇相應的角色,用戶在對雲平臺操作時是基於角色分配的,每個用戶擁有若干不同的角色,這些角色由認證伺服器分配;USBkey子模塊,用於利用硬體USBkey存儲加密後的用戶證書信息V′,所述的伺服器層次認證模塊,包括:伺服器證書列表子模塊,用於存儲伺服器的證書信息W;伺服器認證子模塊,用於主動對所有伺服器中部署的證書進行認證,如果發現未認證通過的伺服器,則會禁止為該伺服器提供服務;所述的虛擬機層認證模塊,包括:虛擬機認證子模塊,用於對用戶USBkey中提供的證書與虛擬機中部署的證書進行匹配,以保證用戶能打開虛擬機;虛擬機通信子模塊,用於在虛擬機之間進行加密通信,通信內容為En(meg),其中n表示用戶虛擬機群組密鑰,meg表示虛擬機發送的消息。二.本發明三層認證方法本發明的三層認證方法,包括如下步驟:(1)用戶層認證步驟:(1a)用戶通過瀏覽器打開雲平臺界面,進入用戶身份識別系統,如用戶已經註冊則跳至1d),否則執行1b);(1b)用戶在雲平臺註冊自己的身份密碼m,認證伺服器根據用戶身份ri、用戶公鑰q以及用戶隨機數δ,製作用戶證書(ri||q||Ep(δ)),用戶證書在用戶密碼m加密後寫入USBkey,雲平臺將USBkey頒發給用戶保存,同時將用戶證書寫入用戶證書列表;(1c)用戶在雲平臺操作是基於角色的訪問控制進行,認證伺服器負責對用戶的角色、權限進行配置;(1d)用戶使用用戶密碼m讀取USBkey中證書信息,認證伺服器通過用戶輸入的用戶密碼m和用戶證書驗證用戶身份;(2)伺服器層認證步驟:(2a)伺服器加入雲計算平臺集群,進入伺服器身份識別系統,若伺服器已經完成註冊則跳至步驟2d),否則執行2b);(2b)新加入的伺服器通過雲平臺中的認證伺服器進行身份註冊,認證伺服器根據伺服器身份s、伺服器公鑰sq,伺服器私鑰sp和伺服器隨機數θ,製作伺服器證書(s||sq||Esp(θ)),並將證書發送給新加入的伺服器,同時將證書寫入伺服器證書列表中;(2c)認證伺服器主動讀取雲平臺中所有伺服器上的證書,通過該證書驗證伺服器身份,禁止未通過認證的伺服器向雲平臺提供服務;(3)虛擬機層認證步驟:(3a)用戶登陸雲平臺,向雲平臺申請開啟指定數量的虛擬機;(3b)用戶向認證伺服器提供用戶的虛擬機群組密鑰n和用戶證書,認證伺服器將用戶的虛擬機群組密鑰和用戶證書注入用戶申請的虛擬機鏡像,並為用戶開啟指定數量的虛擬機;(3c)用戶訪問指定虛擬機時,進入虛擬機身份識別系統,用戶使用用戶密碼m讀取USBkey中證書信息,認證伺服器通過用戶輸入的證書和指定虛擬機鏡像中的證書進行認證:(3d)判斷認證是否通過:若用戶輸入的證書和虛擬機鏡像中的證書匹配,則認證通過,用戶虛擬機相互通信,並使用群組密鑰對通信內容進行加密,接收端需使用群組密鑰對加密後的通信內容進行解密;反之,認證未被通過,則重新執行步驟3c)。本發明與現有技術相比具有如下優點:第一,本發明由於在用戶層認證中,雲平臺中的認證伺服器會為用戶頒發寫有用戶證書的USBkey,通過硬體技術保證每一個合法用戶都是伺服器認證的,同時用戶在雲平臺操作是基於角色的訪問控制進行,保證了用戶操作的合法性,提高了用戶隱私和數據的安全性。第二,本發明由於在伺服器層認證中,要求新加入雲平臺的伺服器必須通過雲平臺中的認證伺服器進行身份認證,並且認證伺服器將主動對雲平臺中所有伺服器認證,從而防止未認證通過的伺服器和偽造的伺服器加入到雲平臺,提高了雲平臺中伺服器的權威性。第三,本發明在虛擬機層認證中,由於用戶在申請虛擬機後,雲平臺中的認證伺服器會向用戶申請的虛擬機鏡像中注入用戶的群組密鑰和用戶證書,保證了不同用戶之間虛擬機群的隔離,並且在虛擬機通信時使用用戶的群組密鑰加密,進一步提到了虛擬機之間的安全通信,提高了用戶虛擬機中的數據和虛擬機間通信的安全性。附圖說明圖1為本發明的系統框圖;圖2為本發明方法的實現總流程圖;圖3是本發明中用戶層認證子流程圖;圖4為本發明中伺服器層認證子流程圖;圖5為本發明中虛擬機層認證子流程圖。具體實施措施參照附圖1,本發明的系統包括:用戶層認證模塊、伺服器層認證模塊和虛擬機層認證模塊三大模塊,其中:用戶層認證模塊,用於對雲平臺中用戶身份進行認證;伺服器層認證模塊,用於對雲平臺中的伺服器進行身份認證;虛擬機層認證模塊,用於對虛擬機進行身份認證。三個認證模塊從用戶、伺服器和虛擬機三個層次共同為雲平臺提供安全保障。所述用戶層次認證模塊,包括:用戶證書列表子模塊、分配子模塊和USBkey子模塊。該用戶證書列表子模塊,用於認證伺服器存儲用戶的證書信息;該USBkey子模塊,用於利用硬體USBkey存儲加密後的用戶證書信息;該分配子模塊,用於認證伺服器為用戶分配角色,並且為各個角色配置不同的權限。在用戶進行身份註冊時,認證伺服器為用戶製作證書,並發送給用戶證書列表子模塊進行存儲,同時使用用戶密碼對用戶證書加密,並將加密後的用戶證書發送給USBkey子模塊進行存儲;認證伺服器在用戶完成註冊時將進入分配子模塊進行角色分配。所述的伺服器層次認證模塊,包括:伺服器證書列表子模塊、伺服器認證子模塊。該伺服器證書列表子模塊,用於存儲伺服器的證書信息;該伺服器認證子模塊,用於雲平臺中認證伺服器主動收集所有伺服器中部署的證書,並通過對比伺服器證書列表子模塊中的伺服器證書信息和伺服器中部署的用戶證書信息進行服務層身份認證,如果發現未認證通過的伺服器,則會禁止該伺服器工作;所述的虛擬機層認證模塊,包括:虛擬機認證子模塊、虛擬機通信子模塊。該虛擬機認證子模塊,用於雲平臺中認證伺服器對用戶層USBkey子模塊中提供的證書與虛擬機中注入的證書進行匹配,以保證用戶能打開虛擬機;該虛擬機通信子模塊,用於對虛擬機之間通信內容進行加密。參照圖2,本發明面向雲計算平臺的三層認證方法,其實現包括用戶層認證、伺服器層認證和虛擬機層認證三個層。一、用戶層認證:參照圖3,本步驟的實現如下:步驟1,用戶登錄雲平臺工作時由用戶打開面向雲平臺的三層認證系統,根據云平臺中認證伺服器中的記錄,判斷用戶是否完成身份註冊,若已經完成身份註冊,則執行步驟5;否則,則執行步驟2。步驟2,用戶身份註冊。用戶通過雲平臺中的認證伺服器註冊身份ri和密碼m,認證伺服器為用戶分發通信時使用的私鑰p和公鑰q,其中認證伺服器根據用戶身份ri、用戶公鑰q和數字籤名Ep(δ)製作用戶證書(ri||q||Ep(δ)),用戶證書在經過用戶密碼m加密後寫入硬體USBkey,同時為USBkey設置密碼m,並將USBkey頒發給用戶;認證伺服器將用戶的身份信息ri,密碼m和證書(ri||q||Ep(δ))寫入用戶證書列表。步驟4,認證伺服器為用戶分配角色。認證伺服器基於角色的訪問控制為用戶分配不同角色,並為每個角色配置不同的管理權限。所述的角色,其在基於角色的訪問控制中,表示一定數量的權限的集合,權限分配的單位與載體,目的是隔離用戶與權限的邏輯關係。步驟5,認證用戶身份用戶在web頁面通過網頁插件調用USBkey,通過用戶密碼m打開USBkey,讀取其中證書(ri||q||Ep(δ)),並使用用戶私鑰對證書(ri||q||Ep(δ))加密,得到加密後的證書Ep(ri||m||Ep(δ)),並將加密後證書Ep(ri||m||Ep(δ))上傳至認證伺服器,認證伺服器按如下步驟進行認證:5.1)認證伺服器通過用戶公鑰q對加密後證書Ep(ri||m||Ep(δ))解密,解密後獲得用戶名ri、用戶密碼m和數字籤名Ep(δ),使用用戶公鑰q對數字籤名Ep(δ)進行解密,得到用戶隨機數δ;5.2)將用戶名ri,用戶密碼m和隨機數δ與認證伺服器用戶列表存儲的用戶名ri′,用戶密碼m′和用戶隨機數δ′進行對比,若滿足條件則用戶身份認證通過,否則認證不通過。二、伺服器層認證:參照圖4,本步驟的實現如下:步驟6,伺服器加入雲平臺當伺服器加入雲平臺時,伺服器通過網絡連接至雲平臺,必須通過雲平臺的三層認證系統進行伺服器身份認證。並根據云平臺中認證伺服器中的記錄,判斷伺服器是否完成註冊,若已經完成註冊,則跳轉到步驟8;若未完成註冊,則執行步驟7。步驟7,伺服器身份註冊。新加入的伺服器通過雲平臺中的認證伺服器註冊身份s,認證伺服器為伺服器分發通信時使用的私鑰sp和公鑰sq,其中認證伺服器根據伺服器身份s、伺服器公鑰sq和數字籤名Ep(θ)製作伺服器證書(s||sq||Esp(θ)),認證伺服器將證書(s||sq||Esp(θ))發送給新加入的伺服器;認證伺服器將伺服器的身份s和證書(s||sq||Esp(θ))寫入伺服器證書列表。步驟8,認證伺服器主動對伺服器認證。8.1)認證伺服器主動向雲平臺中伺服器收集伺服器證書(s||sq||Esp(θ)),獲取伺服器名稱s、伺服器公鑰sq和數字籤名Esp(θ),並使用伺服器公鑰sq對籤名Esp(θ)進行解密,得到伺服器隨機數θ;8.2)將伺服器名稱s和伺服器隨機數θ與認證伺服器中的伺服器列表所存儲的伺服器名稱s′和伺服器隨機數θ′進行對比,若滿足條件則伺服器身份認證通過,否則認證不通過。三、虛擬機層認證:參照圖5,本步驟的實現如下:步驟9,用戶申請虛擬機工作時由用戶打開面向雲平臺的三層認證系統,用戶在雲平臺申請指定數量的虛擬機。步驟10,認證伺服器為用戶開啟虛擬機。用戶向認證伺服器提供用戶的虛擬機群組密鑰n和用戶證書(ri||q||Ep(δ)),認證伺服器將用戶的虛擬機群組密鑰和用戶證書注入用戶申請的虛擬機鏡像,並為用戶開啟指定數量的虛擬機。步驟11,虛擬機身份認證。用戶訪問指定虛擬機時,進入虛擬機身份識別系統,用戶通過用戶密碼m打開USBkey,讀取其中證書(ri||q||Ep(δ)),並使用用戶私鑰對證書(ri||q||Ep(δ))加密,得到加密後證書Ep(ri||m||Ep(δ)),並將加密後證書Ep(ri||m||Ep(δ))上傳至認證伺服器;認證伺服器通過用戶公鑰q解密加密後證書Ep(ri||m||Ep(δ)),得到用戶證書(ri||m||Ep(δ));步驟12,判斷認證是否通過認證伺服器對用戶上傳的證書和指定虛擬機鏡像中的證書進行認證判斷:若用戶輸入的證書與虛擬機鏡像中的證書匹配,則認證通過,執行步驟13;反之,返回步驟11。步驟13,虛擬機間加密通信虛擬機發送消息meg,並使用用戶的群組密鑰n對消息meg加密,得到加密後的消息En(meg),接收端使用群組密鑰n,對加密消息En(meg)解密,得到解密後的消息meg。以上描述僅是本發明的一個具體事例,並且構成對本發明的任何限制,顯然對於本領域的專業人員來說,在了解了本發明內容和原理後,都可能在不背離本發明原理、結構的情況下,進行形式和細節上的各種修正和改變,但是這些基於本發明思想的修正和改變仍在本發明的權利要求保護範圍之內。