本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種支持硬件虛擬化的系統(tǒng)。
背景技術(shù):
以計(jì)算機(jī)為主的信息系統(tǒng)日益受到安全威脅,這種威脅在計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展過(guò)程中愈演愈烈,傳統(tǒng)的防火墻、入侵檢測(cè)、防病毒等技術(shù)措施是被動(dòng)防護(hù)的技術(shù),在日新月異的信息安全威脅面前局限性日益明顯??尚庞?jì)算試圖通過(guò)加強(qiáng)計(jì)算機(jī)系統(tǒng)架構(gòu)自身的“免疫能力”,主動(dòng)地防御信息安全威脅,即建立可信的信息系統(tǒng)。
在云環(huán)境中,傳統(tǒng)的安全策略不能很好的發(fā)揮作用,數(shù)據(jù)的訪問(wèn)控制和保護(hù)更困難,適合采用可信計(jì)算等主動(dòng)防御技術(shù)的保護(hù)。但云環(huán)境下的可信也面臨諸如國(guó)家對(duì)自主可控的要求、缺少高性能的TPM可信根,無(wú)法提供強(qiáng)保護(hù)機(jī)制等技術(shù)挑戰(zhàn)。亟需一種能夠在云環(huán)境中使用的密碼硬件模塊作為可信基礎(chǔ),構(gòu)建一個(gè)積極防御、主動(dòng)免疫的云可信硬件體系,為云計(jì)算、大數(shù)據(jù)、移動(dòng)化、虛擬化提供可信可控的安全服務(wù)環(huán)境。
此外,隨著大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)已成為個(gè)人、企業(yè)、機(jī)構(gòu)乃至國(guó)家最重要的財(cái)富。數(shù)據(jù)集中已是大勢(shì)所趨,越來(lái)越多的企業(yè)選擇自建云數(shù)據(jù)中心,或?qū)?shù)據(jù)遷移到公有的云存儲(chǔ)中。這樣帶來(lái)方便的同時(shí),也給數(shù)據(jù)帶來(lái)了安全隱患。無(wú)法有效控制數(shù)據(jù)訪問(wèn)權(quán)限,無(wú)法審計(jì)文件訪問(wèn)痕跡,云管理員越權(quán),存儲(chǔ)設(shè)備丟失廢棄造成數(shù)據(jù)泄露等安全問(wèn)題,讓用戶感覺(jué)云端的數(shù)據(jù)無(wú)法掌控。云端數(shù)據(jù)存儲(chǔ)的安全可信也就成為阻礙云存儲(chǔ)模式發(fā)展的最大問(wèn)題。亟需高性能的且能夠在虛擬機(jī)中使用的密碼硬件為基礎(chǔ)將受保護(hù)的數(shù)據(jù)加密后以密文的形式保存在云存儲(chǔ)系統(tǒng)之上。
云應(yīng)用的興起需要底層硬件設(shè)備的技術(shù)支撐,在云環(huán)境中,不同的用戶會(huì)分享同一組硬件資源。云環(huán)境里需要服務(wù)器端的設(shè)備具備兩個(gè)特性來(lái)支撐云環(huán)境使用:高性能以及虛擬化支持。
服務(wù)器端設(shè)備的虛擬化的實(shí)現(xiàn)有三個(gè)部分的實(shí)現(xiàn):CPU虛擬化,內(nèi)存虛擬化和IO虛擬化。CPU虛擬化及內(nèi)存虛擬化已由相應(yīng)的CPU、主板、操作系統(tǒng)做了很好的支撐。
密碼卡作為一種擴(kuò)展的IO設(shè)備,支持虛擬化環(huán)境的調(diào)用也是云時(shí)代的發(fā)展要求。因此需要密碼卡支持相應(yīng)的虛擬化技術(shù)SR-IOV。SR-IOV技術(shù)是一種基于硬件的虛擬化解決方案。SR-IOV標(biāo)準(zhǔn)允許在虛擬機(jī)之間高效共享PCIe設(shè)備,并且它是在硬件中實(shí)現(xiàn)的,可以獲得能夠與本機(jī)性能媲美的I/O性能。
密碼卡支持IO虛擬化技術(shù),其前提是密碼卡已經(jīng)具有了高性能高帶寬的特性,離開了這個(gè)前提,支持多個(gè)用戶共同分享密碼卡的硬件資源將失去分享的意義,而目前的密碼卡顯然無(wú)法完全滿足高性能高帶寬的要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種支持硬件虛擬化的系統(tǒng),目的在于能夠支持虛擬化功能,能夠在虛擬機(jī)操作系統(tǒng)環(huán)境中訪問(wèn)密碼卡的密碼服務(wù),方便客戶將業(yè)務(wù)移植到虛擬機(jī)操作系統(tǒng)。
本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種支持硬件虛擬化的系統(tǒng),所述系統(tǒng)包括:至少一個(gè)虛擬機(jī)、宿主機(jī)、驅(qū)動(dòng)模塊和密碼卡,
所述密碼卡安裝在宿主機(jī)中,所述密碼卡中設(shè)置有DMA讀通道和DMA寫通道,用于分別控制不同虛擬機(jī)的DMA讀和DMA寫;
所述宿主機(jī)用于配置和復(fù)位密碼卡的數(shù)據(jù)信息;
所述驅(qū)動(dòng)模塊用于接收并處理密碼卡與虛擬機(jī)之間交互的數(shù)據(jù)。
本發(fā)明的有益效果是:本發(fā)明通過(guò)相對(duì)獨(dú)立的DMA讀通道和DMA寫通道,分別控制不同虛擬機(jī)的DMA讀和DMA寫,能夠最大化利用傳輸總線的帶寬,達(dá)到了高性能高帶寬的要求,能夠使用且支持8至16個(gè)虛擬機(jī)。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步,所述每一個(gè)虛擬機(jī)中均設(shè)置有相互獨(dú)立的控制寄存器陣列和存儲(chǔ)器,所述控制寄存器陣列包括地址寄存器、數(shù)據(jù)讀長(zhǎng)度寄存器、數(shù)據(jù)寫長(zhǎng)度寄存器、DMA傳輸啟動(dòng)寄存器和DMA傳輸狀態(tài)寄存器;所述地址寄存器、數(shù)據(jù)讀長(zhǎng)度寄存器、數(shù)據(jù)寫長(zhǎng)度寄存器、DMA傳輸啟動(dòng)寄存器和DMA傳輸狀態(tài)寄存器均映射到所對(duì)應(yīng)的虛擬機(jī)的存儲(chǔ)器空間。
采用上述進(jìn)一步方案的有益效果是:在每一個(gè)虛擬機(jī)中設(shè)置與其相對(duì)應(yīng)的控制寄存器陣列,其他虛擬機(jī)無(wú)法對(duì)其進(jìn)行訪問(wèn),各虛擬機(jī)的存儲(chǔ)區(qū)也是相互獨(dú)立,彼此隔絕的,保證了虛擬機(jī)在運(yùn)行過(guò)程中不會(huì)對(duì)彼此造成干擾。
進(jìn)一步,所述密碼卡中設(shè)置有與每一個(gè)虛擬機(jī)相對(duì)應(yīng)且彼此獨(dú)立的數(shù)字存儲(chǔ)區(qū),用于存儲(chǔ)虛擬機(jī)的收發(fā)數(shù)據(jù)。
采用上述進(jìn)一步方案的有益效果是:密碼卡中設(shè)置的數(shù)字存儲(chǔ)區(qū)能夠?qū)μ摂M機(jī)從外部接收的數(shù)據(jù)或準(zhǔn)備往外傳輸?shù)臄?shù)據(jù)進(jìn)行存儲(chǔ),保證數(shù)據(jù)的完整性,不會(huì)造成數(shù)據(jù)的流失。
進(jìn)一步,所述密碼卡中還設(shè)置有調(diào)度模塊,用于當(dāng)多個(gè)虛擬機(jī)的DMA讀和DMA寫并發(fā)時(shí),控制不同虛擬機(jī)的DMA讀和DMA寫執(zhí)行順序。
采用上述進(jìn)一步方案的有益效果是:本發(fā)明涉及了DMA讀通道和DMA寫通道,當(dāng)DMA讀通道和DMA寫通道并行工作時(shí),虛擬機(jī)并發(fā)進(jìn)行工作,通過(guò)調(diào)度模塊對(duì)不同虛擬機(jī)的執(zhí)行進(jìn)行控制以確保所有虛擬機(jī)的正常有秩序的工作。
進(jìn)一步,所述密碼卡還包括:SOC密碼算法芯片、主控芯片和FPGA邏輯芯片,所述SOC密碼算法芯片的密碼信號(hào)輸入輸出端與主控芯片的密碼信號(hào)輸出輸入端連接,主控芯片的邏輯信號(hào)輸入輸出端與FPGA邏輯芯片的邏輯信號(hào)輸出輸入端連接;
所述FPGA邏輯芯片用于嵌入加解密算法,并支持主控芯片的工作狀態(tài);
所述主控芯片用于解析密碼算法、調(diào)度密碼算法和密鑰的讀??;
所述SOC密碼算法芯片用于當(dāng)FPGA邏輯芯片資源不足時(shí),輔助主控芯片的工作狀態(tài)。
采用上述進(jìn)一步方案的有益效果是:FPGA邏輯芯片能夠支持主控芯片進(jìn)行高速的加解密算法,輔助以其他高性能的SOC密碼算法芯片,使得密碼卡的各項(xiàng)密碼算法的性能均達(dá)到高性能。
進(jìn)一步,所述FPGA邏輯芯片包括PCI接口模塊、虛擬模塊和密碼算法模塊,
所述PCI接口模塊用于連接主控芯片與虛擬機(jī)之間的數(shù)據(jù)傳輸;
所述虛擬模塊用于主控芯片訪問(wèn)虛擬機(jī);
所述密碼算法模塊用于嵌入加解密算法,支持主控芯片的加解密過(guò)程。
采用上述進(jìn)一步方案的有益效果是:通過(guò)設(shè)置PCI接口模塊能夠加快主控芯片與虛擬機(jī)之間的數(shù)據(jù)傳輸速度,并通過(guò)高速的加解密算法提高主控芯片對(duì)加解密過(guò)程的效率,虛擬模塊能夠使主控芯片實(shí)現(xiàn)在虛擬狀況下訪問(wèn)虛擬機(jī)。
進(jìn)一步,所述宿主機(jī)包括配置模塊和復(fù)位模塊,
所述配置模塊用于配置密碼卡的各個(gè)模塊的數(shù)據(jù)信息;
所述復(fù)位模塊用于復(fù)位密碼卡的各個(gè)模塊的數(shù)據(jù)信息。
采用上述進(jìn)一步方案的有益效果是:宿主機(jī)能夠?qū)崿F(xiàn)對(duì)密碼卡的各個(gè)模塊的數(shù)據(jù)信息進(jìn)行配置和復(fù)位,實(shí)現(xiàn)對(duì)密碼卡的集中管理。
進(jìn)一步,所述驅(qū)動(dòng)模塊中配置有負(fù)載均衡機(jī)制和內(nèi)存輪詢機(jī)制,用于密碼卡在虛擬機(jī)中最大限度的發(fā)揮物理卡實(shí)際性能。
采用上述進(jìn)一步方案的有益效果是:驅(qū)動(dòng)模塊能夠?qū)崿F(xiàn)收集接口業(yè)務(wù)、打包數(shù)據(jù)、啟動(dòng)DMA數(shù)據(jù)傳輸?shù)裙δ?,利用先進(jìn)的負(fù)載均衡機(jī)制以及先進(jìn)的內(nèi)存輪詢機(jī)制,使虛擬化密碼卡在虛擬機(jī)中最大限度的發(fā)揮密碼卡實(shí)際性能。
附圖說(shuō)明
圖1為本發(fā)明所述的支持硬件虛擬化的系統(tǒng)的原理示意圖;
圖2為本發(fā)明所述的密碼卡的原理示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
本實(shí)施例提出一種支持硬件虛擬化的系統(tǒng),該系統(tǒng)能夠支持虛擬化功能,虛擬化的PCIE密碼卡能夠在虛擬機(jī)操作系統(tǒng)環(huán)境中訪問(wèn)密碼卡的密碼服務(wù),上層訪問(wèn)接口完全兼容國(guó)家標(biāo)準(zhǔn)規(guī)范,方便客戶將業(yè)務(wù)移植到虛擬機(jī)操作系統(tǒng)。具體實(shí)現(xiàn)方式如下:
如圖1和圖2所示,本實(shí)施例提出一種支持硬件虛擬化的系統(tǒng),所述系統(tǒng)包括:至少一個(gè)虛擬機(jī)、宿主機(jī)、驅(qū)動(dòng)模塊和密碼卡,
所述密碼卡安裝在宿主機(jī)中,所述密碼卡中設(shè)置有DMA讀通道和DMA寫通道,用于分別控制不同虛擬機(jī)的DMA讀和DMA寫;
所述宿主機(jī)用于配置和復(fù)位密碼卡的數(shù)據(jù)信息;
所述驅(qū)動(dòng)模塊用于接收并處理密碼卡與虛擬機(jī)之間交互的數(shù)據(jù)。
具體的,宿主機(jī)CPU、主板需要支持硬件虛擬化以及VT-D技術(shù),宿主機(jī)基于KVM或XEN虛擬機(jī)技術(shù),安裝虛擬機(jī),支持虛擬化的密碼卡安裝在宿主機(jī)的操作系統(tǒng)中,支持虛擬化的密碼卡有兩種驅(qū)動(dòng),分別為宿主機(jī)驅(qū)動(dòng)(PF Driver)以及虛擬機(jī)驅(qū)動(dòng)(VF Driver),宿主機(jī)驅(qū)動(dòng)負(fù)責(zé)配置和復(fù)位虛擬化的密碼卡,虛擬機(jī)驅(qū)動(dòng)負(fù)責(zé)接收虛擬機(jī)中接口庫(kù)數(shù)據(jù)的傳輸,即驅(qū)動(dòng)模塊所實(shí)現(xiàn)的功能,數(shù)據(jù)包的傳輸主要通過(guò)虛擬化密碼卡的SR-IOV技術(shù),基于硬件的傳輸數(shù)據(jù)模式能夠完全發(fā)揮物理卡的I/O性能。
驅(qū)動(dòng)模塊中采用了先進(jìn)的負(fù)載均衡機(jī)制和內(nèi)存輪詢機(jī)制,使虛擬化密碼卡在虛擬機(jī)操作系統(tǒng)中最大限度的發(fā)揮物理卡實(shí)際性能。
優(yōu)選的,所述每一個(gè)虛擬機(jī)中均設(shè)置有相互獨(dú)立的控制寄存器陣列和存儲(chǔ)器,所述控制寄存器陣列包括地址寄存器、數(shù)據(jù)讀長(zhǎng)度寄存器、數(shù)據(jù)寫長(zhǎng)度寄存器、DMA傳輸啟動(dòng)寄存器和DMA傳輸狀態(tài)寄存器;所述地址寄存器、數(shù)據(jù)讀長(zhǎng)度寄存器、數(shù)據(jù)寫長(zhǎng)度寄存器、DMA傳輸啟動(dòng)寄存器和DMA傳輸狀態(tài)寄存器均映射到所對(duì)應(yīng)的虛擬機(jī)的存儲(chǔ)器空間。這些寄存器專屬于特定的虛擬機(jī),其他虛擬機(jī)無(wú)法訪問(wèn)。
對(duì)于每一個(gè)虛擬機(jī),虛擬化密碼卡內(nèi)部都有一塊獨(dú)立的數(shù)據(jù)存儲(chǔ)區(qū),專門用于存儲(chǔ)該虛擬機(jī)從外部傳進(jìn)來(lái)的數(shù)據(jù)或者改虛擬機(jī)準(zhǔn)備往外傳出的數(shù)據(jù)。各虛擬機(jī)的存儲(chǔ)區(qū)相互獨(dú)立,彼此隔絕。
另外,本實(shí)施例還設(shè)計(jì)了獨(dú)立的DMA通道以及多虛擬機(jī)DMA傳輸調(diào)度機(jī)制,確保數(shù)據(jù)傳輸效率以及數(shù)據(jù)傳輸?shù)恼_性。對(duì)于每一個(gè)虛擬機(jī),虛擬化密碼卡內(nèi)部都有一對(duì)獨(dú)立的DMA通道,分別是DMA讀通道和DMA寫通道,分別控制對(duì)應(yīng)虛擬機(jī)的DMA讀和DMA寫,這兩個(gè)DMA通道可以并行工作。最大化的利用PCIe總線的帶寬。虛擬機(jī)密碼卡支持多虛擬機(jī)的并發(fā)操作,比如多虛擬機(jī)的DMA讀并發(fā)和DMA寫并發(fā),當(dāng)這些虛擬機(jī)并發(fā)進(jìn)行時(shí),需要一種合理的調(diào)度機(jī)制,來(lái)控制不同虛擬機(jī)的執(zhí)行,虛擬機(jī)密碼卡里設(shè)置有嵌入多虛擬機(jī)的并發(fā)DMA傳輸調(diào)制機(jī)制的調(diào)度模塊,是密碼卡的核心機(jī)制。
為了能夠?qū)崿F(xiàn)虛擬化的高性能,本實(shí)施例還對(duì)密碼卡進(jìn)行了具體說(shuō)明:
如圖2所示,所述密碼卡還包括:SOC密碼算法芯片、主控芯片和FPGA邏輯芯片,所述SOC密碼算法芯片的密碼信號(hào)輸入輸出端與主控芯片的密碼信號(hào)輸出輸入端連接,主控芯片的邏輯信號(hào)輸入輸出端與FPGA邏輯芯片的邏輯信號(hào)輸出輸入端連接;
所述FPGA邏輯芯片用于嵌入加解密算法,并支持主控芯片的工作狀態(tài);
所述主控芯片用于解析密碼算法、調(diào)度密碼算法和密鑰的讀?。?/p>
所述SOC密碼算法芯片用于當(dāng)FPGA邏輯芯片資源不足時(shí),輔助主控芯片的工作狀態(tài)。
其中,所述FPGA邏輯芯片包括PCI接口模塊、虛擬模塊和密碼算法模塊,
所述PCI接口模塊用于連接主控芯片與虛擬機(jī)之間的數(shù)據(jù)傳輸;
所述虛擬模塊用于主控芯片訪問(wèn)虛擬機(jī);
所述密碼算法模塊用于嵌入加解密算法,支持主控芯片的加解密過(guò)程。
以上所述的密碼卡中實(shí)現(xiàn)了高速、高性能支持SR-IOV協(xié)議的高速PCIe3.0核。該FPGA IP核被配置成PCIe x8,支持64Gbps的單向傳輸速率,兼容X1、X4、X8和X16(前提是卡能插進(jìn)去插槽)。支持最大4K字節(jié)的Data Payload傳輸兼容PCIe1.0、PCIe2.0和PCIe3.0規(guī)范根據(jù)應(yīng)用的需求,可以靈活的配置虛擬機(jī)的數(shù)量,比如8個(gè)、16個(gè)、32個(gè)或者64個(gè)支持MSI、MSI-x以及傳統(tǒng)的INTx中斷,支持線徑的AER校驗(yàn)機(jī)制,支持ECRC校驗(yàn)機(jī)制。
本實(shí)施例所述系統(tǒng)的具體工作過(guò)程為:
客戶業(yè)務(wù)在虛擬機(jī)操作系統(tǒng)中調(diào)用驅(qū)動(dòng)模塊,驅(qū)動(dòng)模塊負(fù)責(zé)將數(shù)據(jù)打包然后通過(guò)虛擬機(jī)驅(qū)動(dòng)程序,啟動(dòng)硬件數(shù)據(jù)傳輸功能和SR-IOV功能,借助操作系統(tǒng)及內(nèi)存的IOMMU技術(shù)、主板的VT-D、CPU的虛擬化技術(shù),將數(shù)據(jù)直接傳輸至宿主機(jī)虛擬化的密碼卡上,宿主機(jī)密碼卡的硬件主控芯片接收到數(shù)據(jù)后解析數(shù)據(jù)包,根據(jù)密碼運(yùn)算需求啟動(dòng)相應(yīng)的算法模塊,密碼算法運(yùn)算后將數(shù)據(jù)直接返回宿主機(jī)密碼卡的FPGA芯片,F(xiàn)PGA芯片利用SR-IOV功能將數(shù)據(jù)返回虛擬機(jī)操作系統(tǒng),虛擬機(jī)操作系統(tǒng)驅(qū)動(dòng)程序收到返回的數(shù)據(jù)包后,交給驅(qū)動(dòng)模塊解析并將客戶需求數(shù)據(jù)返回應(yīng)用系統(tǒng)。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。