本公開總體上涉及信息安全領(lǐng)域,并且更具體地,涉及使用飛地認證進行數(shù)據(jù)驗證。
背景技術(shù):
網(wǎng)絡(luò)安全領(lǐng)域在當今社會中已經(jīng)變得越來越重要?;ヂ?lián)網(wǎng)已經(jīng)使得全世界不同計算機時間能夠互連。具體地,互聯(lián)網(wǎng)提供了用于在經(jīng)由各種類型的客戶端設(shè)備連接至不同的計算機網(wǎng)絡(luò)的不同用戶之間交換數(shù)據(jù)的介質(zhì)。雖然互聯(lián)網(wǎng)的使用已經(jīng)改變了商業(yè)和個人通信,它同樣已經(jīng)被用作惡意操作者對計算機和計算機網(wǎng)絡(luò)進行未授權(quán)訪問以及對敏感信息的有意或無意暴露的工具。
使主機感染的惡意軟件(“malware”)可能能夠執(zhí)行任何數(shù)量的惡意行為,如從與主機相關(guān)聯(lián)的商業(yè)或個人竊取敏感信息、傳播至其他主機、和/或協(xié)助分布式拒絕服務(wù)攻擊、從主機發(fā)出垃圾郵件或惡意郵件等。因此,對于保護計算機和計算機網(wǎng)絡(luò)免受惡意軟件的惡意或無意利用,存在著顯著的管理性挑戰(zhàn)。
附圖說明
為了提供對本公開及其特征和優(yōu)點的更加完整的理解,結(jié)合附圖參考以下說明書,其中相同的參考標號表示相同的部件,其中:
圖1是根據(jù)本公開的實施例的一種用于使用飛地認證進行數(shù)據(jù)驗證的通信系統(tǒng)的簡化框圖;
圖2是根據(jù)本公開的實施例的一種用于使用飛地認證進行數(shù)據(jù)驗證的通信系統(tǒng)的一部分的簡化框圖;
圖3是簡化流程圖,展示了根據(jù)實施例的可能與通信系統(tǒng)相關(guān)聯(lián)的可能操作;
圖4是簡化流程圖,展示了根據(jù)實施例的可能與通信系統(tǒng)相關(guān)聯(lián)的可能操作;
圖5是簡化流程圖,展示了根據(jù)實施例的可能與通信系統(tǒng)相關(guān)聯(lián)的可能操作;
圖6是簡化流程圖,展示了根據(jù)實施例的可能與通信系統(tǒng)相關(guān)聯(lián)的可能操作;
圖7是框圖,展示了根據(jù)實施例的采用點對點配置設(shè)置的示例性計算系統(tǒng);
圖8是與本公開的示例性ARM生態(tài)系統(tǒng)片上系統(tǒng)(SOC)相關(guān)聯(lián)的簡化框圖;以及
圖9是框圖,展示了根據(jù)實施例的示例性處理器核。
附圖中的這些圖不必按比例繪制,因為在不背離本公開的范圍的情況下其尺寸可以顯著地改變。
具體實施方式
示例實施例
圖1是根據(jù)本公開的實施例的一種用于使用飛地認證進行數(shù)據(jù)驗證的通信系統(tǒng)的簡化框圖。通信系統(tǒng)10a可以包括電子設(shè)備12a、服務(wù)器14以及云16。電子設(shè)備12a可以包括飛地20a、不可信應(yīng)用24以及完整性驗證模塊26a。飛地20a可以包括可信應(yīng)用22。完整性驗證模塊26a可以包括輸入數(shù)據(jù)認證庫30。使用認證信道28a可以將飛地20a耦合至完整性驗證模塊26a。服務(wù)器14可以包括完整性驗證模塊26b。使用認證信道28b可以將飛地20a耦合至服務(wù)器14中的完整性驗證模塊26b。云16可以包括完整性驗證模塊26c。使用認證信道28c可以將飛地20a耦合至云16中的完整性驗證模塊26c。飛地20a可以是可信執(zhí)行環(huán)境(TEE)。認證信道28a、28b和28c可以是安全通信信道。
在示例實施例中,通信系統(tǒng)10a(以及下文所討論的10b)可以被配置成包括一種系統(tǒng),所述系統(tǒng)用于使用飛地認證來提供數(shù)據(jù)驗證并且用于對飛地的數(shù)據(jù)輸入值執(zhí)行認證。遠程飛地驗證服務(wù)器可以應(yīng)用可動態(tài)更新的數(shù)據(jù)完整性策略以便持續(xù)地監(jiān)測對輸入數(shù)據(jù)的攻擊。通信系統(tǒng)10a(以及10b)可以使用認證信道來執(zhí)行數(shù)據(jù)完整性認證功能并且配設(shè)數(shù)據(jù)完整性認證策略,其中,所述策略可由飛地訪問。不可信輸入數(shù)據(jù)(例如,來自不可信應(yīng)用24的數(shù)據(jù))可以在由飛地應(yīng)用(例如,可信應(yīng)用22)使用前被隔離,并且可以在本地使用本地完整性驗證模塊或者在遠程使用遠程完整性驗證模塊執(zhí)行數(shù)據(jù)完整性驗證。完整性驗證模塊可以被配置成用于使用庫,所述庫可以使能數(shù)據(jù)范圍檢查、數(shù)據(jù)類型檢查、針對嵌式代碼或其它惡意軟件進行數(shù)據(jù)掃描等。
圖1的元素可以通過一個或多個接口采用任何合適的連接(有線或無線)耦合到彼此,所述連接提供可用于網(wǎng)絡(luò)(例如,網(wǎng)絡(luò)18)通信的通路。另外,可以基于具體配置需求將圖1的這些元素中的任何一個或多個與架構(gòu)進行組合或從中移除。通信系統(tǒng)10a(以及10b)可以包括能夠進行傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)通信以便在網(wǎng)絡(luò)中傳輸或接收報文的配置。通信系統(tǒng)10a(以及10b)還可以在適當情況下并基于具體需要結(jié)合用戶數(shù)據(jù)報協(xié)議/IP(UDP/IP)或任何其他適當協(xié)議運行。
出于展示通信系統(tǒng)10a(以及10b)的某些示例技術(shù)的目的,重要的是理解可以貫穿網(wǎng)絡(luò)環(huán)境的通信。以下基礎(chǔ)信息可以被視為可以對本公開正確解釋的基礎(chǔ)。術(shù)語“飛地”包括可信執(zhí)行環(huán)境(TEE)并且是通常只能由飛地自身或者通過可信服務(wù)應(yīng)用程序接口訪問的存儲器區(qū)域。一般地,其他程序不能讀、寫或者訪問存儲在飛地中的數(shù)據(jù),并且飛地允許在執(zhí)行期間對可信應(yīng)用進行保護。
在當前系統(tǒng)中,不可信加載器可以將代碼安裝到飛地中,并且可以使用認證來遠程驗證飛地內(nèi)容(例如,所加載代碼)。遠程驗證器必須具有用以評估代碼的可信度并分配認證值的白名單。然而,當輸入到飛地的數(shù)據(jù)被用于利用代碼弱點或者用于損害飛地保護數(shù)據(jù)的完整性時,飛地在執(zhí)行期間仍然容易遭受攻擊。飛地設(shè)計者通過使得飛地能夠使用可以用來建立到達輸入源的安全通信信道的飛地特定密鑰來預(yù)期不可信數(shù)據(jù)輸入源的可能性。通常,需要帶外方法在所述輸入源中建立信任。然而,所述輸入源仍然可能是欺騙性的,因為實際上,飛地部署在包含感知到飛地的系統(tǒng)以及沒有感知到飛地的系統(tǒng)的混合的異構(gòu)環(huán)境中。需要的是一種使用飛地認證和安全認證通信信道進行數(shù)據(jù)完整性驗證的系統(tǒng)和方法。
如圖1所概述的,一種用于使用飛地認證進行數(shù)據(jù)驗證的通信系統(tǒng)可以解決這些問題(以及其他問題)。在圖1的通信系統(tǒng)10a中,為了使用飛地認證來執(zhí)行數(shù)據(jù)驗證,所述系統(tǒng)可以被配置成包括完整性驗證模塊(例如,完整性驗證模塊26a、26b或26c)以及用于使用輸入數(shù)據(jù)認證服務(wù)操縱飛地應(yīng)用的API和邏輯。完整性驗證模塊可以使用TEE信道進行初始認證,其中,可以將輸入數(shù)據(jù)提供給服務(wù)器(例如,服務(wù)器14)或云服務(wù)(例如,云16)進行分析。服務(wù)器或云服務(wù)可以將應(yīng)用特定策略或者域特定策略用作分析的一部分??商娲?,可以將策略或策略的一部分配設(shè)給本地完整性驗證模塊,其中,可以在飛地內(nèi)本地執(zhí)行輸入數(shù)據(jù)完整性以及范圍檢查。
輸入數(shù)據(jù)操縱可以是應(yīng)用特定的。例如,應(yīng)用可以期望僅為偶數(shù)的輸入值。數(shù)據(jù)認證策略可以指定這種約束或者其它類似的應(yīng)用特定約束。輸入數(shù)據(jù)檢查同樣也可以更為一般。例如,數(shù)據(jù)認證策略可能需要在32位或64位整數(shù)范圍內(nèi)的輸入數(shù)據(jù)。輸入數(shù)據(jù)檢查還可以涉及被設(shè)計成用于檢測偽裝成數(shù)據(jù)的代碼塊的復(fù)雜分析。例如,可以將簡單的Java腳本應(yīng)用編碼為輸入字符串,如,人名或居住地。完整性驗證模塊可以針對模式、代碼特征、腳本等來分析所述字符串。在電子設(shè)備上處理數(shù)據(jù)完整性檢查更為高效的示例中,可以通過認證信道將數(shù)據(jù)認證策略配設(shè)給電子設(shè)備??梢园l(fā)生本地處理,并且可以通過認證信道向回報告處理結(jié)果。
飛地應(yīng)用可以預(yù)期飛地將使用加密信道或者專用帶外信道僅連接至可信輸入源。在不損害飛地代碼完整性的情況下,通信系統(tǒng)10a可以允許發(fā)生不可信輸入。例如,飛地應(yīng)用可以被寫入以執(zhí)行本地或遠程范圍檢查以及其他數(shù)據(jù)完整性檢查。此外,電子設(shè)備可以使用認證信道以在遠程服務(wù)器或云上執(zhí)行數(shù)據(jù)完整性檢查,在本地飛地上使用動態(tài)配設(shè)的策略執(zhí)行完整性檢查。同樣地,可以通過認證信道報告本地完整性檢查的結(jié)果。無論是否正在使用輸入數(shù)據(jù)庫,都可以建立對飛地應(yīng)用的數(shù)據(jù)分析。正常認證確認未被篡改的應(yīng)用被加載到飛地中。完整性驗證服務(wù)(例如,完整性驗證模塊26a、26b或26c)可以使用代碼路徑操縱來幫助構(gòu)造可以用于關(guān)注輸入數(shù)據(jù)驗證檢查的策略。
在示例實現(xiàn)方式中,不可信應(yīng)用(例如,不可信應(yīng)用24)將不可信數(shù)據(jù)輸入至飛地應(yīng)用。不可信數(shù)據(jù)可能超過緩沖量限制、違反數(shù)據(jù)分類規(guī)則,可能包含攻擊代碼等。飛地中的包括或者可以訪問輸入數(shù)據(jù)認證庫的可信應(yīng)用(例如,可信應(yīng)用22)在飛地的其他部分可以對不可信數(shù)據(jù)進行訪問時攔截不可信數(shù)據(jù)。使用認證信道將不可信數(shù)據(jù)轉(zhuǎn)發(fā)至完整性驗證模塊,在所述完整性驗證模塊中可以執(zhí)行數(shù)據(jù)完整性分析檢查。數(shù)據(jù)完整性分析檢查可以包括但不局限于:數(shù)據(jù)范圍及類型檢查、數(shù)據(jù)值檢查以及可能包括對嵌式代碼或腳本的掃描的數(shù)據(jù)內(nèi)容掃描。如果不可信數(shù)據(jù)被驗證,將經(jīng)驗證的(以及可能經(jīng)殺毒的)數(shù)據(jù)返回至飛地進行處理。
在實施例中,可以將驗證策略配設(shè)給包括或者可以訪問數(shù)據(jù)認證庫的飛地應(yīng)用,其中在數(shù)據(jù)認證庫中可以應(yīng)用部分或全部數(shù)據(jù)完整性驗證??梢允褂谜J證信道配設(shè)所述策略??梢詫Ⅱ炞C結(jié)果傳達至可以執(zhí)行審計檢查的服務(wù)器或云服務(wù),并且記錄所述結(jié)果以供分析。
回到圖1的基礎(chǔ)設(shè)施,示出了根據(jù)示例實施例的通信系統(tǒng)10a(以及10b)。一般地,可以在任何類型或拓撲的網(wǎng)絡(luò)中實現(xiàn)通信系統(tǒng)10a(以及10b)。網(wǎng)絡(luò)18表示用于接收和發(fā)送通過通信系統(tǒng)10a(以及10b)傳播的信息的分組的互連通信路徑的一系列點或節(jié)點。網(wǎng)絡(luò)18提供節(jié)點之間的通信接口,并且可以被配置為任何局域網(wǎng)(LAN)、虛擬局域網(wǎng)(VLAN)、廣域網(wǎng)(WAN)、無線局域網(wǎng)(WLAN)、城域網(wǎng)(MAN)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、虛擬專用網(wǎng)絡(luò)(VPN),以及任何其他在網(wǎng)絡(luò)環(huán)境中促進通信的適當體系結(jié)構(gòu)或系統(tǒng),或者它們的任何合適的組合,包括有線和/或無線通信。
在通信系統(tǒng)10a(以及10b)中,可以根據(jù)任何適合的通信消息協(xié)議發(fā)送和接收包括分組、幀、信號、數(shù)據(jù)等的網(wǎng)絡(luò)流量。適合的通信消息協(xié)議可以包括多層模式,如開放系統(tǒng)互連(OSI)模型或其任何派生或變體(例如,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、用戶數(shù)據(jù)報協(xié)議/IP(UDP/IP))。此外,還可以在通信系統(tǒng)10a(以及10b)中提供通過蜂窩網(wǎng)的無線信號通信??梢蕴峁┻m合的接口和基礎(chǔ)設(shè)施以便使能與所述蜂窩網(wǎng)的通信。
本文使用的術(shù)語“分組”指的是可以在分組交換網(wǎng)絡(luò)上的源節(jié)點與目標節(jié)點之間路由的數(shù)據(jù)單元。分組包括源網(wǎng)絡(luò)地址以及目標網(wǎng)絡(luò)地址。這些網(wǎng)絡(luò)地址可以是TCP/IP消息協(xié)議中的互聯(lián)網(wǎng)協(xié)議(IP)。如在此所使用的術(shù)語“數(shù)據(jù)”指任何類型的二進制、數(shù)字、語音、視頻、文本、或腳本數(shù)據(jù),或任何類型的源代碼或?qū)ο蟠a,或在電子設(shè)備和/或網(wǎng)絡(luò)中可以從一個點傳達至另一個點的、任何其他恰當格式的任何其他適當信息。另外,消息、請求、響應(yīng)、和詢問是網(wǎng)絡(luò)流量的形式,并且因此可以包括報文、幀、信號、數(shù)據(jù)等。
在示例實施方式中,電子設(shè)備12a、服務(wù)器14以及云16為網(wǎng)元,它們意味著包含網(wǎng)絡(luò)電器、服務(wù)器、路由器、交換機、網(wǎng)關(guān)、橋接器、負載均衡器、處理器、模塊,或任何其他合適的設(shè)備、部件、元件、或可運行以在網(wǎng)絡(luò)環(huán)境中交換信息的對象。網(wǎng)元可以包括任何適當?shù)挠布?、軟件、部件、模塊、或便于其運行的對象,以及用于在網(wǎng)絡(luò)環(huán)境中接收、發(fā)射、和/或另外傳達數(shù)據(jù)或信息的適當接口。這可以包括允許數(shù)據(jù)或信息的有效交換的適當?shù)乃惴ê屯ㄐ艆f(xié)議。
關(guān)于與通信系統(tǒng)10a(以及10b)相關(guān)聯(lián)的內(nèi)部結(jié)構(gòu),電子設(shè)備12a、服務(wù)器14以及云16各自可以包括用于在本文列出的操作中存儲待使用信息的存儲元件。電子設(shè)備12a、服務(wù)器14以及云16中的每一個可以將信息保持在任何適當?shù)拇鎯ζ髟?例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、專用集成電路(ASIC)等)、軟件、硬件、固件中,或(在合適的情況下并基于具體需要)任何其他適當?shù)牟考?、設(shè)備、元件、或?qū)ο笾?。在此所討論的存儲器項中的任何一個應(yīng)當被理解為包含在寬泛術(shù)語‘存儲器元件’內(nèi)。而且,可以在任何數(shù)據(jù)庫、寄存器、隊列、表格、緩存、控制列表、或其他結(jié)構(gòu)(所有這些可以在任何適當?shù)臅r間幀被引用)中提供在通信系統(tǒng)10a(以及10b)中被使用、跟蹤、發(fā)送、或接收的信息。任何此類存儲選項也可以包括在如在此所使用的寬泛術(shù)語‘存儲器元件’內(nèi)。
在某些示例實現(xiàn)方式中,在此所描繪的功能可以通過被邏輯編碼在一種或多種有形介質(zhì)(例如,ASIC中所設(shè)置的嵌入式邏輯、數(shù)字信號處理器(DSP)指令、有待由處理器執(zhí)行的軟件(潛在地包括對象代碼和源代碼)、或其他類似機器等)中來實現(xiàn),所述一種或多種有形介質(zhì)可以包括非瞬態(tài)計算機可讀介質(zhì)。在這些實例中的一部分中,存儲器元件可以存儲用于在此所描述的操作的數(shù)據(jù)。這包括能夠存儲被執(zhí)行以實施在此所描述的活動的軟件、邏輯、代碼、或處理器指令的存儲器元件。
在示例實現(xiàn)方式中,通信系統(tǒng)10a(以及10b)的網(wǎng)元,如,電子設(shè)備12a、服務(wù)器14以及云16可以包括軟件模塊(例如,分別是完整性驗證模塊26a、26b以及26c)以實現(xiàn)或促進本文所列出的操作。這些模塊可以通過任何適當?shù)姆绞胶线m地組合,這可以基于具體配置和/或規(guī)定需要。在示例實施例中,此類操作可以由硬件實施、在這些元件之外實現(xiàn)、或包括在某個其他網(wǎng)絡(luò)設(shè)備中以用于實現(xiàn)預(yù)期的功能。此外,這些模塊可以被實現(xiàn)為軟件、硬件、固件、或其任何適當組合。這些元件還可以包括軟件(或往復(fù)式軟件),所述軟件可以與其他網(wǎng)元協(xié)調(diào)以便實現(xiàn)如在此所描繪的操作。
此外,電子設(shè)備12a、服務(wù)器14以及云16各自可以包括可以執(zhí)行軟件或算法的處理器以執(zhí)行本文所討論的活動。處理器可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令,從而實現(xiàn)在此詳述的操作。在一個示例中,處理器可以將原件或物品(例如數(shù)據(jù))從一個狀態(tài)或事物轉(zhuǎn)換至另一種狀態(tài)或事物。在另一示例中,在此所描繪的活動可以用固定邏輯或可編程邏輯(例如,由處理器執(zhí)行的軟件/計算機指令)實現(xiàn),并且在此所標識的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、EPROM、EEPROM)或包括數(shù)字邏輯的ASIC、軟件、代碼、電子指令、或其任何適當組合。在此所描述的潛在處理元件、模塊、和機器中的任何一個可以被理解為包含在寬泛術(shù)語‘處理器’中。
電子設(shè)備12可以是網(wǎng)元,并且包括例如臺式計算機、膝上計算機、移動設(shè)備、私人數(shù)字助手、智能電話、平板、或其他類似設(shè)備。安全服務(wù)器14可以是網(wǎng)元(如服務(wù)器或虛擬服務(wù)器)并且可以與客戶端、顧客、端點、或期望通過某個網(wǎng)絡(luò)(例如,網(wǎng)絡(luò)18)在通信系統(tǒng)10a(以及10b)中發(fā)起通信的末端用戶相關(guān)聯(lián)。術(shù)語‘服務(wù)器’包括用于代表通信系統(tǒng)10a(以及10b)內(nèi)的客戶端服務(wù)客戶端的請求和/或執(zhí)行某種計算任務(wù)的設(shè)備。盡管完整性驗證模塊26a、26b以及26c在圖1中被表示為分別位于電子設(shè)備12a、安全服務(wù)器14以及云16中,但這僅是出于展示目的。完整性驗證模塊26a、26b以及26c可以采用任何適合的配置結(jié)合或分離。此外,完整性驗證模塊26a、26b以及26c可以集成或分布在另一個可由電子設(shè)備12a訪問的網(wǎng)絡(luò)中。云16被配置成用于向電子設(shè)備12a提供云服務(wù)。云服務(wù)總體上可以被定義為作為服務(wù)在網(wǎng)絡(luò)(如互聯(lián)網(wǎng))上傳遞的計算資源的使用。通常,在云基礎(chǔ)設(shè)施中提供了計算、存儲、和網(wǎng)絡(luò)資源,從而有效地將工作負荷從本地網(wǎng)絡(luò)轉(zhuǎn)移至云網(wǎng)絡(luò)。
回到圖2,圖2是根據(jù)本公開的實施例的一種用于使用飛地認證進行數(shù)據(jù)驗證的通信系統(tǒng)10b的簡化框圖。通信系統(tǒng)10b可以包括電子設(shè)備12b。電子設(shè)備12b可以包括飛地20b。飛地20b可以包括飛地完整性驗證模塊32。飛地完整性驗證模塊32可以包括輸入數(shù)據(jù)認證庫30。飛地完整性驗證模塊32與完整性驗證模塊26a類似地被配置,并且允許飛地20b在飛地20b內(nèi)執(zhí)行數(shù)據(jù)驗證,并且可以被認為是飛地內(nèi)的飛地。認證信道28b和28c可以用于在飛地完整性驗證模塊32中更新輸入認證庫30。
回到圖3,圖3是示例性流程圖,展示了根據(jù)實施例的流程300的可以與使用飛地認證進行數(shù)據(jù)驗證相關(guān)聯(lián)的可能操作。在302處,創(chuàng)建帶有標記(或某個其他指示符)的應(yīng)用,所述標記指示所述應(yīng)用將與完整性驗證一起使用。例如,開發(fā)者可以創(chuàng)建應(yīng)用并且開發(fā)者可能想讓所述應(yīng)用與飛地一起使用以使能完整性驗證。開發(fā)者可以僅設(shè)置所述標記并且系統(tǒng)將識別出所述應(yīng)用將與完整性驗證一起使用,而不是寫代碼以使能完整性驗證。在304處,創(chuàng)建與所述應(yīng)用相關(guān)聯(lián)的白名單。所述白名單可以包括可信應(yīng)用以及與所述應(yīng)用相關(guān)聯(lián)的過程。在306處,將所述應(yīng)用傳達至飛地。在308處,將所述白名單傳達至完整性驗證模塊。例如,所述白名單可以被存儲在輸入數(shù)據(jù)認證庫30中并且可以用于數(shù)據(jù)驗證。在操作期間,不可信應(yīng)用或者服務(wù)可以將不可信數(shù)據(jù)提供給所述應(yīng)用。飛地可以在飛地使用所述不可信數(shù)據(jù)之前使用認證信道來驗證所述不可信數(shù)據(jù)。
回到圖4,圖4是示例性流程圖,展示了根據(jù)實施例的流程400的可以與使用飛地認證進行數(shù)據(jù)驗證相關(guān)聯(lián)的可能操作。在實施例中,可以由完整性驗證模塊26a、26b、26c或者飛地完整性驗證模塊32執(zhí)行流程400的一個或多個操作。在402處,將應(yīng)用加載到飛地中。在404處,系統(tǒng)判定所述應(yīng)用是否具有指示所述應(yīng)用將與完整性驗證一起使用的標記(或某個其他指示符)。如果所述應(yīng)用不具有指示所述應(yīng)用將與完整性驗證一起使用的標記,則過程結(jié)束。如果所述應(yīng)用具有指示所述應(yīng)用將與完整性驗證一起使用的標記,則在飛地與完整性驗證模塊之間建立認證信道,如在406中。在408處,由飛地中的所述應(yīng)用接收不可信數(shù)據(jù)。在410處,使用認證信道,飛地從完整性驗證模塊中請求對不可信數(shù)據(jù)的驗證。在412處,系統(tǒng)判定不可信數(shù)據(jù)是否被驗證。如果不可信數(shù)據(jù)被(完整性驗證模塊)驗證,則允許不可信數(shù)據(jù),如在414中。如果不可信數(shù)據(jù)未被(完整性驗證模塊)驗證,則不允許不可信數(shù)據(jù),如418,并且關(guān)于所述不可信數(shù)據(jù)生成報告,如在416中。
回到圖5,圖5是示例性流程圖,展示了根據(jù)實施例的流程500的可以與使用飛地認證進行數(shù)據(jù)驗證相關(guān)聯(lián)的可能操作。在實施例中,可以由完整性驗證模塊26a、26b、26c或者飛地完整性驗證模塊32執(zhí)行流程500的一個或多個操作。在502處,在飛地與完整性驗證模塊之間建立認證信道。在504處,完整性驗證模塊接收對來自飛地的(不可信)數(shù)據(jù)進行驗證的請求。在506處,系統(tǒng)判定所述數(shù)據(jù)是否包括在白名單中。例如,完整性驗證模塊可以判定所述數(shù)據(jù)是否包括在輸入數(shù)據(jù)認證庫中。如果所述數(shù)據(jù)未包括在白名單中,則不允許所述數(shù)據(jù),如512,并且生成報告,如在514中。如果所述數(shù)據(jù)包括在白名單中,則系統(tǒng)判定所述數(shù)據(jù)是否滿足與飛地相關(guān)的策略,如在508中。例如,系統(tǒng)可以判定所述數(shù)據(jù)是否滿足一個或多個數(shù)據(jù)完整性分析檢查。如果所述數(shù)據(jù)不滿足與飛地相關(guān)的策略,則所述數(shù)據(jù)未被驗證,如在512中。如果所述數(shù)據(jù)滿足與飛地相關(guān)的策略,則所述數(shù)據(jù)被驗證,如在510中,并且生成報告,如在514中。
回到圖6,圖6是示例性流程圖,展示了根據(jù)實施例的流程600的可以與使用飛地認證進行數(shù)據(jù)驗證相關(guān)聯(lián)的可能操作。在實施例中,可以由完整性驗證模塊26a、26b、26c或者飛地完整性驗證模塊32執(zhí)行流程600的一個或多個操作。在602處,在飛地與完整性驗證模塊之間建立認證信道。在604處,完整性驗證模塊創(chuàng)建符合與飛地相關(guān)聯(lián)的策略的完整性驗證應(yīng)用。在606處,使用認證信道將完整性驗證應(yīng)用傳達至飛地。這個過程允許在電子設(shè)備上本地執(zhí)行數(shù)據(jù)驗證并且允許容易地更新數(shù)據(jù)驗證。
圖7根據(jù)實施例展示了采用點對點(PtP)配置設(shè)置的計算系統(tǒng)700。具體地,圖7示出了一種系統(tǒng),在所述系統(tǒng)中,處理器、存儲器和輸入/輸出設(shè)備通過許多點對點接口互連。通常,可以采用與計算系統(tǒng)700相同或類似的方式來配置通信系統(tǒng)10的網(wǎng)元中的一個或多個網(wǎng)元。
如圖7中所展示的,系統(tǒng)700可以包括若干處理器,為了清晰僅示出了所述處理器中的兩個處理器770和780。盡管示出了兩個處理器770和780,但是將理解的是,系統(tǒng)700的實施例還可以包括僅一個這種處理器。處理器770和780中的每一個處理器可以包括用于執(zhí)行程序的多個線程的一組核(即,處理器核774A和774B以及處理器核784A和784B)。這些核可以被配置成用于以與上文參照圖1至圖6所討論的類似方式執(zhí)行指令代碼。每個處理器770、780可以包括至少一個共享緩存771、781。共享緩存771、781可以存儲由處理器770、780的一個或多個部件(如,處理器核774和784)利用的數(shù)據(jù)(例如,指令)。
處理器770和780還可以各自包括集成式存儲器控制器邏輯(MC)772和782以與存儲器元件732和734通信。存儲器元件732和/或734可以存儲處理器770和780所使用的各種數(shù)據(jù)。在替代性實施例中,存儲器控制器邏輯772和782可以將邏輯與處理器770和780分離。
處理器770和780可以是任何類型的處理器并且可以分別使用點對點接口電路778和788經(jīng)由點對點(PtP)接口750交換數(shù)據(jù)。處理器770和780中的每一個處理器可以使用點對點接口電路776、786、794和798經(jīng)由單獨的點對點接口752和754來與芯片組790交換數(shù)據(jù)。芯片組790還可以使用接口電路792通過高性能圖形接口739與高性能圖形電路738交換數(shù)據(jù),所述接口電路可以是PtP接口電路。在替代性實施例中,圖7中所展示的PtP鏈接中的任何一個或全部可以被實現(xiàn)為多點分支總線而不是PtP鏈路。
芯片組790可以經(jīng)由接口電路796來與總線720通信??偩€720可以具有一個或多個通過它進行通信的設(shè)備,如總線橋接器718和I/O設(shè)備716。通過總線710,總線橋接器718可以與其他設(shè)備進行通信,如鍵盤/鼠標712(或其他輸入設(shè)備,如觸摸屏、滾動球等)、通信設(shè)備726(如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口設(shè)備、或其他類型的可以通過計算機網(wǎng)絡(luò)760進行通信的通信設(shè)備)、音頻I/O設(shè)備714、和/或數(shù)據(jù)存儲設(shè)備728。數(shù)據(jù)存儲設(shè)備728可以存儲代碼730,所述代碼可以由處理器770和/或780執(zhí)行。在替代性實施例中,總線架構(gòu)的任何部分可以由一個或多個PtP鏈路實現(xiàn)。
圖7中所描繪的計算機系統(tǒng)是可以用于實現(xiàn)在此所討論的各實施例的計算系統(tǒng)的實施例的示意性展示。將理解的是,圖7中所描繪的系統(tǒng)的各個部件可以結(jié)合在片上系統(tǒng)(SoC)架構(gòu)中或任何其他合適的配置中。例如,在此所公開的實施例可以并入包括移動設(shè)備(如智能蜂窩電話、平板計算機、個人數(shù)字助手、可移動游戲設(shè)備等)的系統(tǒng)中。將理解的是,在至少一些實施例中,這些移動設(shè)備可以配備有SoC架構(gòu)。
轉(zhuǎn)至圖8,圖8是與本公開的示例ARM生態(tài)系統(tǒng)SOC 800相關(guān)聯(lián)的簡化框圖。本公開的至少一個示例實現(xiàn)方式可以包括本文所討論的數(shù)據(jù)驗證以及ARM組件。例如,圖8的示例可以與任何ARM核(例如,A-9、A-15等)相關(guān)聯(lián)。進一步,所述架構(gòu)可以是以下各項的一部分:任何類型的平板、智能電話(包括安卓(AndroidTM)電話、iPhoneTM)、iPadTM、谷歌(Google)NexusTM、微軟SurfaceTM、私人計算機、服務(wù)器、視頻處理部件、膝上計算機(包括任何類型的筆記本)、超級筆記本(Ultra bookTM)系統(tǒng)、任何類型的觸摸使能的輸入設(shè)備等。
在圖8的這個示例中,ARM生態(tài)系統(tǒng)SOC 800可以包括多個核806-807、L2緩存控制裝置808、總線接口單元809、L2緩存810、圖形處理單元(GPU)815、互連802、視頻編解碼器820、以及液晶顯示器(LCD)I/F 825,它可以與耦合至LCD的移動工業(yè)處理器接口(MIPI)/高清晰多媒體接口(HDMI)鏈路相關(guān)聯(lián)。
ARM生態(tài)系統(tǒng)SOC 800還可以包括用戶標識模塊(SIM)I/F 830、引導(dǎo)只讀存儲器(ROM)835、同步動態(tài)隨機存取存儲器(SDRAM)控制器840、閃存控制器845、串行外圍接口(SPI)主設(shè)備850、合適的電源控制設(shè)備855、動態(tài)RAM(DRAM)860、和閃存865。另外,一個或多個示例實施例包括一種或多種通信能力、接口、和特征,如實例藍牙(BluetoothTM)870、3G調(diào)制解調(diào)器875、全球定位系統(tǒng)(GPS)880、以及802.11Wi-Fi 885。
在運行時,圖8的示例可以提供處理能力,伴隨著相對低的功耗使能各種類型的計算(例如,移動計算、高端數(shù)字家居、服務(wù)器、無線基礎(chǔ)設(shè)施等)。另外,這種基礎(chǔ)架構(gòu)可以使能任何數(shù)量的軟件應(yīng)用(例如,安卓(AndroidTM)、Player、Java平臺標準版本(Java SE)、JavaFX、Linux、微軟Windows Embedded、塞班(Symbian)和烏班圖(Ubuntu)等)。在至少一個示例實施例中,核處理器可以用耦聯(lián)的低延遲2級緩存實現(xiàn)無序超標量流水線。
圖9展示了根據(jù)實施例的處理器核900。處理器核900可以是針對任何類型處理器的核,如微型處理器、嵌入式處理器、數(shù)字信號處理器(DSP)、網(wǎng)絡(luò)處理器、或用于執(zhí)行代碼的其他設(shè)備。雖然圖9中只展示了一個處理器核900,處理器可以可替代地包括不止一個圖9中所展示的處理器核900。例如,處理器核900代表參照圖7的處理器770和780所示和描述的處理器核774a、774b、774a、和774b的一個示例實施例。處理器核900可以是單線程核,或者針對至少一個實施例,處理器核900可以是多線程,因為它可以包括每個核不止一個硬件線程上下文(或“邏輯處理器”)。
圖9還展示了根據(jù)實施例的耦合至處理器核900的存儲器902。存儲器902可以是本領(lǐng)域技術(shù)人員已知或另外可用的廣泛存儲器(包括存儲器層次結(jié)構(gòu)中的各個層)中的任何一種。存儲器902可以包括有待由處理器核900執(zhí)行的代碼904,所述代碼可以是一條或多條指令。處理器核900可以遵守代碼904所指示的程序指令序列。每條指令進入前端邏輯906并由一個或多個解碼器908處理。所述解碼器可以生成微操作作為其輸出,如預(yù)定格式的固定寬度微輸出,或者可以生成其他指令、微指令、或反映原始代碼指令的控制信號。前端邏輯906還包括寄存器重命名邏輯910和調(diào)度邏輯912,后者一般給資源和隊列分配對應(yīng)于用于執(zhí)行的指令的操作。
處理器核900還可以包括執(zhí)行邏輯914,所述執(zhí)行邏輯具有一組執(zhí)行單元916-1至916-N。一些實施例可以包括專用于特定功能或功能集的多個執(zhí)行單元。其他實施例可以包括僅一個執(zhí)行單元、或可以執(zhí)行特定功能的一個執(zhí)行單元。執(zhí)行邏輯914執(zhí)行由代碼指令所指定的操作。
在完成了所述指令所指定的操作的執(zhí)行之后,后端邏輯918可以撤退代碼904的指令。在一個實施例中,處理器核900允許指令的無序執(zhí)行但需要指令的有序引退。引退邏輯920可以采取各種已知形式(例如,重排緩存等)。以這種方式,在代碼904執(zhí)行的過程中處理器核900被變換,至少依據(jù)解碼器所生成的輸出、寄存器重命名邏輯910所利用的硬件寄存器和表格、以及經(jīng)執(zhí)行邏輯914修改的任何寄存器(未示出)。
雖然圖9中未加以展示,處理器在具有處理器核900的芯片上可以包括其他元件,在此參照圖7示出并描述了其中的至少一部分。例如,如圖7中所示,處理器可以包括存儲器控制邏輯連同處理器核900一起。所述處理器可以包括I/O控制邏輯和/或可以包括與存儲器控制邏輯整合的I/O控制邏輯。
注意,就在此所提供的示例,可以按照兩個、三個、或更多個網(wǎng)元對相互作用進行描述。然而,這樣做只是出于清楚和示例的目的。在某些情況下,通過僅參照有限數(shù)量的網(wǎng)元,可以更容易描述給定流程組的功能中的一個或多個。應(yīng)當理解的是,通信系統(tǒng)10a以及10b及其教導(dǎo)是隨時可擴展的并且可以容納大量部件以及更加復(fù)雜/精細的安排和配置。相應(yīng)地,所提供的示例不應(yīng)該限制范圍或禁止如潛在應(yīng)用于無數(shù)其他架構(gòu)中的通信系統(tǒng)10a以及10b的廣泛教導(dǎo)。
同樣重要的是注意,前述流程圖(即,圖3至圖6)中的操作僅展示了可以由通信系統(tǒng)10a以及10b或在其內(nèi)部執(zhí)行的可能的相關(guān)場景和圖案中的一部分。在適當?shù)那闆r下可以刪除或移除這些操作中的一部分,或者在不背離本公開范圍的情況下可以顯著地修改或改變這些操作。另外,多個這種操作被描述為與一個或多個附加操作共同或并行執(zhí)行。然而,這些操作的定時可以顯著地改變。已經(jīng)出于示例和討論的目的提供了前述操作流程。通信系統(tǒng)10a以及10b提供了的本質(zhì)靈活性,因為在不背離本公開的教導(dǎo)的情況下,可以提供任何適當?shù)陌才?、時間順序、配置、和定時機制。
雖然已經(jīng)參照了具體安排和配置對本實施了進行了詳細描述,在不背離本公開范圍的情況下,這些示例配置和安排可以顯著地改變。而且,可以基于具體需要和實現(xiàn)方式組合、分離、除去、或添加某些部件。另外,雖然參照便于通信過程的具體元件和操作對通信系統(tǒng)10a以及10b進行了展示,可以用任何實現(xiàn)通信系統(tǒng)10a以及10b的期望功能的合適架構(gòu)、協(xié)議、和/或進程來替代這些元件和操作。
許多其他的改變、替代、變更、改變、和修改對本領(lǐng)域技術(shù)人員來說是確定的,并且旨在本公開包含了落在所附權(quán)利要求書的范圍內(nèi)的所有的改變、替代、變更、改變、和修改。為了幫助美國專利及商標局(USPTO)以及另外本申請發(fā)布的任何專利的任何讀者理解本申請所附權(quán)利要求書,申請人希望注意本申請人:(a)并不旨在所附權(quán)利要求中的任一項因為在本申請的申請日存在而援引35U.S.C.第112章第(6)段,除非在特定權(quán)利要求中確切地使用了字詞“用于……的裝置”或“用于……的步驟”;并且(b)并不旨在通過本說明書中未在所附權(quán)利要求書中反映出的任何陳述以任何方式限制本公開。
其他說明和示例
示例C1是至少一種機器可讀存儲介質(zhì),具有一條或多條指令,其中,所述指令當由至少一個處理器執(zhí)行時使得所述至少一個處理器:在電子設(shè)備中的飛地處接收不可信數(shù)據(jù),將所述不可信輸入數(shù)據(jù)與所述飛地的至少一部分隔離,使用認證信道將所述不可信數(shù)據(jù)的至少一部分傳達至完整性驗證模塊,并且從所述完整性驗證模塊接收對所述不可信數(shù)據(jù)的數(shù)據(jù)完整性驗證。
在示例C2中,如示例C1所述的主題可以可選地包括:其中,所述完整性驗證模塊執(zhí)行數(shù)據(jù)完整性認證功能以驗證所述不可信數(shù)據(jù)。
在示例C3中,如示例C1和C2中任一項所述的主題可以可選地包括:其中,所述數(shù)據(jù)完整性認證功能包括數(shù)據(jù)認證策略。
在示例C4中,如示例C1至C3中任一項所述的主題可以可選地包括:其中,所述數(shù)據(jù)完整性認證功能包括白名單。
在示例C5中,如示例C1至C4中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于所述電子設(shè)備中。
在示例C6中,如示例C1至C5中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于所述飛地中。
在示例C7中,如示例C1至C6中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于遠離所述電子設(shè)備的服務(wù)器中。
在示例C8中,如示例C1至C7中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于遠離所述電子設(shè)備的云中。
在示例A1中,一種裝置可以包括完整性認證模塊,其中,所述完整性認證模塊被配置成用于:接收來自電子設(shè)備中的飛地的不可信數(shù)據(jù),其中,所述不可信數(shù)據(jù)與所述飛地的至少一部分隔離,其中,使用認證信道傳達所述不可信數(shù)據(jù);執(zhí)行對所述不可信輸入數(shù)據(jù)的數(shù)據(jù)完整性驗證;以及將所述數(shù)據(jù)完整性驗證的結(jié)果返回至所述飛地。
在示例A2中,如示例A1所述的主題可以可選地包括:其中,所述完整性驗證模塊進一步被配置成用于執(zhí)行數(shù)據(jù)完整性認證功能以驗證所述不可信數(shù)據(jù)。
在示例A3中,如示例A1和A2中任一項所述的主題可以可選地包括:其中,所述數(shù)據(jù)完整性認證功能包括數(shù)據(jù)認證策略。
在示例A4中,如示例A1至A3中任一項所述的主題可以可選地包括:其中,所述數(shù)據(jù)完整性認證功能包括白名單。
在示例A5中,如示例A1至A4中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于所述電子設(shè)備中。
在示例A6中,如示例A1至A5中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于所述飛地中。
在示例A7中,如示例A1至A6中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于遠離所述電子設(shè)備的服務(wù)器中。
在示例A8中,如示例A1至A7中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于遠離所述電子設(shè)備的云中。
示例M1是一種方法,所述方法包括:在電子設(shè)備中的飛地處接收不可信數(shù)據(jù);將所述不可信輸入數(shù)據(jù)與所述飛地的至少一部分隔離;使用認證信道將所述不可信數(shù)據(jù)的至少一部分傳達至完整性驗證模塊;以及從所述完整性驗證模塊接收對所述不可信輸入數(shù)據(jù)的數(shù)據(jù)完整性驗證。
在示例M2中,如示例M1所述的主題可以可選地包括:其中,所述完整性驗證模塊執(zhí)行數(shù)據(jù)完整性認證功能以驗證所述不可信數(shù)據(jù)。
在示例M3中,如示例M1和M2中任一項所述的主題可以可選地包括:其中,所述數(shù)據(jù)完整性認證功能包括數(shù)據(jù)認證策略。
在示例M4中,如示例M1至M3中任一項所述的主題可以可選地包括:其中,所述數(shù)據(jù)完整性認證功能包括白名單。
在示例M5中,如示例M1至M4中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于所述電子設(shè)備中。
在示例M6中,如示例M1至M5中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于遠離所述電子設(shè)備的服務(wù)器中。
在示例M7中,如示例M1至M6中任一項所述的主題可以可選地包括:其中,所述完整性認證模塊位于遠離所述電子設(shè)備的云中。
示例S1是一種用于使用飛地認證進行數(shù)據(jù)驗證的系統(tǒng),所述系統(tǒng)包括完整性驗證模塊,所述完整性驗證模塊被配置成用于:在電子設(shè)備中的飛地處接收不可信數(shù)據(jù);將所述不可信輸入數(shù)據(jù)與所述飛地的至少一部分隔離;使用認證信道將所述不可信數(shù)據(jù)的至少一部分傳達至完整性驗證模塊;以及從所述完整性驗證模塊接收對所述不可信輸入數(shù)據(jù)的數(shù)據(jù)完整性驗證。
在示例S2中,如示例S1所述的主題可以可選地包括:其中,所述完整性驗證模塊執(zhí)行數(shù)據(jù)完整性認證功能以驗證所述不可信數(shù)據(jù),并且所述數(shù)據(jù)完整性認證功能包括數(shù)據(jù)認證策略。
示例X1是一種機器可讀存儲介質(zhì),包括用于實現(xiàn)如示例A1至A8或M1至M7中任一項所述的方法或裝置的機器可讀指令。示例Y1是一種設(shè)備,包括用于執(zhí)行如示例方法M1至M7中任何一種方法的裝置。在示例Y2中,如示例Y1所述的主題可以可選地包括用于執(zhí)行所述方法的裝置,所述裝置包括處理器和存儲器。在示例Y3中,如示例Y2所述的主題可以可選地包括所述存儲器,所述存儲器包括機器可讀指令。