TWI783410B - 電子裝置以及其休眠恢復方法 - Google Patents

電子裝置以及其休眠恢復方法 Download PDF

Info

Publication number
TWI783410B
TWI783410B TW110109448A TW110109448A TWI783410B TW I783410 B TWI783410 B TW I783410B TW 110109448 A TW110109448 A TW 110109448A TW 110109448 A TW110109448 A TW 110109448A TW I783410 B TWI783410 B TW I783410B
Authority
TW
Taiwan
Prior art keywords
security
program
processor
data
level
Prior art date
Application number
TW110109448A
Other languages
English (en)
Other versions
TW202238370A (zh
Inventor
丁郁庭
楊昇諮
吳昶澔
游振威
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW110109448A priority Critical patent/TWI783410B/zh
Priority to US17/506,737 priority patent/US11829611B2/en
Publication of TW202238370A publication Critical patent/TW202238370A/zh
Application granted granted Critical
Publication of TWI783410B publication Critical patent/TWI783410B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

本發明實施例提供一種電子裝置,其包括暫存記憶體、非揮發性記憶體以及處理器。暫存記憶體包括至少一安全區段;非揮發性記憶體用以儲存至少一上層安全程式以及多個指令;以及處理器連接暫存記憶體以及非揮發性記憶體,用以執行多個指令以:當接收喚醒指令時,初始化至少一安全區段;以及藉由至少一上層安全程式,恢復至少一安全區段,或解密儲存於非揮發性記憶體之加密資料以恢復至少一安全區段。此外,一種休眠恢復方法亦在此揭露。

Description

電子裝置以及其休眠恢復方法
本發明是有關於一種電子裝置以及其休眠恢復方法。
為了減少電腦系統的能耗,電腦系統除了通常(normal)狀態外,還會有休眠(hibernation)狀態。電腦系統在休眠狀態下會停止部分模組的作用,僅保留必要的模組,並在外界訊號觸發的情況下快速恢復到通常狀況。如此一來,可達到省電的效果。
進一步而言,在電腦系統進入休眠狀態前,往往會對資料進行備份,以在回到通常狀態時恢復到休眠前的運作情景。然而,針對各種安全等級高的資料,電腦系統往往無法直接對其備份,這將造成在電腦系統回到通常狀態時無法恢復到休眠前的運作情景。
本發明實施例提供一種電子裝置,其包括暫存記憶體、非揮發性記憶體以及處理器。暫存記憶體包括至少一安全區段;非揮發性記憶體用以儲存至少一上層安全程式以及多個指令;以及處理器連接暫存記憶體以及非揮發性記憶體,用以執行多個指令以:當接收喚醒指令時,初始化至少一安全區段;以及藉由至少一上層安全程式,恢復至少一安全區段,或解密儲存於非揮發性記憶體之加密資料以恢復至少一安全區段。
本發明實施例提供一種休眠恢復方法,所述方法包括下列步驟:當接收喚醒指令時,初始化暫存記憶體中的至少一安全區段;以及藉由非揮發性記憶體所儲存的至少一上層安全程式,恢復至少一安全區段,或解密儲存於非揮發性記憶體之加密資料以恢復至少一安全區段。
基於上述,本發明實施例的電子裝置以及其休眠恢復方法可利用與暫存記憶體中高安全層級的安全區段對應的標籤恢復安全區段的資料,或者是預先加密並備分暫存記憶體中高安全層級的安全區段的資料以恢復安全區段的資料。
第1圖是根據本發明一些示範性實施例的電子裝置的方塊圖。參照第1圖,電子裝置100可包括暫存記憶體110、非揮發性記憶體(non-volatile storage)120以及處理器130。電子裝置100例如是智慧型手機、平板電腦、筆記型電腦、桌上型電腦或機上盒等各種需要安全架構的裝置(例如:數位版權管理串流(digital rights management streaming,DRM streaming)平台的機上盒),並沒有特別的限制。
再者,暫存記憶體110可包括至少一安全區段(secure region)。非揮發性記憶體120可用以儲存至少一上層安全程式以及多個指令。處理器130可連接暫存記憶體110以及非揮發性記憶體120,並用以執行這些指令。
在一些實施例中,暫存記憶體110更可包括至少一通常區段(normal region)。在進一步的實施例中,當處理器130接收高安全層級指令(例如:ARM CPU的安全監控呼叫(secure monitor call,SMC)指令)時,處理器130可在高安全層級狀態(例如:ARM CPU的可信任執行環境(trusted execution environment,TEE))中對安全區段中的資料進行讀寫。相反地,當處理器130未接收高安全層級指令時,處理器130僅僅能在通常狀態中對通常區段中的資料進行讀寫。
在一些實施例中,安全區段中的資料可以是敏感資料(sensitive data)或安全資料(secure data)(例如:涵式庫(library)或串流資料(streaming data)等安全等級高的資料)。
在一些實施例中,非揮發性記憶體120更可用以儲存至少一下層安全程式。在進一步實施例中,上層安全程式可以是LINUX中的使用者空間(user space)的安全使用者(例如:開源可信任執行環境(Open Source Trust Execution Environment,OP-TEE)中的客戶端應用程式 (client application,CA))程式(即,高安全權限的使用者程式),也可以是作業系統驅動(OS driver)(例如:Linux Driver),且下層安全程式可以是TEE中的安全程式(例如:OP-TEE中的信任應用程式(trust application))程式(即,高安全權限的客戶程式)。此外,上層安全程式可從對應的下層安全程式接收或傳送資料。藉此,在高安全層級狀態中,處理器130可藉由下層安全程式從上層安全程式接收或傳送資料,並在高安全層級狀態藉由下層安全程式對安全區段中的資料進行讀寫。
在一些實施例中,暫存記憶體110可例如是任何型態的固定式或可移動式的動態隨機存取記憶體(dynamic random access memory,DRAM)或靜態隨機存取記憶體(static random access memory,SRAM)等各種揮發性記憶體(volatile storage)或類似元件或上述元件的組合。
在一些實施例中,非揮發性記憶體120可例如是任何型態的固定式或可移動式的唯讀記憶體(read-only memory,ROM)、快閃記憶體(flash memory)、硬碟(hard disk drive,HDD)或固態硬碟(solid state drive,SSD)等或類似元件或上述元件的組合。
在一些實施例中,處理器130例如是中央處理單元(central processing unit,CPU),或是其他可程式化之一般用途或特殊用途的微控制單元(micro control unit,MCU)、微處理器(microprocessor)、數位信號處理器(digital signal processor,DSP)、可程式化控制器、特殊應用積體電路(application specific integrated circuit,ASIC)、圖形處理器(graphics processing unit,GPU)、算數邏輯單元(arithmetic logic unit,ALU)、複雜可程式邏輯裝置(complex programmable logic device,CPLD)、現場可程式化邏輯閘陣列(field programmable gate array,FPGA)或其他類似元件或上述元件的組合。
在一些實施例中,處理器130可以有線或無線的方式連接暫存記憶體110以及非揮發性記憶體120。
對於有線方式而言,上述連接的方式可以是透過通用序列匯流排(universal serial bus,USB)、RS232、通用非同步接收器/傳送器(universal asynchronous receiver/transmitter,UART)、內部整合電路(I2C)、序列周邊介面(serial peripheral interface,SPI)、顯示埠(display port)、雷電埠(thunderbolt)或區域網路(local area network,LAN)介面連接的方式。
而對於無線方式而言,上述連接的方式可以是透過無線保真(wireless fidelity,Wi-Fi)模組、無線射頻識別(radio frequency identification,RFID)模組、藍芽模組、紅外線模組、近場通訊(near-field communication,NFC)模組或裝置對裝置(device-to-device,D2D)模組連接的方式。
第2圖是根據本發明一些示範性實施例的休眠恢復方法的流程圖。第3圖是根據本發明一些示範性實施例的休眠恢復方法的示意圖。第2圖所示實施例的方法適用於第1圖的電子裝置100,但不以此為限。為方便及清楚說明起見,下述同時參照第1圖、第2圖以及第3圖,以電子裝置100中各元件之間的作動關係來說明第2圖所示休眠恢復方法的詳細步驟。
首先,於步驟S201中,當處理器130接收休眠(hibernation)指令時,處理器130可藉由非揮發性記憶體120所儲存的至少一下層安全程式PG2,依據至少一安全區段1101產生多個資料標記(tag),並將多個資料標記傳送至非揮發性記憶體120所儲存的至少一上層安全程式PG3。
詳細而言,當處理器130在通常狀態Sn時,處理器130可藉由通常程式PG1對暫存記憶體110中的通常區段1102進行讀寫。而當處理器130接收休眠指令時,處理器130可先進入高安全層級狀態,並藉由至少一下層安全程式PG2讀取至少一安全區段1101中的資料SD1,進而產生與至少一安全區段1101中的資料SD1對應的多個資料標記。藉此,處理器130可藉由至少一下層安全程式PG2將這些資料標記傳送至至少一上層安全程式PG3。如此一來,處理器130可藉由至少一上層安全程式PG3儲存這些資料標記。之後,處理器130便可進入休眠狀態Sh。
在一些實施例中,當處理器130接收休眠指令時,處理器130可先進入高安全層級狀態,並藉由至少一下層安全程式PG2使至少一安全區段1101中的資料SD1無效化(invalidate)。
在一些實施例中,資料標記可以是與安全區段1101的資料SD1對應的標記(例如:若安全區段1101的資料包括多個影像幀(frame),資料標記可以是與這些影像幀對應的時間戳記(time stamp))。
在一些實施例中,在處理器130產生資料標記後,處理器130可刪除(erase)至少一安全區段1101中的資料SD1。
在一些實施例中,當處理器130接收休眠指令時,清除至少一下層安全程式PG2所儲存的記憶體位置資訊,其中記憶體位置資訊對應於至少一安全區段1101。詳細而言,記憶體位置資訊可指示至少一安全區段1101中與至少一下層安全程式PG2對應的至少一資料位址(address)。換言之,在處理器130未進入休眠狀態Sh的情況下,處理器130可進入高安全層級狀態,並藉由至少一下層安全程式PG2對上述資料位址進行讀寫。
在一些實施例中,處理器130可將暫存記憶體110中的至少一通常區段1102中的資料存入非揮發性記憶體120中。
在一些實施例中,當系統(例如:Linux Kernel)接收休眠指令時,處理器130以及系統可在進入休眠狀態Sh之前透過至少一上層安全程式PG3(也可以是OS driver)通知至少一下層安全程式PG2,並使至少一上層安全程式PG3以及至少一下層安全程式PG2進入暫停狀態(例如:LINUX中的凍結(freeze)狀態)。之後,處理器130便可進入休眠狀態Sh。
值得注意的是,當至少一上層安全程式PG3通知至少一下層安全程式PG2時,至少一下層安全程式PG2也可直接將至少一安全區段1101中的資料SD1寫入非揮發性記憶體120,以在後續喚醒階段直接從非揮發性記憶體120重組資料SD1。
接著,於步驟S203中,當處理器130接收喚醒指令時,處理器130可初始化(initialize)暫存記憶體110中的至少一安全區段1101。
詳細而言,當處理器130接收喚醒指令時,處理器130以及系統可進行恢復(restore),並對暫存記憶體110中的至少一安全區段1101進行初始化。之後,處理器130便可進入通常狀態Sn。
在一些實施例中,當處理器130接收喚醒指令時,處理器130可使至少一下層安全程式PG2進入啟用(activate)狀態(即,將至少一下層安全程式PG2啟用),並藉由至少一下層安全程式PG2,將喚醒指令傳送至至少一上層安全程式PG3,進而使至少一上層安全程式PG3進入啟用狀態(即,將至少一上層安全程式PG3啟用)。
接著,於步驟S205中,處理器130可藉由非揮發性記憶體120所儲存的至少一上層安全程式PG3,依據多個資料標記產生與至少一安全區段1101對應的安全資料SD2。
詳細而言,處理器130可藉由至少一上層安全程式PG3,依據先前所儲存的多個資料標記重新組合(rebuild)並產生安全資料SD2,其中安全資料SD2可與至少一安全區段1101中先前儲存的資料SD1相同或相似(例如,藉由至少一上層安全程式PG3,利用多個資料標記中的時間戳記重新接收與至少一安全區段1101中的資料SD1相同或相似的影像資料)。
值得注意的是,若至少一下層安全程式PG2在進入休眠狀態前已將至少一安全區段1101中的資料SD1寫入非揮發性記憶體120,處理器130也可直接藉由至少一下層安全程式PG2,讀取非揮發性記憶體120在進入休眠狀態Sh之前所儲存的與至少一安全區段1101相關的資料,以依據此資料重建安全資料SD2,進而將安全資料SD2寫入至少一安全區段1101。如此一來,將可直接省略以下的步驟S207以及S209。
接著,於步驟S207中,處理器130可藉由至少一下層安全程式PG2,向至少一上層安全程式PG3請求安全資料SD2,以從至少一上層安全程式PG3接收安全資料SD2。
詳細而言,處理器130可藉由至少一下層安全程式PG2,傳送請求(request)訊息至少一上層安全程式PG3。響應於此請求訊息,處理器130可藉由至少一上層安全程式PG3,將安全資料SD2傳送至至少一下層安全程式PG2。
最後,於步驟S209中,處理器130可藉由至少一下層安全程式PG2,依據安全資料SD2恢復至少一安全區段1101。
詳細而言,處理器130可先進入高安全層級狀態,並藉由至少一下層安全程式PG2,將安全資料SD2儲存於至少一安全區段1101。
在一些實施例中,處理器130可先進入高安全層級狀態,並依據至少一安全區段1101中與安全資料SD2對應的至少一新的資料位址產生新的記憶體位置資訊。藉此,處理器130可藉由至少一下層安全程式PG2儲存新的記憶體位置資訊,其中新的記憶體位置資訊可指示至少一安全區段1101中與至少一下層安全程式PG2對應的至少一新的資料位址。
在一些實施例中,處理器130可讀取非揮發性記憶體120中上述原本儲存在通常區段1102中的資料,並將這些資料重新儲存於暫存記憶體110中的至少一通常區段1102。
藉由上述步驟,本發明實施例的電子裝置100可在進入休眠狀態Sh之前將暫存記憶體110中的通常區段1102中的資料備份於非揮發性記憶體120中,並藉由上層安程式PG3,儲存與暫存記憶體110中的安全區段1101對應的資料標記。藉此,電子裝置100可在進入通常狀態Sn後從非揮發性記憶體120讀取原本儲存於通常區段1102的資料,並藉由上層安全程式PG3讀取資料標記,進而利用上述資料以及資料標記恢復至休眠前的處理狀態。如此一來,可使處理器130在休眠狀態Sh之前的處理狀態以及在從休眠狀態Sh恢復後的處理狀態相同或相似,以避免在休眠狀態Sh之前的處理狀態以及在從休眠狀態Sh恢復後的處理狀態的不一致性。
第4圖是根據本發明一些示範性實施例的休眠恢復方法的流程圖。第5圖是根據本發明一些示範性實施例的休眠恢復方法的示意圖。第4圖所示實施例的方法適用於第1圖的電子裝置100,但不以此為限。為方便及清楚說明起見,下述同時參照第1圖、第4圖以及第5圖,以電子裝置100中各元件之間的作動關係來說明第4圖所示休眠恢復方法的詳細步驟。
首先,於步驟S401中,當處理器130接收休眠指令時,處理器130對暫存記憶體110中的至少一安全區段1101進行加密,以產生加密資料ED,並將加密資料ED儲存於非揮發性記憶體120。
詳細而言,當處理器130接收休眠指令時,處理器130可先進入高安全層級狀態,並對暫存記憶體110中的至少一安全區段1101進行加密(即,對至少一安全區段1101中的資料SD1加密),進而將所產生的加密資料ED儲存於非揮發性記憶體120。
在一些實施例中,至少一安全區段1101可包括至少一使用區塊以及至少一非使用區塊,其中使用區塊為已儲存資料的區段,且非使用區塊為未儲存資料的區段。當處理器130接收休眠指令時,處理器130可將至少一使用區塊進行加密,以產生加密資料ED,並將加密資料ED儲存於非揮發性記憶體120。換言之,處理器130可僅對使用區塊加密,以產生加密資料ED。
在一些實施例中,當處理器130接收休眠指令時,處理器130可先進入高安全層級狀態,並執行安全作業系統(secure operating system,secure OS)。藉此,處理器130可在安全作業系統中藉由加密(encrypt)解密(decrypt)程式EDP對至少一安全區段1101中的資料SD1加密。
在進一步的實施例中,處理器130可藉由加密解密程式EDP,依據安全作業系統所儲存的金鑰對至少一安全區段1101中的資料SD1進行軟體加密,以產生加密資料ED。
在另一些實施例中,電子裝置100更可包括加密電路(例如:保密電路(circuit-private))(未繪示)或加密處理器(未繪示)。當處理器130接收休眠指令時,處理器130可先進入高安全層級狀態,並進一步藉由加密電路或加密處理器對至少一安全區段1101中的資料SD1進行硬體加密,以產生加密資料ED。
在另一些實施例中,當處理器130接收休眠指令時,處理器130可先進入高安全層級狀態,並進一步藉由驅動(driver)程式、喚回(call-back)程式或涵式呼喚(function-call)程式對至少一安全區段1101中的資料SD1進行硬體加密,以產生加密資料ED。
在一些實施例中,處理器130可將暫存記憶體110中的至少一通常區段1102中的資料存入非揮發性記憶體120中。
在一些實施例中,當處理器130接收休眠指令時,處理器130可在進入休眠狀態Sh之前藉由至少一上層安全程式PG3,將休眠指令傳送至至少一下層安全程式PG2(即,休眠狀態可由系統或OS觸發),並使至少一上層安全程式PG3以及至少一下層安全程式PG2進入暫停狀態。之後,處理器130才會對至少一安全區段1101中的資料SD1進行加密,以產生加密資料ED,進而進入休眠狀態Sh。換言之,處理器130可在進行加密之前先使至少一上層安全程式PG3以及至少一下層安全程式PG2進入暫停狀態,以防止至少一上層安全程式PG3以及至少一下層安全程式PG2繼續對至少一安全區段1101進行讀寫。
接著,於步驟S403中,當處理器130接收喚醒指令時,處理器130初始化至少一安全區段1101。
詳細而言,當處理器130接收喚醒指令時,處理器130可進行恢復,並對暫存記憶體110中的至少一安全區段1101進行初始化。之後,處理器130便可進入通常狀態Sn。
接著,於步驟S405中,處理器130可從非揮發性記憶體120讀取加密資料ED,並將加密資料ED進行解密,以產生與至少一安全區段1101對應的安全資料SD3。
詳細而言,處理器130可對非揮發性記憶體120所儲存的加密資料ED進行解密,以產生安全資料SD3,其中安全資料SD3可與至少一安全區段1101中先前儲存的資料SD1完全相同。
最後,於步驟S407中,處理器130依據安全資料SD3恢復至少一安全區段1101。
詳細而言,處理器130可先進入高安全層級狀態,並將安全資料SD3儲存於至少一安全區段1101。
在一些實施例中,處理器130可讀取非揮發性記憶體121中上述原本儲存在通常區段1102中的資料,並將這些資料重新儲存於暫存記憶體110中的至少一通常區段1102。
在一些實施例中,若安全資料SD3為由至少一安全區段1101中的至少一使用區塊加密以產生的,處理器130可先進入高安全層級狀態,並將安全資料SD3儲存於至少一安全區段1101中的至少一使用區塊。
在一些實施例中,在處理器130恢復至少一安全區段1101後,處理器130才藉由至少一下層安全程式PG2,將喚醒指令傳送至至少一上層安全程式PG3,並使至少一上層安全程式PG3以及至少一下層安全程式PG2進入啟用狀態。換言之,處理器130可在恢復至少一安全區段1101後才使至少一上層安全程式PG3以及至少一下層安全程式PG2進入啟用狀態,以防止至少一上層安全程式PG3以及至少一下層安全程式PG2先對至少一安全區段1101進行讀寫。
藉由上述步驟,本發明實施例的電子裝置100可在進入休眠狀態Sh之前將暫存記憶體110中的安全區段1101以及通常區段1102中的資料備份於非揮發性記憶體120中。藉此,電子裝置100可在進入通常狀態Sn後從非揮發性記憶體120讀取上述資料,並利用上述資料恢復至休眠前的處理狀態。如此一來,可使處理器130在休眠狀態Sh之前的處理狀態以及在從休眠狀態Sh恢復後的處理狀態相同,以避免在休眠狀態Sh之前的處理狀態以及在從休眠狀態Sh恢復後的處理狀態的不一致性。
綜上所述,本發明實施例的電子裝置以及其休眠恢復方法可利用與暫存記憶體中高安全層級的安全區段對應的標籤恢復安全區段的資料,或者是預先加密並備分暫存記憶體中高安全層級的安全區段的資料以恢復安全區段的資料。藉此,將可完整或部分地還原休眠前後的系統狀態,以避免由於無法對安全區段的資料備分導致的休眠前後的系統狀態不一致的問題。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:電子裝置 110:暫存記憶體 120:非揮發性記憶體 130:處理器 1101:安全區段 1102:通常區段 SD1:資料 SD2、SD3:安全資料 PG1:通常程式 PG2:下層安全程式 PG3:上層安全程式 EDP:加密解密程式 ED:加密資料 Sh:休眠狀態 Sn:通常狀態 S201~S209、S401~S407:步驟
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。 第1圖是根據本發明一些示範性實施例的電子裝置的方塊圖。 第2圖是根據本發明一些示範性實施例的休眠恢復方法的流程圖。 第3圖是根據本發明一些示範性實施例的休眠恢復方法的示意圖。 第4圖是根據本發明另一些示範性實施例的休眠恢復方法的流程圖。 第5圖是根據本發明另一些示範性實施例的休眠恢復方法的示意圖。
100:電子裝置 110:暫存記憶體 120:非揮發性記憶體 130:處理器

Claims (10)

  1. 一種電子裝置,包括:一暫存記憶體,包括至少一安全區段;一非揮發性記憶體,用以儲存至少一上層安全程式以及多個指令,其中該至少一上層安全程式為LINUX中的使用者空間的至少一安全使用者程式或至少一作業系統驅動;以及一處理器,連接該暫存記憶體以及該非揮發性記憶體,用以執行該些指令以:當接收一喚醒指令時,初始化該至少一安全區段;以及藉由該至少一上層安全程式,恢復該至少一安全區段,或解密儲存於該非揮發性記憶體之一加密資料以恢復該至少一安全區段。
  2. 如請求項1所述之電子裝置,其中該非揮發性記憶體更用以儲存至少一下層安全程式,且該處理器更用以:當接收一休眠指令時,藉由該至少一下層安全程式,依據該至少一安全區段產生多個資料標記,並將該些資料標記傳送至該至少一上層安全程式,或藉由該至少一下層安全程式,將該至少一安全區段中儲存於該非揮發性記憶體。
  3. 如請求項2所述之電子裝置,其中該處理器更用以:當接收該休眠指令時,藉由該至少一上層安全程式,將該休眠指令傳送至該至少一下層安全程式,並使該至少一上層安全程式以及該至少一下層安全程式進入一休眠狀態;以及當接收該喚醒指令時,藉由該至少一上層安全程式,將該喚醒指令傳送至該至少一下層安全程式,並使該至少一上層安全程式以及該至少一下層安全程式進入一通常狀態。
  4. 如請求項2所述之電子裝置,其中該處理器更用以:當接收該休眠指令時,清除該至少一下層安全程式所儲存的記憶體位置資訊,其中該記憶體位置資訊對應於該至少一安全區段。
  5. 如請求項2所述之電子裝置,其中該處理器更用以:當接收該喚醒指令時,藉由該至少一上層安全程式,依據該些資料標記產生與該至少一安全區段對應的一安全資料;藉由該至少一下層安全程式,向該至少一上層安全程式請求該安全資料,以從該至少一上層安全程式接收該安全 資料;以及藉由該至少一下層安全程式,依據該安全資料恢復該至少一安全區段。
  6. 如請求項5所述之電子裝置,其中該處理器更用以:當接收該喚醒指令時,藉由該至少一下層安全程式,從該非揮發性記憶體讀取該安全資料;以及藉由該至少一下層安全程式,依據該安全資料恢復該至少一安全區段。
  7. 如請求項1所述之電子裝置,其中該處理器更用以:當接收一休眠指令時,對該至少一安全區段進行加密,以產生該加密資料,並將該加密資料儲存於該非揮發性記憶體。
  8. 如請求項1所述之電子裝置,其中該處理器更用以:當接收該喚醒指令時,從該非揮發性記憶體讀取該加密資料,並將該加密資料進行解密,以產生與該至少一安全區段對應的一安全資料;以及依據該安全資料恢復該至少一安全區段。
  9. 如請求項1所述之電子裝置,其中該至少一安全區段包括至少一使用區塊以及至少一非使用區塊,且該處理器更用以:當接收一休眠指令時,將該至少一使用區塊進行加密,以產生該加密資料,並將該加密資料儲存於該非揮發性記憶體。
  10. 一種休眠恢復方法,包括:當接收一喚醒指令時,初始化一暫存記憶體中的至少一安全區段;以及藉由一非揮發性記憶體所儲存的至少一上層安全程式,恢復該至少一安全區段,或解密儲存於該非揮發性記憶體之一加密資料以恢復該至少一安全區段,其中該至少一上層安全程式為LINUX中的使用者空間的至少一安全使用者程式或至少一作業系統驅動。
TW110109448A 2021-03-16 2021-03-16 電子裝置以及其休眠恢復方法 TWI783410B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110109448A TWI783410B (zh) 2021-03-16 2021-03-16 電子裝置以及其休眠恢復方法
US17/506,737 US11829611B2 (en) 2021-03-16 2021-10-21 Electronic device and hibernation recovery method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110109448A TWI783410B (zh) 2021-03-16 2021-03-16 電子裝置以及其休眠恢復方法

Publications (2)

Publication Number Publication Date
TW202238370A TW202238370A (zh) 2022-10-01
TWI783410B true TWI783410B (zh) 2022-11-11

Family

ID=83284761

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110109448A TWI783410B (zh) 2021-03-16 2021-03-16 電子裝置以及其休眠恢復方法

Country Status (2)

Country Link
US (1) US11829611B2 (zh)
TW (1) TWI783410B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI245182B (en) * 2002-06-26 2005-12-11 Intel Corp Method, chipset, system and recording medium for responding to a sleep attack
TW201137663A (en) * 2009-10-13 2011-11-01 Microsoft Corp Secure storage of temporary secrets
US20140157026A1 (en) * 2012-12-05 2014-06-05 Advanced Micro Devices, Inc. Methods and apparatus for dynamically adjusting a power level of an electronic device
CN106775609A (zh) * 2015-11-19 2017-05-31 飞思卡尔半导体公司 用于减少休眠及恢复时间的***及方法
CN110456897A (zh) * 2018-05-08 2019-11-15 杭州海康威视数字技术股份有限公司 电子设备的掉电保护方法、保护装置及服务器集群

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811475B2 (en) * 2012-06-29 2017-11-07 Intel Corporation Methods and apparatus for a secure sleep state
US9479331B2 (en) * 2014-08-20 2016-10-25 Apple Inc. Managing security in a system on a chip (SOC) that powers down a secure processor
US10198274B2 (en) * 2015-03-27 2019-02-05 Intel Corporation Technologies for improved hybrid sleep power management
US10235526B2 (en) * 2015-12-18 2019-03-19 Intel Corporation Secure resume from a low power state
US10162543B1 (en) * 2017-12-15 2018-12-25 Qualcomm Incorporated System and method for power mode selection in a computing device
EP3614293A1 (en) * 2018-08-24 2020-02-26 Nagravision S.A. Securing data stored in a memory of an iot device during a low power mode
DE102018132970A1 (de) * 2018-10-10 2020-04-16 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Isolation von sensiblem nichtvertrauenswürdigem Programmcode auf mobilen Endgeräten

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI245182B (en) * 2002-06-26 2005-12-11 Intel Corp Method, chipset, system and recording medium for responding to a sleep attack
TW201137663A (en) * 2009-10-13 2011-11-01 Microsoft Corp Secure storage of temporary secrets
US20140157026A1 (en) * 2012-12-05 2014-06-05 Advanced Micro Devices, Inc. Methods and apparatus for dynamically adjusting a power level of an electronic device
CN106775609A (zh) * 2015-11-19 2017-05-31 飞思卡尔半导体公司 用于减少休眠及恢复时间的***及方法
CN110456897A (zh) * 2018-05-08 2019-11-15 杭州海康威视数字技术股份有限公司 电子设备的掉电保护方法、保护装置及服务器集群

Also Published As

Publication number Publication date
US11829611B2 (en) 2023-11-28
US20220300170A1 (en) 2022-09-22
TW202238370A (zh) 2022-10-01

Similar Documents

Publication Publication Date Title
TWI697804B (zh) 安全區之平台遷移
EP3192003B1 (en) Providing a trusted execution environment using a processor
TWI697805B (zh) 載入和虛擬化密碼金鑰
US8918652B2 (en) System and method for BIOS and controller communication
TWI497338B (zh) 暫時秘密之保全儲存
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
TWI576698B (zh) 跨電源週期維持安全處理環境
TWI493951B (zh) 保護對稱加密鑰的系統及方法
US10536274B2 (en) Cryptographic protection for trusted operating systems
JP6022688B2 (ja) コンピューティングシステムのストレージデバイスのための効率的な動作経路を促進する機構
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
US10691627B2 (en) Avoiding redundant memory encryption in a cryptographic protection system
US11893144B2 (en) System and method for slice virtual disk encryption
KR20090073208A (ko) 영구 보안 시스템 및 영구 보안 방법
TW201419153A (zh) 電子裝置以及開機方法
US9525705B2 (en) System and method for managing tokens authorizing on-device operations
US10708061B2 (en) Secure key storage for multi-core processor
WO2014200530A1 (en) Securely obtaining memory content after device malfunction
TWI705687B (zh) 用於資料加解密的金鑰管理裝置及處理器晶片
JP2005158043A (ja) システム・ページング・ファイルの暗号化
CN116049825A (zh) 管理基板管理控制器的存储器中的秘密的存储
JP2020520037A (ja) 孤立したユーザーコンピューティング部を有するコンピュータ
TWI783410B (zh) 電子裝置以及其休眠恢復方法
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
US9135046B1 (en) Preventing host operating system from inspecting or modifying data received by hardware controller by moving host operating system into a virtual machine after boot up