999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OpenStack Keystone認證機制研究

2021-03-08 00:24:52尹譽衡
計算機技術與發展 2021年2期
關鍵詞:機制用戶

尹譽衡

(華北計算技術研究所,北京 100089)

0 引 言

隨著互聯網和計算機技術的高速發展,為了滿足人們對數據處理速度和數據存儲容量越來越高的要求,云計算平臺應運而生。云計算平臺通過整合分布式資源,構建靈活、可擴展的虛擬計算環境[1],根據用戶的需求提供理想的服務與資源。目前金融、政務、郵政等重要領域已經廣泛應用云計算平臺,大量云計算平臺的用戶選擇將數據甚至是隱私數據保存在云端[2],因此用戶迫切希望有一個安全可靠的云計算平臺。

非對稱加密算法是一種將數據進行加密處理的算法。數據收發雙方都有一套相互匹配的公鑰(public key)和私鑰(private key)[3]。數據發送方和數據接收方在正式傳送數據前會交換公鑰,傳送數據前發送方先用接收方的公鑰對數據進行加密處理,接收方接收到數據后,用自己的私鑰對數據進行解密,從而獲取原本的數據。

OpenStack是一個開源的、便于使用的、可擴展的云計算平臺,由多個功能各不相同的組件構成,各組件之間分工協作,共同構成云計算平臺[4]。目前為止發布了從A到T共20個版本,從Essex版本之后開始全面支持使用Keystone完成身份管理、訪問控制和統一授權的功能[5]。

1 OpenStack Keystone介紹

OpenStack由一系列開源項目組成,是一種提供基礎設施即服務(infrastructure as a service,IaaS)的虛擬化管理平臺,能夠提供可靠的云部署方案[6]。OpenStack主要使用池化虛擬資源來構建和管理私有云和公有云,通過多種功能不同的組件提供計算、網絡、存儲、認證和鏡像等服務,其中提供認證服務的就是Keystone組件。各組件之間采用Restfull API接口規范,實現了模塊之間的低耦合,各個組件可以靈活配置,易于二次開發[7]。

1.1 Keystone基本介紹

用戶在申請OpenStack的資源和服務時都由Keystone對用戶進行身份驗證并對用戶授權,同時還會向用戶提供一個該用戶可以使用的服務的列表,用以明確用戶使用資源的權限范圍[8]。在OpenStack中,無論是管理員還是用戶,要想使用各項服務,都必須先通過Keystone的認證。并且,OpenStack的認證工作都交由Keystone完成,因此,提高Keystone的安全性是十分必要的。

下文會介紹Keystone中涉及的一些基本概念。

(1)用戶(User):使用OpenStack服務的個人或是系統,需要向Keystone發送憑證以通過Keystone的驗證。Keystone會向通過驗證的用戶分配一個該用戶特有的令牌(Token),該令牌就是在OpenStack中請求其他服務時的憑證。

(2)令牌(Token):Keystone驗證用戶憑證后,向用戶分發特定的、在OpenStack各組件之間使用的通行證,用戶可以以此令牌訪問被授權的其他的OpenStack服務。令牌具有有效時間,可以隨時被云平臺管理員取消。Keystone的作用就是對外提供一個可以訪問資源的令牌。

(3)項目租戶(TenantProject):表示一組資源,資源范圍由Keystone授權給用戶的資源列表界定。

(4)憑證(Credential):用于證明用戶身份或權限,也就是用戶的用戶名和密碼,用戶將其發送給Keystone,以換取令牌。一個用戶可以有多個憑證,一個憑證與一個項目關聯。

Keystone通過這些基本概念,對外提供認證、令牌、目錄和安全策略四個方面的核心服務。Keystone組件工作流程如圖1所示。

圖1 Keystone工作流程

(1)用戶發送自己的憑證(即用戶名和密碼)到Keystone,Keystone通過認證后,返回一個臨時令牌和通用服務目錄。

(2)用戶通過臨時令牌向Keystone查詢當前環境下的項目列表。Keystone通過驗證后返回給用戶一個項目列表。

(3)用戶選擇一個項目后,發送憑證給Keystone申請正式令牌。

(4)用戶憑借正式令牌發送API請求到相應的服務端點,服務端點將令牌交由Keystone驗證后響應請求,向用戶返回請求狀態。

以上是Keystone完整的工作流程,該文就認證過程的安全性進行研究,并給出加強安全性的方法。

1.2 Keystone認證機制

OpenStack身份認證分為兩個部分,首先云平臺用戶需要先從Keystone申請到令牌,以令牌作為與各組件的API接口進行交互的憑證,使用該令牌完成單點登錄和委派驗證[9],從而獲取其他組件提供的服務。Keystone組件作為OpenStack云平臺的身份認證核心[10],可以與其他后端授權系統進行集成,其身份認證機制通過token來實現,主要包括了UUID token(universally unique identifier token)和PKI(public key infrastructure token)兩種認證機制。

當用戶需要進行操作時,用戶提供有效的用戶名和口令給Keystone,Keystone經過認證后返回給用戶一個令牌[11]。之后用戶對其他組件進行其他操作時,先出示這個令牌給相應的API,組件收到請求后,用這個令牌去向Keystone進行請求驗證。Keystone通過比對令牌,以及檢查令牌的有效期,判斷令牌的有效性,最后返回結果給相應的組件。

OpenStack在G版本之前只有UUID令牌認證機制這一種方式。G版本及之后版本使用PKI令牌機制[12],Keystone會利用PKI對令牌相關的數據進行簽名,對UUID機制進行了改進,減少了交互開銷。

1.2.1 UUID令牌認證機制

UUID令牌認證機制基于用戶提供的用戶名和口令完成認證[13]。Keystone生成的令牌保存在后端數據庫中,每個令牌都有一個獨一無二的ID。用戶向Keystone提交驗證申請,Keystone經過驗證后將令牌ID傳給用戶。用戶在申請云平臺資源時,會在API請求中附加上自己的令牌ID,Keystone通過比對API請求和后端數據庫中的令牌ID來驗證用戶身份,之后再響應用戶的API請求。這種方式的設計決定了用戶每次發起API請求之前都要向Keystone發起驗證請求,造成極大的開銷,對網絡和Keystone資源都是一種極大的消耗。Keystone生成令牌和用戶使用令牌發起API請求的過程如圖2所示。

圖2 UUID認證過程

1.2.2 PKI令牌認證機制

PKI令牌認證機制中Keystone被設計為一個數字簽名認證中心。Keystone使用簽名密鑰和數字證書對用戶的令牌簽名,每一個API端點都會保存一份簽名公鑰證書、CA公鑰證書和證書吊銷列表的Keystone拷貝,用以驗證用戶的請求[13]。在這種機制下,當用戶發起API請求時,每個API端點都可以使用這份拷貝離線響應請求,節省了為每個驗證直接請求Keystone的開銷,解決了UUID機制中客戶端與Keystone頻繁交互造成的性能瓶頸,緩解了對網絡帶寬和Keystone資源的壓力。PKI令牌認證機制的流程如圖3所示。

圖3 PKI認證過程

2 Keystone認證機制安全性分析

通過對Keystone認證機制的分析,可以發現Keystone在認證過程中存在一些缺陷,這些缺陷可能會使Keystone和其他組件遭受安全問題。本節針對Keystone認證機制的安全性進行分析,指出其中存在的問題。

(1)Keystone是OpenStack身份認證中心,使用用戶名和口令來驗證用戶,但在驗證過程中,用戶名和口令都是以明文形式傳輸的。Keystone默認使用HTTP協議進行通信,HTTP不會加密通信內容,攻擊者可以針對HTTP協議發起諸如中間人攻擊等的攻擊行為,導致泄露用戶的用戶名和口令等信息。

(2)Keystone會向經過認證的用戶發送一個令牌,用戶憑此令牌進行后續的資源訪問和使用,其他的組件不會再對用戶的身份加以驗證。這種做法意味著攻擊者一旦通過某些途徑拿到某個用戶的令牌,就相當于擁有了此用戶在云平臺的所有權利,攻擊者可以不再經過Keystone的身份驗證而直接以該用戶的身份使用云平臺的資源,甚至對云平臺本身發動攻擊。

(3)用戶在請求其他組件的服務時,發送的API請求包括了令牌和請求信息。由于API請求在傳輸過程中是以明文傳輸的,所以攻擊者一旦截獲了用戶的任意一條API請求,都可以通過該請求中的信息對API接口發動重放攻擊。

(4)Keystone作為OpenStack平臺唯一一個強制服務,同時還具備管理認證的功能,這使得它成為攻擊者的首選攻擊目標。在Keystone的基礎上結合其他安全手段無疑是提高其安全性的一個重要方式。

綜上所述,Keystone組件的認證機制中仍然存在很多安全問題[14],尤其是通信過程中的明文傳輸,這是一個很大的隱患,使得OpenStack無法應用于對數據保密有極高要求的場景,因此需要將Keystone結合其他安全手段來保障Keystone數據傳輸的隱蔽性,而非對稱加密作為一種經過驗證的可靠方式,無疑是最佳的選擇。

3 Keystone改進方案及分析

3.1 Keystone改進方案

針對Keystone現有的安全問題,該文介紹一種基于非對稱加密的認證機制改進方案,該方法可以有效地解決上文中指出的問題。

非對稱加密算法使用公鑰和私鑰對數據進行加密和解密。公鑰作為對信息進行加密的密鑰,對數據發送方公布,同時數據接收方應妥善保管私鑰,任何人都無法通過公鑰推測出私鑰。被數據接收方的公鑰加密過的數據只能通過接收方的私鑰解密,其他人無法解密獲取其中的信息,由此可見,使用非對稱加密算法可以有效地防止信息泄露,將其與Keystone認證機制相結合,可以大大提高Keystone認證機制的安全性。

表1給出了改進方案相關的符號記法。

表1 改進方案符號記法

在設計改進方案時,考慮到需要交換公鑰,并且讓用戶驗證Keystone的身份,所以在認證過程的前三個階段仍然使用明文傳輸。在交換了公鑰并驗證了Keystone的身份之后再使用非對稱加密算法對傳輸的敏感信息進行加密處理,完成認證工作,增強認證機制的安全性。

圖4給出改進方案的工作流程。

圖4 改進方案工作流程

(1)用戶向Keystone發送hello消息:用戶發送包含了用戶公鑰K_PUBC的hello消息給Keystone。

(2)Keystone向用戶發送hello消息:Keystone收到用戶發送的hello消息后,將用戶公鑰和用戶隨機數保存在本地,然后將用戶的hello消息再發還給用戶,作為收到hello消息的確認。

(3)Keystone發送證書:Keystone將自己的CA證書和公鑰K_PUBK發給用戶。

(4)用戶發送身份信息:用戶驗證證書通過后,將自己的用戶名和密碼用Keystone的公鑰K_PUBK加密,發送給Keystone。

(5)發放令牌:Keystone用私鑰K_PRIK解密消息,獲取用戶名和密碼并驗證后,發送用戶公鑰K_PUBC加密過的令牌給用戶。

(6)發送API請求和令牌:用戶基于隨機數生成會話密鑰,將API請求、令牌和時間戳T用Keystone的公鑰K_PUBK加密,并發送給Keystone。

(7)API請求處理:Keystone用私鑰K_PRIK解密后,驗證令牌和T,驗證通過后,將API請求的結果和時間戳T用K_PUBC加密后發送給用戶。

3.2 實驗分析

實驗環境:物理機win 7,使用VMware Workstations安裝兩臺CentOS 7.7虛擬機,分別作為Controller節點和Compute節點,并在Controller節點和Compute節點上安裝OpenStack Stein。

在物理機上使用wireshark抓包,追蹤http流,未加密流量中可以直接獲取用戶名和密碼,而在對數據流進行加密之后,無法解密數據流,只能獲取到亂碼,從而有效地保障了通信過程的機密性。

3.3 Keystone改進方案分析

上文所述的改進方案通過在Keystone認證過程中增加非對稱加密機制,對認證過程中所涉及的用戶名、密碼和令牌等重要信息進行加密傳輸,對這些重要信息的傳輸進行了保護。該方案實現了一個安全有效的改進方案,解決了第2節提出的安全問題。以下從三個方向對該改進方案進行了詳細具體的安全分析。

3.3.1 防消息泄漏

從改進方案的工作流程可以看出,只有在前三個階段沒有用公鑰加密,而前三個階段包含的有效信息只有用戶公鑰、Keystone公鑰和Keystone的CA證書,沒有用戶名和密碼,在后續向Keystone發送認證請求的過程中無法通過Keystone的驗證,從而就無法獲取令牌和時間戳,因此即使攻擊者截獲了前三個階段交互的信息,也不會泄露用戶名和密碼、令牌、API請求等信息。

通過對認證過程中的敏感信息使用安全性較高的非對稱加密算法進行加密,有效地防止了敏感信息的泄露,攻擊者即使截獲了信息也無法破解出有效信息。

3.3.2 防重放攻擊

重放攻擊是指攻擊者向目標主機發送一個合法的包,但是這個包是該主機事先已經接收過的包,利用他人的合法身份來欺騙目標主機[15]。這種攻擊方式主要用于身份認證過程,從而造成目標主機對攻擊者錯誤的身份認證。

發動重放攻擊的可以是普通的合法用戶,也可以是將合法用戶的請求攔截了的攻擊者。攻擊者可以通過竊聽合法用戶的網絡流量或其他途徑獲取到認證過程中的憑證,然后再將這個憑證發給認證服務器,從而獲取經過認證的合法身份。

若將重放攻擊運用在欺騙Keystone,攻擊者就可以在沒有破解出傳輸數據的真實含義時,也能夠用加密過的認證信息欺騙Keystone,從而獲取到令牌。

在改進方案中,在用戶發送API請求時,同時會發送一個時間戳。由于攻擊者無法破解傳輸的加密,所以無法定點修改時間戳,因此信息中的時間戳必定是合法用戶發送的。所以當Keystone收到兩個相同的消息時,Keystone可以通過對比信息中包含的時間戳和接收到信息的時間來確定哪一個API請求是由合法用戶發出的,從而防止有效的重放攻擊。

3.3.3 雙向認證

在Keystone過程中,不僅是Keystone需要確定用戶的身份,用戶同樣也需要確定Keystone的身份,防止攻擊者通過偽裝成Keystone來欺騙用戶。

在該文的改進方案中,用戶會在通信過程前期收到Keystone的CA證書,從而確認Keystone的身份,為下一步的認證過程提供保障。CA證書由第三方可信機構簽署頒發,具有極高的可信度,用戶通過CA證書驗證身份后可確定對方身份。同時因為該證書是公開證書,所以可以在認證過程的明文傳輸階段就對Keystone進行驗證。

而Keystone驗證用戶的身份則是通過用戶名和密碼,在信息不被泄露的前提下,使用用戶特有的用戶名和密碼來驗證用戶身份不失為一個傳統但有效的方法。

在認證機制中加入這樣的雙向認證可以保障用戶和Keystone雙方都不被欺騙,極大地增強了認證機制的安全性。

4 結束語

通過分析Keystone的工作流程以及UUID token和PKI token兩種認證機制,指出其中存在的缺陷和可能受到的攻擊,再針對這些缺陷,給出一種改進方案,將非對稱加密機制與Keystone的認證機制結合,并加入雙向認證和時間戳證明,保證通信過程的數據安全。然后對這種改進方案進行安全分析,可以看出該方案對信息泄露和重放攻擊有很好的防御,同時增加的雙向認證也加強了通信雙方的互信度,不失為一個一舉多得的方案。下一步工作是對該方案的性能進行評估,并通過適當的策略降低認證服務器負載量,提高整個系統的工作效率。

猜你喜歡
機制用戶
構建“不敢腐、不能腐、不想腐”機制的思考
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
定向培養 還需完善安置機制
中國衛生(2016年9期)2016-11-12 13:28:08
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: A级全黄试看30分钟小视频| 在线观看国产精美视频| 又黄又湿又爽的视频| 久草青青在线视频| 99精品免费在线| 手机在线国产精品| 国产高清在线观看| 国产成人综合亚洲欧洲色就色| 久久精品66| 久久国产V一级毛多内射| 亚洲高清资源| 国产人碰人摸人爱免费视频| 亚洲AV无码不卡无码| 国产第一页屁屁影院| AV片亚洲国产男人的天堂| 免费xxxxx在线观看网站| 99热国产这里只有精品无卡顿"| 成人免费网站久久久| 亚洲综合18p| 日本影院一区| 在线99视频| 波多野结衣无码中文字幕在线观看一区二区 | 日韩麻豆小视频| 国产午夜无码片在线观看网站| 看你懂的巨臀中文字幕一区二区| 日本91在线| 沈阳少妇高潮在线| 99热线精品大全在线观看| 毛片一级在线| 成人在线第一页| 99在线国产| 国产va免费精品观看| 亚洲美女一区二区三区| 四虎国产成人免费观看| 欧美午夜在线观看| 亚洲高清中文字幕| 亚洲人成色77777在线观看| 成年免费在线观看| 亚洲人妖在线| 久夜色精品国产噜噜| 97se亚洲综合在线天天| 亚洲国产日韩在线成人蜜芽| 欧美一区二区三区香蕉视| 国产最爽的乱婬视频国语对白| 久久不卡国产精品无码| 手机精品福利在线观看| 国产午夜不卡| 久久久久88色偷偷| 亚洲成在线观看 | 国产精品成人不卡在线观看| 亚洲一级毛片在线观播放| 色偷偷av男人的天堂不卡| 九色免费视频| 99久久国产精品无码| 国产激情第一页| 欧美日韩一区二区在线播放| 国内精品伊人久久久久7777人| 亚洲国产精品不卡在线| 亚洲AV无码久久精品色欲| 国产精品无码一二三视频| 婷婷激情五月网| 狠狠亚洲五月天| 人人看人人鲁狠狠高清| 毛片免费在线| 国产主播福利在线观看| 成人在线天堂| 日韩无码一二三区| 国产视频久久久久| aaa国产一级毛片| 国产第一页免费浮力影院| 97se综合| 伊人欧美在线| 在线观看视频99| 国产迷奸在线看| 欧美午夜理伦三级在线观看 | 亚洲日本中文字幕乱码中文 | 真实国产乱子伦视频| 欧美va亚洲va香蕉在线| 欧美激情第一欧美在线| 亚洲国产天堂久久综合| 另类综合视频| 精品无码一区二区三区电影|