飛騰cpu上三態(tài)操作系統(tǒng)安全內(nèi)核服務(wù)動(dòng)態(tài)運(yùn)行方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)操作系統(tǒng)的安全內(nèi)核服務(wù)技術(shù),具體涉及一種飛騰CPU上三態(tài)操作系統(tǒng)安全內(nèi)核服務(wù)動(dòng)態(tài)運(yùn)行方法。
【背景技術(shù)】
[0002]1、操作系統(tǒng)以及內(nèi)核設(shè)計(jì)當(dāng)前所遇到的主要問(wèn)題。
[0003]操作系統(tǒng)一般作為硬件之上直接運(yùn)行的基礎(chǔ)軟件,其功能是直接控制和管理系統(tǒng)資源(包括軟件、硬件),充分發(fā)揮硬件資源的性能;它常駐內(nèi)存,并提供給應(yīng)用程序和用戶(hù)兩種接口:操作接口和編程接口。用戶(hù)通過(guò)操作接口,無(wú)需了解許多與硬件和系統(tǒng)軟件的細(xì)節(jié),就可以方便地使用計(jì)算機(jī)。各種程序可以使用編程接口讓操作系統(tǒng)為其服務(wù),并通過(guò)操作系統(tǒng)來(lái)使用硬件和軟件資源。操作系統(tǒng)的種類(lèi)相當(dāng)多,各種設(shè)備安裝的操作系統(tǒng)可從簡(jiǎn)單到復(fù)雜,可分為智能卡操作系統(tǒng)、實(shí)時(shí)操作系統(tǒng)、傳感器節(jié)點(diǎn)操作系統(tǒng)、嵌入式操作系統(tǒng)、個(gè)人計(jì)算機(jī)操作系統(tǒng)、多處理器操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和大型機(jī)操作系統(tǒng)。目前較為常見(jiàn)的操作系統(tǒng)有 UNIX、Linux、Mac OS、Windows、1S、Android 等。
[0004]在軟件工程思想和結(jié)構(gòu)程序設(shè)計(jì)方法的影響下誕生的現(xiàn)代操作系統(tǒng),幾乎都是層次式的結(jié)構(gòu),操作系統(tǒng)的各項(xiàng)功能分別被設(shè)置在不同的層次上。如圖1所示的現(xiàn)有技術(shù)的二態(tài)操作系統(tǒng)中,內(nèi)核態(tài)下的模塊為操作系統(tǒng)的服務(wù)模塊,在內(nèi)核態(tài)下,一些與硬件關(guān)聯(lián)較緊密的服務(wù)模塊,諸如時(shí)鐘管理、中斷處理、設(shè)備驅(qū)動(dòng)等處于內(nèi)核態(tài)的最底層,其次是運(yùn)行頻率較髙的服務(wù)模塊,諸如進(jìn)程管理、存儲(chǔ)器管理和設(shè)備管理等,這兩部分內(nèi)容構(gòu)成了操作系統(tǒng)的內(nèi)核,其指令操作工作在內(nèi)核態(tài),內(nèi)核態(tài)的需要訪(fǎng)問(wèn)硬件層的硬件資源的服務(wù)模塊則通過(guò)設(shè)備接口訪(fǎng)問(wèn)硬件資源,并包含固件和系統(tǒng)加載模塊用于實(shí)現(xiàn)操作系統(tǒng)的啟動(dòng);應(yīng)用程序基于內(nèi)核態(tài)提供的各項(xiàng)服務(wù)運(yùn)行,一般工作在用戶(hù)態(tài),用戶(hù)態(tài)的應(yīng)用程序通過(guò)系統(tǒng)調(diào)用接口來(lái)實(shí)現(xiàn)和內(nèi)核態(tài)的服務(wù)模塊進(jìn)行交互。
[0005]如圖1所示,操作系統(tǒng)一般使用系統(tǒng)調(diào)用接口作為用戶(hù)態(tài)的用戶(hù)程序和內(nèi)核態(tài)的服務(wù)模塊之間的交互接口。操作系統(tǒng)中的各種共享資源都由操作系統(tǒng)統(tǒng)一掌管,因此在用戶(hù)程序中,凡是與資源有關(guān)的操作(如存儲(chǔ)分配、進(jìn)行I/O傳輸以及管理文件等),都必須通過(guò)系統(tǒng)調(diào)用接口方式向操作系統(tǒng)提出服務(wù)請(qǐng)求,并由操作系統(tǒng)代為完成。通過(guò)系統(tǒng)調(diào)用接口的方式來(lái)使用系統(tǒng)功能,可以保證系統(tǒng)的穩(wěn)定性和安全性,防止用戶(hù)隨意更改或訪(fǎng)問(wèn)系統(tǒng)的數(shù)據(jù)或命令。通常,一個(gè)操作系統(tǒng)提供的系統(tǒng)調(diào)用接口命令有幾十乃至上百條之多。這些系統(tǒng)調(diào)用構(gòu)成了內(nèi)核的主要服務(wù)接口,按功能大致可分為如下幾類(lèi):
?設(shè)備管理,完成設(shè)備的請(qǐng)求或釋放,以及設(shè)備啟動(dòng)等功能。
[0006].文件管理,完成文件的讀、寫(xiě)、創(chuàng)建及刪除等功能。
[0007].進(jìn)程控制,完成進(jìn)程的創(chuàng)建、撤銷(xiāo)、阻塞及喚醒等功能。
[0008].進(jìn)程通信,完成進(jìn)程之間的消息傳遞或信號(hào)傳遞等功能。
[0009].內(nèi)存管理,完成內(nèi)存的分配、回收以及獲取作業(yè)占用內(nèi)存區(qū)大小及始址等功會(huì)K。
[0010]操作系統(tǒng)的體系結(jié)構(gòu)是一個(gè)開(kāi)放的問(wèn)題,除了系統(tǒng)劃分成用戶(hù)態(tài)、內(nèi)核態(tài)這種總體層次結(jié)構(gòu)之外,內(nèi)核態(tài)結(jié)構(gòu)還細(xì)分形成了兩種體系結(jié)構(gòu):大內(nèi)核和微內(nèi)核。
[0011].大內(nèi)核系統(tǒng)將操作系統(tǒng)的主要功能模塊都作為一個(gè)緊密聯(lián)系的整體運(yùn)行在核心態(tài),從而為應(yīng)用提供高性能的系統(tǒng)服務(wù)。因?yàn)楦鞴芾砟K之間共享信息,能有效利用相互之間的有效特性,所以具有無(wú)可比擬的性能優(yōu)勢(shì)。但隨著操作系統(tǒng)的發(fā)展,內(nèi)核提供的服務(wù)越來(lái)越多,形式越來(lái)越復(fù)雜,設(shè)計(jì)規(guī)模也急劇增長(zhǎng),操作系統(tǒng)也面臨著“軟件危機(jī)”困境。除了可靠性的降低,任何一個(gè)內(nèi)核漏洞都會(huì)讓惡意攻擊者輕易控制整個(gè)系統(tǒng)。為解決操作系統(tǒng)的內(nèi)核代碼過(guò)于龐大帶來(lái)的安全問(wèn)題和復(fù)雜性問(wèn)題,于是提出了微內(nèi)核的體系結(jié)構(gòu)。
[0012].微內(nèi)核的體系結(jié)構(gòu)將內(nèi)核中最基本的功能(如進(jìn)程管理等)保留在內(nèi)核,而將那些不需要在核心態(tài)執(zhí)行的功能移到用戶(hù)態(tài)執(zhí)行,從而降低了內(nèi)核的設(shè)計(jì)復(fù)雜性。而那些移出內(nèi)核的操作系統(tǒng)代碼根據(jù)分層的原則被劃分成若干服務(wù)程序,它們的執(zhí)行相互獨(dú)立,交互則都借助于微內(nèi)核進(jìn)行通信。微內(nèi)核結(jié)構(gòu)有效地分離了內(nèi)核與服務(wù)、服務(wù)與服務(wù),使得它們之間的接口更加清晰,維護(hù)的代價(jià)大大降低,各部分可以獨(dú)立地優(yōu)化和演進(jìn),從而保證了操作系統(tǒng)的安全性和可靠性。微內(nèi)核結(jié)構(gòu)的最大問(wèn)題是性能問(wèn)題,因?yàn)樾枰l繁地在核心態(tài)和用戶(hù)態(tài)之間進(jìn)行切換,操作系統(tǒng)的執(zhí)行開(kāi)銷(xiāo)偏大。因此有的操作系統(tǒng)將那些頻繁使用的系統(tǒng)服務(wù)又移回內(nèi)核,從而保證系統(tǒng)性能。
[0013]2、當(dāng)前操作系統(tǒng)的安全威脅。
[0014]影響操作系統(tǒng)安全性的因素很多。首先,操作系統(tǒng)是一個(gè)共享資源系統(tǒng),支持多用戶(hù)同時(shí)共享一套計(jì)算機(jī)系統(tǒng)的資源,有資源共享就需要有資源保護(hù),涉及到各種安全性問(wèn)題;其次,隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,除了信息的存儲(chǔ)和處理外,存在大量數(shù)據(jù)傳送操作,于是就需要有網(wǎng)絡(luò)安全和數(shù)據(jù)信息的保護(hù),防止入侵者惡意破壞。為了理解現(xiàn)有的安全威脅(攻擊)及其類(lèi)型,將計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)通信的安全要求分為四個(gè)方面:
?機(jī)密性。要求計(jì)算機(jī)系統(tǒng)中的信息只能由被授權(quán)者進(jìn)行規(guī)定范圍內(nèi)的訪(fǎng)問(wèn)。
[0015].完整性。要求計(jì)算機(jī)系統(tǒng)中的信息只能被授權(quán)用戶(hù)修改,修改操作包括寫(xiě)、改寫(xiě)、改變狀態(tài)、刪除和創(chuàng)建等。
[0016].可用性。防止非法獨(dú)占資源,每當(dāng)合法用戶(hù)需要時(shí),總能訪(fǎng)問(wèn)到合適的計(jì)算機(jī)系統(tǒng)資源,為其提供所需的服務(wù)。
[0017].真實(shí)性。要求計(jì)算機(jī)系統(tǒng)能證實(shí)用戶(hù)的身份,防止非法用戶(hù)侵入系統(tǒng),以及確認(rèn)數(shù)據(jù)來(lái)源的真實(shí)性。
[0018]操作系統(tǒng)面臨的安全威脅基本上代表了計(jì)算機(jī)系統(tǒng)面臨的威脅。計(jì)算機(jī)病毒和黑客攻擊是操作系統(tǒng)所受到的安全威脅中最為人們熟悉的兩種形式。病毒本質(zhì)上是一段具有自我復(fù)制能力及隱蔽性、傳染性和潛伏性等特征的可執(zhí)行代碼;黑客攻擊則表現(xiàn)為具備某些計(jì)算機(jī)專(zhuān)業(yè)知識(shí)和技術(shù)的人員通過(guò)分析挖掘系統(tǒng)漏洞和利用網(wǎng)絡(luò)對(duì)特定系統(tǒng)進(jìn)行竊密、破壞或占領(lǐng)。目前操作系統(tǒng)需要保護(hù)的主要目標(biāo)是敏感數(shù)據(jù)不受非法竊取或破壞,這些敏感數(shù)據(jù)既可以是密鑰、文檔或者數(shù)據(jù)庫(kù),也可以是代碼或者算法。
[0019]3、飛騰CPU平臺(tái)簡(jiǎn)介。
[0020]飛騰系列通用處理器是由國(guó)防科技大學(xué)自主研發(fā)的高性能通用微處理器,面向事務(wù)處理和數(shù)據(jù)中心服務(wù)器需求,應(yīng)用領(lǐng)域包括黨政軍辦公業(yè)務(wù)系統(tǒng)、大數(shù)據(jù)處理、云計(jì)算應(yīng)用等。其中的飛騰1500+系列CPU基于ARM64架構(gòu)設(shè)計(jì),兼容armv8指令集,包括通用型、嵌入式或桌面型和高性能計(jì)算型等多個(gè)型號(hào)。芯片使用成熟的SOC技術(shù)和28nm生產(chǎn)工藝,核心時(shí)鐘頻率1.5GHz,采用多核多線(xiàn)程體系結(jié)構(gòu),每顆CPU由4-16個(gè)SMP (對(duì)稱(chēng)多處理器)核心,具有強(qiáng)大的計(jì)算和事務(wù)處理能力。此外芯片上還集成多個(gè)存控單元和DDR3存儲(chǔ)通道,PCIe 3.0 I/O接口,有效解決了 1瓶頸問(wèn)題。
[0021]飛騰1500+系列CPU是一種字長(zhǎng)為64位的ARM指令集兼容通用處理器,擁有4種運(yùn)行級(jí)別ELO — EL3。和X86系列處理器ringO—ring3的作用類(lèi)似,這些運(yùn)行級(jí)別決定了處理器的指令執(zhí)行和地址訪(fǎng)問(wèn)權(quán)限。其中ELO對(duì)應(yīng)權(quán)限最低的用戶(hù)程序執(zhí)行模式;EL1對(duì)應(yīng)傳統(tǒng)操作系統(tǒng)的內(nèi)核態(tài)執(zhí)行模式;EL2對(duì)應(yīng)虛擬機(jī)監(jiān)控器hypervisor執(zhí)行模式;EL3為最高特權(quán)態(tài),運(yùn)行安全監(jiān)視器模式。CPU的體系結(jié)構(gòu)設(shè)計(jì)和SoC的1設(shè)計(jì)都為EL3特權(quán)態(tài)提供了特別支持,使一些自定義的計(jì)算資源、內(nèi)存資源以及1設(shè)備控制器只能從EL3態(tài)訪(fǎng)問(wèn),對(duì)其它特權(quán)態(tài)隔離。換句話(huà)說(shuō),EL3特權(quán)態(tài)能夠訪(fǎng)問(wèn)系統(tǒng)所有資源,通過(guò)配置可以開(kāi)放有限資源供較低特權(quán)級(jí)訪(fǎng)問(wèn)。利用體系結(jié)構(gòu)設(shè)計(jì)提供的異常處理機(jī)制,從較低特權(quán)態(tài)可以通過(guò)指令或者外部中斷引發(fā)的異常陷入到EL3,從而切換到最高特權(quán)態(tài)的處理代碼,EL3模式的代碼也可以執(zhí)行返回指令切換到某個(gè)較低特權(quán)態(tài)。
[0022]飛騰1500+系列CPU具備對(duì)TrustZone技術(shù)的支持。該技術(shù)將防護(hù)措施整合到處理核心、訪(fǎng)存機(jī)制、總線(xiàn)和系統(tǒng)外圍IP器件中,并通過(guò)軟硬件的協(xié)同工作實(shí)現(xiàn)安全,并能最小化設(shè)備成本。TrustZone不是將受保護(hù)資產(chǎn)放在特定硬件模塊內(nèi),而是提供機(jī)制可以將系統(tǒng)中的任何部分設(shè)置為受安全隔離,它提供了一個(gè)基礎(chǔ)平臺(tái)以供SoC設(shè)計(jì)者從一個(gè)組件范圍中選取滿(mǎn)足自己特定功能的組件實(shí)現(xiàn)受保護(hù)的安全環(huán)境。其基本思想是通過(guò)將所有的SoC硬件和軟件進(jìn)行分區(qū),系統(tǒng)資源被劃分為兩個(gè)區(qū)=Secure world對(duì)應(yīng)于安全分區(qū),Normal world對(duì)應(yīng)于普通分區(qū)。Secure world資源不能被Normal world軟硬件訪(fǎng)問(wèn)。處理器擁有兩種虛擬態(tài),一個(gè)作為Non-secure,另一個(gè)是Secure,并會(huì)提供在兩個(gè)虛擬核之間安全切換的monitor mode機(jī)制,由主系統(tǒng)總線(xiàn)所發(fā)送的NS位值確定虛擬核的標(biāo)識(shí),并控制指令和數(shù)據(jù)的訪(fǎng)問(wèn)權(quán)限。Non-secure虛擬處理器只能訪(fǎng)問(wèn)Non-secure系統(tǒng)資源,但Secure虛擬處理器可以訪(fǎng)問(wèn)所有資源。MMU(Memory Management Unit)通過(guò)軟件控制的轉(zhuǎn)換表管理內(nèi)存映射轉(zhuǎn)換。對(duì)應(yīng)于兩個(gè)虛擬處理器,TrustZone硬件機(jī)制提供兩個(gè)虛擬MMU。這樣每個(gè)安全語(yǔ)境都有自己的轉(zhuǎn)換表,可以獨(dú)立控制地址映射。LI轉(zhuǎn)換表?xiàng)l目格式中含有一個(gè)NS域,用于Secure態(tài)虛處理器確定它要訪(fǎng)問(wèn)哪種內(nèi)存區(qū)域。Non-secure態(tài)虛處理器會(huì)忽略該域,內(nèi)存訪(fǎng)問(wèn)總會(huì)使NS=1。這種設(shè)計(jì)使Secure態(tài)處理器可以訪(fǎng)問(wèn)兩個(gè)態(tài)的內(nèi)存。總線(xiàn)協(xié)議規(guī)范中為讀和寫(xiě)信道都加入了額外的控制信號(hào)位,也就是Non-Secure位,簡(jiǎn)記為NS位,可以控制不同world的器件的訪(fǎng)問(wèn)許可。在飛騰處理器平臺(tái)上,通過(guò)EL3態(tài)軟件的控制,可以將需要的資源,包括內(nèi)存、設(shè)備控制器等隔離到一個(gè)可信的安全域,實(shí)現(xiàn)獨(dú)立的安全操作環(huán)境,對(duì)系統(tǒng)的其余部分提供服務(wù)。
[0023]綜上所述,針對(duì)飛騰CPU平臺(tái)乃至所有CPU計(jì)算平臺(tái),如何實(shí)現(xiàn)操作系統(tǒng)安全內(nèi)核服務(wù)的安全、可靠、高效、靈活地運(yùn)行,已經(jīng)成為一項(xiàng)亟待解決的關(guān)鍵的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0024]本發(fā)明要解決的技術(shù)問(wèn)題是:針對(duì)現(xiàn)有技術(shù)的上述技術(shù)問(wèn)題,提供一種能夠?qū)崿F(xiàn)對(duì)系統(tǒng)特定硬件資源的安全保護(hù)、實(shí)現(xiàn)對(duì)操作系統(tǒng)核心服務(wù)的安全訪(fǎng)問(wèn)、高效支持系統(tǒng)的可信性確認(rèn),能夠有效提升系統(tǒng)的安全性,降低傳統(tǒng)內(nèi)核漏洞引入的安全風(fēng)險(xiǎn),并向用戶(hù)提供高效靈活的可信計(jì)算生態(tài)環(huán)境的飛騰CPU上三態(tài)操作系統(tǒng)安全內(nèi)核服務(wù)動(dòng)態(tài)運(yùn)行方法。
[0025]為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
一種飛騰CPU上三態(tài)操作系統(tǒng)安全內(nèi)核服務(wù)動(dòng)態(tài)運(yùn)行方法,步驟包括:
1)保持用戶(hù)態(tài)下應(yīng)用程序的最低特權(quán)等級(jí)不變,將操作系統(tǒng)的內(nèi)核劃分為次低特權(quán)等級(jí)的系統(tǒng)態(tài)和最高特權(quán)等級(jí)的內(nèi)核態(tài),在內(nèi)核態(tài)中建立