◆李 瑛 杜麗萍 趙桂芬
?
云服務中可信第三方認證平臺設計
◆李 瑛 杜麗萍 趙桂芬
(北京市科學技術情報研究所、網(wǎng)絡密碼認證北京市重點實驗室 北京 100044)
針對一個云用戶在多個云服務中的安全登錄問題,本文提出了一個基于安全硬件設備的可信第三方認證方案。方案中,在認證依賴方和認證服務方之間建立可信的認證中心,云用戶和云服務的密鑰池在認證中心加密存儲,共享密鑰生成算法。云用戶認證時在硬件設備內生成一次一變的認證口令,在認證中心端通過重現(xiàn)認證口令對用戶的身份進行確認。云服務和認證中心使用硬件動態(tài)生成的過程密鑰進行加密傳輸。方案應用硬件加密設備對密鑰池和認證協(xié)議、密鑰生成算法進行安全存儲,利用硬件加密設備的安全機制對其進行保護。經(jīng)分析表明,該方案效率高、安全可靠。
云計算;可信第三方;認證
隨著云計算技術的發(fā)展,各類網(wǎng)絡應用都在向云端遷移,大量的用戶敏感信息存儲于云端。云服務的發(fā)展給云用戶帶來了極大的便利。在云計算時代,用戶可以在多個云提供商處或一個云提供商的多個云服務上注冊賬號,最終就可以憑借一個身份使用多個不同云服務。這樣帶來的好處,一個是解決了多個身份憑證難以記憶的問題,同時也減輕了用戶操作的繁瑣程度。但是,事實上,為了保護云服務的安全,不同云服務之間包括云提供商之間仍然需要交互用戶信息,對云用戶身份進行認證。由于云環(huán)境的復雜性,不同云服務之間頻繁合作,用戶認證數(shù)據(jù)在多個云服務之間進行交互,相應的,也給用戶賬號信息帶來了很大的泄露風險。
現(xiàn)在云服務的身份認證,多是通過單點登錄技術來實現(xiàn)的。例如,在salesforce采用了基于SAML的單點登錄技術,microsoft云服務中采用了基于活動目錄的聯(lián)合身份單點登錄技術,google采用了基于openid的單點登錄技術。在以上云服務系統(tǒng)中,請求認證服務的云提供商稱為認證依賴方,提供認證服務的云提供商稱為認證服務提供方。云服務中云用戶身份認證過程都是一樣的:認證依賴方發(fā)送認證請求到認證服務提供方,認證服務提供方對用戶身份進行確認,認證通過后,將用戶的身份信息和權限信息以openid或者密cookies的方式會返回給認證依賴方。由上述可以看出,在云服務認證過程中存在著兩個隱患。其一,采用的身份認證技術是否安全。其二,認證依賴方和認證服務提供商之間通訊是否安全。
目前,云計算中主流的認證方式有密碼認證、兩步認證、智能卡認證、生物特征認證等四種方式。采用傳統(tǒng)的密碼認證方式時,如果在用戶名密碼在其他網(wǎng)站上泄露,任何用戶都可以使用你的賬號密碼進行登錄做任何操作。兩步認證方式通常采用基于時間的動態(tài)密碼生成策略,即在規(guī)定時間內(如30秒)之外密碼一次一變。但是兩步認證在規(guī)定時間之內密碼不變,受到釣魚攻擊容易造成密碼泄露。生物特征認證安全性很高,但是由于認證速度慢和價格高等特點,很難得到大規(guī)模應用。而智能卡認證方式,由于低廉的價格和較高的安全性逐漸成為身份認證的主流方式。
在google云認證過程中,傳輸信息采用加密密鑰進行加密,在信息交互前,通過公私鑰機制來協(xié)商加密密鑰,公私鑰是固定的非對稱密鑰;在Microsoft中,信息交換采用固定密鑰加密密鑰,沒有加密密鑰交換過程。由此可見,兩種認證過程都在很大程度上采用了固定密鑰進行認證過程的加密操作。因為每一個云用戶登錄或是切換云服務時,就會有一次使用固定密鑰進行的加密過程,由于云用戶認證依賴方和認證中心之間交換的信息數(shù)量巨大,就形成了大量使用固定密鑰加密后的密文,從而給認證數(shù)據(jù)帶來了安全隱患。
因此,本文提出建立一個獨立的云服務認證中心,所有分散的云服務中心都在這個認證中心進行注冊,各個云中心通過云服務認證中心實現(xiàn)用戶身份的交叉認證。在云服務認證中心采用智能卡技術和動態(tài)密鑰生成技術保證身份認證和傳輸數(shù)據(jù)的安全。
系統(tǒng)由四部分組成:用戶端、認證依賴方(RPs)、認證服務提供方(OPs)和認證中心。系統(tǒng)架構如圖1所示。
圖 1系統(tǒng)架構圖
在方案里,需要建立一個新的可信第三方認證中心。該認證中心和所有需要交互信息的云服務或者認證服務器通過網(wǎng)絡連接起來,控制認證過程,實現(xiàn)用戶身份認證和通訊過程的密鑰交換。
在認證依賴方、認證中心和認證服務器上,部署有采用PCI總線接口的密碼卡。PCI密碼卡是一款高速、安全、標準的加密設備,可以快速實現(xiàn)數(shù)據(jù)加解密、用戶身份認證和密鑰協(xié)議等功能。認證依賴方和認證服務器的密碼卡芯片里灌有密鑰生成算法,同時存儲有認證依賴方或認證服務器的身份標識和共享密鑰池。每個認證依賴方或認證服務器的密鑰池兩兩不同。認證中心密碼卡芯片里灌有存儲密鑰、身份認證和密鑰生成協(xié)議,數(shù)據(jù)庫中存儲有所有認證依賴方和認證服務器密鑰池的密文。認證中心用來進行每個認證依賴方、認證服務方和云服務用戶的密鑰池的分發(fā)、管理、注銷。
當一個云用戶需要接入一個云服務或者一個云服務接入已有的云服務群時,首先要在認證中心進行注冊。云用戶注冊過程:云服務器提交云用戶信息到認證中心;認證中心分配給云用戶id號和密鑰池,用戶id和密鑰池存放在智能卡和認證中心數(shù)據(jù)庫中;認證中心分發(fā)智能卡給云服務。
云服務注冊過程:在認證中心云服務提供給認證中心該應用的認證依賴方和認證服務器信息。認證中心接收到信息,對該應用進行安全審查,審查通過后,將該應用加入云服務列表,并給該應用分發(fā)帶有身份標識的加密卡硬件。在加密卡硬件中,存儲有對稱密碼算法和該認證依賴方和認證服務器的密鑰池和密鑰生成協(xié)議。一個應用的認證依賴方和認證服務器的密鑰池也是兩兩不同。最后,認證依賴方和認證服務器成功部署加密卡,認證中心將該應用加入云服務群的消息廣播給該群中所有云服務設備,則該應用注冊成功。
(1)客戶端產生認證口令
認證過程由用戶端發(fā)起。認證口令生成過程如圖2所示。
①在客戶端生成認證參數(shù)(時間戳和隨機數(shù));
②根據(jù)認證參數(shù)和密鑰生成算法在密鑰池中選取生成一次一變的加密密鑰;
③使用加密密鑰加密認證參數(shù)生成認證口令;
④組合用戶標識、認證參數(shù)和認證口令發(fā)送給云服務。
圖2客戶端產生認證口令
(2)認證依賴方和認證中心加密傳輸
作為認證依賴方的云服務接收到認證口令,需要對認證口令加密后發(fā)送給認證中心。數(shù)據(jù)加密過程過程如圖3所示。
①根據(jù)客戶端傳輸來的認證參數(shù)和密鑰生成算法在密鑰池中生成認證依賴方加密密鑰;
②使用隨機數(shù)發(fā)生器生成過程密鑰;
③使用認證依賴方加密密鑰加密過程密鑰;
④使用過程密鑰加密接收到的客戶端認證口令和用戶標識為認證碼;
⑤組合認證依賴方標識、認證服務方標識、認證參數(shù)、加密過程密鑰和認證碼發(fā)送到認證中心。
圖3 加密傳輸數(shù)據(jù)
(3)認證中心認證過程
認證中心解密接收到的數(shù)據(jù),對用戶信息進行認證,認證通過后從認證服務方獲得該用戶權限信息發(fā)送給認證依賴方,認證依賴方根據(jù)收到用戶權限信息自動跳轉到認證服務方進入服務界面。解密接收到數(shù)據(jù)的過程如圖4所示。
①根據(jù)認證依賴方標識在認證中心密文數(shù)據(jù)庫中查找出認證依賴方密鑰池密文,使用存儲密鑰解密密鑰池;
②根據(jù)認證參數(shù)和密鑰生成算法在密鑰池中選取生成解密密鑰;
③使用解密密鑰解密出解密過程密鑰;
④使用過程密鑰解密出用戶標識和認證口令。
圖4 解密數(shù)據(jù)
認證中心認證過程如圖5所示。
①根據(jù)用戶標識在認證中心密文數(shù)據(jù)庫中查找出用戶密鑰池密文,使用存儲密鑰解密密鑰池;
②根據(jù)認證參數(shù)和密鑰生成算法在密鑰池中選取生成加密密鑰;
③使用加密密鑰加密認證參數(shù);
④將認證參數(shù)和認證口令對比,確認用戶身份是否合法。
圖5 云用戶身份認證
認證中心對用戶身份認證通過后,從認證服務方獲得該用戶權限信息發(fā)送給認證依賴方。認證服務方和認證中心在交互時將數(shù)據(jù)使用一次一變過程密鑰加密后傳輸,認證中心端加密數(shù)據(jù)過程類似認證中心端解密數(shù)據(jù)過程。
(4)認證服務方和認證中心加密傳輸
認證服務方接收到認證中心數(shù)據(jù)后,將數(shù)據(jù)解密出來,根據(jù)認證結果和用戶標識獲得用戶權限,將用戶權限、用戶標識和RP標識加密后返回給服務器端,如圖6所示。
①根據(jù)認證中心傳輸來的認證參數(shù)、加密過程密鑰和密鑰生成算法在密鑰池中生成認證服務方解密密鑰;
②用解密密鑰解密出解密過程密鑰;
③根據(jù)用戶標識和認證結果獲得用戶權限;
④使用過程密鑰加密用戶標識、用戶權限和認證依賴方標識;
⑤組合用戶標識、用戶權限和認證依賴方標識密文發(fā)送到認證中心。
圖6 加密傳輸數(shù)據(jù)
當一個云服務應用或云用戶退出一個云服務認證群時,需要將身份在云服務認證群眾注銷,即將認證中心對應該云服務或用戶的密鑰池信息刪除,該云服務的用戶不能在群中完成密鑰交換,則注銷成功。
在設計中主要采用了四項保障系統(tǒng)安全性的關鍵技術。
(1)采用高安全性的安全芯片存儲和分發(fā)保密通訊用戶標識及密鑰池信息,解決了對稱密碼體制中最難以解決的密鑰分發(fā)問題;
(2)采用組合密鑰生成機制保證了對稱密鑰的一次一變;
(3)數(shù)據(jù)加解密過程中的加解密運算均使用分組加密算法(SM1、SM4算法)在安全芯片和加密卡內進行,保證了密鑰在硬件芯片之外不以明文的形式出現(xiàn),使黑客無法分析和跟蹤對稱密鑰的產生過程,具有極高的安全性;
(4)認證中心和云服務端的“密鑰池”里,全部用戶的“密鑰池”是以密文形式存儲,受到加密卡硬件設備的防護,安全性高。
云用戶通常希望能通過一次登錄即可享受多個云應用提供的服務。因此,多個云服務之間用戶安全認證問題就成為一個非常重要的問題。在本文中,提出建立基于安全硬件設備的第三方認證中心來解決云服務之間的安全認證和保密傳輸問題,既適用于新云服務,也適用于原有云服務。經(jīng)分析表明,此方案安全有效。
[1]OWASP:Category:OWASPTop Ten Project[EB/OL],https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project.
[2]Antonio Celesti,Francesco Tusa, assimo Villari:MThree-Phase Cross-Cloud FederationModel:The Cloud SSO Authentication, In: 2th International Conference on Advances in Futureinternet(AFIN 2010),IEEE CPS, Venice( 20 l 0).
[3]俞能海,郝卓,徐甲甲,張衛(wèi)明,張馳.云安全研究進展綜述.電子學報,2013.
[4]Kelly D. LEWIS, James E. LEWIS: Web Single Sign-On Authentication using SAML[J]. IJCSI International Journal of Computer Science Issues.2,(2009).
[5]Maryam Eslami Chalandar, Parviz Darvish, Amir Masoud Rahmani:A centralizedcookie-based single sign—on in distributed systems.In:Information and Communications Technology,pp.163-165. ICICT 2007, IBAKarachi (2007).
[6]Tim Mather,Subra Kumaraswamy and Shahed Latif: Cloud Security and Privacy[M].O'Reilly Media, Inc, USA(2009).
[7]朱榮華,高能,向繼.云計算中的認證機制研究[J].第28次全國計算機安全學術交流會.
[8]江偉玉,高能,劉澤藝,林雪燕.一種云計算中的多重身份認證與授權方案[J].第27次全國計算機安全學術交流會.
[9]陳立志,李鳳華,戴英俠.基于動態(tài)口令的身份認證機制及其安全性分析[J].計算機工程,2002.
[10]李波,楊茂云,何大可.一種智能卡口令認證方案的分析與改進[J].通信技術,2003.
[11]王毓娜,呂秋云.基于生物識別的網(wǎng)絡身份認證新方案[J].信息網(wǎng)絡安全, 2014.
本文得到了北京市財政項目“情報快速生產線建設(I期)”(項目編號:PXM2017_178214_000005)、北京市科學技術情報研究所改革與發(fā)展專項(2017)“科技情報生產線采集與分析關鍵技術研發(fā)”的支持。