大數據安全是一門綜合性學科,它涉及密碼學、數據挖掘等諸多學科。本視圖庫主要部署在公共安全專網與視頻專網當中,在物理上做到了與互聯網的隔離,但安全問題仍不容忽視。
組件登錄認證
用戶的認證與*管理旨在*合法用戶進入系統和訪問數據庫,同時保護這些數據免受非法訪問。視圖庫采用華為的大數據平臺FusionInsightC70整合了一套完整的安全認證框架,幫助用戶統一認證,并且記錄認證用戶所有提交任務的操作,這樣既可以防止非法用戶登錄,又可以有效監控用戶的操作行為,提高了系統的安全性。針對大數據組件的訪問操作控制,是關乎到數據安全的重要環節,針對這一問題,華為的FusionInsight平臺采用了Kerberos認證技術,Kerberos是一個用于安全認證的第三方協議,它采用了傳統的共享密鑰方式,實現了在網絡環境不一定保證安全的環境下Client和Server之間的通信,適用于Client/Server類模型。FusionInsight平臺還可根據不同用戶賦予不同組件的操作權限,一定程度上限制了每個用戶所能操作的組件,尤其是存儲數據組件的相關*,直接影響著數據的安全性和可維護性。
圖1 Kerberos認證流程
如圖1所示,Kerberos的認證流程分為以下三步:
(1)客戶端(Client)與認證服務(Authentication Service:AS)交互。
(2)Client與票據生成中心(Ticket Granting Service:TGS)交互。
(3)Client與服務端(Server)交互。
相比Kerberos,HTTPS可能更為熟悉,是通過證書和非對稱加密的方式,讓客戶端可以安全地訪問服務端,但這僅僅是客戶端安全,通過校驗,客戶端可以保證服務端是安全可靠的,而服務端卻無法得知客戶端是不是安全可靠的,這也是互聯網的一種特性。而Kerberos支持雙向認證,可以保證客戶端訪問的服務端是安全可靠的,服務端回復的客戶端也是安全可靠的。但想要證明Client和Server都是可靠的,必然要引入第三方公證平臺,也就是AS和TGS兩個服務。
Client向Kerberos服務請求,用以獲取訪問Server的權限,Kerberos得到請求時,首先判斷Client是否是可信賴的,再通過在客戶端白名單(Account Database:AD)中存儲黑名單和白名單來區分Client,成功后AS返回TGT給Client。
當客戶端獲得認證票(票證授予票:TGT)時,繼續請求Kerberos獲得訪問服務器的權限。Kerberos得到請求時,通過客戶機消息中的TGT,判斷客戶端具有此特權并給予客戶端 ACCES。客戶端獲得票證后服務器終可以成功訪問。此票僅用于此服務器,其他服務器需要TGS應用程序。在整個認證過程中要解釋的幾個要點是:
(1)整個過程TGT的獲取只需要一次,其中有超時的概念,時間范圍內TGT都是有效的,也就是說一般情況訪問Server只需要直接拿到Ticket即可。
(2)整個過程采用的是對稱加密,相對于非對稱加密會有性能上的優勢。
(3)Kerberos的用戶管理很方便,只需要更新AD中的名單即可。
整個過程的通信都是加密的,這里設計到兩層加密,因為所有的認證都是通過Client,也就是說Kerberos沒有和Server直接交互,這樣的原因是Kerberos并不知道Server的狀態,也無法保證同時和Server、Client之間通信的順序,由Client轉發可以讓Client保證流程順序。
層加密,Kerberos對發給Server數據的加密,防止Client得到這些信息篡改。第二層加密,Kerberos對發給Client數據的加密,防止其他網絡監ting者得到這些信息。Client和Server的通信也是如此。
數據溯源技術
隨著物聯網、大數據、云計算等信息技術的不斷發展,數據來源和數據傳播方式更加廣泛,只有對數據的來源以及傳播進行完整的記錄,才能利于后期的數據挖據與數據鑒別。早在大數據概念出現之前,數據溯源(Data Provenance)技術就在數據庫領域得到廣泛研究。數據溯源的基本方法是標記法,在視頻圖像數據庫中,每一條視頻圖像數據都標志著數據的來源系統,當檢測到系統數據異常的時候,可以通過數據溯源定位數據的起源。而在視圖庫系統對接標準中,可以根據接口接收數據頭域中關于對接系統的信息,將數據打上標簽,存儲在數據庫當中,這種方法可以行之有效地標記每一條來源數據,方便之后的數據溯源處理,并且做到相關來源的數據的關聯應用及其他有用信息的挖掘。
軟件加密技術
軟件加密鎖是基于AES算法的加密運算,可以在視圖庫軟件啟動之前進行數字認證,通過軟件加密鎖進行身份登錄認證,從而防止不法分子非法登錄。AES算法基于排列運算和置換運算。排列運算是對數據進行重新安排,置換運算則是將一個數據單元替換為另一個。AES 使用幾種不同的方法來執行置換運算與置換運算操作。AES算法是一個迭代的并且對稱密鑰分組的密碼,它可以使用128、192和256位的密鑰,并且用128位(16字節)進行分組加密和解密數據。與公共密鑰密碼使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數據。通過分組密碼返回的加密數據的位數與輸入數據相同,迭代加密是用循環結構在該循環中重復置換和替換輸入數據。