專利名稱:用于增強計算系統(tǒng)的容錯性和安全性的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般性地涉及到計算系統(tǒng)的安全性。更明確地說,本發(fā)明涉及對專用集成電路(ASIC)的安全保護(hù),該專用集成電路是計算系統(tǒng)的一部分,并且是由外部時鐘驅(qū)動的。
背景技術(shù):
計算機(jī)和計算系統(tǒng)正在日益普遍地融入日常生活。這樣的系統(tǒng)被用在很大范圍的應(yīng)用中以及被用在從家用電器到諸如蜂窩電話和手持計劃者之類的個人通信設(shè)備的產(chǎn)品中。這種技術(shù)的一種特殊而且正在發(fā)展的用途是在金融事務(wù)處理領(lǐng)域。
舉例來說,比起現(xiàn)金或者支票,許多人更愿意攜帶與帳戶相關(guān)聯(lián)并且含有編碼了的磁條的信用卡或借記卡。這個磁條包含與持卡人帳戶相關(guān)聯(lián)的持卡人信息。在使用中,持卡人向銷售商出示卡,以便訪問持卡人的帳戶,來譬如為某個商品或者服務(wù)付費。銷售商把卡交給讀卡器,后者從編碼了的磁條上讀出信息,并利用這些信息來完成交易。
促進(jìn)自動化和在金融事務(wù)處理中使用計算系統(tǒng)以及其它應(yīng)用是集成電路技術(shù)領(lǐng)域已取得的進(jìn)步。在過去的數(shù)十年里,集成電路技術(shù)進(jìn)步巨大,到了成本和實用性允許自動化能夠被輕易地用于大量的應(yīng)用和系統(tǒng)中的地步。今天的集成電路包含數(shù)百萬的晶體管,構(gòu)成了數(shù)十萬的邏輯門,且因此能夠易于被配置和剪裁以用于多種不同的應(yīng)用和功能。譬如,現(xiàn)在集成電路制造商提供被稱為專用集成電路(ASIC)的產(chǎn)品。
在金融應(yīng)用和系統(tǒng)中,ASIC設(shè)備被用于從信用卡或借記卡的磁條上讀取必要的信息。一旦讀出了信息,ASIC就能進(jìn)一步操作以傳送這些信息來訪問持卡人的帳戶,并對交易進(jìn)行進(jìn)一步的處理,使得銷售商收到付款。這樣一來,這類系統(tǒng)中的ASIC設(shè)備就是支持系統(tǒng)運行的“大腦”的部分了,并因此和持卡人敏感的帳戶信息有利害關(guān)系。
正如預(yù)期的那樣,在金融事務(wù)處理發(fā)生的地方,犯罪因素總是尾隨而來。特別地,在涉及讀卡機(jī)的信用卡和借記卡事務(wù)處理中,存在非法的嘗試去確定持卡人帳戶的敏感信息,以便非法地訪問帳戶并從中提取錢款,或者使用該帳戶的購買力。時常地,這樣的非法努力集中于這些系統(tǒng)中的ASIC設(shè)備的運行。在這些訪問帳戶信息的嘗試中,利用了ASIC所具備的某些運行特征。
更明確地說,類似于絕大多數(shù)集成電路,ASIC設(shè)備的運行使用一個外部時鐘信號,以便按順序逐步執(zhí)行使ASIC設(shè)備實現(xiàn)其功能的運行例程。這樣一來,ASIC設(shè)備被設(shè)計成按一特定頻率操作的時鐘而運行完成(run off)。然而,比起最初ASIC被設(shè)計來運行所用的時鐘頻率而言,絕大多數(shù)ASIC在耦合到略微高一些或者低一些時鐘頻率的時鐘的時候,仍然能夠運行。已經(jīng)確定通過應(yīng)用一個步進(jìn)經(jīng)過該ASIC設(shè)備內(nèi)的運行的“過頻(over-frequency)”或“欠頻(under-frequency)”時鐘信號,便有可能通過這樣的操作來探知ASIC設(shè)備的某一功能性,即該操作帶有檢索與ASIC設(shè)備所進(jìn)行的前一次事務(wù)處理相關(guān)的數(shù)據(jù)的意圖。因此,通過操縱AISC設(shè)備的時鐘信號,某個人可能為了非法目的而獲得其他人的帳戶信息。這樣一來,由于讀卡器中所含的AISC設(shè)備的運行特點,使用讀卡器的金融事務(wù)處理經(jīng)常或多或少地是“不安全的”。
因此,存在對更安全的計算系統(tǒng),特別是用于進(jìn)行金融事務(wù)處理的更安全的系統(tǒng)的需求。
更明確地說,在本領(lǐng)域中存在這樣一種需求,即干凈地切換到一個安全的時鐘并從其切換回來,以防止用于探知其運行情形的ASIC設(shè)備的過頻或欠頻計時,以便防止敏感數(shù)據(jù),譬如與先前的金融事務(wù)處理相關(guān)聯(lián)的數(shù)據(jù),被獲取。
發(fā)明概述本發(fā)明通過提供一種設(shè)備、程序產(chǎn)品和方法來解決這些以及其它與現(xiàn)有技術(shù)相關(guān)聯(lián)的問題,所述設(shè)備、程序產(chǎn)品和方法防止經(jīng)由專用集成電路(ASIC)來非法訪問系統(tǒng)以探知其運行情況,同時防止包含在其中的數(shù)據(jù)被獲取。通過這樣的做法,提供了一個安全的環(huán)境。于是,人們在進(jìn)行金融事務(wù)處理時更可能使用專用集成電路。
在本發(fā)明一種特定的實施方案中,ASIC的系統(tǒng)時鐘被監(jiān)視。其它狀態(tài)也可能被監(jiān)視。在一種實施方案中,兩個時鐘監(jiān)視器提供了一種進(jìn)行保護(hù)以不受時鐘安全性攻擊的集成的安全性解決方案。每個時鐘監(jiān)視器都包括時鐘監(jiān)視電路和一個安全時鐘。個體時鐘監(jiān)視器中的每個都是集成在一起的,以提供一種通過冗余方式增強整體防護(hù)的安全機(jī)制。在一種實施方案中,時鐘監(jiān)視器對輸入到ASIC的時鐘來監(jiān)視過頻或者欠頻的時鐘信號。如果在ASIC的輸入端出現(xiàn)過頻或者欠頻時鐘或者其它安全性攻擊,時鐘監(jiān)視器中的一個就向系統(tǒng)時鐘報告一個報警信號,系統(tǒng)時鐘接著就切換到內(nèi)部生成的安全時鐘,而且使用與那個時鐘監(jiān)視器相關(guān)聯(lián)的相應(yīng)的安全時鐘,而不是常規(guī)的外部時鐘輸入。冗余的時鐘監(jiān)視器保證了即使時鐘監(jiān)視器中的一個失效,安全性仍然能夠得以維持。
這些以及其它表現(xiàn)了本發(fā)明特征的優(yōu)越性和特點在附加于此后的權(quán)利要求中闡述,并由此形成了一個另外的部分。然而,為了更好地理解本發(fā)明和理解通過它的使用而達(dá)到的優(yōu)越性和目的,需要參考附圖和附帶的描述性內(nèi)容,在其中描述了本發(fā)明的范例性實施方案。
附圖簡述包含于本說明書內(nèi)并構(gòu)成其一部分的附圖,闡明了本發(fā)明的實施方案,并且和下文給出的本發(fā)明的一般描述一起,用于解釋本發(fā)明的原理。
附
圖1是一個包含了本發(fā)明實施方案的系統(tǒng)的方框圖。
如圖2是一個按照本發(fā)明的原理工作的時鐘的功能方框圖。
附圖3是附圖1和2所示系統(tǒng)中圖示的時鐘功能的一種實施方案的電路圖。
附圖4是附圖1、2和3所示系統(tǒng)中所采用的負(fù)邊沿開關(guān)的一種實施方案的電路圖。
附圖5A是附圖1、2和3所示系統(tǒng)中所采用的振蕩器時鐘復(fù)用器的一種實施方案電路圖的一部分。
附圖5B是附圖1、2和3所示系統(tǒng)中所采用的復(fù)用器的電路圖的另一部分。
附圖6是附圖1、2和3所示系統(tǒng)中所采用的安全時鐘選擇器的一種實施方案的電路圖。
附圖7是附圖1、2和3所示系統(tǒng)中所采用的系統(tǒng)時鐘選擇器的一種實施方案的電路圖。
本發(fā)明實施方案詳述請看附圖,其中貫穿多個視圖,用相似的數(shù)字指示相似的部分,附圖1展示了一種可能的專用集成電路設(shè)備(ASIC)10組成本發(fā)明一種實施方案的方框圖。所示的ASIC 10是作為安全性處理器來使用的,它用于高速加密應(yīng)用,其中要保護(hù)象金融帳戶數(shù)據(jù)這樣的敏感數(shù)據(jù)不被對外暴露。圖中所示的ASIC 10的實施方案是由來自PhilipsSemiconductors的市場上可買到的產(chǎn)品組成的;然而,本領(lǐng)域的技術(shù)人員將認(rèn)識到,可以采用其它執(zhí)行類似的命令的類似器件的配置來在多種應(yīng)用中提供相同或類似的功能。因此,支持本發(fā)明的ASIC環(huán)境可以和討論的實施方案中所顯示的不同。
如附圖1所示,ASIC 10基于一種安全的架構(gòu),這種架構(gòu)可以被用于包括金融應(yīng)用在內(nèi)的許多應(yīng)用中。ASIC 10通過高級數(shù)據(jù)鏈路控制器(HDLC)46、多個Philips Semiconductors的16550 UARTS(UARTA-D)48和Philips Semiconductors的I2C端口(I2C)44向ASIC 10的外部設(shè)備提供互連。在本發(fā)明中也可以采用不同于在這個實施方案中公開的其它的互連方案。所示的系統(tǒng)也可以通過刪減或者增加與處理器20互連的額外的外設(shè)來進(jìn)行定制。這在圖1中通過包含安全外設(shè)22和不安全外設(shè)24來表示。安全外設(shè)和不安全外設(shè)的范例可以是用于信用卡事務(wù)處理的鍵盤和紙帶打印機(jī)。
如所示,ASIC 10包括嵌入的處理器20、只讀存儲器(ROM)66、內(nèi)部靜態(tài)隨機(jī)存取存儲器(SRAM)68、SRAM控制器(SDRAM/EBIU)70、多個靜態(tài)設(shè)備控制器(SDC)76、中斷控制器(INTCL)36、系統(tǒng)時鐘12內(nèi)的內(nèi)部鎖相環(huán)、多個UARTS(UART A-D)48、實時秒計數(shù)器(RTSC)18、多個系統(tǒng)定時器(系統(tǒng)定時器)60、HDL控制器(HDLC)46、I2C端口控制器(I2C)44、安全外設(shè)22、不安全外設(shè)24、以及通用輸入/輸出端口(GPIO)38。也提供了外部設(shè)備的直接存儲器訪問支持(DMA)72。此外,還提供了系統(tǒng)時鐘12、晶體振蕩器14、電源管理單元(PMU)40、雙態(tài)轉(zhuǎn)換邏輯34、仲裁器32、包含設(shè)備選擇器(DSEL)62的地址解碼器、位于高級系統(tǒng)總線(ASB)28子系統(tǒng)和VLSI外圍總線(VPB)子系統(tǒng)26(ASB2VPB)52之間的橋、以及一個全局配置設(shè)備寄存器(GDCR)54。同樣,也提供了用于靜態(tài)設(shè)備接口80的電子總線接口單元(EBIU)74和耦合到SRAM控制器SDRAM/EBIU 70的同步動態(tài)隨機(jī)存取存儲器(SDRAM)接口78。
同樣如所顯示的那樣,該實施方案采用了市場上可買到的PhilipsSemiconductors的ARM720T作為嵌入處理器20。處理器包括,但是不限于,高速緩沖存儲器,譬如一個8K字節(jié)的高速緩存;存儲器管理單元(MMU)、寫入緩沖器和用于處理器操作的高級系統(tǒng)總線(ASB)。
為ASIC 10標(biāo)注的各種各樣的器件對于ASIC結(jié)構(gòu)而言是具有典型性的,但是后者可以包括或者也可以不包括標(biāo)注了的器件,或者也可以包括更多的器件。正如下文將非常詳細(xì)地描述的那樣,本發(fā)明將關(guān)注于在采用了多個時鐘監(jiān)視器16的條件下,用于ASIC設(shè)備或者其它設(shè)備的系統(tǒng)時鐘12的安全運行。
處理器20通過采用了先進(jìn)系統(tǒng)總線(ASB)子系統(tǒng)28以及/或者超大規(guī)模集成的(VLSI)外部總線(VPB)子系統(tǒng)26的內(nèi)部總線結(jié)構(gòu)來和各種各樣的前述設(shè)備相接口。ASB子系統(tǒng)28提供了仲裁器、地址解碼器、對ASIC的外部存儲器的接口、以及ASIC內(nèi)部的至其他總線的橋之間的連通性。如圖1所示,這一功能性是通過仲裁器32、地址譯碼器62、異常矢量表50、存儲器管理單元(MMU)30、三重數(shù)據(jù)加密標(biāo)準(zhǔn)引擎(DES/3DES)64、只讀存儲器(ROM)66、靜態(tài)隨機(jī)存取存儲器(SRAM)68、靜態(tài)存儲器管理器(SDRAM/EBIU)70、以及直接存儲器訪問控制器(DMA)72來提供的。在運行中,ASB子系統(tǒng)28通常有兩種狀態(tài)安全的和不安全的。ASB 28的狀態(tài)取決于給定設(shè)備內(nèi)部的控制器,而后者是由處理器20準(zhǔn)予來控制總線的。因此,在內(nèi)部設(shè)備、外部設(shè)備和處理器20之間,ASB既提供安全的互連,也提供不安全的互連。
VPB子系統(tǒng)26包括在ASB子系統(tǒng)28和VPB子系統(tǒng)26之間的橋(ASB2VPB)52、將在此后更詳細(xì)地描述的多個時鐘監(jiān)視器16、中斷控制器(INTCTL)36、多個系統(tǒng)定時器60、實時秒計數(shù)器(RSTC)18、安全的外設(shè)22譬如鍵盤、多個為調(diào)制解調(diào)器之類的設(shè)備提供連接的UARTS(UART A-D)48、高級數(shù)據(jù)鏈路控制器(HDLC)46、Philips的I2C總線接口(I2C)44、不安全的外設(shè)24譬如打印機(jī)、通用輸入/輸出端口(GPIO)38、隨機(jī)數(shù)發(fā)生器(RNG)42、全局配置設(shè)備寄存器(GDCR)54、電源管理單元(PMU)40、以及也會在此后更詳細(xì)地描述的系統(tǒng)時鐘12。VPB子系統(tǒng)26一般具有兩個狀態(tài)安全的和不安全的。因此,VPB子系統(tǒng)26的狀態(tài)也取決于給定設(shè)備內(nèi)部被準(zhǔn)予去控制總線的控制器。
通過使用所選擇的設(shè)備、所用總線的可能狀態(tài)、以及ASIC 10的結(jié)構(gòu)中固有的架構(gòu),而提供了一種在多種設(shè)備和處理器之間進(jìn)行安全通信和不安全通信的方法。舉例來說,在一個使用了信用卡的金融事務(wù)處理中,處理器20能夠與鍵盤和紙帶打印機(jī)用安全的/不安全的方式進(jìn)行通信,就像前文所述的那樣。因此,除了本發(fā)明的各方面所提供的特性之外,ASIC 10也提供了許多安全特性。
盡管ASIC 10的架構(gòu)提供了一些安全性,ASIC 10仍然容易受到許多常見的安全性攻擊的影響。舉例說來,由ASIC 10執(zhí)行的事務(wù)處理的安全性仍然會經(jīng)由過頻或者欠頻計時而提供關(guān)于內(nèi)部狀態(tài)的信息。本發(fā)明通過提供多個時鐘監(jiān)視器16和系統(tǒng)時鐘來保護(hù)ASIC 10不受多種常見的安全性攻擊,從而解決這個和其它相關(guān)的問題。更明確地說,在公布的實施方案和其它附圖中所示的本發(fā)明的實施方案是針對多種安全性攻擊,其包括ASIC 10的過頻或欠頻計時。然而,本領(lǐng)域技術(shù)人員將會認(rèn)識到,本發(fā)明能夠很容易地適應(yīng)于其它類型的安全性攻擊,在其中切換到安全時鐘是需要的。
如前文所述,用一個時鐘來使ASIC 10逐步執(zhí)行其運行例程,這使得ASIC 10完成其功能。通過施加過頻或者欠頻時鐘信號,則與使用ASIC執(zhí)行的事務(wù)處理相關(guān)的秘密數(shù)據(jù)可能會被探知??梢詫⒈景l(fā)明引向阻止來自ASIC 10的對安全和秘密的金融和帳戶信息的非法訪問。為了防止ASIC被過頻或欠頻計時,根據(jù)本發(fā)明這個特定的實施方案,在多個時鐘監(jiān)視器16中提供了高頻和低頻監(jiān)測。盡管高頻和低頻的監(jiān)測是作為本發(fā)明這一特定的實施方案的一部分而提供的,許多其他的保護(hù)特性也可以被合并到時鐘監(jiān)視器16中去,這是本領(lǐng)域的普通技術(shù)人員能理解的。
在ASIC被過頻或欠頻計時的安全性攻擊中,有人來觀察ASIC的運行,記錄ASIC響應(yīng)過頻或欠頻計時的各種輸出,從而探知ASIC的運行情況。現(xiàn)在考慮本發(fā)明和ASIC 10的過頻和欠頻檢測特性的細(xì)節(jié),圖2展示了描述本發(fā)明特性的附圖1中的某些部分的功能方框圖。如附圖2所示,晶體振蕩器14和兩個時鐘監(jiān)視器16A與16B、以及系統(tǒng)時鐘12組成了下文中所謂的時鐘切換電路或時鐘開關(guān)100。系統(tǒng)時鐘12還包括鎖相環(huán)(PLL)102、復(fù)用器104和干凈(clean)切換邏輯106。
時鐘開關(guān)100功能如下。在系統(tǒng)時鐘12內(nèi)部,晶體振蕩器14在一個基頻上發(fā)生諧振,該基頻被施加到PLL 102,系統(tǒng)時鐘12由此生成了系統(tǒng)時鐘信號108。系統(tǒng)時鐘信號108被加到也在系統(tǒng)時鐘12內(nèi)部的復(fù)用器104,以及各時鐘監(jiān)視器16A和16B。時鐘監(jiān)視器16A和16B中的每一個都包含一個安全時鐘,后者分別產(chǎn)生安全時鐘信號SEC_CLK1(110A)和SEC_CLK2(110B),該安全時鐘信號也被加到系統(tǒng)時鐘12內(nèi)的復(fù)用器104。時鐘監(jiān)視器16A和16B中的每一個都包含有電路,基于各個時鐘監(jiān)視器內(nèi)所設(shè)置的參數(shù),這些電路被配置來監(jiān)視系統(tǒng)時鐘信號108中過頻和欠頻的情況。
如果兩個時鐘監(jiān)視器16A和16B都沒有檢測到時鐘信號的過頻或欠頻情況,那么復(fù)用器就輸出系統(tǒng)時鐘108作為安全時鐘114,于是這個信號被ASIC 10中的處理器20所用。然而,如果時鐘監(jiān)視器16A和16B中的一個或者兩個都檢測到過頻或者欠頻的情況,那么時鐘監(jiān)視器16A和16B就分別向干凈切換邏輯106聲明一個確保安全邏輯時鐘信號(SAL_CLK1,SAL_CLK2)112A和112B,該干凈切換邏輯106進(jìn)而又使復(fù)用器104從輸出系統(tǒng)時鐘信號108切換到輸出首先檢測到過頻或者欠頻情況的那個時鐘監(jiān)視器16A和16B的相應(yīng)安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)。在兩個時鐘監(jiān)視器同時檢測到過頻或者欠頻情況的情形下,干凈切換邏輯106將使來自時鐘監(jiān)視器16A的安全時鐘信號SEC_CLK1(110A)作為系統(tǒng)時鐘信號114輸出。一旦時鐘檢測器16A和16B檢測到過頻或者欠頻的情況不再存在,那么安全時鐘信號114就被切換回系統(tǒng)時鐘信號108。
當(dāng)電源施加到時鐘開關(guān)100上時,從各個時鐘監(jiān)視器16A和16B內(nèi)產(chǎn)生的復(fù)位信號RESET_1(116A)和RESET_2(116B)是用于提供一個已知的邏輯環(huán)境。當(dāng)斷言該復(fù)位信號RESET_1(116A)和RESET_2(116B)時,這一過程在該時鐘開關(guān)內(nèi)完成。
當(dāng)在系統(tǒng)時鐘信號108和安全時鐘信號之間切換時,干凈切換邏輯106被提供用來配合由安全時鐘114驅(qū)動的設(shè)備的各不相同的時鐘需求,并且安全時鐘信號SEC_CLK1(110A)和SEC_CLK2(110B)是在時鐘監(jiān)視器16A和16B內(nèi)產(chǎn)生的。出于本發(fā)明的目的,如果時鐘信號114符合下列兩個條件,則切換被認(rèn)為是“干凈”的。首先,時鐘信號114一定不能有任何“毛刺”或者一定不能有不越過從高到低的狀態(tài)或從低到高的狀態(tài)下的邏輯門限的短暫轉(zhuǎn)變。其次,當(dāng)時鐘信號114轉(zhuǎn)變到低狀態(tài)時,時鐘信號114必須在規(guī)定的時間長度(低時間)內(nèi)保持為低。類似的,當(dāng)時鐘信號114轉(zhuǎn)換到高狀態(tài)時,它必須在規(guī)定的時間長度(高時間)內(nèi)保持為高。低時間和高時間具有最小值和最大值,以約束時鐘信號114的最高和最低頻率。此外,本發(fā)明中所描述的復(fù)用器104一般不是打算用于必須維持恒定的時鐘占空比的場合。這是因為在時鐘之間進(jìn)行切換時,正如此后的附圖中將更為詳細(xì)地描述的那樣,干凈切換邏輯106會等待,直到需要被切換的時鐘變成低,并在后續(xù)時鐘剛剛變?yōu)榈秃笄袚Q到該后續(xù)時鐘。這將導(dǎo)致一個合并起來的低時間,而這個低時間一般比單一時鐘的低時間長一些。此外,在展示的實施方案中所描述的邏輯是為了用于Philips Semiconductor的ARM720T處理器20而專門選擇并改造的。根據(jù)本發(fā)明的原理,所采用的干凈切換邏輯106也能夠很容易地被改造以適于和各種各樣的其它設(shè)備一起工作。
同樣,在本領(lǐng)域的普通技術(shù)人員將很容易認(rèn)識到這僅是本發(fā)明的時間開關(guān)部分實施方案的一種可能配置。本領(lǐng)域的普通技術(shù)人員將進(jìn)一步認(rèn)識到,采用通常可以得到的電路,每個時鐘監(jiān)視器可以被配置以監(jiān)視任意故障和安全性攻擊準(zhǔn)則,而不是象在一種實施方案中所描述的那樣僅僅監(jiān)視過頻和欠頻。此外,本領(lǐng)域的普通技術(shù)人員也能很容易認(rèn)識到,可以采用附加的時鐘監(jiān)視器,而用兩個時鐘監(jiān)視器來提供冗余性的本發(fā)明的這一特定實施方案可以被擴(kuò)展,以便包含附加的時鐘監(jiān)視器,從而在伴隨附加的干凈切換邏輯和復(fù)用器時,用于進(jìn)一步的冗余操作。最后,本領(lǐng)域的普通技術(shù)人員將認(rèn)識到干凈切換邏輯也能夠很容易被改造,以和具有各種時鐘要求的各種各樣的設(shè)備和處理器一起工作。
考慮附圖3,其中闡明了附圖2中所示的時鐘開關(guān)100的功能方框圖的一種可能電路。這僅是符合本發(fā)明原理的時鐘開關(guān)100的一種實施方案的可能電路。特別地參照附圖3,圖中所描繪的電路是由如下的子電路組成的負(fù)邊沿開關(guān)1(202)、負(fù)邊沿開關(guān)2(204)、振蕩器時鐘復(fù)用器206、系統(tǒng)時鐘選擇器208、以及安全時鐘選擇器210。負(fù)邊沿開關(guān)1(202)和負(fù)邊沿開關(guān)2(204)在附圖4中顯示得更為詳細(xì)。振蕩器時鐘復(fù)用器206在附圖5A和5B中顯示得更為詳細(xì),而安全時鐘選擇器210在附圖6中顯示得更為詳細(xì)。系統(tǒng)時鐘選擇器(208)顯示于附圖7中。這些子電路中每一個的基本特性和運行將在下文結(jié)合它們各自的附圖一起討論。
現(xiàn)在考慮附圖3中所示的電路的基本運行??梢酝ㄟ^考察兩種場景來最好地解釋附圖3中所示電路的運行。第一種場景是當(dāng)時鐘監(jiān)視器16A和16B中的任意一個都沒有檢測到過頻或欠頻時,而時鐘信號114是由系統(tǒng)時鐘信號108提供的。第二種場景是當(dāng)時鐘監(jiān)視器16A和16B中的一個或兩個都檢測到了過頻或欠頻的情況,或者檢測到了系統(tǒng)中的一些其它故障或安全性破壞,而安全時鐘是由時鐘監(jiān)視器16A和16B所生成的安全時鐘信號SEC_CLK1(110A)和SEC_CLK2(110B)中的一個來提供的。
在第一種場景中,一旦完成了上電序列,信號RESET 1(116A)和RESET 2(116B)就為假。因為時鐘監(jiān)視器16A和16B都還沒有檢測到過頻或欠頻的情況,所以信號SAL_CLK1(112A)和SAL_CLK2(112B)是低。系統(tǒng)時鐘12允許輸出該系統(tǒng)時鐘信號108作為安全時鐘114。
在第二種場景中,時鐘監(jiān)視器16A和16B中的一個或兩個都檢測到了故障,譬如包括過頻或欠頻的情況在內(nèi)的安全性攻擊,而監(jiān)視器已經(jīng)通過把其相應(yīng)的信號取為高狀態(tài)來斷言它們相應(yīng)的SAL_CLK1(112A)或SAL_CLK2(112B)信號。在這種情形下,與首先檢測到過頻或欠頻情況的時鐘監(jiān)視器16A和16B相關(guān)聯(lián)的安全時鐘信號SEC_CLK1(110A)和SEC_CLK2(110B)將被作為安全時鐘114而輸出。如果剩余的時鐘監(jiān)視器16A和16B也檢測到了故障,譬如過頻或欠頻的情況,并且也斷言它的相應(yīng)的SAL_CLK1(112A)或SAL_CLK2(112B)信號,那么來自于第二個時鐘監(jiān)視器的信號將基本上不被使用。然而,如果第一個時鐘監(jiān)視器不再檢測到過頻或欠頻情況,并對它的相應(yīng)的SAL_CLK1(112A)或SAL_CLK2(112B)信號解除斷言,那么與第二個或最后一個檢測到過頻或欠頻情況的時鐘監(jiān)視器16A或16B相關(guān)聯(lián)的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)將被作為安全時鐘信號114而輸出。當(dāng)兩個時鐘監(jiān)視器同時檢測到過頻或欠頻的情況時,也有利于供應(yīng)。在這種情形下,系統(tǒng)時鐘12默認(rèn)第一個時鐘監(jiān)視器16A,而其安全時鐘SEC_CLK1(110A)被用作安全時鐘信號114。最后,一旦兩個時鐘監(jiān)視器16A和16B都不再檢測到過頻或欠頻情況,并且不再斷言其相應(yīng)的SAL_CLK1(112A)和SAL_CLK2(112B)信號,則系統(tǒng)時鐘12再一次輸出系統(tǒng)時鐘信號108作為時鐘信號114。
如此一來,在過頻或欠頻的安全性攻擊期間,系統(tǒng)時鐘12允許處理器20使用時鐘監(jiān)視器16A,16B中的安全時鐘SEC_CLK1(110A)和SEC_CLK2(110B)中的一個來運行。這使得處理器20避免對系統(tǒng)時鐘信號108的操縱,該系統(tǒng)時鐘信號使處理器步進(jìn)通過其運行例程。通過這樣做,系統(tǒng)時鐘12借助向處理器提供安全時鐘以零輸出秘密信息,從而為ASIC 10提供了附加的安全性。
在本發(fā)明這一特定的實施方案中,從系統(tǒng)時鐘信號108切換到時鐘監(jiān)視器16A,16B內(nèi)的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的任意一個的過程并不必是“干凈”的,因為時鐘監(jiān)視器16A,16B提供一個并發(fā)的復(fù)位(RESET1,RESET2)116A,116B。這個并發(fā)的復(fù)位被通過附圖3中所示的邏輯門212,216施加到時鐘開關(guān)100。然而,當(dāng)從時鐘監(jiān)視器16A,16B內(nèi)的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的任意一個切換回到系統(tǒng)時鐘信號108時,這個轉(zhuǎn)換必須是“干凈”的,不帶有毛刺、多余的邊沿、或窄脈沖,正如本公開的發(fā)明實施方案中Philips Semiconductors的ARM720T處理器20所要求的那樣。這里公開的實施方案提供了這種“干凈”的切換。如對本領(lǐng)域普通技術(shù)人員來說非常明顯的那樣,當(dāng)從系統(tǒng)時鐘轉(zhuǎn)移到一個安全時鐘時,如果本發(fā)明的一種實施方案是使用不向干凈切換邏輯提供并發(fā)復(fù)位的時鐘監(jiān)視器來實施,那么干凈切換邏輯也能被輕易地修改以適合在那種場景下干凈地切換。
此外,正如前面指出的那樣,在這個特定的實施方案中,只要不違反低頻最小值,就沒有對系統(tǒng)時鐘信號108或時鐘監(jiān)視器16A,16B內(nèi)的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的任意一個的低時間做任何限制。如果需要和一些設(shè)備一起使用,而這些設(shè)備要求系統(tǒng)時鐘信號108和安全時鐘信號SEC_CLK1(110A),SEC_CLK2(110B)之間有最大高時間,那么本發(fā)明的該公開的實施方案可以進(jìn)行調(diào)整。對于本領(lǐng)域普通技術(shù)人員而言,如何采用已知的電路來修改干凈切換邏輯(106),以提供時鐘信號的最小的低時間或最大的高時間將是顯然的。
已經(jīng)闡述的干凈切換邏輯106允許復(fù)用器104從安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的任意一個切換到系統(tǒng)時鐘信號108,即使系統(tǒng)時鐘信號108已經(jīng)停止。也就是說,本發(fā)明的公開的實施方案并沒有在失去系統(tǒng)時鐘信號108的情況下提供替換的時鐘信號。然而,如果需要的話,可以對干凈切換邏輯106進(jìn)行改造,以便如果系統(tǒng)時鐘信號已經(jīng)停止,就向處理器20提供安全時鐘SEC_CLK1(110A)和SEC_CLK2(110B)中的一個。
最后,上面所描述的時鐘監(jiān)視器16A和16B采用了已知的電路來確定過頻或欠頻情況。此外,正如在上文中提到的,本領(lǐng)域普通技術(shù)人員能夠很容易地實現(xiàn)多種電路來提供相同或類似的功能性,以提供對多種常見故障或安全性攻擊的監(jiān)視。時鐘監(jiān)視器16A,16B是用功能方框來表示的,用來闡明系統(tǒng)時鐘12如何能夠被配置來檢測一系統(tǒng)時鐘信號108超出了容限,并使得處理器20采用替換的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)。
現(xiàn)在把焦點集中到其余的附圖,圖中表述的電路更詳盡地顯示此前所描述的本發(fā)明的這一特定實施方案中÷本發(fā)明的干凈切換邏輯是如何實現(xiàn)的。附圖4表述了用于附圖3所示的負(fù)邊沿開關(guān)1(202)和負(fù)邊沿開關(guān)2(204)二者的邏輯電路。如本領(lǐng)域的技術(shù)人員將注意到的那樣,字母“N”表示對前面所討論的時鐘監(jiān)視器16A,16B的特定引用。負(fù)邊沿開關(guān)202和204的功能是檢測來自時鐘監(jiān)視器16A,16B的SAL_CLK_N 112A,112B信號的負(fù)跳變沿,同時也由SEC_CLK 404驅(qū)動。然后負(fù)邊沿開關(guān)202,204將輸出該檢測到的負(fù)邊沿分別作為信號NEG_EDG_SWN 302,304,這些信號將在后面的附圖中用于后續(xù)的電路。負(fù)邊沿開關(guān)202和204也產(chǎn)生SAL_CLK_N 112A,112B信號的同步后的版本,并把它們作為SWITCH_CLKN_SYNC 306,308輸出。這是當(dāng)一旦時鐘監(jiān)視器16A,16B中的一個檢測到故障或者安全性攻擊,譬如過頻或者欠頻情況,而從系統(tǒng)時鐘信號108切換到安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的某一個時,對信號進(jìn)行同步中的第一步驟,同步該信號對于提供干凈切換而言是必需的。
現(xiàn)在參考附圖5A,圖中繪制的邏輯電路顯示了附圖3所示的振蕩器時鐘復(fù)用器206的一部分。振蕩器時鐘復(fù)用器邏輯電路從負(fù)邊沿開關(guān)202,204取得SWITCH_CLK1_SYNC 306和SWITCH_CLK2_SYNC308,并確定是否采用SEC_CLK1(110A)或SEC_CLK2(110B)作為安全時鐘SEC_CLK 404信號。如所示,為已經(jīng)檢測到過頻或欠頻情形的時鐘監(jiān)視器16A,16B產(chǎn)生信號USE_CLK1(402)和USE_CLK2(404),以促使時鐘復(fù)用器410選擇相應(yīng)的時鐘110A,110B。這是當(dāng)一旦檢測到過頻或者欠頻,而從系統(tǒng)時鐘信號108切換到安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的某一個時,對信號進(jìn)行同步中的第二步驟,同步該信號對于提供干凈切換而言是必需的。
現(xiàn)在參考附圖5B,其中繪制的邏輯電路執(zhí)行了此前所描述的附圖5A所示的時鐘復(fù)用器410的功能性。本領(lǐng)域的技術(shù)人員將會理解有多種電路也能被用于執(zhí)行前述的復(fù)用功能性,而附圖5B中所繪制的邏輯電路只是這樣的一個范例。
現(xiàn)在參考附圖6,圖中繪制了在附圖3中所示的安全時鐘選擇器210的邏輯電路。安全時鐘選擇器210以從負(fù)邊沿開關(guān)202,204獲取的NEG_EDGE_SW1 302和NEG_EDGE_SW2 304信號、從安全時鐘復(fù)用器206獲取的SEC_CLK 404信號、以及通過附圖3所示的邏輯門212由SAL_CLK1(110A)和SAL_CLK2(110B)導(dǎo)出的SWITCH 502信號作為輸入。由此,剛一斷言信號SWITCH 502,安全時鐘選擇器210就在檢測到過頻或者欠頻時輸出USE_SEC_CLK 504。這是當(dāng)從系統(tǒng)時鐘信號108切換到時鐘監(jiān)視器16A,16B中所得到的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的某一個時,對信號進(jìn)行同步中的第三步驟,同步該信號對于提供干凈切換而言是必需的。
最后,附圖5A所示的時鐘復(fù)用器410所產(chǎn)生的SEC_CLK 404信號以及附圖6所示的安全時鐘選擇器210所產(chǎn)生的USE_SEC_CLK 504信號在附圖3中的邏輯門214中被合并起來,以導(dǎo)致也在附圖3中示出的邏輯門218把對于檢測到過頻或者欠頻情況的時鐘監(jiān)視器16A,16B的相應(yīng)的安全時鐘SEC_CLK1(110A)或SEC_CLK2(110B)作為安全時鐘114輸出。此外,這允許處理器20在過頻或欠頻故障或者安全性攻擊期間,采用時鐘監(jiān)視器16A,16B中的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B),且避免在步進(jìn)通過其運行例程中對系統(tǒng)時鐘信號108進(jìn)行操縱。
現(xiàn)在參考附圖7,其中繪制了在附圖3中所示的系統(tǒng)時鐘選擇器208的邏輯電路。當(dāng)一旦時鐘監(jiān)視器16A,16B不再檢測到故障或安全性攻擊,處理器20從結(jié)合時鐘監(jiān)視器16A,16B中的安全時鐘SEC_CLK1(110A),SEC_CLK2(110B)中的一個來運行轉(zhuǎn)換到結(jié)合系統(tǒng)時鐘信號108來運行時,系統(tǒng)時鐘選擇器208用于提供“干凈”的切換。系統(tǒng)時鐘選擇器208以來自附圖4所示的負(fù)邊沿開關(guān)202和204的NEG_EDGE_SW1(302)和NEG_EDGE_SW2(304)信號、由附圖3中所示的邏輯門212根據(jù)SAL_CLK1(110A)和SAL_CLK2(110B)得到的SWITCH 502信號、同樣由邏輯門212根據(jù)RESET_1和RESET_2信號得到的RESET_N 602信號、以及附圖5A和5B中顯示的SEC_CLK404信號作為輸入。如附圖7中所示,一個3比特的格雷(Grey)計數(shù)器600一直保持在復(fù)位狀態(tài),直到從其輸入端看到最新切換的負(fù)邊沿SWITCH 502、NEG_EDGA_SW2(304)、NEG_EDGA_SW1(302)、以及RESET_N 602。接著這個3比特的格雷計數(shù)器開始計數(shù),在二進(jìn)制計數(shù)為1的時候裝備(arming)第一個觸發(fā)器606,而在二進(jìn)制計數(shù)為3的時候裝備第二個觸發(fā)器604。如果系統(tǒng)時鐘信號108是在工作的,那么觸發(fā)器604、606將被計時。觸發(fā)器604、606進(jìn)而又對第三個觸發(fā)器608計時,而后者將斷言USE_SYS_CLK 610信號。這在SWITCH 502信號被解除斷言,以及在檢測到信號NEG_EDGE_SW1(302)或NEG_EDGE_SW2(304)中任意一個的負(fù)邊沿之后,在系統(tǒng)時鐘信號108的上升沿使能USE_SYS_CLK 610。接著,USE_SYS_CLK 610將和附圖3中所示的從SWITCH 502信號導(dǎo)出的SWITCH_N 218信號以及邏輯門216中的系統(tǒng)時鐘信號108相組合。于是,也如附圖3所示,邏輯門216用被作為安全時鐘信號114輸出的系統(tǒng)時鐘信號108驅(qū)動邏輯門218。這在一旦不再檢測到過頻或欠頻,處理器20從結(jié)合時鐘監(jiān)視器16A,16B中的安全時鐘的SEC_CLK1(110A),SEC_CLK2(110B)二者之一運行切換到結(jié)合系統(tǒng)時鐘信號108運行時,為處理器20提供干凈的切換。也應(yīng)該注意到,如前文所指出的,即使系統(tǒng)時鐘108不在運行,當(dāng)3比特的格雷計數(shù)器600超時之后,附圖2和3中所示的安全時鐘114將仍然會切換到系統(tǒng)時鐘信號108。
盡管通過這里所描述的實施方案已經(jīng)闡述了本發(fā)明,而且實施方案已經(jīng)描述得相當(dāng)詳細(xì),但限制或以任何方式把所附權(quán)利要求的范圍局限于這樣的細(xì)節(jié)并不是本申請人的目的。本領(lǐng)域的技術(shù)人員將容易地發(fā)現(xiàn)更多的優(yōu)越性和修改。因此,在更廣義的方面看來,本發(fā)明并不受限于特定的細(xì)節(jié)、代表性的設(shè)備和方法、以及所展示和描述的闡明性的范例。相應(yīng)地,可以在不脫離申請人的一般性的發(fā)明概念的精神或范圍的條件下,脫離這樣的細(xì)節(jié)。
權(quán)利要求
1.一種增強系統(tǒng)(10)的安全性的方法,該系統(tǒng)結(jié)合來自于一系統(tǒng)時鐘(12)的時鐘信號(108)而運行,該方法包含監(jiān)視該系統(tǒng)以檢測系統(tǒng)中的故障;剛一檢測到故障,就使該系統(tǒng)從結(jié)合來自于該系統(tǒng)時鐘(12)的時鐘信號(108)運行切換到結(jié)合來自于一安全時鐘(16a,16b)的安全時鐘信號(116a,116b)運行。
2.權(quán)利要求1中的方法,還包含當(dāng)將該系統(tǒng)(10)切換到結(jié)合來自該安全時鐘(16a,16b)的安全時鐘信號(116a,116b)運行時,防止時鐘信號(114)具有不越過從高到低狀態(tài)或者從低到高狀態(tài)的邏輯門限的短暫轉(zhuǎn)換。
3.權(quán)利要求1中的方法,其中當(dāng)從該系統(tǒng)時鐘(12)的時鐘信號(108)切換到該安全時鐘(16a,16b)的安全時鐘信號(116a,116b)時,該時鐘信號(114)具有延長的低時間。
4.權(quán)利要求1中的方法,還包含把來自系統(tǒng)時鐘(12)和來自至少一個安全時鐘(16a,16b)的時鐘信號(108,116a,116b)復(fù)用在一起,并且剛一檢測到故障,就選擇復(fù)用的時鐘信號(114)中的一個來運行該系統(tǒng)。
5.權(quán)利要求1中的方法,還包含當(dāng)在時鐘信號(108,116a,116b)之間切換時,等待,直到正被切換自的時鐘信號轉(zhuǎn)換到低狀態(tài)。
6.一種用于增強系統(tǒng)(10)的安全性的設(shè)備,該系統(tǒng)結(jié)合來自于一系統(tǒng)時鐘(12)的時鐘信號(108)而運行,該設(shè)備包含產(chǎn)生安全時鐘信號(116a,116b)的安全時鐘(16a,16b);被配置成監(jiān)視該系統(tǒng)(10)以檢測故障的時鐘監(jiān)視電路;時鐘切換電路(104,106),該時鐘切換電路可操作地耦合到時鐘監(jiān)視電路、系統(tǒng)時鐘信號(108)、以及安全時鐘信號(16a,16b);該時鐘切換電路(104,106)被配置成,剛一檢測到故障,就使該系統(tǒng)(10)從結(jié)合來自于系統(tǒng)時鐘(12)的時鐘信號(108)運行切換到結(jié)合來自于安全時鐘(16a,16b)的安全時鐘信號(116a,116b)運行。
7.權(quán)利要求6中的設(shè)備,還包含多個具有安全時鐘信號(116a,116b)的安全時鐘(16a,16b);該時鐘切換電路(104,106)可操作地耦合到多個安全時鐘信號(116a,116b)以便把系統(tǒng)10切換到結(jié)合這些安全時鐘信號(116a,116b)中的一個運行。
8.權(quán)利要求6中的設(shè)備,其中安全時鐘(16a,16b)包括一個環(huán)形振蕩器。
9.權(quán)利要求6中的設(shè)備,其中時鐘監(jiān)視電路(16a,16b)被配置以檢測該已檢測到故障的結(jié)束;該時鐘切換電路(104,106)還被配置成剛一檢測到所述故障的結(jié)束,就使該系統(tǒng)(10)切換以再次結(jié)合來自于系統(tǒng)時鐘(12)的時鐘信號(108)運行。
10.權(quán)利要求6中的設(shè)備,其中時鐘監(jiān)視電路被配置成監(jiān)視該系統(tǒng)(10),以檢測出與來自于該系統(tǒng)時鐘的過頻和欠頻時鐘信號(108)中的一個相關(guān)的故障,該時鐘切換電路(104,106)被配置成把系統(tǒng)(10)切換到結(jié)合來自于安全時鐘(16a,16b)的安全時鐘信號(116a,116b)運行,以防止對該系統(tǒng)(10)的過頻和欠頻計時。
11.權(quán)利要求10中的設(shè)備,其中時鐘監(jiān)視電路包括分頻器和延遲線,該分頻器和延遲線被配置成檢測來自該系統(tǒng)時鐘(12)的過頻和欠頻時鐘信號(108)。
12.一種專用集成電路,包含處理器(20);產(chǎn)生用于處理器運行的系統(tǒng)時鐘信號(108)的時鐘(12);更進(jìn)一步地產(chǎn)生安全時鐘信號(116a,116b)的安全時鐘(16a,16b);時鐘監(jiān)視電路,被配置成監(jiān)視該專用集成電路(10)以檢測故障;時鐘切換電路(104,106),該時鐘切換電路可操作地耦合到該時鐘監(jiān)視電路、該系統(tǒng)時鐘信號(108)以及安全時鐘信號(116a,116b);該時鐘切換電路(104,106)被配置成剛一檢測到故障,就使處理器(20)從結(jié)合一系統(tǒng)時鐘信號(108)運行切換到結(jié)合該安全時鐘信號(116a,116b)運行。
全文摘要
一種用于增強含有系統(tǒng)時鐘的計算系統(tǒng)的容錯性和安全性的系統(tǒng),這是通過對該計算系統(tǒng)監(jiān)視一系列安全性攻擊中的至少一個攻擊,并且剛一檢測到安全性攻擊,就把系統(tǒng)從系統(tǒng)時鐘切換到一個安全的時鐘而進(jìn)行的。
文檔編號G06F1/04GK1602458SQ02824864
公開日2005年3月30日 申請日期2002年11月26日 優(yōu)先權(quán)日2001年12月14日
發(fā)明者J·A·勒赫曼, R·塞蒂亞 申請人:皇家飛利浦電子股份有限公司