可信外圍機制的製作方法
2023-05-27 14:21:31
專利名稱:可信外圍機制的製作方法
技術領域:
本發明涉及計算機系統,尤其涉及在可信或者安全環境內操作的計算機系統。
背景技術:
在本地或遠程微型計算機上執行的金融和個人交易的日益增長為「可信」或「安全」微處理器環境的建立提供了巨大的推動力。這些環境努力要解決的問題是隱私洩漏或者數據的破壞或濫用。用戶不希望公開他們的個人信息。他們也不希望使他們的數據被改變或被用於不恰當的交易。這些實例包括病歷卡的無意洩露以從在線銀行或其他存儲機構對資金的電子盜竊。類似地,內容供應商也尋找保護其數字內容(例如音樂、其他的音頻、視頻或者其他類型的數據)在未經授權時不可被複製的方法。
然而遵守由Compaq、IBM、DEC、Intel、Microsoft、NEC、Northern Telecom研發的2.0標準的通用串行總線(USB)的使用引起了對可信的輸入/輸出(I/O)的嚴重質疑。USB是計算機系統和外接設備(例如鍵盤)之間的即插即用型接口。所述計算機系統通常包括與所述USB設備相關聯的軟體堆棧。
USB堆棧內的惡意代碼可被潛在地用於修改發送至或者來自USB外圍設備的數據,或將所述數據重新路由到一個完全不同的設備。用於制惡意USB軟體的一種方法是對發送至或接收自所述USB外圍設備的數據進行加密。然而加密方法的問題是所述USB堆棧不能信任發送至所述外圍設備的密鑰。
一種機制包括了通過將密鑰直接發送給鍵盤外圍設備而繞過所述USB堆棧。在這一機制中,提示用戶在鍵盤上按鍵以輸入密鑰。這一機制是低效的,因為它要求用戶每次鍵入63個鍵才能啟動計算機系統。
可選地,所述鍵盤可以請求非易失性存儲器存儲用以避免每次鍵盤上電時用戶必需輸入的按鍵。這將導致鍵盤生產成本的增加。此外,這一機制不適用於諸如滑鼠的非鍵盤外圍設備使用,除非將加密硬體鑰匙(dongle)內嵌在計算機系統和外圍設備之間。這樣同樣會增加成本。
本發明通過實例而非限制性的方式結合附圖示出,其中類似的編號指代類似元素的所述附圖包括圖1是計算機系統的一個實施例的框圖;圖2是中央處理單元(CPU)的一個實施例的框圖;圖3是示出了存儲器的一個實施例的框圖;圖4是把密鑰發送給外圍設備的一個實施例的流程圖。
具體實施例方式
將要描述一種在計算機系統內確保可信USB輸入/輸出(I/O)的機制。根據一個實施例,通過不使用USB堆棧將密鑰發送給USB外圍設備來實現計算機系統內的可信埠。
在本發明隨後的詳細描述中,為了提供本發明的透徹理解將闡述許多特定細節。然而本領域普通技術人員顯而易見的是,無需這些特定細節也可以實踐本發明。在其他實施例中,將以框圖而非細節形式示出已知的結構和設備以避免淡化本發明的主題。
本說明內的「一個實施例」或者「某一實施例」意味著連同所述實施例描述的特定性能、結構或特性是包括在本發明的至少一個實施例中。在本說明中多個地方出現的短語「在一個實施例中」並不一定指代同一實施例。
圖1是計算機系統100的一個實施例的框圖。計算機系統100包括耦合至總線105的中央處理單元(CPU)102。在一個實施例中,CPU 102是由位於加州SantaClara的Intel公司提供的包括PentiumII處理器家族、PentiumIII處理器家族以及PentiumIV處理器家族的Pentium處理器家族中的一種處理器。另外也可使用其他的CPU。
圖2是示出了CPU 102的一個實施例的框圖。在一個實施例中,CPU 102包括高速緩存存儲器(高速緩存)220、嵌入密鑰230以及頁表(PT)寄存器240。高速緩存220的全部或部分可以包括或者轉換成個人存儲器(PM)225。根據一個實施例,個人存儲器225是在其激活作為個人存儲器時,帶有防止任何未經授權的設備(例如除了相關的CPU 102之外的任何設備)對其進行訪問的有效保護的存儲器。
在示出的實施例中,高速緩存220可以具備各種性能以準許其作為個人存儲器的選擇性隔離。在另一個未示出的實施例中,個人存儲器225在高速緩存存儲器550之外並與其隔開,但是仍舊與CPU 102相關聯。密鑰230可以是用以加密、加密和/或驗證各種數據塊和/或代碼的嵌入式密鑰。PT寄存器240可以是以寄存器形式用以識別僅可由保護代碼訪問的存儲器頁面並且存儲器頁面未被保護的表。
現在重新參考圖1,晶片集107也耦合至總線105。晶片集107包括了存儲器控制集線器(MCH)110。MCH 110可包括耦合至主系統存儲器115的存儲器控制器112。主系統存儲器115存儲數據以及可由CPU 102或者包含在系統100內任何其他設備所執行的指令序列。在一個實施例中,主系統存儲器115包括動態隨機存取存儲器(DRAM);然而也可使用其他的存儲器類型實現主系統存儲器115。諸如多個CPU和/或多個系統存儲器的附加設備也可耦合至總線105。
圖3是示出了存儲器115的一個實施例的框圖。參見圖3,存儲器115可以包括受保護的存儲器表320以及可信軟體(s/w)監視器330。在某些實施例中,受保護的存儲器表320是定義了存儲器115中哪些存儲器塊(存儲器塊指的是連續的可尋址存儲器單元的範圍)不能由直接存儲器訪問(DMA)傳送的表。
因為所有對存儲器115的訪問都經由MCH 110,所以MCH 110可以在準許任何DMA傳送發生之前就檢查受保護的存儲器表320。在某個特定實施例中,MCH 110可以使用高速緩存技術以減少對受保護的存儲器表320的必要訪問數量。
在一個實施例中,受保護的存儲器表320可由比特表實現,其中每一比特都對應著存儲器115內的某一特定存儲器塊(例如每一比特都可對應於單頁,其中邏輯「1」指示該頁面受保護免於DMA傳送而其中邏輯「0」指示該頁面不受保護可被DMA傳送)。在某一特定的操作中,由受保護的存儲器表320保護免於DMA傳送的存儲器塊可以是與由CPU 102內的PT寄存器的保護進程所限定的存儲器塊相同。
在一個實施例中,一旦建立了受保護的操作環境,可信s/w監視器330就可以監控並控制所述受保護的操作環境。在某個特定的實施例中,可信s/w監視器330僅位於由受保護的存儲器表320保護免於數據傳送(例如DMA傳送)的存儲器塊內,這樣就確保可信s/w監視器330不會被從無保護和/或未經授權的設備中傳送的數據損害。受保護的存儲器表320也可通過保護包括在受保護的存儲器表320的存儲器塊,保護其自身在數據事務中免於更改。
現在重新參考圖1,MCH 110也可包括耦合至圖形加速器130的圖形界面113。在一個實施例中,圖形界面113經由加速圖形接口(AGP)耦合至圖形加速器130,所述AGP的操作是基於由位於加州Santa Clara的Intel公司研發的AGP規範修正版2.0接口。
根據一個實施例,MCH 110包括用於各種加密、解密和/或驗證過程的密鑰116、受保護的寄存器120以及受保護的存儲器表125。在一個實施例中,受保護的存儲器表125可以在MCH 110內作為受保護的存儲器表125得以實現並且可以移除受保護的存儲器表320。
在另一個實施例中,受保護的存儲器表125可以作為先前描述的在存儲器115內的受保護的存儲器表320而得以實現並且可以移除受保護的存儲器表125。受保護的存儲器表也能以未示出的其他方式實現。無論其物理位置,受保護的存儲器表的目的和基本操作大致如上所述。
在一個實施例中,受保護的寄存器120是僅可由CPU 102內可信微碼初始化的命令寫入的寄存器。受保護的微碼是由授權指令和/或由未經授權設備不可控的硬體啟動執行的微碼。在一個實施例中,受保護的寄存器120保持了識別受保護的存儲器表320和可信s/w監視器330的存儲單元和/或控制對所述受保護的存儲器表320和可信s/w監視器330訪問的數據。
在一個實施例中,受保護的寄存器120包括能夠啟用或禁用受保護的存儲器表320的使用的寄存器,使得在進入受保護的操作環境之前可以激活所述DMA保護,而在離開受保護的操作環境之後可以對所述DMA保護撤銷激活。受保護的寄存器120還可包括識別受保護的存儲器表320的存儲單元的可寫寄存器,使得所述單元無需硬連接至MCH 110。
在一個實施例中,受保護的寄存器120可以包括在可信s/w監視器330被放入存儲器115的受保護存儲單元之前的臨時存儲單元,使其能夠用於傳送定位。在一個實施例中,受保護的寄存器120可以包括在傳送入存儲器115之後可信s/w監視器330的執行起始地址,使得在所述受保護的操作環境初始化之後執行可以傳送入可信s/w監視器330。
物理令牌130可以是用於保護與創建和保持受保護的操作環境相關的數據的電路。在一個特定實施例中,物理令牌130包括密鑰(未示出),該密鑰可以是用於特定加密、解密和/或驗證過程的嵌入式密鑰。物理令牌130還可以包括用於保持摘要值以及保持在所述受保護操作環境中使用的其他信息的存儲空間。在一個實施例中,物理令牌130內的存儲空間可以包括如果所述物理令牌掉電情況下也能保有其內容的非易失性存儲器(例如快閃記憶體)。
現在回到圖1,MCH 110經由集線器接口耦合至輸入/輸出控制集線器(ICH)140。ICH 140提供通向計算機系統100內輸入/輸出(I/O)設備的接口。ICH 140可以經由主機控制器144耦合至USB外圍設備155。主機控制器144控制ICH 140和外圍設備155之間的接口。本領域普通技術人員將認識到也可實現其他的基於分組的總線而不背離本發明的真實範圍。
在一個實施例中,主機控制器144支持其中分配給外圍設備155一個地址的外圍設備配置過程。隨後,主機控制器144監視用於分組尋址的總線並將數據發送至外圍設備155。在發送至外圍設備155之前就在主機控制器144內將數據分組成不同的分組。在主機控制器144處驗證進入分組的有效性。在一個實施例中,外圍設備155是鍵盤。然而在另一個實施例中,外圍設備155可由滑鼠、音頻播放器、遊戲操縱杆、電話、掃描儀以及印表機等等實現。
調試埠146使得硬體和軟體設計人可以調試他們產品的特性。在一個實施例中,調試埠146實現一種基於寄存器的機制以使得主機控制器144執行事務。這樣可繞過與USB外圍設備155相關聯的所述軟體堆棧和存儲器115。
根據另一個實施例,可以實現類似的繞過用於在計算機系統100啟動期間發送密鑰給外圍設備115以檢驗與外圍設備155相聯的USB連接是值得信賴的。在此實施例中,主機控制器144還包括類似於MCH 110內的寄存器120的受保護的寄存器。因此,受信任的軟體訪問在主機控制器144內受保護的寄存器。
軟體寫入寄存器120用於指示主機控制器144哪些加密消息將發送至外圍設備155以及將從外圍設備155中接受到什麼數據。在另一個實施例中,外圍設備155生成密鑰並且將所述密鑰發送給主機控制器144。在另一個實施例中,主機控制器144和外圍設備155實現Diffie-Hellman交換以免外部偷聽。在另一個實施例中,主機控制器144和外圍設備155除了驗證狀態以檢測人在中間(Man-In-The-Middle)型的攻擊之外,實現Diffie-Hellman交換。
主機控制器144通過可信埠讀取密鑰。在另一個實施例中,一旦外圍設備155使用密鑰,就使用標準USB軟體堆棧以及USB主機控制器144機制發送I/O通信量。因此,正常的USB事務可由存儲器115內的數據結構控制,並且主機控制器144讀取這些結構並執行合適的讀/寫操作。
圖4是把密鑰發送給外圍設備155的一個實施例的流程圖。在處理框410處,開始啟動(引導)進程。在處理框420處,可信軟體生成密鑰。然而如上所述,所述密鑰也可在外圍設備155處形成。
在處理框430處,所述密鑰繞過所述USB堆棧發送至外圍設備155。如上所述,可信軟體寫入寄存器120用於初始所述加密鑰對外圍設備155的發送以及將從外圍設備155中接受回什麼數據。在外圍設備155生成密鑰的實施例中,將密鑰從外圍設備155發送至主機控制器144。
在處理框440處,進行了其中確定外圍設備155的操作是否基於所述密鑰的驗證進程。根據一個實施例,是通過在顯示屏上提示用戶由鍵盤輸入字符對所述密鑰進行驗證。所述字符可以是由主機軟體隨機選取的。
當用戶輸入密鑰時,所述鍵盤就用所述密鑰加密該鑰匙。可信的OS軟體了解所述加密以及應該被鍵入的所述按鍵,所以OS軟體可以解密該消息並且驗證其正確與否。在處理框450處,設置主機控制器144使得標準USB事務可通過所述堆棧出現。
以上描述實現了繞過USB堆棧的可信軟體和可信寄存器,這樣就排除了使用標準USB堆棧發送頂替消息給USB外圍設備的惡意USB軟體。因此,就無需要求用戶通過鍵盤輸入密鑰,也無需外圍設備以非易失性存儲裝置的形式實現。
在本領域普通技術人員閱讀以上描述之後,本發明的許多改變和修改都毫無疑問變得顯而易見,但是應該理解以示意性方式示出和描述的任何特定實施例不應被考慮為限制性的。因此各個實施例的細節參考不想要限制所述權利要求的範圍,而僅提及它們的特性對於本發明是不可或缺的。
權利要求
1.一種計算機系統,包括中央處理單元(CPU);耦合至所述CPU的晶片集,包括受保護的寄存器;以及主機控制器;耦合至所述主機控制器的總線;以及耦合至所述總線的外圍設備,其中可信軟體訪問所述受保護的寄存器用以在所述計算機系統啟動期間在所述主機控制器和所述外圍設備之間發送加密數據從而檢驗所述外圍設備是否值得信賴。
2.如權利要求1所述的計算機系統,其特徵在於,所述加密數據是在外圍設備處生成並且發送至所述主機控制器。
3.如權利要求1所述的計算機系統,其特徵在於,所述加密數據是在所述CPU處生成並且發送至所述外圍設備。
4.如權利要求1所述的計算機系統,其特徵在於,所述可信軟體寫入所述受保護的寄存器以對所述主機控制器指示要發送的所述加密數據以及將被接收到的響應數據。
5.如權利要求1所述的計算機系統,其特徵在於,所述晶片集還包括受保護的存儲器表;以及耦合至所述存儲器設備的存儲器控制器。
6.如權利要求5所述的計算機系統,其特徵在於,還包括耦合至所述存儲器控制器的存儲器設備。
7.如權利要求6所述的計算機系統,其特徵在於,在所述主機控制器和所述外圍設備之間發送的所述數據在與所述外圍設備相關聯的存儲器設備處繞過堆棧。
8.如權利要求7所述的計算機系統,其特徵在於,所述存儲器設備包括受保護的存儲器表;以及可信軟體監視器。
9.如權利要求1所述的計算機系統,其特徵在於,所述外圍設備是鍵盤。
10.如權利要求1所述的計算機系統,其特徵在於,所述外圍設備是滑鼠。
11.如權利要求1所述的計算機系統,其特徵在於,所述外圍設備是掃描儀。
12.如權利要求1所述的計算機系統,其特徵在於,所述總線是通用串行總線。
13.一種晶片集,包括受保護的寄存器;以及經由總線耦合至外圍設備的主機控制器;其中可信軟體訪問所述受保護的寄存器用以在所述主機控制器和所述外圍設備之間發送加密數據從而檢驗所述外圍設備是否值得信賴。
14.如權利要求13所述的晶片集,其特徵在於,所述加密數據是在外圍設備處生成並且發送至所述主機控制器。
15.如權利要求13所述的晶片集,其特徵在於,所述加密數據是從耦合至所述晶片集的CPU處接收並且發送至所述外圍設備。
16.如權利要求13所述的晶片集,其特徵在於,所述可信軟體寫入所述受保護的寄存器以指示給所述主機控制器要發送的所述加密數據以及將被接收到的響應數據。
17.如權利要求13所述的晶片集,其特徵在於,所述晶片集還包括受保護的存儲器表;以及耦合至所述存儲器設備的存儲器控制器。
18.一種方法,包括使用可信軟體在計算機系統內生成加密密鑰;所述可信軟體寫入在所述計算機系統內的可信寄存器以起始至外圍設備的加密密鑰發送;以及發送所述加密密鑰給所述外圍設備。
19.如權利要求18所述的方法,其特徵在於,在繞過與所述外圍設備相關聯的存儲器堆棧的同時將所述加密密鑰發送至所述外圍設備。
20.如權利要求18所述的方法,其特徵在於,還包括驗證所述外圍設備是否基於所述加密密鑰進行操作。
21.一種計算機系統,包括中央處理單元(CPU);耦合至所述CPU的晶片集,包括受保護的寄存器;以及主機控制器;耦合至所述晶片集的存儲器設備;耦合至所述主機控制器的總線;以及耦合至所述總線的外圍設備,其中可信軟體訪問所述受保護的寄存器用以在所述計算機系統啟動期間在所述主機控制器和所述外圍設備之間發送加密數據從而檢驗所述外圍設備是否值得信賴。
22.如權利要求21所述的計算機系統,其特徵在於,所述加密數據是在外圍設備處生成並且發送至所述主機控制器。
23.如權利要求21所述的計算機系統,其特徵在於,所述加密數據是在所述CPU處生成並且發送至所述外圍設備。
24.如權利要求21所述的計算機系統,其特徵在於,所述可信軟體寫入所述受保護的寄存器以向所述主機控制器指示要發送的所述加密數據以及將被接收到的響應數據。
25.如權利要求21所述的計算機系統,其特徵在於,所述晶片集還包括受保護的存儲器表;以及耦合至所述存儲器設備的存儲器控制器。
26.如權利要求21所述的計算機系統,其特徵在於,在所述主機控制器和所述外圍設備之間發送的所述數據在與所述外圍設備相關聯的存儲器設備處繞過堆棧。
27.如權利要求21所述的計算機系統,其特徵在於,所述存儲器設備包括受保護的存儲器表;以及可信軟體監視器。
28.如權利要求21所述的計算機系統,其特徵在於,所述外圍設備是鍵盤。
29.如權利要求21所述的計算機系統,其特徵在於,所述外圍設備是滑鼠。
30.如權利要求21所述的計算機系統,其特徵在於,所述外圍設備是掃描儀。
31.如權利要求21所述的計算機系統,其特徵在於,所述總線是通用串行總線。
全文摘要
根據一個實施例公開了計算機系統。所述計算機系統包括中央處理單元(CPU)以及耦合至所述CPU並包括受保護的寄存器和主機控制器的晶片集。所述計算機系統還包括耦合至所述主機控制器的總線以及耦合至所述總線的外圍設備。可信軟體訪問所述受保護的寄存器用以在所述計算機系統啟動期間在所述主機控制器和所述外圍設備之間發送加密數據從而檢驗所述外圍設備是否值得信賴。
文檔編號G06F21/00GK1816786SQ200480018633
公開日2006年8月9日 申請日期2004年6月16日 優先權日2003年6月30日
發明者D·普斯納 申請人:英特爾公司