版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
(12)發(fā)明專利2020-0128902020.01.29審查員楊怡睿公司11293專利代理師遲軍(57)摘要方法,在未設(shè)置的情況下,第一CPU執(zhí)行第一引導儲器。在設(shè)置了校驗方法的情況下,第一CPU根據(jù)序的處理正常結(jié)束的情況下,第二CPU啟動信息處理裝置。是是香煉否21.一種信息處理裝置,所述信息處理裝置包括:第一非易失性存儲器,其存儲在啟動時要被第一CPU執(zhí)行的引導程序;以及第二非易失性存儲器,其存儲第一引導程序和用于校驗程序的第二引導程序,其中,第一CPU確定是否將在第一非易失性存儲器中設(shè)置指示加密的校驗方法作為用于校驗程序竄改的設(shè)置,在未設(shè)置校驗方法的情況下,執(zhí)行第一引導程序,并將所述校驗方法的設(shè)置寫入第二非易失性存儲器,并且在設(shè)置了校驗方法的情況下,第一CPU根據(jù)所述設(shè)置執(zhí)行第二引導程序,并且在第二引導程序的處理正常結(jié)束時,第二CPU啟動所述信息處理裝置。2.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,所述用于校驗程序竄改的設(shè)置包括校驗方法、用于校驗第二引導程序的公鑰以及第二引導程序的頭部指針的設(shè)置。3.根據(jù)權(quán)利要求1或2所述的信息處理裝置,其中,在未設(shè)置校驗方法的情況下,第一CPU使用哈希值進行針對第一引導程序的校驗,并且在校驗成功的情況下執(zhí)行第一引導程4.根據(jù)權(quán)利要求2所述的信息處理裝置,其中,在設(shè)置了校驗方法的情況下,第一CPU使用所述用于校驗程序竄改的設(shè)置中包括的公鑰針對第二引導程序進行校驗,并且在校驗成5.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,所述第二引導程序?qū)σ坏诙﨏PU執(zhí)行啟動信息處理裝置。6.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,用于校驗程序竄改的設(shè)置的初始值指示使用哈希值的校驗方法。7.根據(jù)權(quán)利要求2所述的信息處理裝置,其中,在公鑰的設(shè)置值是初始值的情況下,第—CPU確定指示加密的校驗方法未被設(shè)置為用于校驗程序竄改的設(shè)置。8.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,在通過執(zhí)行所述第一引導程序?qū)⑿r灧椒ǖ脑O(shè)置寫入第二非易失性存儲器之后,第一CPU重啟所述信息處理裝置。9.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,第一非易失性存儲器是OTP-ROM。10.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,第二非易失性存儲器是閃存。被第一CPU執(zhí)行的引導程序的第一非易失性存儲器、以及存儲第一引導程序和用于校驗程序的第二引導程序的第二非易失性存儲器,所述啟動方法包括:第一CPU在啟動時執(zhí)行存儲在第一非易失性存儲器中的引導程序,其中,第一CPU確定是否將在第一非易失性存儲器中設(shè)置指示加密的校驗方法作為用于校驗程序竄改的設(shè)置,在未設(shè)置校驗方法的情況下,第一CPU執(zhí)行第一引導程序,并將所述校驗方法的設(shè)置寫入第一非易失性存儲器,在所述校驗方法的設(shè)置被寫入第一非易失性存儲器的情況下,第一CPU重啟所述信息處理裝置,3在設(shè)置了校驗方法的情況下,第一CPU根據(jù)所述設(shè)置執(zhí)行第二引導程序,并且在第二引導程序進行的處理正常結(jié)束的情況下,第二CPU啟動所述信息處理裝置。12.根據(jù)權(quán)利要求11所述的啟動方法,其中,在尚未設(shè)置所述校驗方法的情況下,第一CPU使用哈希值進行第一引導程序的校驗,并且在校驗成功的情況下,執(zhí)行第一引導程序。13.根據(jù)權(quán)利要求11所述的啟動方法,其中,在已經(jīng)設(shè)置了校驗方法的情況下,第一CPU使用在所述用于校驗程序竄改的設(shè)置中包括的公鑰進行第二引導程序的校驗,并且在校驗4信息處理裝置及其啟動方法技術(shù)領(lǐng)域[0001]本發(fā)明涉及信息處理裝置及其啟動方法。背景技術(shù)[0002]通過惡意利用軟件脆弱性并竄改軟件來濫用計算機的攻擊已經(jīng)成為問題。[0003]在國際公布2009/013825中描述了包括第一CPU、第二CPU和用于存儲要被第二CPU執(zhí)行的程序的非易失性存儲器的信息處理裝置。在該信息處理裝置中,第一CPU從非易失性存儲器讀出要被第二CPU執(zhí)行的程序,校驗該程序是否遭受了竄改,并根據(jù)校驗結(jié)果將該程序輸出到第二CPU。通過這種方式,第二CPU執(zhí)行未遭受竄改的程序,從而可以改善安全性。[0004]在從外部存儲器讀出程序并對程序是否遭受了竄改進行校驗的系統(tǒng)中,進行程序本身未遭受竄改的校驗。然而,如果在不進行檢測竄改設(shè)置的狀態(tài)下外部存儲器的內(nèi)容被竄改,則無法檢測到該竄改,從而存在允許執(zhí)行遭受了竄改的程序的問題。因此,需要將作為安全基礎(chǔ)的啟動程序以及該程序使用的與加密用公鑰、加密方法等有關(guān)的安全設(shè)置存儲在具有耐用性的存儲裝置中。這是因為,如果作為安全基礎(chǔ)的啟動程序在安全方面存在漏洞,則無法保證整個系統(tǒng)的安全。因此,他們通常被存儲在諸如ROM等無法被重寫的存儲裝[0005]另一方面,期望采用如下構(gòu)造,即可以根據(jù)產(chǎn)品的裝運目的地和應用來改變與公鑰和加密方法有關(guān)的安全設(shè)置。因此,存在這些設(shè)置被存儲在只能被重寫一次的稱為0TP-ROM(一次性可編程ROM)的存儲裝置中的情況。在這種情況下,關(guān)于公鑰和加密方法的安全ROM的初始狀態(tài)下操作的程序。向OTP-ROM寫入這樣的程序花費很長時間,并且從制造成本方面來看也存在問題。發(fā)明內(nèi)容[0006]本發(fā)明的方面是消除現(xiàn)有技術(shù)中的上述問題。[0007]本發(fā)明的特征是提供一種技術(shù),在裝置是新組件的情況下,通過啟動用于構(gòu)造關(guān)于程序校驗設(shè)置的程序來減少要在存儲引導程序的非易失性存儲器中存儲的程序量。[0008]根據(jù)本發(fā)明的第一方面,提供一種信息處理裝置,所述信息處理裝置包括:第一CPU;第二CPU;存儲在啟動時要被第一CPU執(zhí)行的引導程序的第一非易失性存儲器;以及存儲第一引導程序和用于校驗程序的第二引導程序的第二非易失性存儲器,其中,第一CPU確定是否將在第一非易失性存儲器中設(shè)置指示加密的校驗方法作為用于校驗程序竄改的設(shè)置,在未設(shè)置校驗方法的情況下,執(zhí)行第一引導程序,并將所述校驗方法的設(shè)置寫入第二非易失性存儲器,并且在設(shè)置了校驗方法的情況下,第一CPU根據(jù)所述設(shè)置執(zhí)行第二引導程序,并且在第二引導程序的處理正常結(jié)束時,第二CPU啟動信息處理裝置。[0009]根據(jù)本發(fā)明的第二方面,提供一種信息處理裝置的啟動方法,所述信息處理裝置5儲第一引導程序和用于校驗程序的第二引導程序的第二非易失性存儲器,所述啟動方法包括:在啟動時,第一CPU執(zhí)行存儲在第一非易失性存儲器中的引導程序,其中,第一CPU確定是否將在第一非易失性存儲器中設(shè)置指示加密的校驗方法作為用于校驗程序竄改的設(shè)置,在未設(shè)置校驗方法的情況下,第一CPU執(zhí)行第一引導程序,并將所述校驗方法的設(shè)置寫入第一非易失性存儲器,在所述校驗方法的設(shè)置被寫入第一非易失性存儲器時,第一CPU重啟所述信息處理裝置,并且在設(shè)置了校驗方法的情況下,第一CPU根據(jù)所述設(shè)置執(zhí)行第二引導程序,并且在第二引導程序進行的處理正常結(jié)束時,第二CPU啟動所述信息處理裝置。[0010]通過以下參照附圖對示例性實施例的描述,本公開的其他特征將變得清楚。附圖說明[0011]并入說明書并構(gòu)成說明書一部分的附圖例示本發(fā)明的實施例,并與說明書一起用于說明本發(fā)明的原理。[0012]圖1是用于描述根據(jù)本發(fā)明的實施例的MFP的硬件構(gòu)造的框圖。[0013]圖2是用于描述根據(jù)本實施例的MFP中包括的軟件模塊的框圖。[0014]圖3A至圖3C是用于描述根據(jù)本實施例的MFP中的啟動序列的圖。[0015]圖4A是根據(jù)本實施例的MFP中的關(guān)于子引導程序217及其簽名、BIOS、復位向量及其簽名的閃存的構(gòu)造圖。[0016]圖4B是子引導程序218及其哈希值被添加到圖4A的構(gòu)造中的構(gòu)造圖。[0017]圖5是用于描述根據(jù)本實施例的要被MFP的CPU111執(zhí)行的啟動序列處理的流程[0018]圖6A是用于描述在圖5的步驟S512中執(zhí)行子引導程序217的情況下的處理的流程[0019]圖6B是用于描述在圖5的步驟S516中執(zhí)行子引導程序218的情況下的處理的流程[0020]圖7是用于描述根據(jù)本實施例的通過CPU101的MFP的啟動序列的流程圖。具體實施方式[0021]在下文中將參照附圖詳細描述本發(fā)明的實施例。應當理解,下列實施例不意圖限制本發(fā)明的權(quán)利要求,并且并非根據(jù)下列實施例描述的方面的全部組合都是解決根據(jù)本發(fā)[0022]注意,作為示例,將MFP(數(shù)字MFP/多功能外圍設(shè)備)描述為根據(jù)本實施例的信息處理裝置。然而,應用范圍不限于MFP,并且該裝置僅需要是信息處理裝置。在下列實施例中,將要描述以隔離的方式在啟動序列中執(zhí)行竄改檢測設(shè)置處理和竄改檢測處理的方法。[0023]圖1是用于描述根據(jù)本發(fā)明實施例的MFP100的硬件構(gòu)造的框圖。[0024]控制器110包括用于控制MFP100的硬件模塊。在本實施例中,將假設(shè)控制器110被構(gòu)造為半導體芯片來進行描述。時鐘發(fā)生器103生成時鐘信號并以與MFP100的模塊相匹配的頻率供給該時鐘信號(外部時鐘)。在本實施例中,時鐘發(fā)生器103將時鐘信號105供給控制器110中的PLL(鎖相環(huán),PhaseLockedLoop)123.注意,該時鐘信號105的頻率可以由時鐘控制信號107改變。6[0025]時鐘控制器121用內(nèi)部時鐘控制信號108控制PLL123.由此,PLL123將時鐘信號105的頻率相乘并將頻率已經(jīng)相乘的時鐘信號供給控制器110的模塊。時鐘控制器121進行塊供給具有最優(yōu)頻率的時鐘信號(內(nèi)部時鐘信號)。另外,時鐘控制器121可以通過進行關(guān)于時鐘信號的門控來停止向該模塊供給時鐘信號。[0026]復位發(fā)生器104是通過生成并輸出復位信號106來使MFP100的模塊復位或釋放該復位的半導體芯片。雖然圖1例示了只將復位信號106供給到控制器110,但是復位信號也被[0027]當供給MFP100的電源接通時,復位信號106在固定時間內(nèi)維持在復位狀態(tài)(例如,直到供給的電源電壓穩(wěn)定為止),并且之后通過使復位信號106進入釋放狀態(tài)來使控制器110的復位釋放。復位信號106被確定的狀態(tài)是復位狀態(tài),并且復位信號106被否定的狀態(tài)是復位信號106的釋放狀態(tài)。在控制器110的復位被釋放的情況下,復位控制器122對控制器110中的模塊進行復位控制。該復位控制是指在啟動或操作控制器110的情況下,使各個模塊進入復位狀態(tài)或復位釋放狀態(tài)的控制。是在CPU101控制MFP100的情況下用于存儲程序和臨時數(shù)據(jù)的易失性隨機存取存儲。HDD144是硬盤驅(qū)動器并存儲一些應用和各種類型的數(shù)據(jù)。該HDD144存儲要被CPU101執(zhí)行的210等)。閃存145存儲MFP100的固定參數(shù)等。另外,閃存145存儲要被CPU101執(zhí)行的BIOS210(圖2)。此外,閃存145存儲要被CPU101執(zhí)行的加載器211、核心程[0029]CPU111執(zhí)行用于檢測要被CPU101執(zhí)行的軟件程序的竄改的竄改檢測軟件程序,113是易失性隨機存取存儲器,并且在CPU111控制MFP100的情況下用于存儲程序、臨時數(shù)[0030]電源控制器120是控制到控制器110的模塊的電力供給的IC(集成電路)。電源控制器120在控制器110(MFP100)啟動時或操作時,可以向這些模塊供給預定的電力或停止電力的供給。掃描器接口控制器131控制掃描器141進行的原稿的讀取。打印機接口控制器132控制由打印機142進行的打印處理等。面板控制器133控制觸摸面板型控制臺單元143,顯示在HDD144中。閃存控制器135對從閃存145讀取的數(shù)據(jù)或?qū)懭腴W存145的數(shù)據(jù)進行控制。閃存控制器135經(jīng)由系統(tǒng)總線109讀出存儲在閃存145中的程序并將該程序展開到RAM113中。網(wǎng)絡接口控制器136控制從/向網(wǎng)絡146上的其他設(shè)備或服務器的數(shù)據(jù)的發(fā)送/接收。外部端口控制器137是控制器110的輸入/輸出端口控制器。例如,通過控制輸出端口而根據(jù)需要點亮LED147,可以將關(guān)于軟件或硬件中的異常的信息傳送到外部。圖像處理器138是對通過7掃描器141讀取原稿而獲得的圖像數(shù)據(jù)進行陰影校正,并進行用于將該圖像數(shù)據(jù)輸出到打印機142的半色調(diào)處理和平滑處理的處理器。系統(tǒng)總線109將模塊彼此連接。來自CPU101和CPU111的控制信號以及單元之間的數(shù)據(jù)信號經(jīng)由該系統(tǒng)總線109發(fā)送和接收。[0031]圖2是用于描述根據(jù)本實施例的MFP100中包括的軟件模塊的框圖。將假設(shè)由CPU101或CPU111執(zhí)行這些軟件來進行描述。[0032]通信管理模塊207通過控制要被連接到網(wǎng)絡146的網(wǎng)絡接口控制器136來經(jīng)由網(wǎng)絡146向外部設(shè)備發(fā)送數(shù)據(jù)和從外部設(shè)備接收數(shù)據(jù)。UI控制模塊216經(jīng)由面板控制器133從控制臺單元143接收輸入,并根據(jù)該輸入進行處理和進行向控制臺單元143的畫面的輸出。行的程序。引導程序209執(zhí)行控制器110的啟動序列,作為與啟動有關(guān)的處理。稍后將參照圖5和圖6描述啟動序列。該引導程序209包括用于對子引導程序217和218進行竄改檢測的子引導程序竄改檢測模塊200。注意,除了圖2中的引導程序209以外的所有程序都存儲在閃存[0034]子引導程序217執(zhí)行用于檢測關(guān)于BIOS210的竄改的BIOS復位向量竄改檢測模塊201。作為選擇,子引導程序217執(zhí)行竄改檢測設(shè)置模塊202,并執(zhí)行稍后描述的要對ROM112進行的竄改檢測設(shè)置程序。[0035]BIOS210是在執(zhí)行了引導程序209之后由CPU101執(zhí)行的程序,并且除了進行與啟動有關(guān)的處理以外,還包括用于對加載器211進行竄改檢測的加載器竄改檢測模塊203。此外,子引導程序218包括用于對加載器211進行竄改檢測的竄改檢測設(shè)置模塊202。[0036]加載器211是在BIOS210的處理結(jié)束之后要被CPU101執(zhí)行的程序,并且除了進行與啟動有關(guān)的處理以外,還包括用于對核心程序212進行竄改檢測的核心程序竄改檢測模塊204。[0037]核心程序212是在加載器211的處理結(jié)束之后要被CPU101執(zhí)行的程序,并且除了進行與啟動有關(guān)的處理以外,還包括用于對本機程序213進行竄改檢測的本機程序竄改檢測模塊205。[0038]復位向量215是指定關(guān)于在CPU101的復位被釋放時首先要執(zhí)行的處理的信息的程序。在復位向量215中指定異常處理程序和ISR(中斷服務例程)的地址。作為指定跳轉(zhuǎn)目標地址的結(jié)果,該處理程序自動跳轉(zhuǎn)到該地址,并且CPU101可以從該地址開始執(zhí)行程序。當復位被釋放時,參照作為異常處理程序之一的復位處理程序并且執(zhí)行從復位處理程序中指定的跳轉(zhuǎn)目標地址開始的程序。注意,取決于CPU,也可以采用指定命令的方法,并且通過執(zhí)行該命令進行到指定地址的轉(zhuǎn)移。在本實施例中,將假設(shè)前一種方法來進行描述。[0039]本機程序213是要被CPU101執(zhí)行的程序,并且由與MFP100的Java程序214協(xié)作地提供功能的多個程序構(gòu)成。這些多個程序例如包括用于控制掃描器接口控制器131和打印機接口控制器132的程序、這些控制器的啟動程序以及CPU111的重啟程序。這些啟動程序啟程序用于在CPU111執(zhí)行了引導程序并完成了BIOS復位向量竄改檢測處理之后,使其他應用使用CPU111。例如,重啟程序被用作在處于省電模式的情況下監(jiān)視外部端口的中斷的網(wǎng)絡接口控制器136以及控制臺單元143以外的控制器和處理器,從正常操作模式安全切斷8電源或停止時鐘信號。例如,在外部端口控制器137通過從傳感器接收信號而檢測到外部端口中斷的情況下,CPU111進行從省電模式返回到正常模式的處理。被切斷電源或停止時鐘信號的前述控制器和處理器被安全地轉(zhuǎn)移到操作狀態(tài)。作為CPU111進行中斷監(jiān)視的結(jié)果,在CPU111的規(guī)模和待機電力小于CPU101的規(guī)模和待機電力的情況下,能夠通過對于在正常操作狀態(tài)下進行處理的CPU101切斷電源或停止時鐘信號來提高省電效率。另外,作為程序之一,本機程序213包括用于對Java程序進行竄改檢測的Java程序竄改檢測模塊206。[0040]Java程序214是要被CPU101執(zhí)行的程序,并且是用于與MFP100的本機程序213協(xié)作地提供功能的程序(例如,用于在控制臺單元143中顯示畫面的程序)。[0042]圖3A至圖3C是用于描述根據(jù)本實施例的MFP100的啟動序列的圖。[0043]圖3A是示意性地例示表示MFP100不對程序進行竄改檢測而啟動的順序的啟動序列的圖。210的情況下,BIOS210啟動加載器211,而加載器211啟動核心程序212。此外,核心程序212啟動本機程序213的啟動程序。通過這種方式,從啟動程序啟動Java程序214,之后本機程序213和Java程序214協(xié)作并可以提供MFP100中包括的功能。[0045]圖3B和圖3C是根據(jù)本實施例的啟動序列的示意圖。圖3B和圖3C也是示出各程序的保存位置、數(shù)字簽名(在下文中稱為簽名)和公鑰的保存位置、校驗方法、子引導程序頭部地址指針以及哈希值的示意圖。[0046]這里,簽名是通過使用預定的哈希函數(shù)將授權(quán)程序(數(shù)據(jù)流)轉(zhuǎn)換為哈希值,并用與公鑰相對應的私鑰對哈希值進行加密而獲得的。通過用公鑰對加密的哈希值進行解碼來計算授權(quán)程序的哈希值,使用前述的哈希函數(shù)將要被校驗是否遭受竄改的程序轉(zhuǎn)換為哈希值,并比較這兩個哈希值。如果這兩個哈希值相同,則可以確定要被校驗的程序未從授權(quán)程序被竄改。另外,如果這兩個哈希值彼此不同,則可以確定要被校驗的程序被從授權(quán)程序竄改了。以這種方式,使用簽名來檢查要被校驗的程序是否遭受了竄改的方法在下文中稱為簽名校驗。另外,程序未遭受竄改的事實被稱為簽名校驗成功,而程序遭受了竄改的事實被稱為簽名校驗失敗。另外,在簽名校驗中,將程序的哈希值加密,但是也可以在不加密哈希值的情況下通過僅比較程序的哈希值來確定是否遭受了竄改。以這種方式,使用哈希值檢查要被校驗的程序是否遭受了竄改的方法在下文中稱為哈希校驗。[0047]校驗方法313的值是在CPU111執(zhí)行引導程序209的情況下,為了在簽名校驗與哈[0048]子引導程序頭部地址指針314指示引導程序209中的子引導程序頭部地址的位置。在本實施例中,由參照該地址指針獲得的頭部指示的子引導程序來確定由CPU111操作BIOS復位向量竄改檢測模塊201和竄改檢測設(shè)置模塊202中的哪個。注意,在本實施例中,在未在ROM112中進行子引導程序頭部地址指針314的設(shè)置的情況下,ROM112的地址指針的地址指針314的設(shè)置的情況下,通過參照該地址來執(zhí)行程序。稍后將參照圖4描述要被參照的內(nèi)容。9[0049]注意,在本實施例中,采用使用簽名和公鑰的方法和使用哈希值的方法作為檢查程序是否遭受了竄改的方法,但是也可以使用用于檢查是否遭受了竄改的其他方法。[0050]圖3B是在進行竄改檢測的同時依次啟動引導程序209、子引導程序217、BIOS210以及復位向量215、加載器211、核心程序212、本機程序213以及Java程序214的啟動序列的示意圖。[0051]引導程序209包括用于校驗子引導程序簽名和BIOS簽名的公鑰300。子引導程序包括其簽名301。BIOS210包括BIOS復位向量簽名302和加載器校驗公鑰303。另外,加載器211包括加載器簽名304和核心程序校驗公鑰305。另外,核心程序212包括核心程序簽名306和本機程序校驗公鑰307。另外,本機程序213包括本機程序簽名308和Java程序校驗公鑰309。此外,Java程序214包括Java程序簽名310。這些公鑰和簽名在MFP100裝運[0052]圖3C是示出根據(jù)引導程序209的子引導程序的竄改檢測設(shè)置處理的執(zhí)行流程的啟動序列的示意圖。這里,其哈希值315被添加到閃存145中的子引導程序。[0053]圖4A是閃存145上的子引導程序217及其簽名301、BIOS210、復位向量215及其簽名302的構(gòu)造圖。[0054]這里,例示了圖3C中的子引導程序頭部地址指針314被設(shè)置為“0x0004_0000”的情況。這里,通過將來自子引導程序217的頭部直到子引導程序217結(jié)尾的數(shù)據(jù)流轉(zhuǎn)換為哈希值并用與公鑰相對應的私鑰將該哈希值加密而獲得的值,被存儲在子引導程序217的簽名區(qū)域中。然后,通過用公鑰對授權(quán)程序的哈希值進行解碼來計算該哈希值,要被校驗是否遭受了竄改的程序通過前述的哈希函數(shù)被轉(zhuǎn)換為哈希值,并對這兩個哈希值進行比較。子引導程序217的地址和大小作為子引導程序217的頭部被存儲在哈希計算目標范圍“0x0004_域中的數(shù)據(jù)流轉(zhuǎn)換為哈希值。在閃存145中,簽名或哈希值被布置為挨著子引導程序217,但也可以是如下構(gòu)造:使得簽名或哈希值的地址和大小被添加到子引導程序217的頭部,并且引導程序209讀取并參照地址和大小。[0055]上述BIOS復位向量竄改檢測模塊201、加載器竄改檢測模塊203、核心程序竄改檢測模塊204、本機程序竄改檢測模塊205以及Java程序竄改檢測模塊206分別校驗后續(xù)程序序是否被竄改的校驗和啟動程序的啟動序列之后,啟動MFP100。[0056]圖4B是閃存145上的子引導程序218及其哈希值被添加到圖4A的構(gòu)造的構(gòu)造圖。[0057]這里,不在子引導程序218上進行竄改檢測設(shè)置,因此使用哈希值校驗來代替簽名校驗。圖3C示出了未設(shè)置子引導程序頭部地址指針314的構(gòu)造,引導程序209讀取“0x0005_0000”。這里,通過將子引導程序218的頭部直到子引導程序218的結(jié)尾的數(shù)據(jù)流轉(zhuǎn)換為哈希值而獲得的值存儲在子引導程序218的哈希值區(qū)域。另外,使用前述的哈希函數(shù)將要被校驗是否遭受了竄改的程序轉(zhuǎn)換為哈希值,并對這兩個哈希值進行比較。子引導程序218的地址和大小作為子引導程序218的頭部被存儲在哈希計算目標范圍“0x0005_0000”至“0x0005_為哈希值。在閃存145中,哈希值被布置為挨著子引導程序218,但也可以是如下構(gòu)造:使得哈希值的地址和大小被添加到子引導程序218的頭部,并且引導程序209讀出并參照地址和大小。[0058]接下來,將參照圖5至圖7的流程圖描述作為本發(fā)明的特征的、以隔離方式在啟動序列中要被執(zhí)行的竄改檢測設(shè)置處理和竄改檢測處理的方法。[0059]圖5是用于描述根據(jù)本實施例的要被MFP100的CPU111執(zhí)行的啟動序列處理的流程圖。注意,在本實施例中,在初始狀態(tài)下,在下述設(shè)置中操作之后執(zhí)處理。[0060]當接通MFP100的電源時,電源控制器120進行控制以便向控制器110的單元供給電力。時鐘控制器121在接收電力時進行控制,使得通過將時鐘控制信號107輸出到時鐘發(fā)生器103來使時鐘發(fā)生器103的振蕩器或諧振器生成時鐘信號105。另外,時鐘控制器121進行控制,使得通過將內(nèi)部時鐘控制信號108輸出到PLL123來使PLL123生成期望的控制器110的內(nèi)部時鐘信號。[0061]接下來,復位發(fā)生器104通過復位信號106釋放對復位控制器122的復位。在釋放對引導程序209.CPU101的復位向量被存儲在閃存145的預定地址(在本實施例中為“0x0000_入到復位向量中的地址,并執(zhí)行存儲在閃存145中的BIOS210。程序的頭部而切換到子引導程序并執(zhí)行子引導程序。[0063]當作為CPU111的復位被釋放的結(jié)果而開始該序列時,首先在步驟S501,CPU111啟動并執(zhí)行存儲在ROM112中的引導程序209。接下來,處理前進到步驟S502,CPU111根據(jù)引導程序209進行電源控制。這里,進行控制使得電力僅被供給到進行竄改檢測或竄改檢測設(shè)置所需的控制器110中的一些單元。注意,在本實施例中,至少向竄改檢測處理或竄改檢控制器135以及外部端口控制器137。[0064]接下來,處理前進到步驟S503,CPU111根據(jù)引導程序209進行下列時鐘控制。在控制器110啟動完成之后,控制器110中的單元的操作頻率根據(jù)MFP100的規(guī)格而不同。時鐘控制器121使用時鐘控制信號107指令時鐘發(fā)生器103供給期望的時鐘信號105。注意,當改變時鐘信號105的頻率時,需要等待固定時間直到晶體諧振器或晶體振蕩器穩(wěn)定。此外,時鐘控制器121使用內(nèi)部時鐘控制信號108相對于PLL123將要被供給到控制器110中的所需單元的內(nèi)部時鐘信號的頻率設(shè)置為期望頻率。以這種方式,進行CPU111、系統(tǒng)總線109和閃存控制器135中的處理。[0065]注意,為了改變內(nèi)部時鐘信號的頻率,時器121對來自PLL123的時鐘信號進行一次門控,并切換到從PLL123旁通的外部時鐘信號。然后,在PLL123生成的內(nèi)部時鐘信號穩(wěn)定后進行控制,以便將期望的內(nèi)部時鐘信號供給到單元。這里,切換內(nèi)部時鐘信號的控制還停止向CPU111供給時鐘信號,因此通過提供時鐘控制器121內(nèi)部的硬件序列發(fā)生器來進行控制。11控制器134以及閃存控制器135的時鐘信號的頻率是期望頻率。注意,這里可以根據(jù)要被供給的單元來改變要被供給的時鐘信號的頻率。[0067]接下來,處理前進到步驟S504,并且CPU111根據(jù)引導程序209釋放復位。即,CPU111釋放竄改檢測處理或竄改檢測設(shè)置所需的單元的復位。具體地,將RAM113、系統(tǒng)總線109和HDD控制器134的復位釋放。接下來,處理前進到步驟S505,CPU111根據(jù)引導程序209測設(shè)置值確認校驗方法。這里,如果校驗方法是簽名校驗方法,則處理前進到步驟S507,如果校驗方法是哈希校驗方法,則處理前進到步驟S508。在本實施例中,假設(shè)在竄改檢測處理時設(shè)置了簽名校驗方法,而在竄改檢測設(shè)置處理時設(shè)置了哈希校驗方法。注意,在沒有值被寫入ROM112中的校驗方法313(圖3C)中情況下,設(shè)置哈希校驗方法。到RAM113,并且處理前進到步驟S508。在步驟S508,CPU111讀取子引導程序的頭部指針的值。接下來,處理前進到步驟S509,CPU111確定子引導程序的頭部指針的值是子引導程序217的頭部還是子引導程序218的頭部。這里,如果確定是子引導程序217的頭部,則處理前進到步驟S510,如果不是,即確定是子引導程序218的頭部,則處理前進到步驟S514。注意,在本實施例中,在什么值都沒有寫入ROM112的子引導程序的頭部地址指針的初始值(例如,全部是“0”)的情況下,CPU111進行與讀取子引導程序218的地址(圖4B中的0x0005_0000)相同的處理。[0069]在步驟S509中,在確定是子引導程序217的頭部時,CPU111使處理前進到步驟S510。在步驟S510,如果寫入了子引導程序217的地址和大小以及簽名的地址,則CPU111也根據(jù)子引導程序217的頭部指針讀取簽名。在圖4B的實施例中,設(shè)置地址(0x0004_0000)。CPU111根據(jù)讀取的地址和大小計算子引導程序217的哈希值。另外,使用在步驟S507中讀取的公鑰來將加密的簽名解碼為哈希值。然后,通過對這兩個哈希值進行比較來進行子引導程序217的簽名校驗。然后,處理前進到步驟S511,如果哈希值匹配,則CPU111確定子引導程序217未遭受竄改,并使處理前進到步驟S512。另一方面,如果這些哈希值不匹定子引導程序217遭受了竄改,處理前進到步驟S513。[0070]在步驟S512,CPU111將子引導程序217加載到RAM113并執(zhí)行子引導程序217。即,對BIOS復位向量進行竄改檢測處理。稍后將參照圖6A中的流程圖描述這里的處理內(nèi)容。另一方面,在步驟S513,由于子引導程序217遭受了竄改,CPU111使LED147閃爍以進行錯誤[0071]另外,在步驟S514,CPU111根據(jù)子引導程序218的頭部指針獲得子引導程序218的地址和大小。另外,如果寫入了哈希值的存儲地址,則也讀取哈希值。在圖4B所示的實施例中,子引導程序218的頭部被設(shè)置為地址(0x0005_0000)。另外,CPU111根據(jù)讀取的地址和大小計算子引導程序218的哈希值。將該哈希值與存儲的子引導程序218的哈希值進行比較。然后,在步驟S515,如果這些哈希值匹配,則確定子引導程序218未遭受竄改,處理前進到步驟S516,否則,處理前進到步驟S513并使LED147閃爍。在步驟S516,CPU111將子引導程序218加載到RAM113并執(zhí)行子引導程序218。即,要執(zhí)行竄改檢測設(shè)置處理。稍后將參照圖6B中的流程圖描述這里的處理內(nèi)容。[0072]注意,在步驟S506中的校驗方法的確定中,確定不進行簽名校驗方法,即在初始值的哈希校驗的情況下,可以讀取子引導程序218的頭部指針,然后處理可以前進到步驟S514。類似地,如果在步驟S507中,公鑰的值是初始值,則可以讀取子引導程序218的頭部指[0073]接下來,將參照圖6A的流程圖描述在圖5中的步驟S512中執(zhí)行子引導程序217時,BIOS復位向量的竄改檢測處理的執(zhí)行方法。[0074]圖6A是用于描述在圖5的步驟S512中執(zhí)行子引導程序217時的處理的流程圖。[0075]在步驟S601,CPU111讀取BIOS復位向量的頭部指針。在圖4B所示的實施例中,該頭部指針被設(shè)置為0x0000_8000。在本實施例中,在子引導程序217中指定BIOS復位向量的頭部指針??梢允侨缦聵?gòu)造:使得該頭部指針包括在子引導程序217的頭部,并且從頭部讀取該頭部指針。[0076]接下來,處理前進到步驟S602,并且CPU111對BIOS和復位向量進行簽名校驗。這里,CPU111用作子引導程序217中包括的BIOS復位向量竄改檢測模塊201,并通過系統(tǒng)總線固定地址0x0000_0000到固定地址0x0001_FFFF的固定區(qū)域(哈希計算目標范圍)中的數(shù)據(jù)。另外,BIOS復位向量竄改檢測模塊201使用用于校驗BIOS210的簽名的公鑰300對BIOS復位復位向量和BIOS的頭部地址和大小被存儲在哈希計算目標范圍中并被讀出。[0077]接下來,處理前進到步驟S603,并且CPU111確定BIOS復位向量的簽名校驗是否成功。作為簽名校驗的結(jié)果,如果確定BIOS和復位向量未遭受竄改(哈希值與簽名值匹配),則CPU111確定簽名校驗成功,處理前進到步驟S604。受了竄改(哈希值與簽名值不匹配),則CPU111確定簽名校驗失敗,并且處理前進到步驟S605中的錯誤處理。即,在復位向量遭受了竄改的情況下,也能夠檢測竄改,并且處理前進到步驟S605中的錯誤處理。在步驟S604,CPU111通過控制復位控制器122來釋放CPU101、閃存145和RAM102的復位,并結(jié)束子引導程序217的處理。然后,啟動序列轉(zhuǎn)移到之后將描CPU111用作BIOS復位向量竄改檢測模塊201,為了做出簽名校驗失敗的通知而通過控制外部端口控制器137來接通LED147,并結(jié)束引導程序的處理。[0078]接下來,將參照圖6B中的流程圖描述用于執(zhí)行圖5的步驟S516中的子引導程序218[0079]圖6B是用于描述在圖5的步驟S516中執(zhí)行子引導程序218的處理的流程圖。[0080]首先,在步驟S610,CPU111將竄改檢測設(shè)置寫入閃存145的預定地址。該設(shè)置的內(nèi)容是前述校驗方法、公鑰和子引導程序的頭部指針,并且這些在子引導程序218中具有值。接下來,處理前進到步驟S611,CPU111確定能否正確地讀取在步驟S610中被寫入的內(nèi)容。驟S612,CPU111重新啟動系統(tǒng)并結(jié)束子引導程序218的處理。在本實施例中,啟動未示出的看門狗計時器并在經(jīng)過了固定時間之后將復位控制器122復位。復位的方法不限于此。在步驟S613,為了做出步驟S611中的竄改檢測設(shè)置失敗的通知,CPU111通過控制外部端口控制器137來接通LED147,并結(jié)束子引導程序218的處理。[0081]作為執(zhí)行上述序列的結(jié)果,CPU111可以以隔離方式執(zhí)行竄改檢測處理和竄改檢測設(shè)置處理。[0082]圖7是用于描述根據(jù)本實施例的由CPU101進行的MFP100的啟動序列的流程圖。注意,在下述處理中檢測關(guān)于程序(加載器211、核心程序212、本機程序213、Java程序214)是否遭受了竄改的確定方法僅僅是示例,也可以執(zhí)行其他方法,只要該方法是用于檢測程序竄改的方法即可。注意,可以通過CPU101執(zhí)行在RAM102中展開的程序來實現(xiàn)該流程圖所示的處理。[0083]首先,在步驟S701,CPU101被構(gòu)造為在復位被釋放時讀取復位向量215.在本實施例中,復位向量215被設(shè)計為存儲在閃存145中,因此CPU101通過系統(tǒng)總線109讀取復位向量215.然后,CPU101跳轉(zhuǎn)到被寫入到復位向量215的BIOS210的開始地址,從閃存145讀取中包括的加載器竄改檢測模塊203將加載器211、核心程序校驗公鑰305和加載器簽名304從制器134的初始化。[0084]接下來,處理前進到步驟S702,CPU101用作加載器竄改檢測模塊203,使用加載器校驗公鑰303校驗加載器簽名304,并確定簽名校驗是否成功。這里,如果確定簽名校驗失敗,則處理前進到步驟S710,加載器竄改檢測模塊203初始化面板控制器133,在控制臺單元S703,加載器竄改檢測模塊203結(jié)束該處理,并且BIOS210啟動被讀取到RAM102的加載器[0085]以這種方式,在步驟S703,CPU101啟動加載器211,并進行各種類型的初始化處理。這里的初始化包括,例如,面板控制器133的初始化和在控制臺單元143上顯示啟動畫面。另外,加載器211中包括的核心程序竄改檢測模塊204將核心程序212、核心程序校驗公鑰305和核心程序簽名306從閃存145讀取到RAM102。[0086]接下來,處理前進到步驟S704,CPU101用作核心程序竄改檢測模塊204,使用核心程序校驗公鑰305校驗核心程序簽名306,并確定簽名校驗是否成功。這里,如果確定核心程序簽名的校驗失敗,則處理前進到步驟S710,并且核心程序竄改檢測模塊204在控制臺單元143中顯示錯誤消息,并結(jié)束該處理。另一方面,如果確定核心程序簽名306的校驗成功,則處理前進到步驟S705,核心程序竄改檢測模塊204結(jié)束該處理,并且加載器211啟動被讀取[0087]以這種方式,當CPU101在步驟S705中啟動了核心程序212時,進行各種類型的初始化處理。這里的初始化包括,例如,用于啟用網(wǎng)絡146的通信的網(wǎng)絡接口控制器136的初始化。接下來,核心程序212中包括的本機程序竄改檢測模塊205將用于校驗本機程序213的校驗公鑰307和本機程序簽名308從閃存145讀取到RAM102。[0088]然后,處理前進到步驟S706,CPU101用作本機程序竄改檢測模塊205,使用校驗公鑰307校驗本機程序簽名308,并確定本機程序簽名308的校驗是否成功。如果確定本機程序簽名308的校驗失敗,則處理前進到步驟S710,并且本機程序竄改檢測模塊205在控制臺單元143上顯示錯誤消息,并結(jié)束該處理。另一方面,如果確定本機程序簽名308的校驗成功,則處理前進到步驟S707,并且本機程序竄改檢測模塊205結(jié)束該處理并啟動本機程序213。[0089]在步驟S707,CPU101根據(jù)本機程序213啟動進行竄改檢測處理的Java程序竄改檢執(zhí)行用于啟動掃描器141和打印機142的啟動程序。此外,本機程序213將CPU111的程序啟動模塊的地址從ROM112改變?yōu)镽AM113,將重啟程序?qū)懭隦AM113,復位CPU111,然后通過釋放復位來重啟CPU111。作為重啟的結(jié)果,CPU111可以執(zhí)行用于在上述省電模式的情況下監(jiān)視外部端口的中斷的程序。[0090]接下來,處理前進到步驟S708,CPU101用作Java程序竄改檢測模塊206,使用在步驟S705被寫入RAM102的Java程序校驗公鑰309校驗Java程序簽名310,并確定Java程序簽名的校驗是否成功。這里,如果確定Java程序簽名310的校驗失敗,則處理前進到步驟S710,并且Java程序竄改檢測模塊206在控制臺單元143上顯示錯誤消息,并結(jié)束該處理。另一方面,如果確定Java程序簽名310的校驗成功,則Java程序竄改檢測模塊206結(jié)束該處理,使處理前進到步驟S709,并啟動Java程序214。[0091]注意,步驟S710中的處理使得在控制臺單元143上顯示錯誤消息,但是替代地,可以通過控制外部端口控制器137使LED147
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年平板玻璃橫切機行業(yè)跨境出海戰(zhàn)略分析研究報告
- 2025年個人年終工作總結(jié)述職報告報告
- 未來五年VCD機芯企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略分析研究報告
- 未來五年噴水織機企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略分析研究報告
- 供應鏈經(jīng)理面試題及成本控制方法含答案
- 神奇的眼睛成教案
- 蘇教版九年級語文下冊第五單元教案
- 第四單元飛向太空的航程教案
- 高中數(shù)學第二講參數(shù)方程三直線的參數(shù)方程課堂探究新人教A版選修教案(2025-2026學年)
- 幼兒園小班語言分級閱讀見面教案
- 基于大數(shù)據(jù)的麻醉手術(shù)風險預估系統(tǒng)-洞察及研究
- 苗族舞蹈教學課件下載
- 玻璃加工行業(yè)安全培訓課件
- 紅巖中考考點重點知識課件
- 電機與拖動基礎(chǔ)期末試卷及答案
- 晶體缺陷調(diào)控方法-洞察及研究
- 醫(yī)院慢病管理中心課件
- 2023年劍橋商務英語初級分類真題
- 幼兒園嘔吐物處理方法培訓
- 水環(huán)境與人類健康
- 農(nóng)業(yè)保險經(jīng)費管理辦法
評論
0/150
提交評論