TWI781553B - 安全裝置及維護資料安全之方法 - Google Patents
安全裝置及維護資料安全之方法 Download PDFInfo
- Publication number
- TWI781553B TWI781553B TW110108854A TW110108854A TWI781553B TW I781553 B TWI781553 B TW I781553B TW 110108854 A TW110108854 A TW 110108854A TW 110108854 A TW110108854 A TW 110108854A TW I781553 B TWI781553 B TW I781553B
- Authority
- TW
- Taiwan
- Prior art keywords
- clock signal
- security
- delay
- delayed
- bus
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 43
- 230000003111 delayed effect Effects 0.000 claims abstract description 87
- 230000002093 peripheral effect Effects 0.000 claims abstract description 82
- 230000004044 response Effects 0.000 claims abstract description 18
- 230000005540 biological transmission Effects 0.000 claims description 78
- 230000015654 memory Effects 0.000 claims description 35
- 238000012546 transfer Methods 0.000 claims description 25
- 238000005070 sampling Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 description 9
- 230000000630 rising effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000007613 environmental effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/0805—Details of the phase-locked loop the loop being adapted to provide an additional control signal for use outside the loop
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/099—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
- H03L7/0995—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
- H03L7/0996—Selecting a signal among the plurality of phase-shifted signals produced by the ring oscillator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Transfer Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Debugging And Monitoring (AREA)
- Alarm Systems (AREA)
Abstract
本發明係關於包括匯流排介面及電路之安全裝置。該匯流排介面與連接主機裝置及周邊裝置之匯流排耦接。該電路被設定為經由該匯流排介面接收該匯流排之時脈訊號,並產生相對於該時脈訊號之延遲時脈訊號。該電路更被設定為使用該時脈訊號監控該主機裝置及該周邊裝置間之通訊傳輸,回應於識別一給定傳輸,使用該延遲時脈訊號取樣該給定傳輸之一部分,該給定傳輸的該部分被預期以相對於該時脈訊號的一預先定義時間延遲加以延遲;並基於該取樣之部分,於識別該給定傳輸違反安全政策時,採取安全措施回應之。
Description
總體而言,於此描述之實施例係關於電子系統之安全,特別關於藉由使用選擇性延遲時脈訊號,監控經由匯流排之傳輸(transaction),以達成主機(host)與周邊裝置(peripheral devices)間安全通訊之方法與系統。
電子系統使用多種匯流排介面(bus interface),進行主機裝置與周邊裝置之通訊。匯流排介面之其中一例,乃序列周邊介面(Serial Peripheral Interface, SPI)匯流排。支援 SPI 之周邊裝置,包含序列快閃記憶體(Flash memory)等裝置。
於此描述之一實施例,提供包含匯流排介面與電路之安全裝置。該匯流排介面與連接主機裝置與周邊裝置之匯流排耦接。該電路被設定為經由該匯流排介面接收該匯流排之時脈訊號,並產生相較於該時脈訊號之延遲時脈訊號。該電路更被設定為:使用該時脈訊號,監控該主機裝置與該周邊裝置間之通訊傳輸;回應於識別一給定傳輸,使用該延遲時脈訊號取樣該給定傳輸之一部分,該給定傳輸的該部分被預期以相對於該時脈訊號的一預先定義時間延遲加以延遲;以及基於該取樣之部分,於識別該給定之傳輸違反安全政策時,採取安全措施回應之。
於某些實施例中,該電路被設定為使用該時脈訊號,取樣該給定傳輸中由該主機裝置傳送至該周邊裝置之請求 (request) 部分,並使用該延遲時脈訊號,取樣該給定傳輸中由該周邊裝置傳送至該主機裝置之回應(response)部分。於其他實施例中,電路包含延遲線(delay line, DL),且該電路被設定為使用該DL延遲該時脈訊號,以產生延遲時脈訊號。於另等其他實施例中,該DL包括延遲鎖相迴路(delay locked loop, DLL),該迴路包括一多級延遲元件鏈,該多級延遲元件鏈具有可選擇之多個輸出。
於一實施例中,該DL支援多個可選擇設定,分別對應各個時間延遲值,且該電路被設定為由該等設定中選擇一挑選設定,以供在該延遲時脈訊號與該時脈訊號間之實際延遲時間與預先定義之延遲時間最為接近者之用,並設定該DL為該挑選設定。於另一實施例中,為校正該DL,該電路被設定為以環形振盪器(ring oscillator)模式運作該DL,測量該環形振盪器模式DL產生之頻率,並計算基於該測得頻率之實際延遲時間。於另一實施例中,該電路被設定為於不預期有須使用該延遲時脈訊號取樣之傳輸之時間期間內校正該DL。
於某些實施例中,該電路包括另一DL,且該電路被設定為校正該另一DL,以基於該預先定義之延遲時間產生校正延遲時脈訊號,並選擇該校正延遲時脈訊號,而非該延遲時脈訊號。於其他實施例中,該匯流排包括序列周邊介面(Serial Peripheral Interface, SPI)匯流排,該周邊裝置包括讀取時提供延遲資料之SPI快閃記憶體,該給定傳輸包括由該SPI快閃記憶體進行讀取操作,且該電路被設定為使用該延遲時脈訊號,自該SPI快閃記憶體擷取之延遲資料進行取樣。於另等其他實施例中,為識別該給定傳輸違反安全政策,該電路被設定為(i)偵測試圖存取該周邊裝置中受保護之位址區域之動作,或(ii)識別傳送至該主機裝置之資料為無效。
本揭露亦依據於此提供之實施例,提供保護資料安全之方法,該方法包括於一個包括與連接主機裝置及周邊裝置之匯流排耦接之匯流排介面之安全裝置內,經由該匯流排介面接收該匯流排之時脈訊號,並產生相較於該時脈訊號之延遲時脈訊號。使用該時脈訊號可監控該主機裝置與該周邊裝置間之傳輸通訊。回應於識別一給定傳輸,使用該延遲時脈訊號取樣該給定傳輸之一部分,該給定傳輸的該部分被預期以相對於該時脈訊號的一預先定義時間延遲加以延遲。基於該取樣之部分,於識別該給定之傳輸違反安全政策時,採取安全措施回應之。
此等及其他實施例,於閱讀以下該等實施例之詳述,並搭配圖式閱讀後,將更為完整明確。其中,該等圖式為:
於此描述之實施例,藉由使用選擇性延遲時脈訊號,監控經由匯流排之傳輸,以提供主機與周邊裝置間安全通訊之改良方法與裝置。周邊裝置可能包含例如加密引擎(cryptographic engine)、儲存敏感資料之記憶體裝置,或其他可經由匯流排存取之合適裝置。
於某些揭露之實施例中,安全裝置監控匯流排上之傳輸,並識別違反系統安全之傳輸。違反安全性可能發生於主機裝置或其他匯流排主要(bus-master)裝置未經許可試圖存取該周邊裝置時。另一種違反安全性之態樣,乃攻擊者可能於該匯流排強制傳送無效資料。使用任何合適之準則或政策,匯流排上之傳輸可被歸類為違反或不違反安全性。該安全裝置於偵測到違反系統安全之傳輸時,採取合適之安全措施回應之。
於某些實施例中,連接該主機裝置與該周邊裝置之匯流排包含序列周邊介面(SPI)匯流排,或任何其他合適之匯流排。該SPI匯流排包含一SPI時脈訊號,以及(於一種匯流排組態中)兩條資料線,分別為主要輸出從屬輸入(Master-Out Slave-In, MOSI)及主要輸出從屬輸入(Master-In Slave-Out, MISO)。該SPI匯流排更包含一專用晶片選擇(Chip-Select, CS)線,以選擇每一從屬周邊裝置。
該SPI匯流排上之傳輸,一般包含一指令(command),並可能包含一位址(address)及/或資料(data)。若該周邊裝置包含例如快閃記憶體裝置,則該主機裝置經由該 MOSI 線傳送一指令、接著傳送一位址(於此亦稱為「請求」部分),以由該快閃記憶體裝置讀取資料,並經由該MISO線接收該讀取資料(於此亦稱為「回應」部分)。該主機傳送該指令與位址部分,乃與該SPI時脈訊號同步。然而,於相反方向上,由該快閃記憶體裝置傳送至該主機裝置之資料,可能相較於該SPI時脈訊號有所延遲,例如因該快閃記憶體裝置較長之回應時間所致。
原則上,該安全裝置可基於該SPI時脈訊號,監控MOSI與MISO線上之傳輸。然而,使用該SPI時脈訊號取樣業已延遲之資料,可能造成資料錯誤,進而降低系統安全之層級。
於某些實施例中,為補償該業已延遲之資料,該安全裝置使用延遲時脈取樣該延遲之資料,該延遲時脈相對於該SPI時脈有一時間位移。該安全裝置可能於不同時段,決定使用該SPI時脈或該延遲時脈監控該MISO線,依該周邊裝置之種類及該傳輸之指令而定。
於某些實施例中,該安全裝置使用延遲線(DL),自該SPI時脈衍生該延遲時脈訊號。該安全裝置選擇該延遲時脈訊號,以於預期相對於該SPI時脈訊號之延遲傳輸部分中取樣傳輸。於一實施例中,該DL包含延遲鎖相迴路(DLL),該迴路包含一多級可選擇延遲元件鏈。
於某些實施例中,該DL支援多個可選擇延遲時間設定,與多個延遲值對應。為校正該DL至所需之延遲時間,該安全裝置選擇該等延遲時間設定中最接近所需之延遲時間者,並控制該DL至該選定延遲設定。該所需之延遲時間,可能由例如該周邊裝置之供應商訂定。該安全裝置可藉由設定該DL運作於環形振盪器模式、測量該DL於環形振盪器模式之頻率及基於該測得之頻率計算實際延遲時間,校正該DL並估計實際延遲時間。
該安全裝置可能進行例如一次(於開機或重置時)、週期性及/或有條件(例如取決於環境及操作條件,例如溫度及供電電壓)之DL校正。
於某些實施例中,該安全裝置於「安全」之時段校正該DL,該「安全」時段中不預期有需使用以DL進行延遲之時脈進行採樣之傳輸。於其他實施例中,為於任何所欲之時間皆能校正,該安全裝置包含二個DL,其中於任何給定之時間皆有一DL產生該延遲時脈,而另一DL可供校正之用。於校正該可校正之DL後,該二DL可交換角色。
該安全裝置可以多種方式識別一傳輸違反安全政策。於某些實施例中,該安全裝置藉由(i)偵測試圖存取該周邊裝置受保護之位址區域之動作,或(ii)識別傳送至主機裝置之資料為無效,以識別違反系統安全之操作。
於揭露之技術中,安全裝置使用由該SPI時脈訊號衍生之延遲時脈訊號(例如使用 DL),取樣業已延遲之傳輸部分。基於裝置之種類,並可能基於該傳輸之指令部分,該安全裝置僅對於特定之傳輸及傳輸中預期相對於該SPI匯流排時脈有所延遲之部分,選擇該延遲時脈,而非該SPI時脈。該安全裝置校正該DL至所需之延遲時間,使該延遲部分即使環境與操作條件可能改變,仍可被準確取樣。使用該等揭露之技術,該安全裝置可穩妥地監控所有傳輸,並於偵測到違反系統安全之操作時,採取安全措施。
[系統描述]
第1圖為一方塊圖,依據於此描述之實施例,圖示一安全系統20。於第1圖之範例中,安全系統20包含主機裝置24、周邊裝置28及安全裝置32,皆與SPI匯流排36連接。於此範例中,周邊裝置28包含SPI快閃記憶體裝置。其他合適之周邊裝置亦可使用。
安全裝置32識別違反系統安全之傳輸。違反系統安全之傳輸,可能肇因於攻擊者獲取主機裝置24、周邊裝置28及/或SPI匯流排36之控制。例如,傳輸可能因主機裝置24未經許可試圖存取周邊裝置28而違反系統安全。另一例為該周邊裝置或攻擊者可能試圖經由該匯流排提供無效資料予該主機裝置。
於本範例中,安全裝置32包含匯流排介面40供連接SPI匯流排36之用、被設定為進行一部分揭露技術之處理器44與被設定為儲存一個或多個由處理器44執行之安全政策之記憶體48。
於第1圖中,SPI匯流排36包含一條時脈(CLK)線及兩條資料線,分別為主要輸出從屬輸入(MOSI)與主要輸入從屬輸出(MISO)。所有與該匯流排耦接之周邊裝置(於本範例中僅有周邊裝置28),皆具備該等CLK、MOSI 與 MISO線。此外,各從屬裝置皆可使用一專用之晶片選擇(CS)線選擇。於本範例中,主機裝置24使用以CS表示之晶片選擇線選擇周邊裝置28。
總體而言,主機裝置24作為主要裝置(master),連接至所有周邊裝置之CS線。另一方面,該等周邊裝置為從屬裝置(slave),故每一周邊裝置僅連接至其自身之CS線。一般而言,主機裝置24使用對應之CS線藉由選擇欲通訊之周邊裝置開始一傳輸,並隨即使用該等CLK、MOSI與 MISO線與該裝置通訊。該MOSI線用於自該主機裝置傳送訊號至該周邊裝置,該MISO線則用於自該周邊裝置傳送訊號至主機裝置。
安全裝置32使用輸出取樣器52與輸入取樣器56,監控經由SPI匯流排36之傳輸。輸出取樣器52接收該SPI匯流排之CLK訊號,並使用該CLK訊號取樣該主機裝置經由該MOSI線傳送之序列資訊。輸出取樣器52取樣由主機裝置24經由該MOSI線傳送至該周邊裝置之待寫入指令、位址與資料。輸入取樣器56取樣由該周邊裝置經由該MISO線傳送至該主機裝置之資料。
於某些傳輸中,該周邊裝置於該MISO線上傳送相較於該SPI CLK有所延遲之資料。此情況可能發生於例如讀取SPI快閃記憶體時,因該快閃記憶體裝置相對較長之回應時間所致。此延遲將導致該輸入取樣器可能於非最佳時間點取樣該讀取資料,造成資料錯誤。於此等情況下,輸入取樣器 56 於傳輸之資料階段中,使用包含該SPI CLK訊號之延遲版本之時脈訊號取樣該MISO線,因而得以補償該延遲之資料。該延遲時脈應被調整至可提供充足之設置時間(setup time)供取樣該資料之用。
於第1圖之範例中,選擇器60提供一輸入取樣器時脈訊號58(以 IS_CLK表示) 至輸入取樣器56。選擇器60由(未延遲之)SPI CLK及二個時脈訊號66及68(分別表示為DL_CLK與INV_CLK,兩者各包含該SPI CLK訊號之一延遲版本)中選擇。延遲線(DL)70產生該DL_CLK訊號,而反相邏輯閘72產生該INV_CLK訊號。
於某些實施例中,DL 70包含可調整之DL,支援多個可選擇之延遲時間設定,其中每一設定分別對應至不同延遲值。如下詳述,DL 70可藉由選擇其中一個最接近所需延遲時間之延遲時間設定進行校正。該所需延遲時間可能由例如該周邊設備之供應商或製造商訂定。於某些實施例中,DL 70包含延遲鎖相迴路(DLL),該迴路包含一多級可選擇延遲元件鏈。該DLL可藉由選擇該等延遲元件之一之輸出進行校正。DL之校正策略將於下詳述。
反相邏輯閘72產生INV_CLK訊號,相較於該SPI CLK訊號延遲半個週期。該INV_CLK訊號可用於例如所需之延遲時間接近半個CLK週期,且無任何DL設定支援時。
於第1圖之範例中,選擇器60由一(二位元)選擇訊號62(以CLK_SELECT表示) 控制,該選擇訊號62由輸出取樣器52產生。另外,選擇訊號62亦可由處理器44、或由處理器44與輸出取樣器52之組合、或由該安全裝置中任何合適之元件產生。於某些實施例中,選擇訊號62導致該選擇器於大部分傳輸中輸出該SPI CLK訊號,並在該傳輸之一部分相對於該SPI CLK有所延遲之期間,選擇延遲時脈訊號66與68之一供選定傳輸使用。輸出取樣器52取樣該傳輸之指令,並基於該指令之種類決定該傳輸中需使用延遲時脈訊號取樣之週期(若有)。例如,於讀取SPI快閃記憶體裝置時,該選擇訊號於該MISO線之資料階段選擇該延遲時脈66。
處理器44接收由輸出取樣器52及輸入取樣器56取樣之傳輸資訊。處理器44可根據任何預先定義或設定之政策,將傳輸歸類為違反或不違反系統安全。於某些實施例中,該/該等區分違反或不違反系統安全之政策儲存於記憶體48中。
總體而言,違反系統安全之傳輸可能嘗試寫入資料至該周邊裝置、自該周邊裝置讀取資料、設定或傳送指令至該周邊裝置,或以任何其他合適之方法存取該周邊裝置。舉例而言,違反系統安全之傳輸可能嘗試存取該周邊裝置中受保護之位址區域。另舉一例,該傳輸之位址部分可能經許可,但由該記憶體裝置讀取之資料可能為無效。
於識別傳輸違反系統安全時,處理器44進行合適之安全措施。於一範例實施例中,該安全措施包含故意強制設定(與該傳輸並列)該匯流排之一個或多個線路或訊號之值為某些虛擬值,以中斷該傳輸。中斷SPI及其他匯流排未經許可之傳輸之技術,於2019年8月1日美國專利申請公開文件2019/00236281等文件中描述。上述美國專利申請公開文件之揭露,特此併入參照文件。
[使用二線/四線 SPI 匯流排之安全系統]
第2圖為一方塊圖,依據於此描述之另一實施例,圖示一安全系統 100。
安全系統100與安全系統20相似,以相同原理運作。系統100與系統20之主要差異,在於系統20中之SPI匯流排以單線(single)模式運作,而系統100中之SPI匯流排以二線(dual)或四線(quad)模式運作,如下所述。基本上,安全系統100包括與安全系統20相同之元件,然該等元件經適當之調整,以支援二線與四線模式。
於安全系統100中,主機裝置124、周邊裝置128與安全裝置132皆連接至支援二線SPI與四線SPI半雙工運作模式之SPI匯流排136。
於SPI二線模式中,該等MOSI與MISO線被用作序列輸入/輸出(Serial I/O, SIO)線(以SIO0與SIO1表示),於一個時脈週期內由該周邊裝置傳送兩個位元至該主機裝置。該主機經由該MOSI線傳送指令至該周邊裝置,以開始傳輸。該主機裝置可能僅於每個時脈週期內經由該MOSI線傳送一個位元之傳輸位址,或於每個時脈週期內經由該等MOSI與MISO線傳送兩個位址位元。使用二線模式,主機裝置124可自該周邊裝置(例如SPI快閃記憶體裝置)以二倍於安全系統20之單線模式SPI匯流排所支援之速率讀取資料。
於SPI四線模式中,另使用兩條I/O線(以SIO2及SIO3表示),以支援於一個時脈週期內自該周邊裝置傳送四個資料位元至該主機裝置。主機裝置124可能僅於一個時脈週期內經由該MOSI線傳送一個位元之指令、位址或兩者,亦可能於每個時脈週期內經由二或四條線路傳送兩個或四個位元。使用四線模式,主機裝置124可自該快閃記憶體裝置以四倍於安全系統20之單線模式SPI匯流排之速率讀取資料。
安全裝置132包括輸出取樣器152與輸入取樣器156。於第2圖之範例中,假設該主機裝置124經由該MOSI線傳送指令、位址與資料至周邊裝置128,並於二線模式中由該周邊裝置經由該等SIO0與SIO1線接收資料,以及於四線模式中經由該等SIO0至SIO3接收資料。於此設定中,輸出取樣器152經由匯流排介面140接收該MOSI線之訊號,輸入取樣器156經由該匯流排介面於二線模式中接收SIO0與SIO1線之訊號、或於四線模式中接收SIO0至SIO3線之所有訊號。於另一實施例中,輸出取樣器152接收該等SIO0至SIO3線之訊號,並於二線模式中取樣SIO0與SIO1線之訊號、或於四線模式中取樣SIO0至SIO3線之所有訊號。
總體而言,輸出取樣器152及輸入取樣器156於同一傳輸之二線與四線模式中,採用不同取樣順序。因此,該等輸入取樣器及輸出取樣器依據採用之模式為二線或四線,決定應遵循何種取樣順序,以於相關線路上取樣該等指令、位址及資料。
輸入取樣器156使用時脈訊號158(以IS_CLK表示),於該傳輸之相關部分取樣該等相關之匯流排線路。基於取樣之指令及/或位址,輸出取樣器152產生一CLK_SELECT訊號162,以控制選擇器160輸出SPI CLK訊號、延遲時脈訊號166(以DL_CLK表示)及反相時脈訊號168(以INV_CLK表示)之一至IS_CLK158。DL_CLK及INV_CLK分別由SPI CLK使用DL 170及反相邏輯閘172產生。
安全系統100包括與安全系統20之處理器44作用相似之處理器144。處理器144自輸出取樣器152及輸入選擇器156接收訊號、傳輸資訊,並決定該傳輸是否違反安全政策,例如根據儲存於記憶體148中之安全政策。於偵測傳輸違反安全政策時,處理器144採取合適之安全措施回應之,如上文所述。
第1圖及第2圖之安全系統20及100、主機裝置24及124、周邊裝置28及128與安全裝置32及132之設定乃範例設定,其選擇僅為概念清晰性之目的。於另等實施例中,任何其他合適之安全系統、主機裝置、周邊裝置與安全系統設定皆可使用。
於理解本發明之原理非必要之元件,例如各種介面、定址電路、定時與定序電路及除錯電路,為考量清晰性而自圖式中省略。
安全裝置32與132不同之元件,可使用任何合適之硬體實施,例如一個或多個特定應用積體電路 (Application-Specific Integrated Circuit, ASIC) 或現場可程式化邏輯閘陣列 (Field-Programmable Gate Array, FPGA)。於某些實施例中,安全裝置32及132之部分元件可以軟體實施,或使用硬體及軟體元件之組合實施。
第1圖中之記憶體48及第2圖中之記憶體148可能包括採用任何合適技術之任何合適儲存媒體,例如隨機存取記憶體(Random Access Memory, RAM)或非揮發性記憶體(nonvolatile memory)。
一般而言,處理器44及144各包括一個通用處理器,該等通用處理器以軟體程式化,以執行於此描述之功能。該軟體可能以電子形式(例如經由網路)被下載至該相關之處理器,或/且由非暫態有形媒體提供及/或儲存,例如磁性、光學或電子記憶體。
於本揭露及請求項之脈絡中,安全裝置32及安全裝置132中之所有元件,除匯流排介面40及140外,皆以「電路」一詞統稱之。第1圖(第2圖)中,該電路包括處理器44(144)、記憶體48(148)、輸出取樣器52(152)、輸入取樣器56(156)、選擇器60(160)、DL 70(170) 及反相邏輯閘72(172)。
[使用延遲時脈之傳輸之時序圖]
第3圖為一時序圖,依據於此描述之實施例,圖示讀取傳輸中產生之多個匯流排與時脈訊號。
於第3圖中,該讀取傳輸經由第1圖之安全系統20中之SPI匯流排36執行。該讀取傳輸由主機裝置24發起,以自SPI快閃記憶體裝置(28)經由SPI匯流排36讀取資料。安全裝置32於該讀取傳輸中監控該等MOSI及MISO匯流排線路。
於第3圖中,主機裝置24產生晶片選擇(chip select, CS)訊號200以選擇快閃記憶體裝置28。主機裝置24更產生SPI CLK訊號204以與快閃記憶體裝置28進行序列通訊。
於第3圖之範例中,主機裝置24經由該MOSI線傳送指令208(以指令
表示)及位址212(以位址
表示)至快閃記憶體裝置28。於本範例中,指令208包括讀取指令,該讀取指令命令該快閃記憶體裝置自位址212讀取訊號。該快閃記憶體裝置取得所求之資料216(以資料
表示)並經由該MISO線傳送至主機裝置24。
於本範例中,指令208可能包括8個位元,位址212可能包括32位元,而資料216可能包括n個位元。資料之位元數n可能包括任何合適之8位元之整數倍數,例如n=32位元。其他合適之指令、位址及資料長度亦可使用。於第3圖中,該主機裝置與SPI CLK 204之上升邊緣(rising edge)同步傳送該等指令208及位址212之位元。輸出取樣器52於SPI CLK 204之下降邊緣(falling edge)取樣該等指令208及位址212之位元。
由該周邊裝置經由該MISO線傳送至該主機裝置之資料216之位元,一般預期與SPI CLK 204之上升邊緣同步。該等資料位元被推動,以回應該SPI CLK之下降邊緣。為進行可靠之取樣,SPI CLK訊號204之該等上升邊緣應最佳化地對齊位元中央之時間點。意即該時脈訊號之上升邊緣應發生於一足夠之設置時間之後。然而,於第3圖中該SPI CLK之上升邊緣(220)無法滿足設置時間之需求。藉由將該SPI CLK延遲一段時間224(以延遲
表示),該等資料位元可以足夠之設置時間被取樣。於某些實施例中,該延遲
224之長度為預先定義,例如由該周邊裝置之供應商所提供之資訊推論而得。此一延遲反映該快閃記憶體導致之反應時間,亦即自接收該位址至經由該 MISO 線輸出第一資料位元所經之時間。
為對資料216進行可靠之取樣,安全裝置32使用延遲時脈訊號228(以DL_CLK表示)對資料216進行取樣,該延遲時脈訊號之上升邊緣對齊資料216位元中央之時間點。如圖所示,DL_CLK之上升邊緣232對齊資料216之第一位元中央時間點。第3圖之DL_CLK 228可視為第1圖之DL_CLK 66(及第2圖之DL_CLK 166)。
於第3圖中,CLK_SELECT訊號236如上第1圖所述,為區分三個時脈來源之二位元訊號。於本範例中,CLK_SELECT訊號區分基於該SPI CLK取樣指令與位址資訊之時間段,以及基於DL_CLK 66取樣讀取資料之時間段。第3圖之CLK_SELECT訊號 236可視為第1圖之CLK_SELECT訊號 62(及第2圖之CLK_SELECT訊號162)。
儘管第3圖乃圖示第1圖之安全系統20之匯流排與時脈訊號,相似行為亦適用於第2圖之安全系統100,其中二個或四個資料位元被傳送(延遲)至該主機裝置,並以延遲時脈被可靠地取樣。
[使用選擇性延遲時脈訊號監控傳輸以達成安全匯流排通訊之方法]
第4圖為一流程圖,依據於此描述之實施例,圖示一安全匯流排通訊方法,該方法包含使用選擇性延遲時脈訊號,監控經由匯流排之傳輸。
以下將該方法以執行於安全系統20中之安全裝置32描述。然而,該方法亦可相似地用於安全系統100中之安全裝置132。
於描述該方法時,假設主機裝置24與快閃記憶體裝置28通訊。於本範例中,僅為清晰明確起見,該主機可能發起寫入傳輸以將資料寫入該快閃記憶體之某位址,或發起讀取傳輸以自該快閃記憶體讀取儲存於某位址之資料。
於寫入傳輸中,安全裝置32使用該SPI CLK經由該MOSI線取樣欲寫入之指令、位址及資料。於讀取傳輸中,該安全裝置使用延遲時脈(例如DL_CLK 66)經由該MISO線取樣資料。
該方法始自輸出取樣器52控制選擇器60以選擇該SPI CLK訊號,於選擇SPI CLK之步驟300中,供輸入取樣器56監控經由SPI匯流排36之MISO線之傳輸使用。於取樣指令之步驟304中,輸出取樣器52監控該SPI匯流排之MOSI線(使用該SPI CLK),並取樣傳輸之指令部分。
基於該指令之種類(於本範例中,該指令種類可能為記憶體讀取或記憶體寫入),輸出取樣器52決定該傳輸是否包含位址部分、資料部分或兩者皆有。此外,基於該指令之種類,該輸出取樣器決定該傳輸之順序及時序。例如,使用預先儲存之傳輸資訊,該輸出取樣器可識別與該位址部分及資料部分關聯之時脈週期。於本範例中,該傳輸包括一寫入指令或讀取指令,兩者皆有一位址部分跟隨其後。
於監控位址之步驟308中,輸出取樣器52經由該MOSI線取樣(使用該 SPI CLK)該傳輸之位址部分。處理器44自輸出取樣器接收該取樣之位址,並使用一個或多個記憶體48中之安全政策,以決定該取樣之位址是否違反系統安全,例如存取該快閃記憶體中受保護之位址區域。
若步驟308中未發生位址違反安全政策之情事,則該方法前進至時脈詢問之步驟312,於該步驟312中輸出取樣器52檢查取樣該傳輸之資料部分是否需要延遲時脈。於一實施例中,步驟312中之決策乃基於該指令之種類。例如,該輸出取樣器可能決定對自快閃記憶體讀取資料之傳輸,使用延遲時脈經由該MISO線對該資料進行取樣。
於步驟312中,若偵測到需要延遲時脈,則該輸出取樣器於時脈選擇之步驟316控制選擇器60輸出該延遲時脈(例如DL_CLK 66 或 INV_CLK 68)以回應之。若否,則該輸出取樣器控制選擇器60繼續輸出該SPI CLK。
於資料監控之步驟320中,輸入取樣器56取樣該傳輸之資料部分。為取樣讀取傳輸之資料部分,相較於記憶體讀取指令,選擇器60選擇該延遲時脈,如上所述。對任何其他指令種類,輸入取樣器56使用該SPI時脈取樣該資料部分。處理器44自輸入取樣器56(讀取指令)或輸出取樣器52(寫入指令)接收該取樣之資料,並使用記憶體48中之安全政策決定該資料為有效或無效。
於步驟320中,若處理器44未偵測到資料違反安全政策之情事,則該方法回至步驟300,以監控SPI匯流排36隨後之傳輸。若於步驟320中該資料為無效,或於步驟308中該位址為未經許可,則該方法前進至安全措施之步驟324,於該步驟324中處理器44採取任何合適之安全措施。於進行步驟324後,該方法回至步驟300。
於第4圖之方法中,假設該周邊裝置包括支援寫入及讀取傳輸之SPI快閃記憶體裝置。於另等實施例中,該SPI快閃記憶體裝置可能支援其他指令,例如設定(configuration)及狀態讀取(status read)指令。此外,該周邊裝置可能包括SPI快閃記憶體以外其他種類之裝置,支援其他種類之指令。於此等情形中,第4圖中之方法可依情形進行擴展。
[延遲線校正]
第5圖依據於此描述之實施例,圖示一校正可調延遲線(DL)之方法。
於某些實施例中,安全裝置32或132使用該方法,分別校正DL 70與170。以下將該方法以執行於處理器44描述,然該方法亦可相似地由處理器144執行。
於描述該方法時,假設DL 70支援多個可選擇之延遲設定,其中每一延遲設定皆與一延遲值關聯。應注意,與一給定之DL設定關聯之實際延遲值,可能因環境之改變(例如供電電壓及溫度)而改變。
此外,亦假設該DL可被設定運作於延遲線模式,或環形振盪器模式。於延遲線模式中,該DL根據所選之延遲設定,提供時間位移予輸入訊號。於環形振盪器模式中,該DL之輸出回饋並邏輯反相至其輸入。若設定為環形振盪器模式,則該DL以環形振盪器形式運作,輸出工作週期為2T之方波訊號,其中T表示該DL之延遲時間。此外,更假設該DL(或該安全裝置任何其他合適之元件)包括處理邏輯電路,可測量環形振盪器模式中產生之方波頻率。
該方法始自處理器44於所需延遲之步驟340接收所需之延遲值(以Dreq
表示),該延遲值一般取決於周邊裝置28之種類。該所需延遲可能程式化於該安全裝置內,或由例如主機裝置24提供予該處理器。若已進行前一次校正,則該所需延遲應對應至該DL中一給定之延遲設定,其中該延遲設定已於前一次校正中決定。
於設定環形振盪器之步驟344中,處理器44設定該DL運作於環形振盪器模式。於環形振盪器模式中,該處理器測試一個或多個DL延遲設定,並測量對應之DL延遲值。該處理器選擇一延遲設定,該延遲設定所導致之實際延遲值最接近該所需延遲Dreq
。
於初始延遲設定之步驟348中,該處理器設定該DL至其中一支援之延遲設定。例如,該處理器可能選擇對應最低、最高、或某一居中之延遲值之延遲設定。於另一實施例中,該處理器可能起始於最接近前一次校正階段中所需延遲值之延遲設定。
於延遲估計之步驟352中,該DL首先測量環形振盪器模式產生之方波頻率(以FRQ表示)。處理器44接收該測得之FRQ值,並計算估計延遲值(以Te
表示):
Te
=1/(2·FRQ)
於終止檢查之步驟360中,該處理器檢查該估計延遲值Te
是否足夠接近該所需延遲值Dreq
。於一範例實施例中,該處理器檢查Te
與Dreq
之時間差是否小於預先定義之時間限制。
若步驟360之檢查結果為「是」,則該處理器於延遲線設定之步驟346中設定該DL以延遲線模式運作,並設定該DL之延遲為最近一次經測試對應至Te
之延遲設定,成功完成校正,該方法終止。若否,則處理器44前進至迴圈終止之步驟368於該步驟368中該處理器檢查是否所有支援之延遲設定皆已被測試。
若步驟368之檢查結果為「否」,則該處理器回至步驟348以設定該DL(仍處於環形振盪器模式)至其中一個於當前校正階段中尚未被測試之延遲設定。該處理器可能以任何合適之方法選擇次一延遲設定,例如循序選擇法(sequential selection)或二元搜尋法(binary search)等方法。
若步驟368之檢查結果為「是」,則所有支援之延遲設定皆已被測試,然無一對應之延遲值足夠接近該所需延遲值Dreq
。此時,該處理器於錯誤報告之步驟 376 中發出錯誤訊息,該方法終止。
於某些實施例中,該處理器僅於開機或重置時使用一次第5圖之方法校正DL 70。於其他實施例中,例如因環境或操作狀況變化(例如溫度與供電電壓),該DL於開機時所設定之延遲值可能失準,進而導致錯誤之監控結果,降低系統安全之層級。於此等實施例中,第5圖之方法可不時(例如定期) 執行,或於偵測環境/操作狀況明顯變化時執行。例如,可於溫度(及/或供電電壓)自上次校正至今之改變超過預先定義之極限值時進行重新校正。
由於DL之校正乃進行於環形振盪器模式,該DL於校正時無法作為延遲線供監控之用。為維持高等級之系統安全,該處理器被設定為於不預期有須使用由該DL產生之延遲時脈監控之傳輸時校正該DL。例如,該處理器可能於預期無傳輸時、預期僅有寫入傳輸時、或預期僅有低時脈讀取傳輸時校正該DL。
於某些實施例中,為能於任何所欲之時間皆支援DL校正,該安全裝置包括二個DL模組。當一個DL(DL1)用於監控時,另一DL(DL2)可供校正。該處理器可能決定校正DL2,隨後交換該二DL之角色,使甫校正之DL2用於監控,DL1則可供校正。於稍後之合適時間,該處理器可能決定重新校正DL1並再次交換該二DL之角色。於某些實施例中,該處理器於安全之時間段交換DL1與DL2之角色,該安全之時間段中無DL被使用,例如該CS線未選擇該周邊裝置時。
上述之各實施例乃為範例,其他合適之實施例亦可使用。例如,儘管於上述實施例中假設輸出取樣器52、輸入選擇器56與處理器44間採用某一特定分工方式。例如該等輸入與輸出選擇器主要進行訊號取樣及時脈選擇,而處理器44主要偵測傳輸違反安全政策之情形,並採取安全措施回應。此種分工方式並非強制,其他合適之分工方式亦可使用。
於上述之實施例中,安全裝置32(及132)包含單一DL。於另等實施例中,該安全裝置可能包括多個DL,其中每一DL皆校正至不同之所需延遲時間。此法可能於某些情況下有其用處,例如當不同傳輸分別需要不同延遲時間方能可靠地取樣時。
上述之實施例主要關於監控SPI匯流排上之訊號。於另等實施例中,其他合適之匯流排亦可使用,例如僅包括一條資料線及一條時脈線之I2
C匯流排。
應注意,上述之實施例僅可作為範例援用,以下之請求項不限於以上特別揭示及敘述之內容。反之,其範圍包括以上所述各特徵之組合與次組合,以及於本發明所屬技術領域具技術之人於閱讀前述內容後即可知悉、且未於先前技術中揭露之變體或改良。於本專利申請文件中併入參照之文件,除併入文件中之詞彙定義與本說明書中之明示或隱含定義牴觸之處外,應視為本申請文件不可或缺之部分。該等牴觸之處以本說明書之定義為準。
CS:晶片選擇
CLK, SPI CLK:時脈
MOSI:主要輸出從屬輸入
MISO:主要輸入從屬輸出
DL:延遲線
DL_CLK:延遲時脈訊號
INV_CLK:反相時脈訊號
IS_CLK:輸入取樣器時脈訊號
CLK_SELECT:選擇訊號
MOSI/SIO0:主要輸出從屬輸入/序列輸入/輸出訊號
MISO/SIO1:主要輸入從屬輸出/序列輸入/輸出訊號
SIO2, SIO3:序列輸入/輸出訊號
20:安全系統
24:主機裝置
28:周邊裝置
32:安全裝置
36:SPI匯流排
40:匯流排介面
44:處理器
48:安全政策
52:輸出取樣器
56:輸入取樣器
58:輸入取樣器時脈訊號
60:選擇器
62:選擇訊號
66:DL_CLK
68:INV_CLK
70:延遲線
72:反相邏輯閘
100:安全系統
124:主機裝置
128:周邊裝置
132:安全裝置
136:SPI匯流排
140:匯流排介面
144:處理器
148:安全政策
152:輸出取樣器
156:輸入取樣器
158:輸入取樣器時脈訊號
160:選擇器
162:選擇訊號
166:DL_CLK
168:INV_CLK
170:延遲線
172:反相邏輯閘
200:晶片選擇訊號
204:SPI CLK訊號
208:指令
212:位址
216:資料
218:設置時間
220:上升邊緣
224:延遲
228:延遲時脈訊號
232:上升邊緣
236:CLK_SELECT訊號
300, 304, 308, 312, 316, 320, 324:步驟
340, 344, 348, 352, 360, 364, 368, 376:步驟
第1圖為一方塊圖,依據於此描述之實施例,圖示一安全系統;
第2圖為一方塊圖,依據於此描述之實施例,圖示另一安全系統;
第3圖為一時序圖,依據於此描述之實施例,圖示讀取傳輸中產生之多個匯流排與時脈訊號;
第4圖為一流程圖,依據於此描述之實施例,圖示一安全匯流排通訊方法,該方法包含使用選擇性延遲時脈訊號,監控經由匯流排之傳輸;以及
第5圖為一流程圖,依據於此描述之實施例,圖示一校正可調延遲線(DL)之方法。
CS:晶片選擇
CLK:時脈
MOSI:主要輸出從屬輸入
MISO:主要輸入從屬輸出
DL:延遲線
DL_CLK:延遲時脈訊號
INV_CLK:反相時脈訊號
IS_CLK:輸入取樣器時脈訊號
CLK_SELECT:選擇訊號
20:安全系統
24:主機裝置
28:周邊裝置
32:安全裝置
36:SPI匯流排
40:匯流排介面
44:處理器
48:安全政策
52:輸出取樣器
56:輸入取樣器
58:輸入取樣器時脈訊號
60:選擇器
62:選擇訊號
66:DL_CLK
68:INV_CLK
70:延遲線
72:反相邏輯閘
Claims (20)
- 一種安全裝置,包括: 匯流排介面,與連接主機裝置及周邊裝置之匯流排耦接;以及 電路,被設定為: 經由該匯流排介面,接收該匯流排之時脈訊號,並產生相對於該時脈訊號之延遲時脈訊號; 使用該時脈訊號,監控該主機裝置及該周邊裝置間之通訊傳輸; 回應於識別出一給定傳輸,使用該延遲時脈訊號取樣該給定傳輸之一部分,該給定傳輸的該部分被預期以相對於該時脈訊號的一預先定義時間延遲加以延遲;以及 基於該取樣之部分,於識別出該給定傳輸違反安全政策時,採取安全措施回應。
- 如請求項1之安全裝置,其中該電路被設定為使用該時脈訊號取樣該給定傳輸自該主機裝置傳送至該周邊裝置之請求部分,並使用該延遲時脈訊號取樣該給定傳輸自該周邊裝置傳送至該主機裝置之回應部分。
- 如請求項1之安全裝置,其中該電路包括延遲線(DL),且其中該電路被設定為使用該DL延遲該時脈訊號,以產生該延遲時脈訊號。
- 如請求項3之安全裝置,其中該DL包括延遲鎖相迴路(DLL),該DLL包括一多級延遲元件鏈,該多級延遲元件鏈具有可選擇之多個輸出。
- 如請求項3之安全裝置,其中該DL支援多個可選擇設定,分別對應各別之延遲時間值,且其中該電路被設定為由該等設定中選擇一挑選設定,以供在該延遲時脈訊號與該時脈訊號間之實際延遲時間最接近預先定義之延遲時間者之用,並設定該DL至該挑選設定。
- 如請求項3之安全裝置,其中為了校正該DL,該電路將該DL運作為環形振盪器模式,以測量該DL於該環形振盪器模式下產生之頻率,並基於該測得之頻率計算該實際延遲時間。
- 如請求項3之安全裝置,其中於不預期會有使用該延遲時脈進行取樣之傳輸之時間期間中,該電路校正該DL。
- 如請求項3之安全裝置,其中該電路包括另一DL,且其中該電路被設定為校正該另一DL以基於該預先定義之延遲時間產生一校正延遲時脈訊號,並選擇該校正延遲時脈訊號,而非該延遲時脈訊號。
- 如請求項1之安全裝置,其中該匯流排包括序列周邊介面(SPI)匯流排,其中該周邊裝置包括SPI快閃記憶體,該SPI快閃記憶體於讀取時提供延遲之資料,其中該給定傳輸包括自該SPI快閃記憶體進行讀取操作,且其中該電路被設定為使用該延遲時脈訊號取樣自該SPI快閃記憶體取得之延遲資料。
- 如請求項1之安全裝置,其中為了識別出該給定之傳輸違反安全政策,該電路被設定為(i)偵測試圖存取該周邊裝置中受保護之位址區域之操作,或(ii)識別出傳送至該主機裝置之資料為無效。
- 一種維護資料安全之方法,包括: 於包括與連接主機裝置及周邊裝置之匯流排耦接之匯流排介面之安全裝置中; 經由該匯流排介面接收該匯流排之時脈訊號,並產生相對於該時脈訊號之延遲時脈訊號; 使用該時脈訊號,監控該主機裝置及該周邊裝置間之通訊傳輸; 回應於識別出一給定傳輸,使用該延遲時脈訊號取樣該給定傳輸之一部分,該給定傳輸的該部分被預期以相對於該時脈訊號的一預先定義時間延遲加以延遲;以及 基於該取樣之部分,於識別出該給定之傳輸違反安全政策時,採取安全措施回應之。
- 如請求項11之方法,更包括使用該時脈訊號取樣該給定傳輸自該主機裝置傳送至該周邊裝置之請求部分,並使用該延遲時脈訊號取樣該給定傳輸自該周邊裝置傳送至該主機裝置之回應部分。
- 如請求項11之方法,其中產生該延遲時脈訊號之動作包括使用該安全裝置之延遲線(DL)延遲該時脈訊號。
- 如請求項13之方法,其中該DL包括延遲鎖相迴路 (DLL),該DLL包括一多級延遲元件鏈,該多級延遲元件鏈擁有可選擇之輸出。
- 如請求項13之方法,其中該DL支援多個可選擇設定,分別對應各別之延遲時間值,且其中產生該延遲時脈訊號之動作包括由該等設定中選擇一挑選設定,以供在該延遲時脈訊號與該時脈訊號間之實際延遲時間最接近預先定義之延遲時間者之用,並設定該DL至該挑選設定。
- 如請求項13之方法,其中產生該延遲訊號之動作包括: 為了校正該DL,將該DL運作於環形振盪器模式,測量該DL於環形振盪器模式下產生之頻率,並基於該測得之頻率計算該實際延遲時間。
- 如請求項13之方法,其中產生該延遲時脈之動作包括於不預期會有使用該延遲時脈進行取樣之傳輸之時間期間中校正該DL。
- 如請求項13之方法,其中該安全裝置包括另一DL,且其中產生該延遲時脈之動作包括校正該另一DL以基於該預先定義之延遲時間產生一校正延遲時脈訊號,並選擇該校正延遲時脈訊號,而非該延遲時脈訊號。
- 如請求項11之方法,其中該匯流排包括序列周邊介面(SPI)匯流排,其中該周邊裝置包括SPI快閃記憶體,該SPI快閃記憶體於讀取時提供延遲之資料,其中該給定之傳輸包括自該 SPI快閃記憶體進行讀取操作,並包括使用該延遲時脈訊號取樣自該SPI快閃記憶體取得之延遲資料。
- 如請求項11之方法,其中識別出該給定之傳輸違反安全政策包括(i)偵測試圖存取該周邊裝置中受保護之位址區域之操作,或(ii)識別出傳送至該主機裝置之資料為無效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/907,248 US11520940B2 (en) | 2020-06-21 | 2020-06-21 | Secured communication by monitoring bus transactions using selectively delayed clock signal |
US16/907,248 | 2020-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202201237A TW202201237A (zh) | 2022-01-01 |
TWI781553B true TWI781553B (zh) | 2022-10-21 |
Family
ID=78923745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110108854A TWI781553B (zh) | 2020-06-21 | 2021-03-12 | 安全裝置及維護資料安全之方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11520940B2 (zh) |
JP (1) | JP7189279B2 (zh) |
CN (1) | CN113821399A (zh) |
TW (1) | TWI781553B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022032287A (ja) * | 2020-08-11 | 2022-02-25 | キオクシア株式会社 | タイミング検出回路、半導体装置及びメモリシステム |
CN116418436A (zh) * | 2021-12-29 | 2023-07-11 | 国民技术股份有限公司 | 用于低压i2c通讯的校准装置、系统和方法 |
CN115858446B (zh) * | 2023-02-02 | 2023-07-04 | 北京紫光芯能科技有限公司 | 用于串行外围接口总线数据传输的方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI340324B (en) * | 2006-07-11 | 2011-04-11 | Richtek Technology Corp | Single-wire asynchronous serial interface and method for transmitting commands and data through one transmission wire |
TWI620119B (zh) * | 2017-02-21 | 2018-04-01 | 群聯電子股份有限公司 | 隨機資料產生電路、記憶體儲存裝置及隨機資料產生方法 |
US10133497B1 (en) * | 2015-08-27 | 2018-11-20 | Google Llc | SPI command censoring method and apparatus |
CN111226215A (zh) * | 2017-12-15 | 2020-06-02 | 微芯片技术股份有限公司 | 透明附接的闪存存储器安全性 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05300270A (ja) * | 1992-04-17 | 1993-11-12 | Anritsu Corp | Isdn回線のモニタ装置 |
JPH0643220A (ja) * | 1992-07-23 | 1994-02-18 | Hitachi Ltd | 半導体集積回路装置 |
US5740404A (en) | 1993-09-27 | 1998-04-14 | Hitachi America Limited | Digital signal processor with on-chip select decoder and wait state generator |
US5737748A (en) | 1995-03-15 | 1998-04-07 | Texas Instruments Incorporated | Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory |
US6289408B1 (en) | 1995-05-08 | 2001-09-11 | Apple Computer, Inc. | Bus interface with address mask register for transferring selected data from one bus to another |
US5696994A (en) | 1995-05-26 | 1997-12-09 | National Semiconductor Corporation | Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes |
US5713306A (en) | 1995-09-26 | 1998-02-03 | Johnson; Arnold B. | Feline playground system |
FI100285B (fi) * | 1995-12-11 | 1997-10-31 | Nokia Mobile Phones Ltd | Taajuudenmuodostuspiiri |
US6088450A (en) | 1996-04-17 | 2000-07-11 | Intel Corporation | Authentication system based on periodic challenge/response protocol |
US6026293A (en) | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
US6049876A (en) | 1998-02-09 | 2000-04-11 | Motorola, Inc. | Data processing system and method which detect unauthorized memory accesses |
US6510522B1 (en) | 1998-11-20 | 2003-01-21 | Compaq Information Technologies Group, L.P. | Apparatus and method for providing access security to a device coupled upon a two-wire bidirectional bus |
US7155615B1 (en) | 2000-06-30 | 2006-12-26 | Intel Corporation | Method and apparatus for providing a secure-private partition on a hard disk drive of a computer system via IDE controller |
US7350083B2 (en) | 2000-12-29 | 2008-03-25 | Intel Corporation | Integrated circuit chip having firmware and hardware security primitive device(s) |
US6832317B1 (en) | 2001-05-10 | 2004-12-14 | Advanced Micro Devices, Inc. | Personal computer security mechanism |
US7065654B1 (en) | 2001-05-10 | 2006-06-20 | Advanced Micro Devices, Inc. | Secure execution box |
US20030061494A1 (en) | 2001-09-26 | 2003-03-27 | Girard Luke E. | Method and system for protecting data on a pc platform using bulk non-volatile storage |
ATE367700T1 (de) | 2002-04-16 | 2007-08-15 | Bosch Gmbh Robert | Verfahren und einheit zur bitstromdekodierung |
US7205883B2 (en) | 2002-10-07 | 2007-04-17 | Safenet, Inc. | Tamper detection and secure power failure recovery circuit |
US20080177994A1 (en) | 2003-01-12 | 2008-07-24 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
JP2004355163A (ja) * | 2003-05-28 | 2004-12-16 | Renesas Technology Corp | データ処理装置および電子機器 |
US7398345B2 (en) | 2003-06-12 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | Inter-integrated circuit bus router for providing increased security |
US7010639B2 (en) | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
US20050021968A1 (en) | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US20050132186A1 (en) | 2003-12-11 | 2005-06-16 | Khan Moinul H. | Method and apparatus for a trust processor |
US7664836B2 (en) | 2004-02-17 | 2010-02-16 | Zhe Khi Pak | Device and method for booting an operation system for a computer from a passive directly attached network device |
US7607021B2 (en) | 2004-03-09 | 2009-10-20 | Cisco Technology, Inc. | Isolation approach for network users associated with elevated risk |
US7496929B2 (en) | 2004-05-28 | 2009-02-24 | Intel Corporation | Performance of operations on a hardware resource through integral interpretive execution |
US20060059360A1 (en) | 2004-07-01 | 2006-03-16 | Ortkiese Jerry B | Authenticating controller |
US7774619B2 (en) | 2004-11-17 | 2010-08-10 | Broadcom Corporation | Secure code execution using external memory |
JP4529714B2 (ja) * | 2005-02-09 | 2010-08-25 | 日本電気株式会社 | Dll回路サンプリングタイミング調整システム及びその方法並びにそれに用いる送受信装置 |
US8090919B2 (en) | 2007-12-31 | 2012-01-03 | Intel Corporation | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform |
US20070109015A1 (en) | 2005-11-15 | 2007-05-17 | Alcatel | Switched integrated circuit connection architectures and techniques |
US20080276302A1 (en) | 2005-12-13 | 2008-11-06 | Yoggie Security Systems Ltd. | System and Method for Providing Data and Device Security Between External and Host Devices |
US10180809B2 (en) | 2006-05-17 | 2019-01-15 | Richard Fetik | Secure application acceleration system, methods and apparatus |
US20080282017A1 (en) | 2007-05-09 | 2008-11-13 | Microsoft Corporation | Serial Peripheral Interface Switch |
US7797115B2 (en) | 2007-08-13 | 2010-09-14 | Nuvoton Technology Corporation | Time interval measurement for capacitive detection |
US8631488B2 (en) | 2008-08-04 | 2014-01-14 | Cupp Computing As | Systems and methods for providing security services during power management mode |
GB2477774A (en) | 2010-02-12 | 2011-08-17 | Icera Inc | Overriding production processor authentication restrictions through remote security unit for development code testing |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8832452B2 (en) | 2010-12-22 | 2014-09-09 | Intel Corporation | System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves |
KR20120092222A (ko) | 2011-02-11 | 2012-08-21 | 삼성전자주식회사 | 보안 부팅 방법 및 보안 부트 이미지 생성 방법 |
US8813227B2 (en) | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
US20120255014A1 (en) | 2011-03-29 | 2012-10-04 | Mcafee, Inc. | System and method for below-operating system repair of related malware-infected threads and resources |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
KR101301022B1 (ko) | 2011-12-23 | 2013-08-28 | 한국전자통신연구원 | 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 |
US20130254906A1 (en) | 2012-03-22 | 2013-09-26 | Cavium, Inc. | Hardware and Software Association and Authentication |
US20130312099A1 (en) | 2012-05-21 | 2013-11-21 | Mcafee, Inc. | Realtime Kernel Object Table and Type Protection |
US9158628B2 (en) | 2013-11-27 | 2015-10-13 | American Megatrends, Inc. | Bios failover update with service processor having direct serial peripheral interface (SPI) access |
US10783250B2 (en) * | 2014-07-24 | 2020-09-22 | Nuvoton Technology Corporation | Secured master-mediated transactions between slave devices using bus monitoring |
US10303880B2 (en) | 2014-07-24 | 2019-05-28 | Nuvoton Technology Corporation | Security device having indirect access to external non-volatile memory |
CN104375968B (zh) * | 2014-12-03 | 2017-09-15 | 上海兆芯集成电路有限公司 | 主机端外围接口电路 |
US9569638B2 (en) | 2014-12-31 | 2017-02-14 | Google Inc. | Trusted computing |
US9660656B2 (en) * | 2015-04-15 | 2017-05-23 | Sandisk Technologies Llc | Delay compensation |
US10114970B2 (en) | 2015-06-02 | 2018-10-30 | ALTR Solutions, Inc. | Immutable logging of access requests to distributed file systems |
US10452582B2 (en) * | 2015-06-08 | 2019-10-22 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
US10691807B2 (en) | 2015-06-08 | 2020-06-23 | Nuvoton Technology Corporation | Secure system boot monitor |
US10776527B2 (en) * | 2015-06-08 | 2020-09-15 | Nuvoton Technology Corporation | Security monitoring of SPI flash |
US10095891B2 (en) | 2015-06-08 | 2018-10-09 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
US10380879B2 (en) * | 2017-06-14 | 2019-08-13 | Allegro Microsystems, Llc | Sensor integrated circuits and methods for safety critical applications |
US11086998B2 (en) | 2018-01-30 | 2021-08-10 | Dell Products L.P. | Modifiable policy action secure boot violation system |
US11244046B2 (en) * | 2019-09-16 | 2022-02-08 | Nuvoton Technology Corporation | Data-sampling integrity check using gated clock |
-
2020
- 2020-06-21 US US16/907,248 patent/US11520940B2/en active Active
-
2021
- 2021-03-12 TW TW110108854A patent/TWI781553B/zh active
- 2021-05-21 CN CN202110556073.9A patent/CN113821399A/zh active Pending
- 2021-06-18 JP JP2021101624A patent/JP7189279B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI340324B (en) * | 2006-07-11 | 2011-04-11 | Richtek Technology Corp | Single-wire asynchronous serial interface and method for transmitting commands and data through one transmission wire |
US10133497B1 (en) * | 2015-08-27 | 2018-11-20 | Google Llc | SPI command censoring method and apparatus |
TWI620119B (zh) * | 2017-02-21 | 2018-04-01 | 群聯電子股份有限公司 | 隨機資料產生電路、記憶體儲存裝置及隨機資料產生方法 |
CN111226215A (zh) * | 2017-12-15 | 2020-06-02 | 微芯片技术股份有限公司 | 透明附接的闪存存储器安全性 |
Also Published As
Publication number | Publication date |
---|---|
US11520940B2 (en) | 2022-12-06 |
US20210397753A1 (en) | 2021-12-23 |
JP7189279B2 (ja) | 2022-12-13 |
TW202201237A (zh) | 2022-01-01 |
CN113821399A (zh) | 2021-12-21 |
JP2022002390A (ja) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI781553B (zh) | 安全裝置及維護資料安全之方法 | |
US8286024B2 (en) | Memory device, host device, and sampling clock adjusting method | |
US6646953B1 (en) | Single-clock, strobeless signaling system | |
US7412616B2 (en) | Semiconductor integrated circuit | |
US8315109B2 (en) | Memory interface circuit and semiconductor device | |
US7366862B2 (en) | Method and apparatus for self-adjusting input delay in DDR-based memory systems | |
US9870233B2 (en) | Initializing a memory subsystem of a management controller | |
US20110176372A1 (en) | Memory interface | |
CN101232363B (zh) | 相位调节功能评估方法,传输容限测量方法以及信息处理装置 | |
US8593897B2 (en) | Memory controller, semiconductor storage device, and memory system including the memory controller and the semiconductor storage device for outputting temperature value in low power consumption mode | |
JP2005521925A (ja) | ストロボ信号を遅延させるシステム及び方法 | |
JP2010081577A (ja) | 半導体装置およびデータ伝送システム | |
US7796465B2 (en) | Write leveling of memory units designed to receive access requests in a sequential chained topology | |
JP2013109637A (ja) | メモリインターフェース回路、および、そのメモリインターフェース回路の動作方法 | |
US20080043782A1 (en) | Method and apparatus for checking the position of a receive window | |
TWI411976B (zh) | 影像處理系統與取樣相位校正方法 | |
US8254189B2 (en) | Method for tuning control signal associated with at least one memory device | |
KR102097006B1 (ko) | 반도체 장치 및 그를 포함하는 시스템 | |
CN112447210A (zh) | 连接接口电路、存储器存储装置及信号产生方法 | |
JP2015035229A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |