劉 芳,曹進(jìn)克
(1. 鄭州工業(yè)應(yīng)用技術(shù)學(xué)院信息工程學(xué)院,河南 新鄭 451100;2. 解放軍信息工程大學(xué),河南 鄭州 450011)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,數(shù)據(jù)通信具有越來越重要的作用,數(shù)據(jù)的共享與交換一直占據(jù)重要位置,如何對(duì)系統(tǒng)間的數(shù)據(jù)進(jìn)行快速、安全的交換,一直都是科研工作者研究的重要課題之一[1,2]。作為云平臺(tái)重要支撐的虛擬化技術(shù)可以大大提高數(shù)據(jù)通信過程中的利用率和容錯(cuò)率。當(dāng)建立好虛擬機(jī)的共享數(shù)據(jù)通道后,通信兩端通過共享內(nèi)存通道進(jìn)行數(shù)據(jù)交換[3],除此之外,虛擬機(jī)間還可以靈活的進(jìn)行內(nèi)網(wǎng)數(shù)據(jù)通信,這種通信方式可以極大程度上提高數(shù)據(jù)的吞吐率。由于每個(gè)虛擬機(jī)都具有獨(dú)立的操作系統(tǒng)和存儲(chǔ)空間,因此就安全性而言,虛擬機(jī)具有相當(dāng)出色的隔離優(yōu)勢(shì)[4]。
現(xiàn)如今有大量學(xué)者參與到虛擬機(jī)通信數(shù)據(jù)的研究中。文獻(xiàn)[5]基于虛擬化技術(shù)對(duì)云平臺(tái)的虛擬機(jī)進(jìn)行串口和網(wǎng)絡(luò)配置,結(jié)合虛擬機(jī)鏡像配置虛擬網(wǎng)絡(luò),通過串口自動(dòng)觸發(fā)虛擬機(jī)內(nèi)部的路由,并自動(dòng)實(shí)現(xiàn)外網(wǎng)的通信配置,該方法在數(shù)據(jù)通信過程中具有較高的效率。文獻(xiàn)[6]基于XenVMC的高效率、在線遷移等特點(diǎn),設(shè)計(jì)了多核環(huán)形共享數(shù)據(jù)緩存空間,為了使通信接收方能夠進(jìn)行數(shù)據(jù)并發(fā)的接收,調(diào)度多個(gè)運(yùn)行的CPU,該方法在數(shù)據(jù)的吞吐率上有明顯的提高。文獻(xiàn)[7]設(shè)計(jì)了一種支持虛擬機(jī)代理的加速虛擬化框架,為用戶提供高效、透明API虛擬化的同時(shí),增強(qiáng)用戶通信間的數(shù)據(jù)隔離性,并利用硬件虛擬化技術(shù),通過CPU控制虛擬機(jī)間的虛擬化性能開銷,實(shí)驗(yàn)結(jié)果表明,該模型與經(jīng)典模型相比通信性能可以提高5倍左右。
基于以上研究,從安全方面考慮,本文圍繞虛擬機(jī)通信數(shù)據(jù)機(jī)制,提出云服務(wù)器虛擬機(jī)通信串口數(shù)據(jù)安全性監(jiān)控仿真方法。采用模糊身份機(jī)制在通信數(shù)據(jù)中引入隨機(jī)掩碼,確保數(shù)據(jù)用戶身份信息的隱私性。并將云計(jì)算的信任問題轉(zhuǎn)換成虛擬機(jī)的遷移問題。
為了對(duì)串口通信提供安全保障,需要對(duì)串口通信系統(tǒng)進(jìn)行全方面的設(shè)計(jì)。首先需要選擇合適的點(diǎn)對(duì)數(shù)據(jù)進(jìn)行獲取;然后對(duì)截?cái)帱c(diǎn)實(shí)施攔截;最后對(duì)用戶數(shù)據(jù)進(jìn)行加密與解密處理。串口通信系統(tǒng)由I/O管理器和設(shè)備驅(qū)動(dòng)程序組成。I/O管理器將系統(tǒng)組件和應(yīng)用程序連接到虛擬機(jī)上,并對(duì)設(shè)備的基礎(chǔ)體系結(jié)構(gòu)進(jìn)行定義。設(shè)備驅(qū)動(dòng)程序?yàn)樘摂M機(jī)提供I/O接口,接收并發(fā)送驅(qū)動(dòng)指令給I/O管理器。
數(shù)據(jù)安全基于串口通信安全技術(shù),本文設(shè)計(jì)的安全技術(shù)模塊主要包含:初始化模塊、用戶管理模塊、驅(qū)動(dòng)程序模塊和數(shù)據(jù)處理模塊四部分。
初始化模塊是整個(gè)串口通信安全技術(shù)運(yùn)行的基礎(chǔ),主要負(fù)責(zé)檢測(cè)驅(qū)動(dòng)程序是否安裝、系統(tǒng)是否正常工作。驅(qū)動(dòng)程序文件在系統(tǒng)啟動(dòng)時(shí)動(dòng)態(tài)附加到相應(yīng)的串口上,并調(diào)用其它模塊正常運(yùn)行。該模塊的流程圖如圖1所示。
初始化時(shí)需要將計(jì)算機(jī)對(duì)應(yīng)的串口代號(hào)傳遞給驅(qū)動(dòng)程序模塊,在判斷串口代號(hào)時(shí)先檢測(cè)串口是否能夠正常工作。
用戶管理模塊是為了應(yīng)用安全技術(shù)之后,能夠根據(jù)用戶需求對(duì)整個(gè)串口通信系統(tǒng)進(jìn)行監(jiān)控,主要負(fù)責(zé)調(diào)用數(shù)據(jù)處理模塊中秘鑰的添加與修改等,通過設(shè)置通信對(duì)象,方便對(duì)數(shù)據(jù)進(jìn)行處理。
驅(qū)動(dòng)程序模塊是串口通信安全技術(shù)的核心部分,主要負(fù)責(zé)截取串口數(shù)據(jù),并調(diào)用數(shù)據(jù)處理模塊對(duì)數(shù)據(jù)進(jìn)行加密和簽名等處理,刪除掉不需要的數(shù)據(jù)。驅(qū)動(dòng)程序模塊有旁路和激活兩種狀態(tài),用戶通過操作界面的指定,進(jìn)行兩種狀態(tài)的相互切換。
發(fā)送數(shù)據(jù)時(shí),驅(qū)動(dòng)程序模塊通過調(diào)用數(shù)據(jù)處理模塊對(duì)通信數(shù)據(jù)進(jìn)行攔截加密處理,其中的密鑰是用戶由密鑰表查詢并設(shè)置的,然后將加密的數(shù)據(jù)附加上標(biāo)志發(fā)送出去。接收數(shù)據(jù)時(shí),依據(jù)通信數(shù)據(jù)標(biāo)志,驅(qū)動(dòng)程序模調(diào)用數(shù)據(jù)處理模塊對(duì)數(shù)據(jù)進(jìn)行解密處理。
數(shù)據(jù)處理模塊主要負(fù)責(zé)驅(qū)動(dòng)加密卡和修改密鑰。這個(gè)部分采用公鑰算法與對(duì)稱密鑰算法相結(jié)合,完成串口通信數(shù)據(jù)的加密與密鑰的分發(fā)過程。
用戶通過管理界面將通信數(shù)據(jù)和公開的密鑰進(jìn)行對(duì)稱加密,并將其持久化。在密鑰表中結(jié)合通信數(shù)據(jù)找到與之對(duì)應(yīng)的公鑰,并對(duì)密鑰進(jìn)行加密,將隨機(jī)生成的密鑰添加到數(shù)據(jù)后面發(fā)送出去。接收到數(shù)據(jù)后,將通信數(shù)據(jù)與密鑰做分離處理,根據(jù)私鑰解密內(nèi)容。此過程中,加密的數(shù)據(jù)格式如圖2所示。
圖2 加密數(shù)據(jù)格式
“標(biāo)志1”和“標(biāo)志2”的目的是為了能夠?qū)⑼ㄐ艛?shù)據(jù)與密鑰正確的分離出來,方便后續(xù)的解密工作。假設(shè)數(shù)據(jù)和密鑰都是由0和1組成的64bit符號(hào)串,那么有
(1)
其中,a表示數(shù)據(jù);b表示密鑰,且b8,b16,b24,…,b64是奇偶校驗(yàn)位,不起作用,因此密鑰b只有56bit有效。加密過程用公式可表示為
(2)
其中,E表示初始置換;Fi表示第i次的迭代過程。公鑰算法的基礎(chǔ)是歐拉定理,假設(shè)整數(shù)c和a互素,那么歐拉公式可表示為
c?(a)=1(moda)
(3)
其中,?(a)表示與a互素且小于a的正整數(shù)的數(shù)量。對(duì)通信數(shù)據(jù)進(jìn)行加密與解密時(shí),其變換用公式可表示為
(4)
其中,e和f表示隨機(jī)選取的整數(shù)。加密設(shè)計(jì)的原則是替換性良好,使新模塊取代舊模塊時(shí),系統(tǒng)中的其它模塊不做改動(dòng),因此在通信數(shù)據(jù)安全技術(shù)設(shè)計(jì)中,對(duì)數(shù)據(jù)處理模塊進(jìn)行獨(dú)立研究設(shè)計(jì)。
云計(jì)算信息安全問題不僅有云服務(wù)器固有因素造成的,也有對(duì)外執(zhí)行服務(wù)過程中表現(xiàn)的安全性。對(duì)于云平臺(tái)而言,通信數(shù)據(jù)安全是首要問題。為了對(duì)用戶的身份信息進(jìn)行隱私保護(hù),在模糊身份機(jī)制的密文中引入隨機(jī)掩碼,確保數(shù)據(jù)用戶身份信息的隱私性。假設(shè)數(shù)據(jù)用戶身份信息屬性集合為φ,密文交互信息私密集合為φ′,兩者滿足的關(guān)系為
|φ∩φ′|≥ε
(5)
其中,ε表示交集中的屬性個(gè)數(shù),只有滿足式(5)才能進(jìn)行解密。在構(gòu)建密鑰的時(shí)候,私鑰需要通過多項(xiàng)式構(gòu)造出來,用公式可表示為
(6)
其中,h表示雙線性群的生成元;k(i)表示e-1階多項(xiàng)式,li表示任意整數(shù)。在對(duì)數(shù)據(jù)采取加密操作時(shí),通過隨機(jī)方式確定密文形式,用公式表示為
(7)
其中,H′表示消息密文;{Hi}表示公開參數(shù)集合;s表示非負(fù)數(shù)集合中的隨機(jī)整數(shù)。消息接收者接收到數(shù)據(jù)后,解密過程用公式可表示為
(8)
其中,e表示雙線性映射;S表示元組值數(shù)值集合。進(jìn)而需要對(duì)數(shù)據(jù)用戶身份的屬性相關(guān)性進(jìn)行分析,這也是模糊身份機(jī)制的重要之處。屬性相關(guān)性是對(duì)數(shù)據(jù)用戶身份與量化屬性之間的相關(guān)性進(jìn)行描述,根據(jù)各個(gè)屬性的排序和設(shè)定的閾值進(jìn)行弱相關(guān)屬性的刪除,那么用戶身份信息集合所需的期望信息用公式可表示為
(9)
其中,vm表示數(shù)據(jù)用戶身份信息元組的數(shù)目;pi表示任意樣本屬于某一類屬性的概率。按照某一屬性對(duì)數(shù)據(jù)用戶身份信息的集合進(jìn)行劃分得出該屬性的熵,用公式可表示為
(10)
其中,X表示屬性;smi表示第i個(gè)集合所包含第m個(gè)類的元組。那么作用于屬性X的信息增益用公式可表示為
GAI(X)=EXP(s1,s2,…,sm)-ENT(X)
(11)
云服務(wù)的基礎(chǔ)是數(shù)據(jù)存儲(chǔ)載體,因此針對(duì)這一基礎(chǔ)設(shè)施,以虛擬化可信平臺(tái)模塊作為基礎(chǔ),進(jìn)行虛擬機(jī)模塊遷移的安全性研究。
監(jiān)控系統(tǒng)采取暗盒的形式對(duì)虛擬機(jī)進(jìn)行管理,從而保證其中數(shù)據(jù)與用戶的解耦隔離,在這種安全保護(hù)措施下,云服務(wù)的信任問題轉(zhuǎn)向了虛擬機(jī)的創(chuàng)建與遷移上。虛擬機(jī)的安全遷移方法主要包含身份認(rèn)證、相互完整性檢驗(yàn)和數(shù)據(jù)傳輸三部分內(nèi)容,遷移方法如圖3所示。
圖3 虛擬機(jī)遷移方法示意圖
基于用戶身份加密機(jī)制,源服務(wù)器和目的服務(wù)器的公開密鑰可以由自身信息描述獲得,而私有密鑰則是由私鑰生成器生成。一旦目的服務(wù)器的身份信息被獲取,源服務(wù)器就會(huì)通過公開密鑰對(duì)雙方的通信信息進(jìn)行加密。目的服務(wù)器接收到以密文形式發(fā)送的通信數(shù)據(jù)后,利用私鑰生成器獲取自身的私鑰信息,對(duì)接收的密文進(jìn)行解密。
當(dāng)源服務(wù)器和目的服務(wù)器互相認(rèn)證身份成功后,會(huì)進(jìn)入到完整性檢驗(yàn)階段。在檢驗(yàn)階段,虛擬機(jī)既要度量物理平臺(tái)的環(huán)境,還要向檢驗(yàn)工作者提供存儲(chǔ)的度量信息,通過這些度量信息,虛擬機(jī)就可以處理通信過程的安全檢驗(yàn)請(qǐng)求。
身份認(rèn)證和相互完整性檢驗(yàn)過程成功后,就可以進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸前目的服務(wù)器為了表示已經(jīng)做好傳輸準(zhǔn)備,會(huì)向源服務(wù)器發(fā)送一個(gè)新生成的隨機(jī)數(shù),源服務(wù)器接收到隨機(jī)數(shù)后,開始進(jìn)行通信數(shù)據(jù)的遷移。
為了驗(yàn)證本文所設(shè)計(jì)串口數(shù)據(jù)通信安全技術(shù)的可行性,以及實(shí)施安全技術(shù)對(duì)系統(tǒng)帶來的影響,通過實(shí)驗(yàn)比較發(fā)送1kB、10kB、100kB和1000kB數(shù)據(jù)時(shí),在不同波特率9600bps、19200bps和57600bps下速率變化的百分比。實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 不同波特率下速率百分比曲線
從圖中可以看出,隨著發(fā)送數(shù)據(jù)的不斷增加,通信系統(tǒng)速率變化百分比逐漸降低。當(dāng)發(fā)送的數(shù)據(jù)超過100kB時(shí),速率變化曲線相對(duì)較為平緩。并且當(dāng)發(fā)送的數(shù)據(jù)大小相同時(shí),波特率越大,對(duì)串口通信速率的影響就越明顯??傮w而言,采用本文設(shè)計(jì)的安全技術(shù)對(duì)系統(tǒng)的影響在允許的范圍內(nèi),表明本文方法具有可行性。
進(jìn)一步對(duì)數(shù)據(jù)用戶信息的屬性相關(guān)性進(jìn)行分析,數(shù)據(jù)用戶身份的初始數(shù)據(jù)集如表1所示。
表1 初始數(shù)據(jù)集
為了對(duì)數(shù)據(jù)用戶信息進(jìn)行準(zhǔn)確地歸納與描述,將每個(gè)數(shù)據(jù)用戶視為一個(gè)獨(dú)立個(gè)體。姓名屬性是對(duì)數(shù)據(jù)用戶描述貢獻(xiàn)值最大的屬性,因此姓名屬性被保留;而年齡和民族等屬性可能存在多數(shù)相同值,因此將這些貢獻(xiàn)值較低的屬性排除,通過實(shí)驗(yàn)得出屬性的判別閾值為2.5,經(jīng)過屬性相關(guān)性分析,數(shù)據(jù)用戶信息描述的屬性集為{姓名,城市,電話,郵箱},并將其作為模糊身份機(jī)制加密屬性集合。將文獻(xiàn)[8]的密文結(jié)構(gòu)標(biāo)注為H1,將所提密文結(jié)構(gòu)標(biāo)注為H2,它們的比較如下
(12)
圖5 密文結(jié)構(gòu)構(gòu)造開銷
從圖中可以看出,當(dāng)通信數(shù)據(jù)長(zhǎng)度相同時(shí),基于H2的建立時(shí)間較H1延長(zhǎng)了大約30%,同時(shí),對(duì)內(nèi)存的占用提升了大約1.5倍,然而可以看出漲幅較為穩(wěn)定。在整個(gè)檢驗(yàn)過程中,大部分為H2的建立時(shí)間,因此在沒有對(duì)檢驗(yàn)過程產(chǎn)生影響的同時(shí),還可以較好的對(duì)通信數(shù)據(jù)進(jìn)行安全性的保護(hù)。
為了對(duì)通信數(shù)據(jù)的安全性進(jìn)行監(jiān)控,設(shè)計(jì)了基于云服務(wù)器虛擬機(jī)通信串口數(shù)據(jù)安全監(jiān)控方法?;诂F(xiàn)有通信系統(tǒng)架構(gòu),對(duì)通信串口的安全技術(shù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。為了對(duì)數(shù)據(jù)用戶身份屬性信息進(jìn)行描述,采用模糊身份加密機(jī)制,不僅避免了單一屬性對(duì)身份信息描述的不足,還能增強(qiáng)云服務(wù)器通信數(shù)據(jù)的安全性保護(hù)。并將云計(jì)算環(huán)境的信任問題,轉(zhuǎn)換成虛擬機(jī)的遷移問題,采用身份加密機(jī)制及虛擬遷移技術(shù)構(gòu)造安全的遷移機(jī)制。最后通過實(shí)驗(yàn)對(duì)本文方法進(jìn)行分析,證明了本文方法對(duì)通信數(shù)據(jù)的安全性具有較好的保護(hù)程度。