• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于數(shù)字證書(shū)的openstack身份認(rèn)證協(xié)議

      2019-03-13 08:17:58朱智強(qiáng)林韌昊胡翠云
      通信學(xué)報(bào) 2019年2期
      關(guān)鍵詞:數(shù)字證書(shū)密鑰密碼

      朱智強(qiáng),林韌昊,胡翠云

      (1. 解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué)密碼工程學(xué)院,河南 鄭州 450001;2. 鄭州信大先進(jìn)技術(shù)研究院,河南 鄭州 450001)

      1 引言

      隨著互聯(lián)網(wǎng)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,產(chǎn)生了一種新的計(jì)算模式——云計(jì)算,云計(jì)算技術(shù)通過(guò)整合分布式資源,構(gòu)建出靈活、可擴(kuò)展的虛擬計(jì)算環(huán)境[1]。隨著云計(jì)算的不斷發(fā)展,大量的云用戶將自己的隱私數(shù)據(jù)保存在云端[2],若云用戶的合法身份被冒充,就會(huì)造成隱私數(shù)據(jù)的泄露,身份認(rèn)證技術(shù)是解決這一問(wèn)題的可靠技術(shù)。目前,云計(jì)算已經(jīng)廣泛應(yīng)用于政務(wù)、金融、郵政、軍事等對(duì)安全性需求較高的領(lǐng)域,與其相關(guān)的云基礎(chǔ)設(shè)施和云平臺(tái)均應(yīng)按照信息系統(tǒng)安全要求的最高等級(jí)進(jìn)行建設(shè)。應(yīng)用最為廣泛的基于用戶名/口令的認(rèn)證方式存在諸多安全性問(wèn)題,不能適用于這些應(yīng)用場(chǎng)景。數(shù)字證書(shū)是一個(gè)經(jīng)證書(shū)授權(quán)中心(CA, certificate authority)簽名的用來(lái)標(biāo)識(shí)通信雙方身份信息的一串?dāng)?shù)字,主要包含了公鑰及公鑰擁有者的信息[3],具有唯一性和不可否認(rèn)性。數(shù)字證書(shū)的主要作用是確?;ヂ?lián)網(wǎng)上通信雙方進(jìn)行安全且相互信任的通信。

      openstack是一個(gè)由美國(guó)國(guó)家航空航天局和Rackspace合作研制的開(kāi)源項(xiàng)目,是一種旨在提供基礎(chǔ)設(shè)施即服務(wù)(IaaS,infrastructure as a service)的虛擬化管理平臺(tái),能夠提供可靠的云部署方案[4]。目前,許多國(guó)內(nèi)外的云行業(yè)領(lǐng)軍企業(yè)都參與到了 openstack的項(xiàng)目研發(fā)中,并將其作為云計(jì)算架構(gòu)的基石,這標(biāo)志著 openstack已經(jīng)是事實(shí)上的開(kāi)源云平臺(tái)的行業(yè)標(biāo)準(zhǔn)。

      2 openstack云平臺(tái)認(rèn)證機(jī)制分析

      2.1 開(kāi)源云平臺(tái)openstack

      openstack云平臺(tái)由多種組件共同組成,各組件分工明確、相互獨(dú)立,構(gòu)成云平臺(tái)的實(shí)質(zhì)就是組合這些組件[5]。openstack采用無(wú)共享、基于消息的架構(gòu),既可以將每個(gè)組件分別部署在單獨(dú)服務(wù)器上,也可以部署在同一臺(tái)服務(wù)器上。各組件統(tǒng)一采用 Rest-full API(application programming interface)接口規(guī)范,具有模塊松耦合、組件配置靈活、易于二次開(kāi)發(fā)等優(yōu)點(diǎn)。

      openstack的安全問(wèn)題一直是國(guó)內(nèi)外各大企業(yè)、學(xué)者關(guān)注的焦點(diǎn)。官方成立了 openstack安全項(xiàng)目組并編寫了《openstack安全指南》,致力于解決openstack中存在的安全問(wèn)題,并通過(guò)安全漏洞管理團(tuán)隊(duì)及時(shí)對(duì)漏洞進(jìn)行修復(fù)。他們于 2015年創(chuàng)建了Security項(xiàng)目,提供安全工具解決openstack中存在的安全問(wèn)題,并在2018年2月28日發(fā)布的Queens版本中對(duì)Security項(xiàng)目進(jìn)行更新,通過(guò)Anchor提供輕量級(jí)PKI(public key infrastructure)服務(wù),自動(dòng)驗(yàn)證和簽發(fā)短期證書(shū)。通過(guò)該項(xiàng)目中Bandit等工具檢測(cè)代碼、API、各組件中存在的安全問(wèn)題和漏洞。

      2.2 基于keystone組件的認(rèn)證機(jī)制

      openstack相較于其他虛擬化管理軟件,采用了靈活的低耦合分布式 SOA(service-oriented architecture)架構(gòu)模式,所以需要一個(gè)類似服務(wù)總線的模塊對(duì) openstack中的各組件進(jìn)行統(tǒng)一的授權(quán)認(rèn)證及服務(wù)規(guī)則管理。

      openstack在essex版本增加了keystone這一核心組件[6]并使其作為串聯(lián) openstack中各組件的認(rèn)證授權(quán)中心,keystone組件通過(guò)其特有的插件化結(jié)構(gòu)為openstack云平臺(tái)用戶提供身份管理(account)、訪問(wèn)控制(authentication)以及統(tǒng)一授權(quán)(authorization)服務(wù)。

      keystone組件作為openstack云平臺(tái)的身份認(rèn)證核心[7],可以與其他后端授權(quán)系統(tǒng)進(jìn)行集成,其身份認(rèn)證機(jī)制的特點(diǎn)主要通過(guò)令牌(token)來(lái)實(shí)現(xiàn),主要包括了 UUID token、PKI token以及 fernet token。云用戶在與openstack其他組件交互之前,需要從 keystone獲得令牌,然后將該令牌用于與openstack云平臺(tái)中各組件交互時(shí)的身份驗(yàn)證,其認(rèn)證工作具體流程如圖1所示,其中項(xiàng)目(project)為keystone中的基本概念,表示各個(gè)服務(wù)中可以訪問(wèn)的資源集合。

      圖1 keystone組件工作流程

      openstack云平臺(tái)基于keystone組件的認(rèn)證機(jī)制存在以下問(wèn)題。

      1)基于PKI token的認(rèn)證方式可以在一定程度上保證云用戶在訪問(wèn)其他應(yīng)用組件時(shí)的安全,但是用戶在登錄云平臺(tái)時(shí)目前僅支持基于用戶名/口令認(rèn)證方式。這種認(rèn)證方式存在口令泄露、易遭受口令猜測(cè)攻擊、字典攻擊等安全隱患。

      2)認(rèn)證過(guò)程中,用戶名/口令都是以明文形式發(fā)送,默認(rèn)使用HTTP協(xié)議進(jìn)行認(rèn)證[8],攻擊者可能通過(guò)協(xié)議分析器竊聽(tīng)用戶的認(rèn)證信息或?qū)φJ(rèn)證請(qǐng)求數(shù)據(jù)分組進(jìn)行截取,進(jìn)而發(fā)動(dòng)重放攻擊。

      3)即使將keystone組件配置成支持HTTPS加密訪問(wèn)環(huán)境,攻擊者仍能夠利用 man-in-the-middle機(jī)制截取網(wǎng)絡(luò)通信數(shù)據(jù)并進(jìn)行數(shù)據(jù)篡改進(jìn)而發(fā)動(dòng)中間人攻擊。

      4)沒(méi)有提供重復(fù)登錄失敗后限制登錄的方法[9],這可能會(huì)遭受暴力攻擊以及DoS(denial of service)攻擊。

      5)文獻(xiàn)[10]通過(guò)定量安全評(píng)價(jià)對(duì) openstack安全性進(jìn)行分析,根據(jù)漏洞數(shù)據(jù)庫(kù)(NVD,national vulnerability database)的經(jīng)驗(yàn)數(shù)據(jù)得出keystone是最脆弱的組件,存在大量漏洞。攻擊者可能通過(guò)這些漏洞對(duì)用戶的隱私數(shù)據(jù)進(jìn)行竊取。

      6)keystone組件是部署 openstack云平臺(tái)的唯一強(qiáng)制服務(wù)[11],這使得keystone成為攻擊者的首要攻擊目標(biāo)。集成第三方身份驗(yàn)證和授權(quán)協(xié)議是一種更安全的部署方法。

      綜上所述,基于keystone組件的認(rèn)證方式存在諸多安全問(wèn)題,不能有效抵抗多種網(wǎng)絡(luò)攻擊,不能適用于政務(wù)、軍事等對(duì)安全性需求較高的應(yīng)用場(chǎng)景,因此需要一種高安全性的認(rèn)證方式來(lái)保護(hù)openstack云用戶的隱私數(shù)據(jù)安全。

      2.3 密鑰管理組件Barbican

      為了在云中提供強(qiáng)大的數(shù)據(jù)保護(hù),加密技術(shù)通常用于保護(hù)傳輸中的數(shù)據(jù)以及rest中的數(shù)據(jù)。密鑰管理是所有使用加密的云組件面臨的巨大挑戰(zhàn)。

      Barbican是為openstack云平臺(tái)提供key的管理存儲(chǔ)服務(wù)的組件[12],通過(guò)rest API來(lái)提供和管理機(jī)密信息并進(jìn)行安全存儲(chǔ)。Barbican組件通過(guò)加密密鑰對(duì)用戶機(jī)密信息進(jìn)行加密,成為Barbican的秘密(secret):包括密碼、公私鑰、加密密鑰,并存儲(chǔ)到Barbican的后端數(shù)據(jù)庫(kù)中。Barbican組件提供了外部密鑰管理設(shè)備的接口,具有良好的擴(kuò)展性,可以快速存儲(chǔ)和檢索傳遞給openstack組件的密鑰[13],能夠提供靈活、可靠的密鑰周期管理服務(wù)。

      Barbican組件的核心是數(shù)據(jù)的加解密以及秘密的存儲(chǔ),在組件內(nèi)部生成一個(gè)密鑰,存儲(chǔ)在用于加密處理的硬件安全模塊中(HSM, hardware security module),在秘密存儲(chǔ)到數(shù)據(jù)庫(kù)前對(duì)其進(jìn)行加密。讀取數(shù)據(jù)時(shí),先從數(shù)據(jù)庫(kù)讀取密文,再通過(guò)密鑰解密后獲取明文,這可以有效防止數(shù)據(jù)庫(kù)中的數(shù)據(jù)泄露。

      3 基于數(shù)字證書(shū)的openstack身份認(rèn)證系統(tǒng)

      3.1 認(rèn)證系統(tǒng)架構(gòu)

      針對(duì)openstack云平臺(tái)基于keystone的認(rèn)證機(jī)制在政務(wù)、軍事等領(lǐng)域中安全性不足的問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)了基于數(shù)字證書(shū)的 openstack身份認(rèn)證系統(tǒng)來(lái)保護(hù)openstack云平臺(tái)用戶隱私數(shù)據(jù)的安全。針對(duì)不同云用戶對(duì)云平臺(tái)身份認(rèn)證安全等級(jí)的不同需求,結(jié)合openstack基于keystone組件的認(rèn)證特點(diǎn)并通過(guò)對(duì)keystone組件進(jìn)行擴(kuò)展,從而支持云計(jì)算環(huán)境下基于數(shù)字證書(shū)的認(rèn)證方式。

      認(rèn)證系統(tǒng)主要包括云密碼管理子系統(tǒng)和云身份認(rèn)證子系統(tǒng)兩部分。云密碼管理子系統(tǒng)主要為云平臺(tái)用戶提供證書(shū)的管理、簽發(fā)服務(wù),由云平臺(tái)證書(shū)分發(fā)服務(wù)器、證書(shū)密鑰分發(fā)插件以及用戶證書(shū)下載插件組成。云身份認(rèn)證子系統(tǒng)是證書(shū)認(rèn)證服務(wù)的提供者,由密碼認(rèn)證服務(wù)器、云認(rèn)證客戶端插件和認(rèn)證令牌處理插件組成。認(rèn)證系統(tǒng)組成如圖2所示。

      圖2 認(rèn)證系統(tǒng)組成

      本系統(tǒng)將數(shù)字證書(shū)藏于UKey(USB Key)中,利用UKey提供的安全機(jī)制使其作為用戶私鑰與證書(shū)的安全載體[13]。在部署方面增加密碼認(rèn)證服務(wù)器和證書(shū)分發(fā)服務(wù)器,并對(duì)傳統(tǒng)的證書(shū)認(rèn)證及認(rèn)證網(wǎng)關(guān)所采用的 socket通信接口進(jìn)行改造,統(tǒng)一采用Rest-full API進(jìn)行服務(wù)調(diào)用,提高標(biāo)準(zhǔn)化及快速擴(kuò)展能力。使用Barbican組件作為密鑰容器代替 keystone使用的文件方式密鑰存儲(chǔ),統(tǒng)一將客戶端與服務(wù)端的公私鑰對(duì)作為secret經(jīng)Barbican加密密鑰加密后進(jìn)行統(tǒng)一管理存儲(chǔ),使用密碼認(rèn)證服務(wù)器內(nèi)置密碼卡代替HSM存儲(chǔ)Barbican加密密鑰??紤]到系統(tǒng)性能要求,將密碼認(rèn)證服務(wù)器部署成認(rèn)證服務(wù)器集群,統(tǒng)一為云平臺(tái)中各組件提供證書(shū)或數(shù)字簽名的驗(yàn)證服務(wù)。在數(shù)據(jù)庫(kù)模塊中增加新的用戶證書(shū)信息表,用來(lái)存儲(chǔ)keystone用戶與證書(shū)之間的關(guān)系。認(rèn)證系統(tǒng)總體架構(gòu)如圖3所示。

      3.2 認(rèn)證系統(tǒng)功能

      認(rèn)證系統(tǒng)主要完成云平臺(tái)用戶的證書(shū)管理、簽發(fā)以及身份認(rèn)證工作。

      1)云平臺(tái)用戶的證書(shū)管理、簽發(fā)

      在keystone后端部署云平臺(tái)證書(shū)分發(fā)服務(wù)器并與keystone組件結(jié)合,同時(shí)另一端與公鑰密碼基礎(chǔ)設(shè)施連接,提供用戶和設(shè)備證書(shū)管理服務(wù)。管理員根據(jù)需要構(gòu)建用戶證書(shū)管理請(qǐng)求連接到云平臺(tái)證書(shū)簽發(fā)服務(wù)器,獲得證書(shū)密碼管理服務(wù)權(quán)限,并通過(guò)證書(shū)密鑰分發(fā)插件向用戶直接頒發(fā)數(shù)字證書(shū),從而實(shí)現(xiàn)云平臺(tái)用戶證書(shū)的在線簽發(fā)、更新與撤銷。

      2)云平臺(tái)用戶身份認(rèn)證

      在keystone后端部署密碼認(rèn)證服務(wù)器,主要處理云用戶基于UKey數(shù)字證書(shū)的身份認(rèn)證和令牌簽發(fā)工作,通過(guò)內(nèi)置密碼卡來(lái)提供密碼技術(shù)支持,與keystone組件協(xié)同完成云平臺(tái)證書(shū)用戶的身份認(rèn)證。通過(guò)認(rèn)證令牌處理插件與keystone組件結(jié)合,使keystone能夠接受新的認(rèn)證令牌,解析協(xié)議數(shù)據(jù),并發(fā)送至密碼認(rèn)證服務(wù)器進(jìn)行驗(yàn)證,而后從本地身份管理模塊中獲取用戶對(duì)應(yīng)的證書(shū)信息,查看該用戶的合法性,從而實(shí)現(xiàn)基于證書(shū)密碼的全局身份認(rèn)證。

      4 基于數(shù)字證書(shū)的openstack認(rèn)證協(xié)議

      本文通過(guò)一種基于數(shù)字證書(shū)的 openstack認(rèn)證協(xié)議保障云用戶身份認(rèn)證的安全。

      表1給出協(xié)議描述相關(guān)的符號(hào)記法。協(xié)議涉及五方參與者:客戶端 C、密碼認(rèn)證服務(wù)器 AS(authentication server)、管理員終端 MT(management terminal)、keystone服務(wù)器KS(key stone server)、證書(shū)分發(fā)服務(wù)器CS(certificate authorization server),參與者能夠通過(guò)密鑰管理組件Barbican獲得對(duì)方公鑰UK(public key)。協(xié)議分為云用戶身份標(biāo)識(shí)階段與云用戶身份鑒別階段。

      由于對(duì)稱密鑰加密具有實(shí)時(shí)性且加密效率高等優(yōu)點(diǎn),因此統(tǒng)一使用對(duì)稱密鑰SK(symmetric key)對(duì)數(shù)據(jù)進(jìn)行加密傳輸,同時(shí)考慮到密鑰安全性,利用非對(duì)稱加密公鑰UK將對(duì)稱密鑰封裝到數(shù)字信封中發(fā)送至服務(wù)端,服務(wù)端利用私鑰RK(private key)對(duì)其進(jìn)行解密后提取SK。

      圖3 認(rèn)證系統(tǒng)總體架構(gòu)

      表1 認(rèn)證協(xié)議符號(hào)記法

      4.1 云用戶身份標(biāo)識(shí)階段

      1)管理員通過(guò)管理員系統(tǒng)發(fā)出新建用戶指令,調(diào)用 UKey設(shè)備產(chǎn)生一個(gè)經(jīng) MD5(message-digest algorithm 5)Hash算法加密后的隨機(jī)數(shù),通過(guò)云密碼管理子系統(tǒng)向CS提交證書(shū)簽發(fā)請(qǐng)求及隨機(jī)數(shù),CS端通過(guò)對(duì)校驗(yàn)隨機(jī)數(shù)有效性,返回 verify request。在握手過(guò)程中使用文獻(xiàn)[14]所提出的 cookie的交換和驗(yàn)證來(lái)抵御DoS攻擊。

      2)通過(guò)本地 UKey設(shè)備產(chǎn)生臨時(shí)公私鑰對(duì)UKUKey和RKUKey,并將用戶信息提交至keystone端。

      3)keystone在完成正常用戶創(chuàng)建過(guò)程后,向云密碼管理子系統(tǒng)提交證書(shū)申請(qǐng)。云密碼管理子系統(tǒng)收到請(qǐng)求后,向CS提交證書(shū)簽發(fā)請(qǐng)求。

      4)申請(qǐng)成功后,CS對(duì)用戶信息、公鑰進(jìn)行簽名,獲得數(shù)字證書(shū) CerUKey與被加密私鑰RKE,返回至KS。

      5)KS向服務(wù)后臺(tái) dashboard返回證書(shū)和加密私鑰,并將證書(shū)與私鑰寫入用戶UKey。

      6)云用戶身份標(biāo)識(shí)流程如圖4所示。

      圖4 云用戶身份標(biāo)識(shí)流程

      4.2 云用戶身份鑒別階段

      1)客戶端與認(rèn)證服務(wù)端通過(guò) Rest-full API進(jìn)行握手并發(fā)送HTTP請(qǐng)求進(jìn)行連接。傳入PIN(personal identification number)碼激活認(rèn)證客戶端插件。調(diào)用本地 UKey提取數(shù)字證書(shū)Cer,攜帶Cer和一份簽名消息向密碼認(rèn)證服務(wù)器 AS發(fā)送登錄請(qǐng)求,驗(yàn)證成功后返回認(rèn)證服務(wù)器令牌,其中簽名消息中包含一個(gè)時(shí)間戳T0和隨機(jī)產(chǎn)生的random nonce。采用成熟的對(duì)稱加密算法(AES, advanced encryption standard)對(duì)傳輸信息進(jìn)行加密/解密。

      2)將客戶端與 keystone服務(wù)端擴(kuò)展為雙向認(rèn)證,C發(fā)送認(rèn)證服務(wù)請(qǐng)求,KS收到請(qǐng)求之后將自己的證書(shū)及相關(guān)信息發(fā)送至 C??蛻舳蓑?yàn)證keystone服務(wù)端證書(shū)的有效性,驗(yàn)證成功后攜帶ID、Dm、Tauth通過(guò) dashboard提交至KS身份鑒別模塊。

      3)KS通過(guò)身份鑒別模塊將認(rèn)證令牌提交至認(rèn)證服務(wù)器進(jìn)行認(rèn)證,成功后獲取用戶及證書(shū)信息。同時(shí)將安全域名、用戶名、轉(zhuǎn)化為本地userID提交至本地身份管理模塊。

      4)將獲取的證書(shū)信息同身份認(rèn)證子系統(tǒng)返回的用戶證書(shū)信息進(jìn)行比較映射;成功后通過(guò)KS向客戶端返回keystone令牌。

      5)當(dāng)用戶訪問(wèn)其他組件或應(yīng)用服務(wù)時(shí),攜帶keystone token和一份簽名消息SC向keystone發(fā)送認(rèn)證請(qǐng)求,認(rèn)證成功后處理請(qǐng)求并返回認(rèn)證結(jié)果。

      云用戶身份鑒別流程如圖5所示。

      圖5 云用戶身份鑒別流程

      5 原型系統(tǒng)及安全性分析

      5.1 原型系統(tǒng)

      針對(duì)不同云用戶的需求,在保留原有認(rèn)證方式的基礎(chǔ)上,為高安全需求的用戶提供基于數(shù)字證書(shū)的認(rèn)證方式。

      系統(tǒng)主要功能是為管理員用戶及普通用戶提供身份的標(biāo)識(shí)和鑒別服務(wù)。系統(tǒng)工作流程如圖6所示。在系統(tǒng)安裝時(shí)至少需要設(shè)置一名管理員用戶并綁定一個(gè)UKey。管理員使用UKey及PIN碼通過(guò)圖7所示云用戶登錄界面發(fā)送認(rèn)證請(qǐng)求,通過(guò)密碼認(rèn)證服務(wù)器及keystone組件按照本文所設(shè)計(jì)的系統(tǒng)認(rèn)證流程進(jìn)行認(rèn)證,成功后返回認(rèn)證結(jié)果并跳轉(zhuǎn)至圖8所示openstack管理員系統(tǒng)界面。通過(guò)管理員系統(tǒng)中的添加用戶按鈕跳轉(zhuǎn)至圖9所示云用戶創(chuàng)建界面,根據(jù)不同用戶對(duì)安全等級(jí)的需求來(lái)填寫用戶信息和證書(shū)序列號(hào),對(duì)于安全等級(jí)需求較高的用戶需向證書(shū)分發(fā)服務(wù)器提交證書(shū)簽發(fā)請(qǐng)求,通過(guò)證書(shū)分發(fā)及下載插件將數(shù)字證書(shū)寫入U(xiǎn)Key設(shè)備并頒發(fā)給普通云用戶。云用戶使用UKey及PIN碼通過(guò)登錄界面發(fā)送認(rèn)證登錄請(qǐng)求,成功后即可使用openstack云平臺(tái)中的各項(xiàng)服務(wù)。

      圖6 系統(tǒng)工作流程

      圖7 云用戶登錄界面

      認(rèn)證系統(tǒng)主要分為云用戶的標(biāo)識(shí)和鑒別這兩部分。在云用戶身份標(biāo)識(shí)部分,通過(guò)與云平臺(tái)證書(shū)密鑰分發(fā)插件進(jìn)行集成,通過(guò)Rest-full API與云平臺(tái)證書(shū)分發(fā)服務(wù)器進(jìn)行握手并建立連接,從而支持證書(shū)的簽發(fā)下載。對(duì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)進(jìn)行修改,增加PKI證書(shū)屬性。在openstack_auth組件代碼中對(duì)view.py文件中的 login函數(shù)進(jìn)行修改,將不同的 URL請(qǐng)求將轉(zhuǎn)至UKey認(rèn)證的form頁(yè)面。界面部分在openstack原有的用戶標(biāo)識(shí)頁(yè)面的基礎(chǔ)上增加了是否使用 PKI證書(shū)的選項(xiàng)以及對(duì)應(yīng)的證書(shū)序列號(hào)輸入框。

      圖8 openstack管理員系統(tǒng)界面

      圖9 云用戶創(chuàng)建界面

      在云用戶身份鑒別部分,通過(guò)與云認(rèn)證客戶端插件進(jìn)行集成,負(fù)責(zé)讀取云用戶UKey設(shè)備中的證書(shū)。對(duì)keystone組件進(jìn)行擴(kuò)展,增加新的PKI認(rèn)證方式及該認(rèn)證方式所需要解析的數(shù)據(jù)格式和屬性。在 openstack_auth/plugin目錄下新建usbkeytoken.py文件,定義一個(gè)新的認(rèn)證插件,支持UKey token的認(rèn)證方式,在identities/v3/目錄下實(shí)現(xiàn)封裝這種認(rèn)證方式所需要傳遞的參數(shù)和協(xié)議,并支持對(duì)這種協(xié)議的引用。界面部分將云用戶口令輸入框替換為UKey設(shè)備口令輸入框,為云用戶提供基于數(shù)字證書(shū)的身份鑒別服務(wù)。

      在系統(tǒng)應(yīng)用方面,本文基于 openstack云平臺(tái)搭建了密碼云(cryptographic cloud)系統(tǒng)。密碼云系統(tǒng)是對(duì)分布式密碼資源進(jìn)行整合,并通過(guò)虛擬化技術(shù)生成密碼資源池,構(gòu)建出具有較高動(dòng)態(tài)擴(kuò)展性和靈活性的虛擬計(jì)算平臺(tái),按需向用戶提供密碼服務(wù),解決了傳統(tǒng)密碼技術(shù)受限于固定的載體和密碼資源不可擴(kuò)展等問(wèn)題。密碼云系統(tǒng)對(duì)身份認(rèn)證技術(shù)有著極高的安全性需求,若攻擊者成功獲得系統(tǒng)的授權(quán),可能會(huì)對(duì)密碼信息資源進(jìn)行竊取和篡改。目前本文系統(tǒng)已全面應(yīng)用于基于密碼云服務(wù)系統(tǒng)的應(yīng)用場(chǎng)景,管理員使用UKey設(shè)備通過(guò)本文所設(shè)計(jì)的認(rèn)證協(xié)議登錄基于 openstack的密碼云系統(tǒng)來(lái)對(duì)密碼虛機(jī)進(jìn)行統(tǒng)一管理,提高了云用戶在登錄云平臺(tái)系統(tǒng)時(shí)的安全性。

      政務(wù)云(government cloud)系統(tǒng)指通過(guò)云計(jì)算技術(shù)為政府部分行業(yè)提供基礎(chǔ)設(shè)施、應(yīng)用系統(tǒng)及信息安全等綜合服務(wù)的云計(jì)算平臺(tái)。但是涉及政府機(jī)密數(shù)據(jù)信息的泄露是具有破壞性的。在2017年國(guó)家電子政務(wù)外網(wǎng)管理中心電子政務(wù)云集成與應(yīng)用國(guó)家工程實(shí)驗(yàn)室聯(lián)合發(fā)布的《政務(wù)云安全要求》(GW0013-2017)中明確指出,安全接入平臺(tái)是政務(wù)用戶通過(guò)互聯(lián)網(wǎng)或移動(dòng)專線網(wǎng)絡(luò)訪問(wèn)政務(wù)云的部門業(yè)務(wù)和公共區(qū)業(yè)務(wù)的唯一接入通道,接入平臺(tái)應(yīng)具備數(shù)字認(rèn)證、授權(quán)管理等功能。本文通過(guò)數(shù)字證書(shū)來(lái)實(shí)現(xiàn)系統(tǒng)的身份認(rèn)證和訪問(wèn)控制,符合政務(wù)云對(duì)安全性方面的要求,可以很好地適用于政務(wù)云系統(tǒng)。

      5.2 安全性分析

      在協(xié)議安全性方面,文獻(xiàn)[10]在openstack原有認(rèn)證協(xié)議的基礎(chǔ)上提出了一種基于安全度量的方法對(duì) openstack認(rèn)證系統(tǒng)進(jìn)行定量化安全評(píng)估,對(duì)keystone組件中存在的漏洞進(jìn)行分析與修補(bǔ)。文獻(xiàn)[16]提出了一種基于改進(jìn)OpenID框架的openstack認(rèn)證協(xié)議。文獻(xiàn)[16]提出了一種基于keystone的安全認(rèn)證協(xié)議,通過(guò)加密技術(shù)來(lái)提高云平臺(tái)身份認(rèn)證的安全性。本文從加密技術(shù)、密鑰管理、協(xié)議效率以及 openstack現(xiàn)階段易遭受的主要網(wǎng)絡(luò)攻擊抗性等角度將本文協(xié)議與openstack原有的基于keystone令牌的認(rèn)證協(xié)議及文獻(xiàn)[10]、文獻(xiàn)[15-16]協(xié)議進(jìn)行比較。對(duì)比分析結(jié)果如表2所示。

      表2 協(xié)議對(duì)比分析結(jié)果

      在加密技術(shù)方面,本文與文獻(xiàn)[16]協(xié)議采用對(duì)稱加密和非對(duì)稱加密相結(jié)合的加密技術(shù),相較于其他認(rèn)證協(xié)議,具有更高的數(shù)據(jù)機(jī)密性?;?PKI token的認(rèn)證方式雖然可以通過(guò)非對(duì)稱加密技術(shù)拓展為 HTTPS加密認(rèn)證環(huán)境,但是在后續(xù)令牌的交互過(guò)程數(shù)據(jù)仍以明文傳輸,不能保證整個(gè)認(rèn)證過(guò)程的數(shù)據(jù)安全。文獻(xiàn)[15]協(xié)議通過(guò)MD5算法對(duì)云用戶在登錄時(shí)填寫的認(rèn)證碼進(jìn)行加密,但是無(wú)法保證數(shù)據(jù)傳輸過(guò)程中的安全。在認(rèn)證因素方面,本文所設(shè)計(jì)的認(rèn)證協(xié)議是雙因素認(rèn)證協(xié)議,相較于其他單因素認(rèn)證協(xié)議,攻擊者必須獲得全部認(rèn)證因素才能冒充合法用戶。在密鑰管理方面,本文方案相較于其他對(duì)比方案采用了Barbican組件提供的密鑰管理和存儲(chǔ)服務(wù),通過(guò)密碼認(rèn)證服務(wù)器的內(nèi)置密碼卡充當(dāng)硬件安全模塊來(lái)存儲(chǔ)Barbican密鑰,能夠有效防止后端數(shù)據(jù)庫(kù)發(fā)生密鑰泄露。另外,本文方案通過(guò)密碼認(rèn)證服務(wù)器與keystone組件協(xié)同完成認(rèn)證服務(wù),攻擊者難以僅通過(guò)對(duì)keystone組件的漏洞進(jìn)行攻擊來(lái)竊取用戶數(shù)據(jù)。

      本文主要針對(duì) openstack云平臺(tái)現(xiàn)階段易遭受的主要網(wǎng)絡(luò)攻擊進(jìn)行分析。在抵抗重放攻擊方面,本文方案通過(guò)客戶端向服務(wù)端發(fā)送服務(wù)請(qǐng)求時(shí)攜帶的簽名消息中包含一個(gè)時(shí)間戳T0和一個(gè)隨機(jī)數(shù)NR,并通過(guò)Hash算法簽名保證其完整性。當(dāng)攻擊者重放認(rèn)證請(qǐng)求時(shí),認(rèn)證服務(wù)器端通過(guò)驗(yàn)證隨機(jī)數(shù)以及對(duì)比時(shí)間戳判斷并有效抵抗重放攻擊。文獻(xiàn)[16]方案通過(guò)添加時(shí)間戳在一定程度上也能夠抵抗重放攻擊,而其他認(rèn)證協(xié)議中沒(méi)有抵抗重放攻擊的有效手段。在抵抗中間人攻擊方面,本文協(xié)議與文獻(xiàn)[16]在認(rèn)證協(xié)議中采用了雙向認(rèn)證機(jī)制,客戶端需驗(yàn)證服務(wù)端證書(shū)保證其身份的合法性,在一定程度上可以抵御中間人攻擊。本文方案相較于其他對(duì)比方案提供了重復(fù)登錄失敗后限制登錄的方法。若攻擊者取得 UKey,但是 PIN碼錯(cuò)誤次數(shù)超過(guò)規(guī)定限制,UKey將自動(dòng)死鎖。這種機(jī)制可以很好地抵抗UKey丟失攻擊、暴力攻擊、字典攻擊及用戶身份鑒別階段的 DoS攻擊,而cookie的交換和驗(yàn)證機(jī)制能夠抵抗用戶標(biāo)識(shí)階段可能遭受的DoS攻擊。

      對(duì)比結(jié)果顯示,本文所提出的認(rèn)證協(xié)議雖然在工作效率方面有所犧牲,且在一定程度上會(huì)增加認(rèn)證組件的負(fù)載,但具有更高的安全性,更加完善的密鑰管理方式,并且能夠有效抵抗 openstack云平臺(tái)現(xiàn)階段易遭受的網(wǎng)絡(luò)攻擊。在政務(wù)、軍事等應(yīng)用場(chǎng)景中,高安全性往往是第一考慮要素,所以本文方案對(duì)于安全等級(jí)需求較高的應(yīng)用場(chǎng)景具有重要意義。

      6 結(jié)束語(yǔ)

      本文重點(diǎn)對(duì) openstack云平臺(tái)中基于 keystone的身份認(rèn)證機(jī)制進(jìn)行了研究,分析了基于keystone組件的認(rèn)證方式在安全性上的不足,提出了一種基于數(shù)字證書(shū)的身份認(rèn)證協(xié)議并實(shí)現(xiàn)了相應(yīng)的身份認(rèn)證系統(tǒng)。根據(jù)云用戶對(duì)安全等級(jí)的不同需求,提供一種具有更高安全性的身份認(rèn)證方式。分析表明,基于數(shù)字證書(shū)認(rèn)證方式能夠更有效地防范多種可能遭受的攻擊行為,從而更好地保證云平臺(tái)用戶隱私數(shù)據(jù)的安全。下一步工作是對(duì)系統(tǒng)性能進(jìn)行評(píng)估并通過(guò)適當(dāng)?shù)呢?fù)載均衡策略使認(rèn)證服務(wù)器集群負(fù)載分布更加均衡,從而降低認(rèn)證服務(wù)器負(fù)載量,提高整個(gè)系統(tǒng)的工作效率。

      猜你喜歡
      數(shù)字證書(shū)密鑰密碼
      探索企業(yè)創(chuàng)新密鑰
      密碼里的愛(ài)
      密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
      密碼疲勞
      一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
      基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
      當(dāng)心黑客利用數(shù)字證書(shū)的漏洞
      密碼藏在何處
      基于數(shù)字證書(shū)的軍事信息系統(tǒng)安全防護(hù)方案
      奪命密碼
      兴隆县| 玉树县| 哈巴河县| 梨树县| 方山县| 嵊泗县| 通辽市| 清新县| 中宁县| 吉安市| 阳泉市| 沅陵县| 正宁县| 亳州市| 衡水市| 宁晋县| 武邑县| 博白县| 宁强县| 临桂县| 民县| 荥经县| 奉节县| 平南县| 昌乐县| 崇义县| 集贤县| 霍林郭勒市| 平果县| 馆陶县| 建水县| 宁陵县| 滕州市| 隆林| 石首市| 辽阳市| 察哈| 抚州市| 突泉县| 西乌珠穆沁旗| 社会|