TWI393021B - 用於防止攻擊之方法、資料處理系統及裝置 - Google Patents
用於防止攻擊之方法、資料處理系統及裝置 Download PDFInfo
- Publication number
- TWI393021B TWI393021B TW095114583A TW95114583A TWI393021B TW I393021 B TWI393021 B TW I393021B TW 095114583 A TW095114583 A TW 095114583A TW 95114583 A TW95114583 A TW 95114583A TW I393021 B TWI393021 B TW I393021B
- Authority
- TW
- Taiwan
- Prior art keywords
- encrypted
- decrypted
- job
- instruction
- codes
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Description
本發明大體言之係關於一種改良之資料處理系統且特定言之係關於一種用於解密處理器指令之方法及裝置。更特定言之,本發明提供於一經加密指令動力架構中對處理器指令之快速解密。
網際網路為一組藉由閘道器連接在一起之電腦網路(可能不相似),該等閘道器可處理自一發送網路協定至一由接收網路使用之協定的資料傳輸及訊息轉換。當"Internet(網際網路)一詞"首字母大寫時,其意指使用TCP/IP協定組之網路及閘道器。
網際網路作為資訊及娛樂來源已成為一種文化裝配。許多公司正建立網際網路網站作為其營銷努力不可缺少之一部分,以此告知消費者該公司提供之產品或服務或提供其他意在產生品牌忠誠度之資訊。許多聯邦政府、州政府、及地方政府機構亦為通告之目的使用網際網路網站,特別是必須與社會幾乎所有部門交往之機構(例如美國國稅局及國務卿)。提供資訊嚮導及/或在線公眾記錄之可搜尋資料庫可降低運形成本。此外,網際網路作為一種商業交易媒體正變得愈來愈流行。
目前,在網際網上路傳輸資料最常用之方法為使用全球資訊網(World Wide Web)環境,亦簡稱"web"。亦存在其他用於傳輸資訊之網際網路資源,例如文件傳輸協定(FTP)及高佛查詢系統(Gopher),但其尚未達到全球資訊網之風行度。在全球資訊網環境中,伺服器及用戶端使用超文件傳送協定(HTTP)執行資料處理,超文件傳送協定為一種處理各種資料檔案(例如文字、靜態圖形影像、音訊、運動視訊等)之傳輸的習知協定。各種資料檔案中之資訊被格式化以便藉由一種標準頁面描述語言-超文件標記語言(HTML)呈現給使用者。除標準呈現格式化外,HTML允許開發者列出到達由統一資源定位器(URL)所識別之其它網際網路資源的"鏈接"。URL為一種特殊的語法識別器,其界定一至特定資訊之通訊路徑。用戶端可接取之每一資訊邏輯組塊(稱作一"頁"或一"網頁")由一UFL識別。該UFL提供一種全球之尋找及接取該訊息之一致方法,未必是為使用者,而主要是為使用者之網路"瀏覽器"。瀏覽器為一程式,其可提交對識別器(例如URL)識別之資訊的請求。一使用者可經由一圖形使用者介面(GUI)輸入一領域名稱以便瀏覽器接取一內容資源。一領域名稱系統(DNS)自動將該領域名稱轉換為網際網路協定(IP)地址,該項服務藉由在一資料庫中查詢該領域名稱而將使用者輸入之符號名稱翻譯為一IP地址。
隨著網際網路連接的增加,電腦系統經受著愈來愈多來自使用更加複雜攻擊方法之個人之攻擊。由於連接至不安全網路(包括企業內部網路及網際網路)之系統的數目增加,潛在損害亦增加了。對單一作業系統(微軟視窗系統)之依賴性、及大量系統對單一處理器架構(英特爾)之依賴性加劇了這一問題的危害性,且使得可能造成全球範圍內之攻擊以致侵染大量電腦系統。
舉例而言,目前可用之解決辦法包括病毒偵測軟體、防火牆、政府推動計畫、安全政策及評估系統。病毒偵測軟體為程式或程式碼,其用於掃描經由網際網路連接及檔案系統輸入之資料以防超過64000種已知病毒中的一些,以及應用基於規則之工具掃描以防"類病毒"程式。防火牆用於阻止從非特定允許之資源存取網路。
正在實施來自美國政府機構之廣泛推動計畫,例如NSA、NIAP、NIST、FIPS。NSTISSP第11條為管理政府對IT產品之獲取的安全政策。另外,IT系統通用準則(Common Criteria;CC)評估亦獲得國際社會支持。
從20世紀80年代起,美國政府機構確立了旨在增加電腦系統安全水平之推動計畫。其最早的稱為"橙皮書(Orange Book)"的嘗試始於NSA之"彩虹系列",該書獲其他政府之評價,且出現了稱為通用標準之推動計畫,用於發展成員國政府公認之一組"通用"安全標準。該努力目前正收到快速增加之來自優勢西方成員國之支持,且成員從7個國家增加至13個國家,此外日本、中國、韓國及其他亞洲國家亦對此表現出興趣。
最早發佈於1996年之通用標準v1.0,現為v2.2(2004年),已被廣泛接受,並獲得了ISO識別(ISO/IEC 15408,1999)。該標準使用安全概念之等級框架及術語,於消費者、開發者及評估者/檢驗者之角度,提供對安全性的廣泛論述。該標準概括了自設計之始至隨後之佈置的的廣泛安全方法。該標為一快速演進之標準,可迎合不斷變化之國際安全需求。
安全標準之接受過程中最具影響力的事件為NSTISSP主席頒佈之NSTISSP no.11指令。2000年2月規定,凡2002年7月1日以後獲取之需要資訊保證之IT系統,須經通用標準或FIPS密碼模組驗證小組認證。由此導致許多公司向美國政府機構出售IT設備以啟動認證方案。另外,關鍵基礎設施保護總統決議令(PDD-63)鼓勵與關鍵基礎設施作業關聯之任何IT系統作業採用CC認證。
該等目前之解決方法均具有缺點。舉例而言,病毒防護方案僅對習知病毒有效。新病毒大多不能偵測,因基於規則之技術幾乎完全無效。因此病毒之偵測發生於事實之後。在此情況下,攻擊於偵測到之前已著手進行生且常已經產生損害。
出售病毒防護裝置之公司需要偵測新病毒或舊病毒之變體,評估損害潛能,發展相容偵測演算法,通知使用者,並更新病毒防護產品。該程序耗時較長,其完成可佔用幾小時到一週之時間。
病毒防護裝置使用者必須連接至網際網路以下載新的病毒防護裝置,從而將其電腦暴露在攻擊下。必須下載防護裝置,更新病毒防護程式,並掃描系統尋找病毒。掃描電腦之過程可佔用若干小時,進一步限制了勞動力的生產效率。甚至未感染病毒之電腦的使用者亦可能在其電腦系統的使用方面遭受顯著損失。系統遭感染之使用者可能遭受自幾小時至幾星期之損失。
防火牆含有一缺點,因其依賴於使用IP地址執行可信資源選取的阻塞網路交通。通過可信資源(例如經由瀏覽器下載之電子郵件及檔案)傳遞之攻擊不受防火牆防護裝置的影響。對於掃描尋找脆弱點(諸如由失誤的程式設計造成網路埠被開放)的攻擊者,防火牆的保護亦無效。
至於推動計畫、獲得政策及通用標準,該等方案均包含弱點。舉例而言,NSTISSP no.11大力鼓勵廣泛接收通用標準,但是該程序成本巨大且較耗時。該標準仍處於演進過程中且為完成認證尚且需專業化技能。其結果尚未得到證實,且近期之攻擊成功展示出該模式中之弱點,尤其是脆弱性分析。獲得認證之程序對較低保證水平可持續6個月而對較高保證水平可持續3年。
吾人已強烈認識到,電腦系統力求防止攻擊之脆弱性分析僅能提供攻擊不會成功之保證水平。該分析嚴重依賴於攻擊潛能之概念對比設計於系統內之安全功能之力量的結果。該等措施為處於其定義初期之被動方法、充其量為主觀方法,導致近期被全球範圍內成功攻擊證明為無效之安全方法。
因此,任何改良對病毒及蠕蟲攻擊脆弱性之防止的解決方法,將需要一種獨立作業系統方法、裝置及電腦指令,用以防止某些先前不可防止之電腦攻擊。
本發明提供一種用於一獨立作業系統以防止某些先前不可防止之電腦攻擊的方法及裝置。本發明之示範性態樣詳述一種使用一處理器之現存指令集實施指令解密的有效方法。該處理器架構中對顯著阻礙進行解決以限制對處理器執行時序之影響。本實施例不改變處理器核心中之指令執行時序。任何額外處理重疊於現存作業中,故對處理器通量的影響最小。
參看諸圖,尤其參看圖1,其描繪了依據本發明一較佳實施例之可實施本發明之資料處理系統的圖示表現。描述中,電腦100包括系統單元102、視訊顯示器端子104、鍵盤106、儲存設備108(其可包括軟碟機及其他類型之永久式及抽取式儲存媒體)、及滑鼠110。個人電腦100可包括額外輸入設備,例如操縱桿、觸控板、觸摸式顯示幕、軌跡球、麥克風等。電腦100可使用任何合適之電腦(例如IBM eServerT M
電腦或IntelliStation電腦)實施,其為位於Armonk,New York之國際商務機器公司之產品。儘管所描繪之表現展示了一電腦,然而本發明之其他實施例可實施於其他類型之資料處理系統諸如一網路電腦中。電腦100較佳亦包括一圖形使用者介面(GUI),其可藉由駐於電腦100中之電腦可讀媒體中之系統軟體加以實施.
現參看圖2,其展示了一可實施本發明之資料處理系統的方塊圖。資料處理系統200為一電腦實例(例如圖1中之電腦100),其中置有執行本發明程序之程式的碼或指令。資料處理系統200採用周邊元件互聯(PCI)區域匯流排架構。儘管描述之實施例採用PCI匯流排架構,然而亦可使用其他匯流排架構,如加速圖形埠(AGP)及工業標準架構(ISA)。處理器202及主記憶體204經由PCI橋接器208連接至PCI區域匯流排206。PCI橋接器208亦可包括一積體記憶體控制器及用於處理器202之快取記憶體。可經由直接組件互聯或經由內插連接器進行PCI區域匯流排206之額外連接。
在描述之實施例中,區域網絡(LAN)轉接器210、小電腦系統界面SCSI主機匯流排轉接器212、及擴充匯流排介面214藉由直接組件連接而連接至PCI區域匯流排206。相反,音訊轉接器216、圖形轉接器218、及音訊/視訊轉接器219藉由插入擴充槽之內插板而連接至PCI區域匯流排206。擴充匯流排214為鍵盤及滑鼠轉接器220、數據機222、及額外記憶體224提供連接。SCSI主機匯流排轉接器212為硬碟驅動器226、磁帶驅動器228、及CD-ROM驅動器230提供連接。典型PCI區域匯流排實施例支持3個或4個PCI擴充槽或內插連接器。
圖2中,一作業系統運行於處理器202上且用於協調資料處理系統202內之各種組件並提供對其的控制。該作業系統為市售系統,如購自Microsoft Corporation公司之Windows XPT M
。一物件導向之程式設計系統例如JavaT M
程式設計系統可與該作業系統一起運行,且可提供自JavaT M
程式或執行於資料處理系統200上之應用程式至該作業系統的呼叫。JavaT M
為Sun Microsystems,Inc.公司之商標。用於作業系統之指令、物件導向程式設計系統、及應用程式或程式位於儲存設備(如硬碟驅動器226)上,且可裝載於主記憶體204上以供處理器202執行。
一般技術者應理解,圖2中之硬體可視實施例而變化。其他內置硬體或周邊設備例如快閃唯讀記憶體(ROM)、等效非揮發性記憶體、或光碟機等,可用於補充或替代圖2描述之硬體。同時,本發明之程序可應用於多處理器資料處理系統。
舉例而言,若可資料處理系統200可選地組態為網絡電腦,則其可不包括SCSI主機匯流排轉接器212、硬碟驅動器226、磁帶驅動器228、及CD-ROM 230。於該情形下,電腦(準確而言係客戶端電腦)包括某種網路通訊介面,諸如LAN轉接器210、數據機222等。舉另一實例而言,資料處理系統200可為一獨立系統,其經組態以可不依靠某種網路通訊介面而啟動,無論資料處理系統200是否包含某種網路通訊介面。再舉另一實例而言,資料處理系統200可為個人數位助理(PDA),其經組態有ROM及/或快閃ROM,以提供非揮發性記憶體來儲存作業系統檔案及/或使用者生成之資料。
圖2描述之實例及以上描述之實例並意指架構限制。舉例而言,資料處理系統200除採取PDA形式外,亦可為筆記型電腦或掌上型電腦。資料處理系統200亦可為一公共資訊查詢站或一網路設備。
本發明之程序由處理器202使用電腦執行之指令加以完成,其可位於一記憶體例如主記憶體204或記憶體224中,或在一或多個之周邊設備226-230上。
參看圖3,其展示了可實施本發明之資料處理系統的方塊圖。資料處理系統300為一電腦實例(例如圖1中之電腦100),其中置有執行本發明之程序之碼或指令。在描述之實施例中,資料處理系統300採用一包括一北橋及記憶體控制器集線器(MCH)308、及一南橋及輸入/輸出(I/O)控制器集線器(ICH)310之集線器架構。處理器302、主記憶體304及圖形處理器318連接至MCH 308。舉例而言,圖形處理器318可通過一加速圖形埠(AGP)連接至MCH。
在描述之實施例中,區域網路(LAN)轉接器312、音訊轉接器316、鍵盤及滑鼠轉接器320、數據機322、唯獨記憶體(ROM)324、硬碟驅動器(HDD)326、CD-ROM驅動器330、通用序列匯流排(USB)埠及其他通訊埠332、及PCI/PCIe設備334可連接至ICH 310。舉例而言,PCI/PCIe設備可包括乙太網路轉接器、內插卡、用於筆記型電腦之PC卡等。PCI使用卡匯流排控制器而PCIe不使用。ROM 324舉例而言可為一快閃二進位輸入/輸出系統(BOIS)。硬碟驅動器326及CD-ROM驅動器330可使用例如一積體驅動電子(IDE)或串列高級技術附件(SATA)介面。一超級I/O(SIO)設備336可連接至ICH 310。
描述一作業系統運行於處理器302上且用於協調圖3之資料處理系統300內之各種組件提供對其的控制。該作業系統為市售系統,如購自Microsoft Corporation公司之Windows XPT M
系統。一物件導向程式設計系統例如JavaT M
程式設計系統可與該作業系統一起運行,且可提供自JavaT M
程式或執行於資料處理系統300上之應用程式至該作業系統的呼叫。"JAVA"為Sun Microsystems,Inc.公司之商標。
用於作業系統之指令、物件導向程式設計系統、及應用程式或程式位於儲存設備(例如硬碟驅動器326)上,且可裝載於主記憶體304上以供處理器302執行。本發明之程序由處理器302使用電腦執行之指令加以完成,其可位於一記憶體例如主記憶體304或記憶體324中或一或多個周邊設備326及330中。
一般技術者應理解,圖3中之鍵盤可視實施例而變化。亦可使用其他內部硬碟或周邊設備例如快閃記憶體、等效非揮發性記憶體、或光碟機等,以補充或替代圖3描述之硬碟。同時本發明之程序可應用於多處理器資料處理系統中。
舉例而言,資料處理系統300可為裝配有提供用於儲存作業系統檔案及/或使用者生成資料之非揮發性記憶體之個人數位助理(PDA)。圖3描述之實例及以上描述之實例並非意指架構限制。舉例而言,資料處理系統300除採取一PDA形式之外亦可為一小型電腦、膝上型電腦或電話設備。
本發明認識到,病毒或蠕蟲發起攻擊之能力取決於作業系統及指令架構。藉由改變該等組件之任意一個,可減弱攻擊方法。由於該等攻擊主要依賴於處理器架構,故使用非英特爾架構之處理系統不易直接感染針對於英特爾架構發起之攻擊。本發明實施較佳,於指令管線中L2與L1指令快取記憶體間提供一可程式化解密單元。此可程式化解密單元在經架構之指令進入L1指令快取記憶體時完成指令解密。
現在參看圖4,其為一說明依據本發明一較佳實施例之指令管線中可程式化解密單元中所用組件的圖。如所說明,可信電腦基400包括可信載入器402,其在常位於碟408上之碼影像410上執行載入/鏈接作業404。一可信電腦基(TCB)為一電腦系統上之可信部分。電腦之該部分已經證實沒有會影響系統安全之惡意碼或組件。可信電腦基400為資料處理系統之據信不含惡意碼(例如病毒或蠕蟲)的一部分。
為解密選出指令時,指令經由可信電腦基400中之重定位映射406加以定位。在此示範性實施例中,該等指令提取自位於記憶體412中之L2資料及指令快取記憶體416,並使用記憶體解密陣列414解密。記憶體解密陣列414使用圖6及圖7中將描述之方法解密指令。然後,經加密指令由一指令執行單元接收,例如由處理器418或由L1快取記憶體420接收,儘管任何指令執行單元均可接收經解密之指令。任何未由可信載入器402載入之指令流不可接收正確編碼,且解密後將導致非法指令中斷。此可保護可信電腦基400遠離任何所載入及執行的位於安全模式之外的碼,例如經由對系統脆弱性之利用而載入之碼。另外,本發明阻止特權升級,其為利用脆弱性改變特權位準之碼。
參看圖5,其為說明一依據本發明一較佳實施例的用於主作業碼的簡化可程式化解密單元500的圖。主記憶體陣列506經設計以將提取自L2資料及指令快取記憶體504之指令解密至L1指令快取記憶體502。隨著提取自L2資料及指令快取記憶體504之指令進入L1指令快取記憶體502,主作業碼508之作業碼位元0-5被用作主記憶體陣列506之位址位元0-5。主記憶體陣列506經組態以接收位址位元0-5、解密該等位元、並提供輸出資料位元0-5至經解密之主作業碼510。指令位元6-31 512直接傳送至指令位元6-31 514。
主記憶體陣列506可為一更大記憶體陣列之一部分。作為一更大記憶體陣列之一部分,主記憶體陣列506可以超級監督器模式、監督器模式、或使用者模式運作。該等模式或位準允許特權位準解密,其可防止經由對作業系統或超級監督器脆弱性之利用而產生特權升級。另外,一預設模式(未圖示)允許指令未經解密即通過。主記憶體陣列506擬定於不同時刻,且每一特權模式或位準可由上述位準擬定。超級監督器模式於超級監督器執行之前由可繞性i&p串列(FipS)(Flexible i&p Series)碼經由串列通訊(SCOM)(Serial COMmunications)埠擬定,監督器模式於處理器上之作業系統執行之前擬定,且使用者模式於使用者模式執行之前自監督器模式擬定。主記憶體陣列506可作業於任何模式。由於指令在進入L1指令快取記憶體502前解密,故該指令快取記憶體之作業優勢得以保存。
現參看圖6,其說明依據本發明之一較佳實施例的一主要及一次級作業碼解密單元之方塊圖。舉例而言,在主作業碼空間緊密之架構例如PowerT M
架構中,必然要使用次級作業碼映射以增加阻止更複雜攻擊必需之功能強度(SOF)。
作業碼解密單元600中之主記憶體陣列606及次級記憶體陣列608經擬定以將提取自L2資料及指令快取記憶體604之指令解密至L1指令快取記憶體602。由於指令提取自L2資料及指令快取記憶體604,故用於主作業碼610之作業碼位元0-5及用於次級作業碼612之作業碼位元21-30分別用作主記憶體陣列606及次級記憶體陣列608之位址位元。主記憶體陣列606經組態以接收位址位元0-5、解密該等位元、並提供輸出資料位元0-5至經解密主作業碼614。次級記憶體陣列608經組態以接收位址位元21-30、解密該等位元、並提供輸出資料位元21-30至經解密次級作業碼616。在此實例中,次級作業碼612僅在主作業碼610等於Ox31,即為該作業碼之六進位表現時方使用。次級作業碼612亦可當次級作業碼612空間很稀疏(少於50%)時及當指令提供大量排列時使用。指令位元618及620不經解密且直接自加密位元618及620傳送至解密位元622及624。
圖6描述具有位址線、主作業碼610及次級作業碼612之記憶體陣列,其由L2資料及指令快取記憶體604呈出,當資料鎖定在該等位址線上時,資料匯流排呈出解密指令。該等解密指令之呈出描述為驅動至主記憶體陣列606之主作業碼610位元0-5、及驅動至次級記憶體陣列608之次級作業碼612位元21-30。
在該等說明性實例中,主記憶體陣列606及次級記憶體陣列608經配置為3個區段,超級監督器模式、監督器模式、及使用者模式。此將允許特權位準解密,其可防止經由對作業系統或超級監督器脆弱性之利用而產生的特權升級。另外允許一傳送未經解密指令之預設模式(未圖示)。主記憶體陣列606及次級記憶體陣列608擬定於不同時刻,且每一特權位準可由上述位準擬定。超級監督器模式於超級監督器執行之前由FipS編碼經由SCOM埠擬定,監督器模式於處理器上之作業系統執行之前擬定,且使用者模式於使用者模式執行之前自監督器模式擬定。主記憶體陣列606及次級記憶體陣列608皆可以任何模式或任何模式組合運作。由於指令於進入L1指令快取記憶體602前解密,故指令快取記憶體之作業優勢得以保存。
因此,本發明提供一種於獨立作業系統中用於防止某些先前不可防止之攻擊的方法及裝置。提供了一種使用處理器之現存指令集執行指令解密之有效方法。該處理器架構中對顯著阻礙進行解決以限制對處理器執行時序之影響。指令執行時序在處理器核心中不被改變。任何額外處理重疊於現存作業中,故對處理器通量的影響最小。
對本發明之描述目的在於提供說明及描述,而非以所揭示形式窮舉或限制本發明。一般技術者顯見多種修改或變化。實施例之選擇及描述意在以最佳方式解釋本發明之原理及實際應用,及使其他一般技術者理解本發明,其各種實施例及其各種修改均適用於所考慮之特定應用。
100...電腦
102...系統單元
104...視訊顯示器端子
106...鍵盤
108...存儲設備
110...滑鼠
200...資料處理系統
202...處理器
204...主記憶體
206...PIC區域匯流排
208...PIC橋接器
210...區域網轉接器
212...主機匯流排轉接器
214...擴充匯流排介面
216...音訊轉接器
218...圖形轉接器
219...音訊/視訊轉接器
220...滑鼠轉接器
222...數據機
224...額外記憶體
226...硬碟驅動器
228...磁帶驅動器
230...CD-ROM驅動器
300...資料處理系統
302...處理器
304...主記憶體
308...記憶體控制器集線器(MCH)
310...輸入/輸出控制器集線器(ICH)
312...區域網路轉接器
316...音訊轉接器
318...圖形處理器
320...鍵盤及滑鼠轉接器
322...數據機
324...唯獨記憶體(ROM)
326...硬碟驅動器
330...CD-ROM驅動器
332...通用序列匯流排(USB)埠及其他通訊埠
334...PCI/PCIe設備
336...超級I/O(SIO)設備
400...可信電腦基
402...可信載入器
404...載入/鏈接作業
406...重定位映射
408...碟
410...碼影像
412...記憶體
414...記憶體解密陣列
416...L2資料及指令快取記憶體
418...處理器
420...L1快取記憶體
500...可程式化解密單元
502...L1指令快取記憶體
504...L2資料及指令快取記憶體
506...主記憶體陣列
508...主作業碼
510...經解密主作業碼
512...指令位元6-31
514...指令位元6-31
600...作業碼解密單元
602...L1指令快取記憶體
604...L2資料及指令快取記憶體
606...主記憶體陣列
608...次級記憶體陣列
610...主作業碼
612...次級作業碼
614...經解密主作業碼
616...經解密次級作業碼
618...加密位元
620...加密位元
622...解密位元
624...解密位元
圖1為一可實施本發明之資料處理系統的圖示表現;圖2為一依據本發明一較佳實施例之可實施為一伺服器之資料處理系統的方塊圖;圖3為一可實施本發明之資料處理系統的方塊圖;圖4為展示指令管線中可程式化解密單元中所用組件的方塊圖;圖5為展示一用於主作業碼之簡化可程式化解密單元的方塊圖,其依據本發明之一較佳實施例加以描繪;及圖6為展示依據本發明一較佳實施例之一主及一次級作業碼解密單元的方塊圖。
200...資料處理系統
202...處理器
204...主記憶體
206...PIC區域匯流排
208...PIC橋接器
210...區域網轉接器
212...主機匯流排轉接器
214...擴充匯流排介面
216...音訊轉接器
218...圖形轉接器
219...音訊/視訊轉接器
220...滑鼠轉接器
222...數據機
224...額外記憶體
226...硬碟驅動器
228...磁帶驅動器
230...CD-ROM驅動器
Claims (20)
- 一種於資料處理系統中用以防止攻擊之方法,該方法包含:提取一經加密架構指令;將該經加密架構指令分離為一或多個經加密作業碼及一組指令位元;使用複數種模式中之一種來解密該一或多個經加密作業碼以形成一或多個經解密作業碼;將該一個或多個經解密之作業碼於該組指令位元結合,形成一經解密架構指令;及傳送該經解密架構指令至一指令執行單元。
- 如請求項1之方法,其中該一或多個經加密作業碼包括一第一經加密作業碼,且其中使用一種或複數種模式來解密該一個或多個經加密作業碼包括:使用一第一記憶體解密陣列來解密該第一經加密作業碼以形成第一經解密作業碼。
- 如請求項2之方法,其中該一或多個經加密作業碼進一步包括一第二經加密作業碼,且其中使用複數種模式中之一種來解密該一或多個經加密作業碼進一步包括:使用一第二記憶體解密陣列來解密該第二經加密作業碼以形成第二解密作業碼。
- 如請求項3之方法,其中將該一或多個經解密作業碼與該組指令位元結合包括:將該第一經解密作業碼、該第二經解密作業碼、及該 組指令位元結合形成該經解密架構指令。
- 如請求項1之方法,其中該複數種模式為一超級監督器模式、一監督器模式、一使用者模式、或一預設模式中之至少一者。
- 如請求項1之方法,其中該指令執行單元為一處理器或一記憶體中之至少一者。
- 如請求項1之方法,其中該一或多個經加密作業碼為位址線。
- 如請求項1之方法,其進一步包括:若複數種模式中之一種為預設模式,則繞過該等分離、加密、及結合之步驟。
- 如請求項8之方法,其中該複數種模式為一超級監督器模式、一監督器模式、一使用者模式、或一預設模式中之至少一者。
- 如請求項7之方法,其中該指令執行單元為一處理器或一記憶體中之至少一者。
- 如請求項7之方法,其中該一或多個經加密作業碼為位址線。
- 如請求項7之方法,其中該處理器單元進一步執行一組指令,以當該複數種模式中之該種為一預設模式時繞過該等分離、解密及結合指令。
- 一資料處理系統,包含:一匯流排系統;一連接至該匯流排系統之通訊系統; 一連接至該匯流排系統之記憶體,其中該記憶體包括一組指令;一指令執行單元;及一連接至該匯流排系統之處理單元,其中該處理單元執行該組指令,以提取一經加密架構指令;將該經加密架構指令分離為一或多個經加密作業碼及一組指令位元;使用複數種模式中之一種解密該一或多個經加密作業碼以形成一或多個經解密作業碼;將該一或多個經解密作業碼與該組指令位元結合形成一經解密架構指令;及傳送該經解密架構指令至一指令執行單元。
- 如請求項13之資料處理系統,其中該一或多個經加密作業碼包括一第一經加密作業碼,且其中執行該組指令以使用一種或複數種模式來解密該一或多個經加密作業碼,可使用一第一記憶體解密陣列來解密該第一經加密作業碼以形成第一經解密作業碼。
- 如請求項14之資料處理系統,其中一或多個經加密作業碼進一步包括一第二經加密作業碼,且其中執行該組指令以使用複數種模式中之一種來解密一或多個經加密作業碼,可進一步使用一第二記憶體解密陣列來解密該第二經加密作業碼以形成第二經解密作業碼。
- 如請求項15之資料處理系統,其中執行該組指令以將該一或多個經解密作業碼與該組指令位元結合,結合該第一經解密作業碼、該第二經解密作業碼、及該組指令位元以形成該經解密架構指令。
- 一種防止攻擊之裝置,該裝置包括:用以提取一經加密架構指令之提取構件;用以分離該經加密架構指令為一或多個經加密作業碼及一組指令位元之分離構件;使用複數種模式中之一種用以解密該一或多個經加密作業碼以形成一或多個經解密作業碼之解密構件;用以結合該一或多個經解密作業碼與該組指令位元以形成一經解密架構指令之結合構件;及用以傳送該經解密架構指令至一指令執行單元之傳送構件。
- 如請求項17之裝置,其中該一或多個經加密作業碼包括一第一經加密作業碼,且其中使用複數種模式中之一種來解密該一或多個經加密作業碼之該解密構件包括:使用一第一記憶體解密陣列來解密該第一經加密作業碼以形成第一經解密作業碼之解密構件。
- 如請求項18之裝置,其中該一或多個經加密作業碼進一步包括一第二經加密作業碼,且其中使用複數種模式中之一種來解密該一或多個經加密作業碼之該加密構件進一步包括:使用一第二記憶體解密陣列來解密該第二經加密作業碼以形成第二解密作業碼之解密構件。
- 如請求項19之裝置,其中將該一或多個經解密作業碼與該組指令位元結合之該結合構件包括:用以結合該第一經解密作業碼、該第二經解密作業碼、及該組指令位元以形成該經解密架構指令之結合構件。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/114,552 US8086871B2 (en) | 2005-04-26 | 2005-04-26 | Method for fast decryption of processor instructions in an encrypted instruction power architecture |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200707254A TW200707254A (en) | 2007-02-16 |
| TWI393021B true TWI393021B (zh) | 2013-04-11 |
Family
ID=37188647
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW095114583A TWI393021B (zh) | 2005-04-26 | 2006-04-24 | 用於防止攻擊之方法、資料處理系統及裝置 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US8086871B2 (zh) |
| JP (1) | JP4831742B2 (zh) |
| CN (1) | CN100481102C (zh) |
| TW (1) | TWI393021B (zh) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7996901B2 (en) * | 2006-03-31 | 2011-08-09 | Lenovo (Singapore) Pte. Ltd. | Hypervisor area for email virus testing |
| US8892905B2 (en) * | 2007-03-21 | 2014-11-18 | Oracle International Corporation | Method and apparatus for performing selective encryption/decryption in a data storage system |
| US20090199014A1 (en) * | 2008-02-04 | 2009-08-06 | Honeywell International Inc. | System and method for securing and executing a flash routine |
| US8392762B2 (en) * | 2008-02-04 | 2013-03-05 | Honeywell International Inc. | System and method for detection and prevention of flash corruption |
| US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
| US8954752B2 (en) | 2011-02-23 | 2015-02-10 | International Business Machines Corporation | Building and distributing secure object software |
| US8578175B2 (en) | 2011-02-23 | 2013-11-05 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
| US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
| US8819446B2 (en) * | 2009-06-26 | 2014-08-26 | International Business Machines Corporation | Support for secure objects in a computer system |
| US9954875B2 (en) | 2009-06-26 | 2018-04-24 | International Business Machines Corporation | Protecting from unintentional malware download |
| WO2011156021A2 (en) | 2010-03-01 | 2011-12-15 | The Trustees Of Columbia University In The City Of New York | Systems and methods for detecting design-level attacks against a digital circuit |
| US9864853B2 (en) | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
| US9489520B2 (en) | 2011-09-29 | 2016-11-08 | Hewlett-Packard Development Company, L.P. | Decryption and encryption of application data |
| WO2014210277A1 (en) | 2013-06-28 | 2014-12-31 | The Trustees Of Columbia University In The City Of New York | Diversified instruction set processing to enhance security |
| US9292684B2 (en) | 2013-09-06 | 2016-03-22 | Michael Guidry | Systems and methods for security in computer systems |
| US10467405B2 (en) | 2017-04-25 | 2019-11-05 | Micro Focus Llc | Format preserving encryption of floating point data |
| US10452564B2 (en) * | 2017-04-25 | 2019-10-22 | Entit Software Llc | Format preserving encryption of object code |
| US12137081B2 (en) * | 2021-09-09 | 2024-11-05 | Texas Instruments Incorporated | Resource access in a microcontroller |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW546936B (en) * | 2000-10-27 | 2003-08-11 | Synq Technology Inc | Data encrypting/decrypting system in client/server structure and the method thereof |
| TW567702B (en) * | 2002-04-22 | 2003-12-21 | Taiwan Semiconductor Mfg | System and method integrating e-mail encryption/decryption |
| US6735310B1 (en) * | 1999-09-17 | 2004-05-11 | International Business Machines Corporation | Technique of password encryption and decryption for user authentication in a federated content management system |
| TW595183B (en) * | 2003-03-14 | 2004-06-21 | Acer Labs Inc | Crypto-system with an inverse key evaluation circuit |
| US6798884B1 (en) * | 1998-09-16 | 2004-09-28 | Murata Kikai Kabushiki Kaisha | Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS532541B2 (zh) * | 1975-02-03 | 1978-01-28 | ||
| JPH1091430A (ja) * | 1996-09-13 | 1998-04-10 | Matsushita Electric Ind Co Ltd | 命令解読装置 |
| JP2001034474A (ja) | 1999-07-16 | 2001-02-09 | Nec Corp | データ処理装置及びデータ処理方法 |
| JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
| JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
| US7039814B2 (en) * | 2001-03-07 | 2006-05-02 | Sony Corporation | Method for securing software via late stage processor instruction decryption |
| US7073059B2 (en) * | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
| US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
| US7237058B2 (en) * | 2002-01-14 | 2007-06-26 | Netlogic Microsystems, Inc. | Input data selection for content addressable memory |
| US20040117639A1 (en) * | 2002-12-17 | 2004-06-17 | Mowery Keith R. | Secure driver |
| JP2004287590A (ja) * | 2003-03-19 | 2004-10-14 | Matsushita Electric Ind Co Ltd | デバッグシステム、マイクロプロセッサ及びデバッガ |
| JP2005018434A (ja) | 2003-06-26 | 2005-01-20 | Toshiba Corp | マイクロプロセッサ |
| US7493483B2 (en) * | 2004-02-19 | 2009-02-17 | International Business Machines Corporation | Method to prevent vulnerability to virus and worm attacks through instruction remapping |
| JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
-
2005
- 2005-04-26 US US11/114,552 patent/US8086871B2/en not_active Expired - Fee Related
-
2006
- 2006-03-31 CN CN200610067058.3A patent/CN100481102C/zh not_active Expired - Fee Related
- 2006-04-24 TW TW095114583A patent/TWI393021B/zh active
- 2006-04-26 JP JP2006122694A patent/JP4831742B2/ja not_active Expired - Fee Related
-
2011
- 2011-11-21 US US13/301,227 patent/US8392725B2/en not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6798884B1 (en) * | 1998-09-16 | 2004-09-28 | Murata Kikai Kabushiki Kaisha | Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium |
| US6735310B1 (en) * | 1999-09-17 | 2004-05-11 | International Business Machines Corporation | Technique of password encryption and decryption for user authentication in a federated content management system |
| TW546936B (en) * | 2000-10-27 | 2003-08-11 | Synq Technology Inc | Data encrypting/decrypting system in client/server structure and the method thereof |
| TW567702B (en) * | 2002-04-22 | 2003-12-21 | Taiwan Semiconductor Mfg | System and method integrating e-mail encryption/decryption |
| TW595183B (en) * | 2003-03-14 | 2004-06-21 | Acer Labs Inc | Crypto-system with an inverse key evaluation circuit |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006309766A (ja) | 2006-11-09 |
| JP4831742B2 (ja) | 2011-12-07 |
| CN1855111A (zh) | 2006-11-01 |
| US20120066516A1 (en) | 2012-03-15 |
| US8086871B2 (en) | 2011-12-27 |
| US8392725B2 (en) | 2013-03-05 |
| CN100481102C (zh) | 2009-04-22 |
| US20060242702A1 (en) | 2006-10-26 |
| TW200707254A (en) | 2007-02-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI393021B (zh) | 用於防止攻擊之方法、資料處理系統及裝置 | |
| US20240289448A1 (en) | System and Methods for Click-Jacking and Content Redressing Protection | |
| US11973780B2 (en) | Deobfuscating and decloaking web-based malware with abstract execution | |
| US7493483B2 (en) | Method to prevent vulnerability to virus and worm attacks through instruction remapping | |
| US10140451B2 (en) | Detection of malicious scripting language code in a network environment | |
| CN101438529B (zh) | 经由动态转换的主动计算机恶意软件保护 | |
| US8769692B1 (en) | System and method for detecting malware by transforming objects and analyzing different views of objects | |
| US8015284B1 (en) | Discerning use of signatures by third party vendors | |
| US11610020B2 (en) | Securing sensitive user data stored locally by an application | |
| US20030037138A1 (en) | Method, apparatus, and program for identifying, restricting, and monitoring data sent from client computers | |
| US12174959B2 (en) | Method and system for automatically generating malware signature | |
| CN107408176A (zh) | 恶意对象的执行剖析检测 | |
| Zhang et al. | Malicious package detection in npm and pypi using a single model of malicious behavior sequence | |
| KR101558054B1 (ko) | 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법 | |
| Bhuiyan et al. | API vulnerabilities: Current status and dependencies | |
| Sharif | Web attacks analysis and mitigation techniques | |
| Lee et al. | Classification and analysis of security techniques for the user terminal area in the Internet banking service | |
| Li | An analysis of the recent ransomware families | |
| Zhang | Polymorphic and metamorphic malware detection | |
| Grammatikakis et al. | System threats | |
| US12445476B2 (en) | Deobfuscating and decloaking web-based malware with abstract execution | |
| Rahman et al. | A polymorphic code generation engine with obfuscation techniques for protecting web bot attacks | |
| Wang et al. | Sensitive Information Detection and Governance in Binary Data Processing | |
| JP2016170524A (ja) | 悪性url候補取得装置、悪性url候補取得方法、及びプログラム | |
| Bhargavan et al. | Practical Formal Methods for Real World Cryptography (Invited Talk) |