本發(fā)明涉及一種包括安全功能的功能裝置以及控制設(shè)備。
背景技術(shù):
通常存在一種信息處理設(shè)備,其可以連接至網(wǎng)絡(luò)以安裝包括諸如認(rèn)證處理和針對秘密信息的加密處理等的安全功能的功能裝置。針對連接至信息處理設(shè)備的外圍裝置也需要該安全功能。例如,日本特開2011-123727公開了一種在控制裝置和外圍裝置之間插入認(rèn)證裝置的系統(tǒng)。在該系統(tǒng)中,存儲了與外圍裝置相對應(yīng)的秘鑰標(biāo)識符和加密秘鑰數(shù)據(jù)。在控制裝置檢測到與外圍裝置的使用請求有關(guān)的認(rèn)證用命令的情況下,從認(rèn)證用命令中所包括的相關(guān)裝置的標(biāo)識信息和認(rèn)證數(shù)據(jù)來指定秘鑰。之后,使用與所指定的秘鑰相對應(yīng)的加密秘鑰數(shù)據(jù)和認(rèn)證數(shù)據(jù)來執(zhí)行認(rèn)證處理。在該認(rèn)證處理成功的情況下,使得外圍裝置經(jīng)由用于連接外圍裝置的物理輸入/輸出端口而進(jìn)入可操作狀態(tài)。因此,可以防止控制裝置或外圍裝置的安全信息的篡改。
在日本特開2011-123727所公開的系統(tǒng)中,存在用于使認(rèn)證設(shè)備和外圍裝置相連接的物理外部接口端口。通常,外部接口在檢查設(shè)備的最終操作時是必不可少的。然而,如果通過高技能人員來掩飾輸入至外部接口的信號自身,則可能破壞安全性。例如,如果未經(jīng)授權(quán)的人訪問連接至外部接口的內(nèi)部功能組件,則存在可能篡改或損壞內(nèi)部功能組件中所存儲的秘密信息的危險。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的是提供一種能夠保護(hù)秘密信息不受危險的功能裝置以及安裝有該功能裝置的控制設(shè)備。
一種功能裝置,其具有功能組件,所述功能裝置包括:外部接口,其使得能夠進(jìn)行外部訪問;第一接口,其能夠與所述外部接口導(dǎo)通;第二接口,其能夠與所述功能組件導(dǎo)通;第一存儲器裝置,用于存儲指令的集合;以及至少一個第一處理器,用于執(zhí)行指令以控制第一控制器進(jìn)行以下操作:在預(yù)定認(rèn)證處理成功的情況下,所述第一控制器使所述第一接口和所述第二接口物理導(dǎo)通。
一種控制設(shè)備,包括:上述的功能裝置;第二控制器,其經(jīng)由所述外部接口連接至所述功能裝置;第二存儲器裝置,用于存儲指令的集合;以及至少一個第二處理器,其容納在一個封裝體中,其中,所述第二處理器執(zhí)行指令以控制所述第二控制器進(jìn)行以下操作:將所述登記命令發(fā)送至所述功能裝置以使得能夠進(jìn)行與所述功能裝置的信息傳送。
一種功能裝置,其具有功能組件,所述功能裝置還包括:外部接口,其使得能夠進(jìn)行外部訪問;第一接口,其能夠與所述外部接口導(dǎo)通;第二接口,其能夠與所述功能組件導(dǎo)通;以及控制器,用于在預(yù)定認(rèn)證處理成功的情況下,使所述第一接口和所述第二接口物理導(dǎo)通。
根據(jù)以下(參考附圖)對典型實施例的說明,本發(fā)明的其它特征將變得明顯。
附圖說明
圖1是根據(jù)本實施例的控制設(shè)備的結(jié)構(gòu)圖。
圖2是示出控制設(shè)備包括功能裝置的情況下的連接狀態(tài)的說明圖。
圖3是安全ic的塊結(jié)構(gòu)圖。
圖4是示出結(jié)合控制器及其主外圍組件的連接狀態(tài)的說明圖。
圖5a和5b是示出結(jié)合電路的結(jié)構(gòu)示例的圖。
圖6是根據(jù)sata標(biāo)準(zhǔn)的擴(kuò)展命令組的說明圖。
圖7是擴(kuò)展命令的詳細(xì)說明圖。
圖8是結(jié)合控制器的操作的時序圖。
圖9是用于說明安全ic中的初始化處理的過程的圖。
圖10是用于說明端子認(rèn)證id登記處理的過程的圖。
圖11是用于說明登記了端子認(rèn)證id之后的認(rèn)證處理的過程的圖。
具體實施方式
以下,將針對本發(fā)明的各實施例提供說明。
圖1是根據(jù)本發(fā)明的圖像形成系統(tǒng)的整體結(jié)構(gòu)圖。圖像形成系統(tǒng)包括控制設(shè)備122,該控制設(shè)備122包括一個或多個功能組件或功能裝置??刂圃O(shè)備122包括計算機(jī),該計算機(jī)具有中央處理單元(cpu)101、只讀存儲器(rom)103和隨機(jī)存取存儲器(ram)104。rom103和ram104經(jīng)由存儲器控制器102和總線121連接至cpu101。為了方便,將控制總線、數(shù)據(jù)總線和任意塊之間的本地總線統(tǒng)一表示為總線121??偩€121的典型示例包括pciexpress或“pcie”??偩€121還連接至圖像處理部110。此外,總線121還連接至lan-if控制器105、讀取器-if控制器108、a-if控制器111、sata-主機(jī)控制器113、面板if控制器117和視頻if控制器119。注意,“if”是包括端子、連接器、線纜和其它連接工具的信息輸入/輸出接口的通用術(shù)語。
cpu101通過執(zhí)行預(yù)定計算機(jī)程序來進(jìn)行控制設(shè)備122的操作的整體控制。存儲器控制器102進(jìn)行相對于rom103和ram104的輸入/輸出控制。存儲器控制器還進(jìn)行直接內(nèi)存存取(dma)控制。rom103是只讀存儲器。典型的只讀存儲器是閃存(flashmemory)。將基本輸入/輸出系統(tǒng)(bios)程序和控制參數(shù)等存儲在rom103中。通過連接該閃存,能夠進(jìn)行板上(on-board)重寫。ram104是專用于重寫的存儲器,例如是雙倍數(shù)據(jù)速率(ddr)存儲器。ram104用作程序的工作區(qū)。ram104還用于存儲打印數(shù)據(jù)。
lan-if控制器105進(jìn)行與網(wǎng)絡(luò)106的數(shù)據(jù)輸入/輸出控制。協(xié)議例如可應(yīng)用于tcp/ip(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)。網(wǎng)絡(luò)106連接至諸如主機(jī)計算機(jī)107等的能夠進(jìn)行經(jīng)由網(wǎng)絡(luò)的圖像形成的網(wǎng)絡(luò)兼容裝置。網(wǎng)絡(luò)106還可以經(jīng)由沒有示出的路由器連接至因特網(wǎng)。讀取器-if控制器108進(jìn)行與掃描器109的輸入/輸出控制。通過打印掃描器109所掃描的輸入圖像數(shù)據(jù),實現(xiàn)了復(fù)制功能。圖像處理部110對經(jīng)由lan-if控制器105和讀取器-if控制器108所取得的圖像進(jìn)行各種圖像處理。
面板if控制器117進(jìn)行與用戶所操作的面板裝置118的輸入/輸出控制。盡管圖1沒有示出,通過操作被顯示為面板裝置118的用戶接口(ui)的畫面和按鈕圖像等,可以檢查與圖像形成有關(guān)的各種設(shè)置和狀態(tài)。視頻if控制器119傳送打印數(shù)據(jù),并且進(jìn)行與打印部120的命令/狀態(tài)的通信控制。打印部120是用于進(jìn)行圖像形成的功能塊。盡管沒有詳細(xì)示出,打印部120包括打印設(shè)備主體、薄片進(jìn)給系統(tǒng)和薄片輸送系統(tǒng)。根據(jù)主要來自視頻if控制器119的命令信息,打印部120將打印數(shù)據(jù)打印在紙張介質(zhì)等上。
a-if控制器111進(jìn)行與板a112的輸入/輸出控制。連接至控制設(shè)備122的板a112是展現(xiàn)了預(yù)定功能的功能組件。在本實施例中,板a112是安裝有諸如閃存等的非易失性存儲裝置的功能組件。例如,板a112用于存儲圖像形成系統(tǒng)的引導(dǎo)程序以及存儲打印部120特有的信息(諸如個體識別數(shù)據(jù)和消耗品信息等)等。sata-主機(jī)控制器113進(jìn)行與包括符合串行高級技術(shù)附件(sata)標(biāo)準(zhǔn)的if的裝置的數(shù)據(jù)輸入/輸出控制。
加密控制器114進(jìn)行與要連接的非易失性存儲裝置的輸入/輸出控制和鏡像控制,同時進(jìn)行加密處理和解密處理以相對于該非易失性存儲裝置進(jìn)行數(shù)據(jù)的寫入和讀取。這里所使用的非易失性存儲裝置例如是硬盤驅(qū)動器(hdd)或固態(tài)驅(qū)動器(ssd)。鏡像控制是指用于使用至少兩個以上的非易失性存儲裝置來進(jìn)行上述的加密處理和解密處理的控制。在本實施例中,使用hdd115和hdd116這兩個hdd來進(jìn)行鏡像控制。一個hdd115被稱為主hdd,并且另一個hdd116被稱為備用hdd。在鏡像控制中,將主hdd115中所存儲的數(shù)據(jù)復(fù)制到備用hdd116。在進(jìn)行寫入時,將加密數(shù)據(jù)寫入主hdd115和備用hdd116這兩者中。在進(jìn)行讀取時,從主hdd115讀取加密數(shù)據(jù),然后對該加密數(shù)據(jù)進(jìn)行解密。然后,將解密后的數(shù)據(jù)發(fā)送至請求源的sata-主機(jī)控制器113。
加密控制器114可被配置為容納在一個封裝體中的安裝有ic的功能裝置。在這種情況下,圖像形成系統(tǒng)的硬件結(jié)構(gòu)更為簡化。因此,以下將加密控制器114表示成作為功能裝置的示例的“安全ic”。此外,在控制設(shè)備122中,cpu101和主控制器可以由容納在一個封裝體中的安裝有ic的功能裝置構(gòu)成。在以下說明中,該功能裝置被稱為“控制器裝置”或“控制器ic”。在圖1所示的示例中,主控制器是存儲器控制器102、lan-if控制器105、讀取器-if控制器108、圖像處理部110、a-if控制器111、sata-主機(jī)控制器113、面板if控制器117和視頻if控制器119。
圖2是示出控制器ic和安全ic之間的連接的結(jié)構(gòu)圖。圖2還示出控制器ic及其外圍裝置之間的連接以及安全ic及其外圍裝置之間的連接。作為外圍裝置,示出了板a112、hdd115和hdd116。安全ic114包括sata裝置ip203以及sata主機(jī)ip204和205。sata裝置ip203經(jīng)由sata-if202連接至控制器ic201的sata-主機(jī)控制器113。sata主機(jī)ip204經(jīng)由sata-if206連接至hdd115。此外,sata主機(jī)ip205經(jīng)由sata-if207連接至hdd116。
將作為存儲有特有信息的功能組件的閃存208安裝在安全ic114中。閃存208是獨立于其它功能塊的芯片(有時被稱為“用戶晶片”(userdie))而設(shè)置的單個片狀晶片(tipdie)。這意味著,安全ic114具有在一個封裝體中安裝有兩個芯片的系統(tǒng)化封裝(sip)結(jié)構(gòu)。
控制器ic201經(jīng)由a-if209連接至a-if控制器111和板a112。在板a112上實現(xiàn)了作為功能組件的閃存210。閃存210讀取并存儲安全ic114的閃存208中所存儲的識別數(shù)據(jù)。稍后將說明詳情。
圖3是安全ic114的內(nèi)部功能結(jié)構(gòu)圖。安全ic114包括連接至控制總線312的cpu301。通過執(zhí)行預(yù)定加密/解密程序,cpu301進(jìn)行sata-if控制以及上述的加密/解密控制和鏡像控制等。此外,通過執(zhí)行預(yù)定ice程序,cpu301包括作為程序開發(fā)用調(diào)試器的ice(內(nèi)置在線仿真)功能。此外,通過執(zhí)行預(yù)定的認(rèn)證用程序,cpu301用作認(rèn)證部件。
控制總線312還連接至存儲器控制器302。存儲器控制器302進(jìn)行針對閃存208和ram303的數(shù)據(jù)輸入/輸出控制。在閃存208中,存儲了用于進(jìn)行認(rèn)證處理、加密處理和鏡像控制的各種程序。此外,在閃存208中,還存儲了進(jìn)行數(shù)據(jù)輸入/輸出控制所需的認(rèn)證信息、用于生成加密密鑰的諸如原始數(shù)據(jù)等的秘密信息、以及各種控制參數(shù)等。ram303用作程序的工作區(qū)。ram303還用于臨時存儲數(shù)據(jù)。
控制總線312還連接至sata-裝置控制器304。sata-裝置控制器304包括圖2所示的sata裝置ip203及其外圍電路。sata-裝置控制器304經(jīng)由sata-ip202與sata-主機(jī)控制器113進(jìn)行命令/狀態(tài)和各種數(shù)據(jù)的輸入/輸出控制。
控制總線312還連接至sata-主機(jī)控制器305。sata-主機(jī)控制器305包括圖2所示的sata主機(jī)ip204和205及其外圍電路。sata-主機(jī)控制器305經(jīng)由hdd115和hdd116以及sata-if206和207進(jìn)行命令/狀態(tài)和各種數(shù)據(jù)的輸入/輸出控制。控制總線312還連接至加密/解密部306。加密/解密部306進(jìn)行加密/解密處理,以相對于hdd115和hdd116進(jìn)行數(shù)據(jù)的寫入和讀取。
控制總線312還連接至用作接口之間的結(jié)合控制單元的結(jié)合控制器307。如上所述,加密/解密程序和秘密信息存儲在閃存208中。利用將閃存晶片和用戶晶片安裝在一個封裝體中的sip結(jié)構(gòu),與將閃存208作為單獨裝置配置在外部相比,可以更加確實地防止秘密信息的泄漏和篡改。然而,如果閃存208被密封在安全ic114內(nèi)部,則為了進(jìn)行供給閃存208時的出廠測試,需要用于訪問閃存208的外部端子。在圖3中,外部端子被示出為外部閃存端子(externalflashterminal)311。這種外部閃存端子的提供導(dǎo)致了安全漏洞。例如,在設(shè)置了外部閃存端子311的情況下,閃存控制設(shè)備310連接至外部閃存端子311,這使得可以嘗試訪問閃存208中所存儲的認(rèn)證程序和秘密信息。在這種情況下,不具有合法權(quán)限的高技能人員可能會對認(rèn)證算法進(jìn)行解密,這導(dǎo)致泄漏認(rèn)證信息等。由于相同原因,ice控制設(shè)備308所連接至的外部ice端子309可能是安全漏洞。為了消除這種安全漏洞,設(shè)置了結(jié)合控制器307。
圖4是示出安全ic114中的結(jié)合控制器307及其外圍部件的連接狀態(tài)的圖。安全ic114設(shè)置有外部ice端子309和外部閃存端子311等作為外部接口。此外,安全ic114經(jīng)由sata-if202連接至sata-主機(jī)控制器113(參見圖3)。此外,安全ic114經(jīng)由sata-if206和207分別連接至hdd115和hdd116。結(jié)合控制器307插入在外部接口與連接至諸如閃存208等的內(nèi)部功能組件及安全ic114的外部裝置(例如,hdd115、116、sata-主機(jī)控制器113)之間。然后,基于熔斷器402和寄存器403的輸出,結(jié)合電路401使外部接口和外部裝置轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)或非結(jié)合狀態(tài)。結(jié)合電路401插入在第一接口和第二接口之間,其中第一接口能夠與外部接口導(dǎo)通,并且第二接口能夠與閃存208和存儲器控制器302導(dǎo)通。結(jié)合電路401還插入在第一接口和第三接口之間,其中第三接口能夠與外部裝置所連接至的控制總線312導(dǎo)通。
熔斷器(fuse)402是包括已知的在過電流狀態(tài)下斷開的保險絲的組件。熔斷器402在斷開之前形成第一值狀態(tài)(邏輯高:“1”)。在斷開的情況下,熔斷器402解除該狀態(tài)。這意味著,熔斷器402用作用于不可逆地形成第一值狀態(tài)(“1”)的不可逆單元。另一方面,寄存器(reg)403是用作可逆部件的寄存器,其中該可逆部件用于根據(jù)認(rèn)證單元的認(rèn)證結(jié)果可逆地形成第一值狀態(tài)和第二值狀態(tài)(邏輯低:“0”)。寄存器403將第一值狀態(tài)(“1”)僅維持了認(rèn)證結(jié)果維持有效的時間段。在停止向安全ic114的通電時,對第一值狀態(tài)(“1”)進(jìn)行復(fù)位。然后,寄存器403的狀態(tài)轉(zhuǎn)變?yōu)榈诙禒顟B(tài)(“0”)。這意味著,第一值狀態(tài)(“1”)僅在向安全ic114通電期間是有效的。
圖5a和5b示出結(jié)合控制器307中的結(jié)合電路401、熔斷器402和寄存器403的結(jié)構(gòu)的示例。結(jié)合電路401在圖5a中被稱為結(jié)合電路401a。此外,結(jié)合電路401在圖5b中被稱為結(jié)合電路401b。圖5a是可以實現(xiàn)三態(tài)總線的情況下的電路結(jié)構(gòu)示例。與外部接口導(dǎo)通的第一接口包括輸入端子501、輸出端子502和雙向端子503。輸入端子501導(dǎo)通并且連接至結(jié)合電路401a的輸入緩沖器504。輸出端子502導(dǎo)通并且連接至輸出緩沖器506。雙向端子503導(dǎo)通并且連接至雙向緩沖器507。上拉電阻器或下拉電阻器連接至輸入緩沖器504的輸入側(cè)。根據(jù)信號的特性,添加適當(dāng)?shù)碾娮杵?這同樣適用于雙向緩沖器507)。此外,各緩沖器的輸入/輸出連接至兼用作第二接口和第三接口的內(nèi)部輸入/輸出總線508。內(nèi)部輸入/輸出總線508連接至圖3所示的閃存208、cpu301、存儲器控制器302和控制總線312。這意味著,內(nèi)部輸入/輸出信號被發(fā)送至內(nèi)部輸入/輸出總線508。
緩沖器504、506和507是三態(tài)緩沖器。在三態(tài)緩沖器504、506和507打開的情況下,第一接口和第二接口(以及第三接口)轉(zhuǎn)變?yōu)榉墙Y(jié)合狀態(tài)。此外,在三態(tài)緩沖器關(guān)閉的情況下,第一接口和第二接口(以及第三接口)轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)。三態(tài)緩沖器504、506和507各自是打開還是關(guān)閉是通過連接至三態(tài)緩沖器504、506和507各自的使能端子的使能信號來控制的。通過cpu301所實現(xiàn)的輸入/輸出使能控制器513來控制該使能信號。
結(jié)合控制器307包括作為二值電路的示例的or(或)電路514。or電路514的輸入連接至來自熔斷器402和寄存器403的信號線。然后,在熔斷器402和寄存器403至少之一生成了“1”信號時,輸出該“1”信號。否則,將“1”轉(zhuǎn)變?yōu)椤?”。在圖5a的示例中,將該信號稱為掩碼信號。將掩碼信號輸入至nand電路509、510、511和512。在掩碼信號是“1”時,nand電路509、510、511和512的柵極打開。然后,使從輸入/輸出使能控制器513輸入的使能信號有效。這意味著,第一接口和第二接口轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)。此時,第一接口和第三接口也轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)。否則,結(jié)合控制器307使第一接口和第二接口轉(zhuǎn)變?yōu)榉墙Y(jié)合狀態(tài)。此外,結(jié)合控制器307使第一接口和第三接口轉(zhuǎn)變?yōu)榉墙Y(jié)合狀態(tài)。這意味著,結(jié)合控制器307在接口之間物理地進(jìn)行遮斷。也就是說,除滿足預(yù)定條件的情況以外,第一接口和第二接口轉(zhuǎn)變?yōu)槲锢矸墙Y(jié)合狀態(tài)。
例如,在圖5a所示的結(jié)構(gòu)中,在從or電路514輸出的掩碼信號并非“1”的時間段,停止緩沖器504、506和507的所有操作。由此,內(nèi)部輸入/輸出總線508和輸入端子501、內(nèi)部輸出/輸出總線508和輸出端子502、以及內(nèi)部輸入/輸出總線508和雙向端子503全部轉(zhuǎn)變?yōu)榉墙Y(jié)合狀態(tài)。結(jié)果,外部閃存端子311與閃存208變?yōu)榉菍?dǎo)通。因此,即使未經(jīng)授權(quán)的人嘗試經(jīng)由外部閃存端子311對閃存208進(jìn)行外部訪問,這也是不可能的。
結(jié)合電路401還可以用作用于選擇或分配輸入目的地和輸出目的地的電路。圖5b示出選擇或分配經(jīng)由外部訪問所輸入的信號和安全ic114內(nèi)部所生成的信號的輸出目的地的情況下的電路結(jié)構(gòu)示例。在這種情況下從or電路514輸出的信號被稱為選擇信號。(選擇用)多路復(fù)用器515確定(選擇)將例如從外部閃存輸入端子517所輸入的信號和從內(nèi)部輸入總線518所輸入的信號中的哪個信號輸入至內(nèi)部輸出總線519。內(nèi)部輸入總線518例如連接至存儲器控制器302。內(nèi)部輸出總線519例如連接至閃存208。在從or電路514輸出的并且輸入至多路復(fù)用器515的選擇信號是“1”的情況下,確定外部閃存輸入端子517并且將例如來自閃存控制設(shè)備310的輸入信號選擇為輸入信號。另一方面,在選擇信號不是“1”的情況下,即在選擇信號是“0”的情況下,選擇從內(nèi)部輸入總線518輸入的信號(例如,從存儲器控制器302輸入的信號)。
(分配用)解多路復(fù)用器516確定例如外部閃存輸出端子502和存儲器控制器302中的哪一個用來分配從閃存208所輸出的信號。在選擇信號是“1”的情況下,將信號分配至外部閃存輸出端子520(即,至閃存控制設(shè)備310的輸出信號)。另一方面,在選擇信號不是“1”的情況下,即在選擇信號是“0”的情況下,將信號作為輸出信號分配至存儲器控制器302。由此,在選擇信號是“1”的時間段,外部閃存輸出端子520(第一接口)和連接至第二接口的功能組件轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)。
這里,將針對外部閃存輸入端子517和閃存208根據(jù)從or電路514輸出的信號的電平(“1”/“0”)而轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)或非結(jié)合狀態(tài)時的定時進(jìn)行說明。圖8是示出輸入至or電路514的熔斷器402和寄存器403的信號與從or電路514輸出的選擇信號之間的關(guān)系的時序圖。橫軸表示電壓施加至安全ic114時的時間軸。以特定時刻t0為基點,在t0~t1期間,熔斷器402沒有斷開。這意味著,從or電路514輸出的選擇信號(描述為“or”)維持“1”,這是指外部閃存輸出端子520和閃存208處于結(jié)合狀態(tài)。在時刻t1,電源變?yōu)閛ff(斷開)。緊挨在熔斷器402斷開之后,電源在時刻t2變?yōu)閛n(接通)。在這種情況下,熔斷器402和寄存器403這兩者的輸出為“0”。由此,從or電路514輸出的選擇信號也為“0”電平,使得外部閃存輸出端子520和閃存208轉(zhuǎn)變?yōu)榉墙Y(jié)合狀態(tài)。這意味著,外部閃存輸出端子520和閃存208轉(zhuǎn)變?yōu)槲锢碚跀酄顟B(tài)。緊挨在時刻t3之前,以下所述的認(rèn)證單元的認(rèn)證結(jié)果有效。然后,使寄存器403的信號轉(zhuǎn)變?yōu)椤?”,并且將從or電路514輸出的選擇信號轉(zhuǎn)變?yōu)椤?”。
在時刻t4~t6期間,緊接之前的選擇信號為“1”。在時刻t4,電源變?yōu)閛ff。在時刻t5,電源再次變?yōu)閛n。在時刻t6,寄存器403的信號是轉(zhuǎn)變?yōu)椤?”的信號。盡管時刻t4的選擇信號為“1”,但由于時刻t4的電源off,因此對寄存器403進(jìn)行初始化。由此,從電源再次變?yōu)閛n的時刻t5起直到時刻t6之前,選擇信號處于“0”狀態(tài)。由此,外部閃存輸出端子520和閃存208再次處于物理遮斷狀態(tài)。在時刻t6,通過認(rèn)證單元來進(jìn)行認(rèn)證。在寄存器403轉(zhuǎn)變?yōu)椤?”狀態(tài)時(在認(rèn)證成功時),選擇信號也轉(zhuǎn)變?yōu)椤?”使得外部閃存輸出端子520和閃存208再次轉(zhuǎn)變?yōu)槲锢磉B接狀態(tài)。如上所述,在本實施例中,在電源處于on期間并且在熔斷器402斷開之后,在稍后所述的認(rèn)證單元使寄存器403的信號轉(zhuǎn)變?yōu)椤?”狀態(tài)時,外部接口和內(nèi)部功能組件轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)。注意,維持結(jié)合狀態(tài),直到安全ic114的電源off為止。
接著,將說明與安全ic114及外部裝置和外圍裝置的數(shù)據(jù)傳送。如上所述,sata-if202僅是控制設(shè)備122上的控制器ic201和安全ic114之間的連接接口,并且沒有生成邊帶信號。由此,經(jīng)由sata-if202來進(jìn)行與安全ic114的全部數(shù)據(jù)傳送。特別地,通過發(fā)送/接收命令/狀態(tài)包來進(jìn)行該數(shù)據(jù)傳送。在本實施例中,使用作為sata標(biāo)準(zhǔn)中的獨自定義的擴(kuò)展命令來進(jìn)行命令/狀態(tài)包的發(fā)送/接收。
圖6示出sata標(biāo)準(zhǔn)中的擴(kuò)展命令的示例。在sata標(biāo)準(zhǔn)中,除諸如讀取命令和寫入命令等的被定義為標(biāo)準(zhǔn)的命令以外,還準(zhǔn)備了沒有定義命令的內(nèi)容的空命令。在本實施例中,通過向空命令賦予原始定義,進(jìn)行命令/狀態(tài)包的發(fā)送/接收。圖6所示的表包括命令名稱601、功能602、cr603、fr604和類型605。
cr603表示“命令寄存器”。fr604表示“特征寄存器”。類型605表示傳送類型。cr603和fr604在sata標(biāo)準(zhǔn)中被稱為任務(wù)寄存器,其中該任務(wù)寄存器被定義為包中的預(yù)定位置處的寄存器。應(yīng)該在cr603中設(shè)置sata標(biāo)準(zhǔn)中所定義的命令編號。在圖6所示的表中,在cr603的列中記載“f0”。這表示代表未定義命令的編號。fr604表示原本被定義為子命令編號的擴(kuò)展命令的命令編號。從命令名稱601的最上行起,順次定義“01”~“08”。這意味著,setup(su)命令606的命令編號是“01”。此外,installsecret(秘密信息設(shè)置:is)命令607的命令編號被定義為“02”。之后,從“03”~“08”,定義fr604。注意,在實現(xiàn)時,將“f0”標(biāo)識為“f0h”,并且將“01”~“08”標(biāo)識為“01h”~“08h”。類型605的列中所寫入的諸如po和pi等的縮寫是表示sata標(biāo)準(zhǔn)中所定義的傳送類型的符號?;谥鳈C(jī),對類型進(jìn)行分類,以判斷是out(寫入系統(tǒng))還是in(讀取系統(tǒng))以及包是否附帶有數(shù)據(jù)。
在類型605的列中所寫入的符號中,將po定義為pio-out傳送協(xié)議,并且將pi定義為pio-in傳送協(xié)議。po和pi這兩者是附帶有數(shù)據(jù)的傳送類型。在沒有附帶有數(shù)據(jù)(即,僅寄存器值)的情況下,定義了nd(即,非數(shù)據(jù)傳送協(xié)議)。將省略各擴(kuò)展命令的詳細(xì)內(nèi)容,但將針對一部分?jǐn)U展命令(功能602)給出詳細(xì)說明。此外,在以下說明中,在指定了各擴(kuò)展命令的情況下,使用括號中所示的縮寫。
以下,特別說明命令名稱601。在本實施例中,在從控制器ic201進(jìn)行安全ic114的各種設(shè)置時,使用setup(su)命令606。要設(shè)置的項例如包括加密功能和鏡像功能的有效/無效設(shè)置以及發(fā)生錯誤時的超時時間的設(shè)置。is命令607是提示設(shè)置秘密信息的命令。crosscertificationhd(cchd)命令608和crosscertificationdh(ccdh)命令609用于進(jìn)行控制器ic201和安全ic114之間的相互認(rèn)證。使用挑戰(zhàn)和應(yīng)答系統(tǒng)來進(jìn)行該相互認(rèn)證。registerterminalid命令(rt)610是提示登記認(rèn)證id候選的命令,即registerterminalid命令(rt)610是登記命令。certifyterminal命令(ct)611是端子認(rèn)證命令。getstatus命令(gs)612是提示獲得安全ic114內(nèi)部的狀態(tài)信息的命令。例如,通過getstatus命令,可以獲得要連接的hdd115和hdd116的狀態(tài)。還可以獲得發(fā)生錯誤時的錯誤的內(nèi)容。getidentify(獲得識別信息:gi)命令613是提示獲得安全ic114內(nèi)部單獨生成的識別信息的命令。
圖7附加地說明rt命令610和ct命令611。po(這兩個命令的傳送類型)附帶有數(shù)據(jù)包702。這意味著,在發(fā)送了命令包701之后,發(fā)送數(shù)據(jù)包702。例如,將期望登記的認(rèn)證id候選和表示哈希值的k值發(fā)送至作為認(rèn)證id候選的登記命令的rt命令610所附帶的數(shù)據(jù)包703。認(rèn)證id候選是作為用于識別外部接口(例如,外部閃存端子311)的識別信息的認(rèn)證id的候選,其中該外部接口用于接收外部訪問。k值是根據(jù)哈希函數(shù)求出的特有值(第一特有值)。將進(jìn)行外部端子認(rèn)證處理時所使用的認(rèn)證id候選發(fā)送至ct命令611所附帶的數(shù)據(jù)包704。如上所述,通過從控制器ic201發(fā)出的擴(kuò)展命令,來控制針對安全ic114的各種設(shè)置、認(rèn)證和狀態(tài)獲得等。
接著,說明控制設(shè)備122的操作示例。圖9是用于說明控制器ic201在開始使用設(shè)備時所進(jìn)行的初始化處理的過程的圖。在控制器ic201中,cpu101進(jìn)行初始化處理。在進(jìn)行初始化處理時,cpu301對安全ic114側(cè)進(jìn)行相應(yīng)處理。參考圖9,cpu101進(jìn)行安全ic114的設(shè)置處理(步驟s11)。特別地,cpu101在圖6所示的su(setup)命令606中定義預(yù)定設(shè)置值,并且將該值發(fā)送至cpu301。接收到su命令606的安全ic114的cpu301根據(jù)su命令606中所定義的內(nèi)容進(jìn)行其自身的設(shè)置。此外,cpu301生成物理隨機(jī)數(shù),生成個體所特有的個體識別信息,并且將該信息作為特有信息其中之一存儲在閃存208的預(yù)定位置。使用該個體識別信息來對用于生成加密密鑰的原始數(shù)據(jù)進(jìn)行認(rèn)證。該個體識別信息還用于進(jìn)行登記認(rèn)證id候選時的認(rèn)證。
之后,cpu101進(jìn)行秘密信息設(shè)置處理(步驟s12)。這意味著,cpu101在圖6所示的is命令607中定義秘密信息,并且將該信息發(fā)送至cpu301。接收到is命令607的cpu301將該秘密信息存儲在閃存208的預(yù)定位置。然后,通過使用cchd(相互認(rèn)證h→d)命令608和ccdh(相互認(rèn)證d→h)命令609,cpu101使用例如挑戰(zhàn)和應(yīng)答系統(tǒng)與cpu301進(jìn)行相互認(rèn)證處理(步驟s13)。如果相互認(rèn)證失敗(步驟s14中為“否”),則cpu101執(zhí)行適當(dāng)?shù)腻e誤處理(步驟s18)并且結(jié)束初始化處理。針對該錯誤處理,可以使用一般的錯誤處理。另一方面,cpu301遮斷通常經(jīng)由sata-if202可訪問的命令的傳送。
在步驟s14中,如果相互認(rèn)證成功(步驟s14中為“是”),則cpu101將gi命令613發(fā)送至cpu301。接收到gi命令613的cpu301嘗試從閃存208的預(yù)定位置獲得個體識別信息(步驟s15)。如果cpu301無法獲得個體識別信息(步驟s16中為“否”),則cpu101執(zhí)行錯誤處理(步驟s18),并且之后結(jié)束初始化處理。在步驟s16中,如果cpu301成功獲得個體識別信息(步驟s16中為“是”),則cpu301將從閃存208讀取的個體識別信息作為狀態(tài)發(fā)送至cpu101。然后,cpu101開始通常的操作(步驟s17)并且結(jié)束初始化處理。
這里,每次在電源變?yōu)閛n時,進(jìn)行步驟s13的相互認(rèn)證處理。這是因為,相互認(rèn)證的認(rèn)證結(jié)果僅在通電期間有效。此外,利用gi命令613獲得個體識別信息的cpu101將個體識別信息存儲在如圖2所述連接至控制設(shè)備122的板a112的閃存210中。板a112安裝至不容易移除的隱藏位置。
接著,針對用于接收外部訪問的端子認(rèn)證id的登記處理進(jìn)行說明。圖10是用于說明cpu301進(jìn)行的過程的圖。該處理是基于如圖9的步驟s13所述的相互認(rèn)證處理的執(zhí)行。如果相互認(rèn)證處理失敗(步驟s22中為“否”),則cpu301執(zhí)行錯誤處理(步驟s23),并且結(jié)束登記處理。該錯誤處理是cpu301將端子認(rèn)證id登記的失敗作為狀態(tài)發(fā)送至cpu101的處理。cpu301也相對于hdd115和hdd116遮斷sata-if202。
如果相互認(rèn)證處理成功(步驟s22中為“是”),則cpu301能夠獲得(獲取)命令。在所獲得的命令不是登記命令的情況下(步驟s24中為“否”),cpu301進(jìn)行所獲得的命令的處理(步驟s25)。如果步驟s24所獲得的命令是登記命令,則這意味著,如圖7所示,cpu101在rt命令610中設(shè)置適當(dāng)?shù)恼J(rèn)證id候選和k值(第一特有值),并且將這些數(shù)據(jù)發(fā)送至cpu301。在這種情況下(步驟s24中為“是”),cpu301用作用于獲得認(rèn)證id候選的登記命令的獲得部件。
之后,cpu301基于所獲得的認(rèn)證id候選來獨立地計算k值。將獨立計算出的k值稱為第二特有值。為了計算作為第二特有值的k值,cpu301讀取步驟s15所獲得并存儲在閃存208中的個體識別信息。通過將個體識別信息和端子認(rèn)證id進(jìn)行結(jié)合和計算來獲得k值。不具有權(quán)限的人并不知曉個體識別信息,這意味著這種人無法計算k值。
在計算出作為第二特有值的k值的情況下,cpu301將該值與作為rt命令610中所設(shè)置的第一特有值的k值進(jìn)行比較。如果這些k值不一致(步驟s27中為“否”),則cpu301執(zhí)行錯誤處理(步驟s29)。之后,cpu301再次返回至步驟s24,并且進(jìn)入命令待機(jī)狀態(tài)。在步驟s27中,如果這些k值一致(步驟s27中為“是”),則cpu301將認(rèn)證id候選標(biāo)識為端子認(rèn)證id。然后,cpu301將端子認(rèn)證id存儲在作為功能組件的閃存208中。這意味著,cpu301用作端子認(rèn)證id的登記部件。之后,cpu301將表示登記完成的ok應(yīng)答返回至cpu101,并且再次返回至步驟s24。
接著,參考圖11,針對登記完成之后的認(rèn)證處理的過程進(jìn)行說明。cpu301進(jìn)行該認(rèn)證處理。cpu301進(jìn)行步驟s13中所述的相互認(rèn)證處理(步驟s31)。如果相互認(rèn)證處理失敗(步驟s32中為“否”),則cpu301執(zhí)行錯誤處理(步驟s33),之后結(jié)束處理。此外,cpu301相對于hdd115和hdd116遮斷sata-if202。在步驟s32中,如果相互認(rèn)證處理成功(步驟s32中為“是”),則cpu301開始接收來自控制器ic201的命令。如果所接收到的命令不是端子認(rèn)證命令(步驟s34中為“否”),則cpu301執(zhí)行其它命令處理。之后,cpu301返回至步驟s34。
在步驟s34中,如果所接收到的命令是端子認(rèn)證命令,則這意味著cpu在ct命令611中設(shè)置認(rèn)證id候選并且將該候選發(fā)送至cpu301,以使得認(rèn)證id候選已被登記為端子認(rèn)證id。如果獲得了附帶有認(rèn)證id候選的端子認(rèn)證命令,則cpu301用作認(rèn)證部件。在這種情況下(步驟s34中為“是”),cpu301讀取所設(shè)置的認(rèn)證id候選以及利用cpu301存儲在閃存208中的端子認(rèn)證id。然后,cpu301進(jìn)行用以將認(rèn)證id候選和端子認(rèn)證id進(jìn)行比較的處理(步驟s35)。如果這些id一致(步驟s37中為“是”),則cpu301將與端子認(rèn)證id相對應(yīng)的外部接口以及內(nèi)部功能組件等的狀態(tài)從非結(jié)合狀態(tài)轉(zhuǎn)變?yōu)榻Y(jié)合狀態(tài)。之后,cpu301對稍后描述的累積值n進(jìn)行初始化(=0),并且將外部端子認(rèn)證的成功(認(rèn)證結(jié)果表示有效)作為狀態(tài)發(fā)送至cpu101。也就是說,cpu301返回ok應(yīng)答(步驟s38)。之后,cpu301返回至步驟s34并且進(jìn)入命令待機(jī)狀態(tài)。
在步驟s37中,如果這些id不一致(步驟s37中為“否”),則cpu301進(jìn)行如下處理作為錯誤處理:將認(rèn)證結(jié)果無效作為狀態(tài)發(fā)送至cpu101。此外,cpu101累積認(rèn)證結(jié)果被判斷為無效的次數(shù)。這意味著,cpu301進(jìn)行“n=n+1”的向上計數(shù)(步驟s39)。然后,cpu判斷累積值n是否超過先前設(shè)置的上限次數(shù)(步驟s310)。該上限次數(shù)是被設(shè)置為抵御全部搜索攻擊(即,不具有權(quán)限的人重復(fù)進(jìn)行的外部端子認(rèn)證)的數(shù)值。在本實施例中,該上限次數(shù)為3以下。將該上限次數(shù)設(shè)置在su命令606中。如果該上限次數(shù)沒有超過3(步驟s310中為“否”),則cpu301再次返回至步驟s34,并且進(jìn)入接收命令待機(jī)狀態(tài)。
在步驟s310中,如果累積值n超過上限次數(shù)(3次)(步驟s310中為“是”),則cpu301避免外部訪問針對訪問源的進(jìn)一步認(rèn)證。特別地,通過遮斷sata-if202,禁止命令傳送。此外,cpu101執(zhí)行適當(dāng)錯誤處理(步驟s33),并且結(jié)束處理。盡管這里沒有示出,但還可以通過進(jìn)行相互認(rèn)證的再認(rèn)證來繼續(xù)該操作。注意,外部端子與內(nèi)部功能源可以在有限時間段內(nèi)結(jié)合。例如,外部端子在打印設(shè)備的電源接通期間可以與內(nèi)部功能源結(jié)合,并且在打印設(shè)備的電源斷開之后,可以再次進(jìn)行如圖10所述的外部端子認(rèn)證處理。
在安全ic114中,在該安全ic114商業(yè)化之前的開發(fā)階段中,熔斷器402被置于正常狀態(tài)(第一狀態(tài))。此外,在向該ic內(nèi)部的閃存208的測試寫入階段和出廠測試階段,熔斷器402被置于正常狀態(tài)。因此,使得外部接口和內(nèi)部功能組件處于結(jié)合狀態(tài)。在安全ic114商業(yè)化之后,熔斷器402被物理地遮斷,以使得外部接口和內(nèi)部功能組件處于非結(jié)合狀態(tài)。之后,只要使用外部端子id的認(rèn)證處理的結(jié)果維持有效,則維持結(jié)合狀態(tài)。可以使用該時間段(即,維持結(jié)合狀態(tài)的時間段)來快速地分析產(chǎn)品的故障。注意,在本實施例中,熔斷器402用作不可逆部件,然而,還可以使用具有等同屬性的其它部件。此外,在本實施例中,描述了使用一個熔斷器402的情況。無需說明,還可以使用一個以上的熔斷器402。
在上述實施例中,針對使用外部端子id作為用于識別要進(jìn)行接收的外部接口的認(rèn)證id的情況給出了說明。然而,在其它實施例中,還可以使用用于識別第一接口的認(rèn)證id。此外,在上述實施例中,針對將分別作為安裝有ic的功能裝置的控制器ic201和安全ic114安裝在控制設(shè)備122的情況給出了說明。在其它實施例中,還可以將這些安裝有ic的裝置安裝在一個封裝體中。
根據(jù)上述實施例,即使未經(jīng)授權(quán)的人嘗試通過外部接口訪問存儲在內(nèi)部功能組件中的秘密信息,也可以確實地防止這種訪問。
盡管已經(jīng)參考典型實施例說明了本發(fā)明,但是應(yīng)該理解,本發(fā)明不局限于所公開的典型實施例。所附權(quán)利要求書的范圍符合最寬的解釋,以包含所有這類修改、等同結(jié)構(gòu)和功能。
本申請要求2015年12月4日提交的日本專利申請2015-237803的優(yōu)先權(quán),這里通過引用將其全部內(nèi)容包含于此。