孫方圓 龐光垚
摘? 要:隨著科學技術(shù)和社會經(jīng)濟的發(fā)展,互聯(lián)網(wǎng)應用的規(guī)模也呈爆炸式增長,由此引發(fā)了數(shù)據(jù)規(guī)模過大和數(shù)據(jù)安全難以保障的問題。針對這些問題,文章構(gòu)建了一套基于Token認證技術(shù)的云存儲架構(gòu)。該架構(gòu)主要采用Token與Header技術(shù)相結(jié)合的方式,并對Hadoop的底層進行加密改造,保障了加密令牌的安全性。該架構(gòu)在創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺中進行了驗證和應用,可在降低數(shù)據(jù)傳輸錯誤率的同時,保障數(shù)據(jù)的機密性。
關(guān)鍵詞:云存儲;架構(gòu)設計;Token技術(shù);大數(shù)據(jù);創(chuàng)新創(chuàng)業(yè)
中圖分類號:TP311? ? ? ? ? ? ? ? ?文獻標識碼:A文章編號:2096-4706(2021)16-0005-05
Research on Application of Cloud Storage Architecture in Big Data Intelligent Service Platform for Innovation and Entrepreneurship
SUN Fangyuan, PANG Guangyao
(School of Data Science and Software Engineering, Wuzhou University, Wuzhou? 543002, China)
Abstract: With the development of science and technology and social economy, The application scale of internet is also growing explosively. As a result, they have caused the problem of excessive data scale and difficulty in ensuring data security. In order to solve these problems, the paper builds a set of cloud storage architecture based on Token authentication technology. The architecture mainly uses the combination of Token and Header technology, and encrypts the bottom layer of Hadoop to ensure the security of encrypted tokens. The architecture has been verified and applied in the big data intelligent service platform for innovation and entrepreneurship. It can reduce the error rate of data transmission while ensuring the confidentiality of data.
Keywords: cloud storage; architecture design; Token technology; big data; innovation and entrepreneurship
0? 引? 言
當前高速發(fā)展的互聯(lián)網(wǎng)中,經(jīng)濟和生活均對各類信息數(shù)據(jù)產(chǎn)生巨大依賴。在此環(huán)境下,為了響應國家“大眾創(chuàng)業(yè)、萬眾創(chuàng)新”的號召,項目組成員參與了創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺的研發(fā)。該平臺以“公益+商業(yè)”的并行互惠運營服務模式,采用“互聯(lián)網(wǎng)+智能推薦服務”雙輪驅(qū)動,實現(xiàn)創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺的建設及技術(shù)研發(fā),推動科技服務模式轉(zhuǎn)型。其中,商業(yè)的自動化、智能化可以為未來生產(chǎn)、供應和消費實現(xiàn)全網(wǎng)絡智能化直銷提供重要的技術(shù)基礎[1]。
隨著技術(shù)以及需求的日益復雜化,平臺研發(fā)的性能以及安全更為復雜。為了使存儲和傳輸技術(shù)發(fā)展更好,需要設計一種更為高效安全的網(wǎng)絡傳輸方式。憑借高效的運算性能,當前大數(shù)據(jù)環(huán)境下Hadoop框架技術(shù)發(fā)展最為迅猛。但是,該框架在用戶及服務器之間的認證方式采用傳統(tǒng)Kerberos技術(shù),缺乏合適的授權(quán)機制和訪問控制機制,在效率和安全性方面仍然存在改進空間[2]。
在創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺中,創(chuàng)新創(chuàng)業(yè)資源庫的規(guī)模較大,且包括大量資源自動分類、檢索以及智能推薦等服務,涉及了大規(guī)模數(shù)據(jù)的網(wǎng)絡傳輸和安全保障。其中,網(wǎng)絡服務主要遵循HTTP協(xié)議(Hyper Text Transfer Protocol,超文本傳輸協(xié)議),該協(xié)議在萬維網(wǎng)(World Wide Web)中用于服務器到本地瀏覽器的超文本傳送?,F(xiàn)有主流數(shù)據(jù)傳輸方式基本遵循HTTP協(xié)議,而當中的Header技術(shù)又使得協(xié)議在各種服務端可以有條不紊地進行,也能保證云架構(gòu)具備應對海量信息的負載能力。此外,Token技術(shù)是網(wǎng)絡傳輸中比Cookie具備更優(yōu)跨域訪問能力的技術(shù),且具有去耦與無狀態(tài)優(yōu)勢,更適合網(wǎng)絡傳輸。因此,我們將Token與Header進行融合,試圖在Hadoop的底層架構(gòu)中,加強令牌加密能力和降低數(shù)據(jù)傳輸錯誤率,構(gòu)建出一種云存儲架構(gòu)保障創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺的數(shù)據(jù)有效和安全傳輸。
1? 基于Token認證技術(shù)的云存儲架構(gòu)設計
1.1? 功能需求概述
本文以筆者近期參與的“創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺”為例說明云存儲架構(gòu)的應用。該課題聯(lián)合欠發(fā)達地區(qū)的政府部門、幫扶機構(gòu)和營利性企業(yè),以大數(shù)據(jù)分析與機器學習技術(shù)為基礎,同時結(jié)合、自然語言處理、知識圖譜、智能推薦等智能技術(shù),旨在開發(fā)一個綜合型創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺,其系統(tǒng)體系結(jié)構(gòu)如圖1所示。
項目以服務梧州為起點,東融廣州、深圳、珠海等城市,為城市企業(yè)、創(chuàng)新創(chuàng)業(yè)者提供創(chuàng)新創(chuàng)業(yè)全鏈條的資源信息,同時致力提供線上線下一體化服務。創(chuàng)新創(chuàng)業(yè)資源庫的信息量龐大,特別是其中的政策類與服務類相關(guān)信息,因此在項目開發(fā)中引入多源異構(gòu)大數(shù)據(jù)存取技術(shù),及時處理噴涌式數(shù)據(jù),對項目底層功能的有效實現(xiàn)提供基礎。項目還基于深度神經(jīng)網(wǎng)絡的摘要生成、標簽提取和文本生成等技術(shù),實現(xiàn)對創(chuàng)新創(chuàng)業(yè)資源價值的挖掘。此外,還引入知識圖譜技術(shù),支撐類腦服務的知識庫等模塊,例如為創(chuàng)業(yè)者提供自動編寫文件等服務。上述功能的有效實現(xiàn)依賴于一定規(guī)模的數(shù)據(jù)樣本,并且為了提高服務質(zhì)量,還需降低信息處理的容錯率,這就需要對信息的精準加密傳送更高質(zhì)量的實現(xiàn)。
1.2? 云存儲架構(gòu)設計
對比集中式處理系統(tǒng),分布式系統(tǒng)更能適應計算機網(wǎng)絡的發(fā)展。對于每個機器節(jié)點而言,分布式系統(tǒng)本身就具備高度的自治性,同時也屬于系統(tǒng)軟件,因此它的高內(nèi)聚性和透明度優(yōu)勢就尤為顯眼。
傳統(tǒng)分布式系統(tǒng)所使用的Hadoop2.0架構(gòu)的安全機制依舊有一定的提升空間,本文主要采用基于自主控制方式對其進行改進,該方式主要在安全加密過程中參考了PKI機制中的數(shù)字證書與認證令牌,可以有效提升數(shù)據(jù)的安全性。
HDFS資源管理器管理的對象為對應的HDFS集群,通常架設在Linux系統(tǒng)上。其中,HDFS集群整體包含單個NameNode節(jié)點和多個DataNode節(jié)點,一般通過機架Rack與中心控制方式對它們進行分組管理。
集群中的NameNode是唯一的,它作為集群中心服務器可將超大文件劃分為多個Block塊,這些Block塊會被存儲在不同的DataNode中。但每個Block與對應的DataNode的映射關(guān)系是存放在NameNode的元數(shù)據(jù)中的,除此之外,元數(shù)據(jù)還接收客戶端對文件系統(tǒng)的訪問請求。在每次啟動系統(tǒng)時,NameNode都會重建文件系統(tǒng)的元數(shù)據(jù)信息,客戶端對文件發(fā)出請求時,JVM開始對NameNode進行任務的執(zhí)行,此時NameNode會以Heartbeat輪詢集群中的DataNode節(jié)點,而Data會以心跳響應NameNode并且定時向NameNode發(fā)送自身存儲的文件塊信息。
集群中的DataNode是基本單元,保存Block的元數(shù)據(jù)信息。DataNodeNameNode可對DataNode進行統(tǒng)一的調(diào)度,以此實現(xiàn)對文件Block塊進行delete等操作。
以下為云存儲架構(gòu)的整體設計。
1.2.1? 初始化HDFS認證
如圖2所示,整體集群首先進行安全的初始化操作,就讓HDFS中的NameNode節(jié)點和DataNodes節(jié)點向CA申請合法身份證書,即在驗證它們的用戶身份后,會為其創(chuàng)造相應的公私密鑰對并進行數(shù)字證書的頒發(fā)。
1.2.2? Kerberos進行文件的認證與加密
本文使用Kerberos[2]協(xié)議規(guī)范實現(xiàn)安全認證。Kerberos的實現(xiàn)需要可信賴的第三方:KDC,它包含兩個獨立的邏輯部分:認證服務器(AS)和票據(jù)授權(quán)服務器(Ticket Granting Service)。其中KDC持有每個用戶的密鑰庫。
在服務過程中,客戶首先向KDC發(fā)送個人信息,KDC中的Ticket Granting Service產(chǎn)生 TGT(ticket-granting ticket),KDC將帶有會話密鑰k1的TGT再次回復。接著客戶為了向KDC請求NameNode的服務的“門票”,就將在之前獲得的TGT發(fā)送給KDC,同時Ticket Granting Service將為客戶和NameNode生成一個會話密鑰K3,由于TGT產(chǎn)生時伴有K1密鑰,因此已經(jīng)被K1加密過的k3會將打包好的”門票”發(fā)送回去。由于客戶不知道NameNode的會話密鑰 K2,所以當客戶用自己的K1去解密K3時,就無法解析篡改“門票”。接著NameNode接收到客戶端發(fā)來的信息后,用自己的K2對信息進行解密以此得到用戶名和IP,將其與客戶“申請認證”中的用戶名和IP進行比較,如果兩次比較結(jié)果一致則表明信息是安全可靠的。最后客戶獲得安全認證后,NameNode會為其分發(fā)令牌Delegation Token,令牌可用于客戶與NameNode的再次認證,但認證是有時間期限的,因為令牌在超過“保質(zhì)期”后就需要重新申請獲得。
2? 云存儲架構(gòu)的設計與實現(xiàn)
架構(gòu)設計中保證數(shù)據(jù)的安全性是進行云存儲的重要實現(xiàn)指標之一。從數(shù)據(jù)安全性考慮,云存儲系統(tǒng)中的數(shù)據(jù)可分為存儲安全和傳輸安全兩部分[3],每部分又包含機密性、完整性和可用性3個方面[4]。當前數(shù)據(jù)的安全傳輸大多數(shù)依賴彼此的令牌(Token)認證,但作為被服務的用戶,數(shù)據(jù)在云端進行傳輸后,可能本地并未及時逐個去核對信息,所以云存儲架構(gòu)的搭建實現(xiàn)就要保證數(shù)據(jù)的安全可靠。在云存儲環(huán)境下,數(shù)據(jù)完整性驗證機制具有以下幾個顯著優(yōu)勢:支持動態(tài)操作、公開認證、無狀態(tài)認證、確定用戶隱私,這些特點在P2P網(wǎng)絡、網(wǎng)格計算等分布式網(wǎng)絡中并不是那么明顯[5]。
2.1? 上傳策略的配置
在架構(gòu)中進行文件上傳時都要遵守上傳策略,這是上傳時附帶的一組基礎配置設定,它可以使得服務器存儲了解用戶上傳的需求,以便后續(xù)的安全存儲。
上傳需求包括:(1)不同字節(jié)占位大小的上傳資源;(2)上傳的地區(qū)空間;(3)上傳后的反饋信息;(4)授權(quán)上傳的截止時間。其中,截止時間deadline為云端存儲服務器生成文件的校驗時間,策略代碼scope旨在確定上傳的目標資源空間,scope中的KEY用于預防惡意文件上傳。需要注意的是deadline和scope為必填項。
2.2? 基于Token技術(shù)的安全認證機制構(gòu)建
在Hadoop集成框架中,每個類別的Token都有唯一的TokenIdentifier標識[6]。在安全機制構(gòu)建初期,用戶會從NameNode得到一個令牌delegation Token,當用戶再與NameNode進行通信時就可以使用該令牌進行驗證,而無須再重新使用復制的Kerberos 協(xié)議。同時NameNode在接收到TokenID發(fā)來的信息后將隨機生成的MasterKey,MasterKey與TokenID重新結(jié)合計算生成TokenAuthenticator和Token,同時Name Node會檢查Token的有效性,接著Namenode與Client將各自TokenAuthenticator作為一個密鑰,通過DIGEST-MD5來驗證彼此的合法性。
如圖3所示,當客戶訪問Block時,block id連同相應的Block Access Token都發(fā)送給相應的Data Node,Data Node將會用存儲的密鑰計算出Token Authenticator,與Data Node自生成的Token Authenticator進行比較,如果兩者一樣,則會通過驗證。
如圖4所示,Block Access Token是基于對稱加密體制生成的,所以內(nèi)含的NameNode和所關(guān)聯(lián)的DataNodes都使用同一個密鑰,顯然,這種使用對稱加密和同一個密鑰的方式存在諸多不安全因素,一旦某個敵對方通過某種不正規(guī)暴力手段得到了這個masterkey,與集群中的DataNodes進行數(shù)據(jù)交互,或偽裝成DataNode節(jié)點與Namenode進行心跳報告,就會擾亂整個集群的運作。為提高安全性,使用Block 所在DataNode的公鑰,對TokenInfo與數(shù)字簽名進行加密,進一步形成BlockAccessToken,公私鑰體制增強了令牌和集群的安全性,就大幅地避免了上述問題。
2.3? 云存儲架構(gòu)在創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺中的應用
上述設計在項目中進行實際應用時,客戶所使用的信息借助Token改造后的令牌反復驗證,技術(shù)的實現(xiàn)遵從多方協(xié)議,多方協(xié)議的共同努力使得出錯率大大降低。云存儲建設源于兩大需求:存儲和傳送,此技術(shù)點的應用恰恰滿足了項目需求。
2.3.1? 主要代碼分析
客戶在前端瀏覽器發(fā)送請求時,利用基于promise的HTTP庫的Axios。在前端上傳的JS中,將header里的內(nèi)容進行自定義包裝,核心源碼為:
import axios from ‘a(chǎn)xios’
import { getToken } from ‘@/utils/auth’
export function upload(api,file) {
var data = new FormData()
data.append(‘file’,file)
const config={
headers:{ ‘Authorization’:getToken()
}
return axios.post(api,data,config)
}
在上傳頁,直接用Headers進行定義請求,核心源碼為:
ref=”upload”
:limit=”1”
:before-upload=”beforeUpload” :auto-upload=”false”
:headers=”headers’
:on-success=”handleSuccess” :on-error=”handleError
:action=”fileUploadApi + ‘?name=’ + form.name”
SpringBoot支持上傳文件功能,默認的單個文件大小限制為1 MB。在此測試文件上傳的技術(shù)中,設置上傳文件大小為100 MB。最后,利用MultipartFile組件的transferTo方法轉(zhuǎn)成file對象;在獲取文件名字以及后綴之后,新建立字段作為文件名,防止生成的臨時文件發(fā)生重復。其中,file對象轉(zhuǎn)換的核心源碼為:
file = File.createTempFile(ldUtil.simpleUUID(),prefix);;
//MultipartFile to File
multipartFile.transferTo(file);
2.3.2? 云存儲功能實現(xiàn)
我們在創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺中對所設計的云存儲架構(gòu)技術(shù)進行了應用,首先,如圖5所示,為文件上傳功能界面,負責對創(chuàng)新創(chuàng)業(yè)等資源的上傳。
其次,上傳成功后,得到如圖6所示的云資源列表管理界面,可以對所上傳的創(chuàng)新創(chuàng)業(yè)等資源進行有效管理。
3? 結(jié)? 論
為解決創(chuàng)新創(chuàng)業(yè)大數(shù)據(jù)智慧服務平臺的安全傳輸問題,本文融合Token與Header技術(shù),并結(jié)合當前熱門的Hadoop框架,設計了一種云存儲架構(gòu)。該架構(gòu)在項目中可通過API形式進行轉(zhuǎn)接,使得架構(gòu)具備高復用性以及移植性。在數(shù)據(jù)安全傳送過程中,本文所設計的云端存儲架構(gòu)在解決云端煩瑣數(shù)據(jù)時擁有低成本、可拓展性強的優(yōu)勢,在一定程度上也緩解了跨數(shù)據(jù)使用的問題,較大提高了云服務的效率。但是數(shù)據(jù)可能因跨域問題需要更多種類的運行載體,因此,我們下一步將研究對不同載體的數(shù)據(jù)安全處理進行研究。
參考文獻:
[1] 王斌.商業(yè)的本質(zhì)及其基于信息化趨勢下的轉(zhuǎn)型 [J].武漢商學院學報,2017,31(5):36-40.
[2] NEUMAN C,KOHL J,YU T,et al. The kerberos network authentication service (V5) [EB/OL].[2021-04-20].http://clifford.neuman.name/krb-revisions/draft-kerberos-24nov.html
[3] 王鵬.云計算的關(guān)鍵技術(shù)與應用實例 [M].北京:人民郵電出版社,2010.
[4] 傅穎勛,羅圣美,舒繼武.安全云存儲系統(tǒng)與關(guān)鍵技術(shù)綜述 [J].計算機研究與發(fā)展,2013,50(1):136-145.
[5] 譚霜,賈焰,韓偉紅.云存儲中的數(shù)據(jù)完整性證明研究及進展 [J].計算機學報,2015,38(1):164-177.
[6] 李延改.面向Hadoop的安全機制設計 [D].濟南:山東財經(jīng)大學,2015.
作者簡介:孫方圓(1999.02—),女,漢族,河南新鄉(xiāng)人,本科在讀,研究方向:軟件工程;通訊作者:龐光垚(1986.03—),男,漢族,廣西浦北人,工程師,講師,博士,研究方向:機器學習、自然語言處理和推薦系統(tǒng)。