TWI682296B - 映像檔打包方法及映像檔打包系統 - Google Patents

映像檔打包方法及映像檔打包系統 Download PDF

Info

Publication number
TWI682296B
TWI682296B TW107143858A TW107143858A TWI682296B TW I682296 B TWI682296 B TW I682296B TW 107143858 A TW107143858 A TW 107143858A TW 107143858 A TW107143858 A TW 107143858A TW I682296 B TWI682296 B TW I682296B
Authority
TW
Taiwan
Prior art keywords
image file
initial
core
signature
program
Prior art date
Application number
TW107143858A
Other languages
English (en)
Other versions
TW202022660A (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 TW107143858A priority Critical patent/TWI682296B/zh
Priority to US16/573,361 priority patent/US20200183675A1/en
Application granted granted Critical
Publication of TWI682296B publication Critical patent/TWI682296B/zh
Publication of TW202022660A publication Critical patent/TW202022660A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

一種映像檔打包方法,用於一第一裝置中,該第一裝置包括一儲存裝置及一第一處理器。映像檔打包方法包含:藉由一第一裝置接收一核心映像檔;其中,一初始核心標頭位於該核心映像檔中;藉由一儲存裝置儲存一初始應用程式及核心映像檔;以及藉由一第一處理器執行一雜湊樹產生程式,雜湊樹產生程式執行以下步驟:計算出初始應用程式的一初始雜湊樹,取得一初始根節點,將該初始根節點嵌入初始核心標頭,以產生一更新核心標頭。

Description

映像檔打包方法及映像檔打包系統
本發明是關於一種打包檔案的機制,特別是關於一種映像檔打包方法及一種映像檔打包系統。
一般而言,在客戶端要求承包商實作系統軟體或韌體的情況下,承包商通常藉由系統軟體或韌體保護驗證的演算法將系統軟體或韌體加密或簽章,使得被保護的系統軟體或韌體在被使用平台的Linux核心運行時,達到讓根檔案系統記憶體區塊(flash partition)及客戶應用軟體存放區塊的完整性保護。
然而,通常客戶不會買斷承包商在核心內的開發或是移植套件的應用設計,因此,在必須達到客戶軟體區塊完整性的保護的情況下,在每次客戶發佈新版應用軟體時,Linux核心原始碼都必須重新編譯。由此可知,客戶在產品開發完成後,每次的軟體更新,都必須仰賴承包商的資源幫其重新編譯。此外,客戶的軟體經常性的作更新時,承包商要重新打包核心映像檔,在反覆更新與打包之間的維護成本高,若將核心映像檔中的原始碼給客人,又會產生商業機密外洩的問題,因為核心映像檔中的其他部分含有承包商的專有技術(Know-how)。
因此,如何將承包商的軟體開發及客戶的軟體更新完全切割開來,且同時讓映像檔具有安全性保護,以成為本領域需解決的問題之一。
根據本揭示文件的一實施方式提出一種映像檔打包方法,用於一第一裝置中,該第一裝置包括一儲存裝置及一第一處理器,映像檔打包方法包含:藉由一第一裝置接收一核心映像檔;其中,一初始核心標頭位於核心映像檔中;藉由一儲存裝置儲存一初始應用程式及核心映像檔;以及藉由一第一處理器執行一雜湊樹產生程式,雜湊樹產生程式執行以下步驟:計算出初始應用程式的一初始雜湊樹,取得一初始根節點,將該初始根節點嵌入初始核心標頭,以產生一更新核心標頭。
於一實施例中,初始核心標頭是由一第二裝置之一第二處理器所產生。
於一實施例中,藉由該第一處理器執行一簽章程式,該簽章程式將該核心映像檔及該更新核心標頭視為一完整映像檔,將此該完整映像檔進行簽章,以取得一簽章檔,並將該簽章檔嵌入至該完整映像檔。
於一實施例中,藉由該第一裝置取得或產生一新版應用程式,該第一處理器執行該雜湊樹產生程式,計算出該新版應用程式的一新版雜湊樹,將該新版雜湊樹的一新版根節點雜湊值取代該初始根節點,以產生該新版核心標頭。
於一實施例中,其中該第一處理器更用以執行一簽章程式,該簽章程式將該核心映像檔及該新版核心標頭視為一完整映像檔,將此該完整映像檔進行簽章,以取得一簽章檔,並將該簽章檔嵌入至該完整映像檔。
根據本揭示文件的另一實施方式提出一種映像檔打包系統,包含:一第一裝置。第一裝置用以接收一核心映像檔。其中,一初始核心標頭位於核心映像檔中。第一裝置包含一儲存裝置以及一第一處理器。儲存裝置用以儲存一初始應用程式及核心映像檔。第一處理器用以執行一雜湊樹產生程式,雜湊樹產生程式執行以下步驟:由儲存裝置讀取初始應用程式,計算出初始應用程式的一初始雜湊樹,取得一初始根節點,將該初始根節點嵌入初始核心標頭,以產生更新核心標頭。
本發明所示之映像檔打包方法及映像檔打包系統在客戶端的裝置欲更新應用程式時,可以自行運算出新版核心標頭,無須更動到由承包商所提供的核心映像檔,且新版核心標頭亦可用於後續的驗證流程,此外,亦可以藉由將完整映像檔進行簽章,以多重保護完整映像檔。因此,本發明的映像檔打包方法可在客戶端更新應用程式時,無須更動到承包商所提供的核心映像檔,避免承包商所需耗用重燒整個映像檔的時間,讓客戶端更能即時地產生各種完整映像檔,亦能提供驗證新版應用程式及保護完整映像檔的機制。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
於一實施例中,請參照第1~2圖,第1圖係依照本發明一實施例繪示映像檔打包系統之方塊圖。第2圖係依照本發明一實施例繪示一驗證雜湊樹之示意圖。映像檔打包系統包含一第一裝置100。於一實施例中,第一裝置100為客戶端裝置。於一實施例中,第一裝置100可以是一電腦、一平板、一手機或其他具有運算功能的電子裝置。第一裝置100用以接收一核心映像檔及一雜湊樹產生程式,且產生一更新核心標頭,其中更新核心標頭中包含一初始根節點。第一裝置100包含一儲存裝置10以及一第一處理器20。
於一實施例中,儲存裝置10可被實作為唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫或熟悉此技藝者可輕易思及具有相同功能之儲存媒體。儲存裝置10儲存一初始應用程式、核心映像檔、更新核心標頭及雜湊樹產生程式。
於一實施例中,初始應用程式中包含執行程式、函式庫、設置檔案、金鑰…等資訊,初始應用程式可能是一映像檔,其功能例如是車子的管理,車子娛樂及/或車子控制等等,可以透過產品中的處理器(例如為網路存取裝置,network access device(NAD))以執行之。然,此僅為一例子,本案不限於此。
於一實施例中,第一處理器20可以由體積電路如微控制單元(micro controller)、微處理器(microprocessor)、數位訊號處理器(digital signal processor)、特殊應用積體電路(application specific integrated circuit,ASIC)或一邏輯電路來實施。
於一實施例中,第一處理器20用以執行雜湊樹產生程式。第一處理器20載入雜湊樹產生程式後執行以下步驟:第一處理器20由儲存裝置10讀取初始應用程式,計算出初始應用程式的一初始雜湊樹取得初始雜湊樹的一初始根節點,將初始根節點嵌入初始核心標頭,以產生更新核心標頭。
舉例而言,如第2圖所示,第一處理器20由儲存裝置10讀取初始應用程式60,將其拆解為每4k位元組(byte)為一個資料區塊B01~B04,換言之,資料區塊B01~B04的每一者都為4k位元組,再針對資料區塊B01~B04的每一者作雜湊(Hash)運算,資料區塊B01經雜湊運算(Hash(B01))後得到雜湊值B11、資料區塊B02經雜湊運算(Hash(B02))後得到雜湊值B12、資料區塊B03經雜湊運算(Hash(B03))後得到雜湊值B13、資料區塊B04經雜湊運算(Hash(B04))後得到雜湊值B14,接著,將此些雜湊值B11、B12串接到4k位元組(byte)再作雜湊運算(Hash(B11ᴖ B12),其表示將雜湊值B11、雜湊值B12串接後經雜湊運算)後得到雜湊值B21,將此些雜湊值B13、B14作雜湊運算(Hash(B13 ᴖB14))後得到雜湊值B22,最後,將此些資料區塊B21、B22作雜湊運算(Hash(B21ᴖB22))後得到初始根節點root_hash。其中,雜湊運算的算法不限於此,例如亦可以將資料區塊B11與資料區塊B12相加後,再將其相加後的結果帶入雜湊函式(即,運算式表示為:Hash(B11+B12)),此處僅提供一些示例,本案關於應用雜湊運算的部分,並不限於此些例子。
藉此,第一處理器20可應用上述方法計算出初始應用程式60的一初始雜湊樹,並以相同方式取得初始雜湊樹的一初始根節點root_hash,將初始根節點root_hash嵌入初始核心標頭(如第3A圖中的初始核心標頭35),以產生一更新核心標頭40(如第3B圖中的更新核心標頭40)。
於一實施例中,如第2圖所示,經由一系列的雜湊運算,此初始根節點root_hash亦為32位元組,初始根節點root_hash相較於原始資料的所需儲存空間較小,因此在驗證時可大幅減少比對的資料量。此外,拆解資料區塊的大小可以依據系統實際設計實作調整,並不限於此。
請一併參照第3A~3C圖,第3A~3C圖係依照本發明一實施例繪示映像檔打包方法之示意圖。於一實施例中,如第3A圖所示,核心映像檔(kernel image)30是由一第二裝置中的處理器(後續稱之為第二處理器)所產生,其中第二裝置例如為核心原始碼承包商的伺服器、電腦、平板、手機或其他具有運算功能的電子裝置。
於一實施例中,核心映像檔30可以由各種電腦或各種電子裝置完成製作後,再放到伺服器或其他媒體提供給客戶端裝置(如第一裝置)。
於一實施例中,初始核心標頭35由第二處理器所產生。初始核心標頭35用以保有一些空間可用以定義數值或新增標頭資訊。
於一實施例中,核心映像檔30中包含初始核心標頭35,此初始核心標頭35包含一個空欄,用以於後續步驟中嵌入初始根節點root_hash。
於一實施例中,第二裝置一開始先將核心映像檔30、雜湊樹產生程式P1及簽章程式(如第3C圖的P2)傳送給第一裝置100。
於一實施例中,第一裝置100的儲存裝置10中事先存有雜湊樹產生程式P1及簽章程式(如第3C圖的P2)。
於一實施例中,第一裝置100的儲存裝置10中事先存有簽章程式(如第3C圖的P2),第二裝置將雜湊樹產生程式P1傳送到第一裝置100,第一裝置100再將雜湊樹產生程式P1儲存到儲存裝置10中。
如第3B圖所示,第一裝置100取得初始應用程式60之後,執行雜湊樹產生程式P1,以計算出初始根節點root_hash,並將初始根節點root_hash嵌入初始核心標頭35中,以產生更新核心標頭40。換言之,更新核心標頭40中包含初始根節點root_hash及初始核心標頭35的資訊。
其中,更新核心標頭40嵌入於核心映像檔30之前或後端。核心映像檔30與更新核心標頭40視為完整映像檔50。
於一實施例中,第一處理器20執行簽章程式P2,以取得簽章檔80嵌入完整映像檔50。其中,簽章檔80嵌入於完整映像檔50之前或後端。於一實施例中,如第3C圖所示,第一處理器(如第1圖中的第一處理器20)執行一簽章程式P2,簽章程式P2將核心映像檔30及更新核心標頭40視為一完整映像檔50,將此完整映像檔50進行簽章(例如採用已知的非對稱加密),以取得一簽章檔80,並將簽章檔80嵌入至完整映像檔50。因此,在驗證階段,第一處理器20(客戶端的處理器)或是第三處理器(產品上的處理器)亦可以在收到完整映像檔50時,解密此簽章檔80,若解密成功,則代表此完整映像檔50正常,若解密失敗,則代表此完整映像檔50可能被竄改。
於一實施例中,第一處理器20打包完整映像檔50、簽章檔80與初始應用程式60為一軟體,將此軟體燒入第三裝置(例如為一產品)中。於一實施例中,產品例如為行車記錄器、平板、手機或其他電子裝置。
於一實施例中,如第4圖所示,第4圖係依照本發明一實施例繪示驗證流程之示意圖。第三裝置的處理器(後稱第三處理器)執行開機程式P3時會進行驗證,例如採用產生簽章檔80的相同非對稱式加密方式,以判斷第三裝置上的簽章檔80是否能正確解密,若解密成功,則代表此完整映像檔50正常,若解密失敗,則代表此完整映像檔50可能被竄改,此外,第三處理器執行雜湊樹驗證程式(步驟與雜湊樹產生程式P1相同),依據初始應用程式60產生驗證雜湊樹70,取得驗證根節點,再將驗證根節點與更新核心標頭40中的初始根節點root_hash比對,以確認初始應用程式60是否正確,若兩者相同,則初始應用程式60正確,若兩者不同,則初始應用程式60不正確。
於一實施例中,第一裝置(例如第1圖中的第一裝置100為客戶端裝置)取得或產生一新版應用程式時,第一裝置100的第一處理器20執行雜湊樹產生程式P1,計算出新版應用程式的一新版雜湊樹,將新版雜湊樹的一新版根節點雜湊值取代初始根節點,以產生新版核心標頭。
由此可知,當客戶端欲更新應用程式時,可以自行用客戶端的第一裝置100中的第一處理器20執行雜湊樹產生程式P1,以運算出新版核心標頭,並把新版核心標頭加到核心映像檔30的前端或後端,此外,第一處理器20執行簽章程式P2,以將此核心映像檔30及新版核心標頭視為一新版映像檔,將此新版映像檔進行簽章,以取得一新版簽章檔,第一處理器20將新版簽章檔嵌入至新版映像檔的前端或後端,並將新版映像檔燒入產品中,即可在客戶端自行完成更新產品的映像檔,在此些過程中,無須更動到由承包商所提供的核心映像檔30。此外,新版核心標頭亦可用於後續的驗證流程,其驗證流程如第4圖及其對應段落所示,故此處不贅述之。
因此,本發明的映像檔打包方法可在客戶端更新應用程式時,無須更動到承包商所提供的核心映像檔30,大幅減低承包商所需將更新應用程式重新打包以完成整個映像檔的時間成本,此舉並讓客戶端更能即時地產生各種完整映像檔。
於一實施例中,當完整映像檔50及簽章檔80被產生後,可以燒錄到產品(例如行車紀錄器、平板、手機或其他電子裝置)上,產品上可驗證完整映像檔50中的核心映像檔30是否為正確映像檔。
於一實施例中,初始應用程式60可以是客戶端開發後,事先提供給承包商,承包商開發核心映像檔30、雜湊樹產生程式P1及簽章程式P2。接著,承包商只需要在第一次釋出軟體時,提供核心映像檔30、初始核心標頭35、雜湊樹產生程式P1及簽章程式P2給客戶端裝置(如第1圖所示之第一裝置100);在後續的過程中,第一裝置100產生完整映像檔50及簽章檔80,亦無須更動到由承包商所提供的核心映像檔30。此外,第三裝置(即產品)可應用上述方法判斷初始應用程式60是否被竄改及/或核心映像檔30是否為正確映像檔。再者,當第一裝置100欲更新應用程式時,第一處理器20可執行雜湊樹產生程式P1,以運算出新版核心標頭,並把新版核新標頭加到核心映像檔30後端或前端,且第一處理器20可執行簽章程式P2,將此核心映像檔30及新版核心標頭視為一新版映像檔,並將此新版映像檔進行簽章,以取得一新版簽章檔,第一處理器20再將新版簽章檔嵌入至新版映像檔的前或後端,並將新版映像檔燒入第三裝置中,即可在客戶端自行完成產品更新。
綜上,本發明所示之映像檔打包方法及映像檔打包系統在客戶端的裝置欲更新應用程式時,可以自行運算出新版核心標頭,無須更動到由承包商所提供的核心映像檔,且新版核心標頭亦可用於後續的驗證流程,此外,亦可以藉由將完整映像檔進行簽章,以多重保護完整映像檔。因此,本發明的映像檔打包方法可在客戶端更新應用程式時,無須更動到承包商所提供的核心映像檔,避免承包商所需耗用重打包整個映像檔的時間,讓客戶端更能即時地產生各種完整映像檔,亦能提供驗證新版應用程式及保護完整映像檔的機制。
100‧‧‧第一裝置 10‧‧‧儲存裝置 20‧‧‧第一處理器 root_hash‧‧‧驗證根節點 B01~B22‧‧‧資料區塊 30‧‧‧核心映像檔 40‧‧‧更新核心標頭 60‧‧‧初始應用程式 70‧‧‧驗證雜湊樹 80‧‧‧簽章檔 P1‧‧‧雜湊樹產生程式 50‧‧‧當完整映像檔 P2‧‧‧簽章程式 P3‧‧‧開機程式
第1圖係依照本發明一實施例繪示映像檔打包系統之方塊圖。 第2圖係依照本發明一實施例繪示一驗證雜湊樹之示意圖。 第3A~3C圖係依照本發明一實施例繪示映像檔打包方法之示意圖。 第4圖係依照本發明一實施例繪示驗證流程之示意圖。
100‧‧‧第一裝置
10‧‧‧儲存裝置
20‧‧‧第一處理器

Claims (10)

  1. 一種映像檔打包方法,用於一第一裝置中,該第一裝置包括一儲存裝置及一第一處理器,該映像檔打包方法包含: 藉由該第一裝置接收一核心映像檔;其中,一初始核心標頭位於該核心映像檔中; 藉由該儲存裝置儲存一初始應用程式及該核心映像檔;以及 藉由該第一處理器執行一雜湊樹產生程式,該雜湊樹產生程式執行以下步驟: 計算出該初始應用程式的一初始雜湊樹,取得一初始根節點,將該初始根節點嵌入該初始核心標頭,以產生一更新核心標頭。
  2. 如申請專利範圍第1項所述之映像檔打包方法,其中,該初始核心標頭是由一第二裝置之一第二處理器所產生。
  3. 如申請專利範圍第1項所述之映像檔打包方法,更包含: 藉由該第一處理器執行一簽章程式,該簽章程式將該核心映像檔及該更新核心標頭視為一完整映像檔,將此該完整映像檔進行簽章,以取得一簽章檔,並將該簽章檔嵌入至該完整映像檔。
  4. 如申請專利範圍第1項所述之映像檔打包方法,更包含: 藉由該第一裝置取得或產生一新版應用程式,該第一處理器執行該雜湊樹產生程式,計算出該新版應用程式的一新版雜湊樹,將該新版雜湊樹的一新版根節點雜湊值取代該初始根節點,以產生該新版核心標頭。
  5. 如申請專利範圍第4項所述之映像檔打包方法,其中該第一處理器更用以執行一簽章程式,該簽章程式將該核心映像檔及該新版核心標頭視為一完整映像檔,將此該完整映像檔進行簽章,以取得一簽章檔,並將該簽章檔嵌入至該完整映像檔。
  6. 一種映像檔打包系統,包含: 一第一裝置,用以接收一核心映像檔;其中,一初始核心標頭位於該核心映像檔中;該第一裝置包含: 一儲存裝置,用以儲存一初始應用程式及該核心映像檔;以及 一第一處理器,用以執行一雜湊樹產生程式,該雜湊樹產生程式執行以下步驟: 計算出該初始應用程式的一初始雜湊樹,取得一初始根節點,將該初始根節點嵌入該初始核心標頭,以產生一更新核心標頭。
  7. 如申請專利範圍第6項所述之映像檔打包系統,其中,該初始核心標頭是由一第二裝置之一第二處理器所產生。
  8. 如申請專利範圍第6項所述之映像檔打包系統,其中該第一處理器更用以執行一簽章程式,該簽章程式將該核心映像檔及該更新核心標頭視為一完整映像檔,將此該完整映像檔進行簽章,以取得一簽章檔,並將該簽章檔嵌入至該完整映像檔。
  9. 如申請專利範圍第6項所述之映像檔打包系統,其中該第一裝置更用以取得或產生一新版應用程式,該第一處理器執行該雜湊樹產生程式,計算出該新版應用程式的一新版雜湊樹,將該新版雜湊樹的一新版根節點雜湊值取代該初始根節點,以產生該新版核心標頭。
  10. 如申請專利範圍第9項所述之映像檔打包系統,其中該第一處理器更用以執行一簽章程式,該簽章程式將該核心映像檔及該新版核心標頭視為一完整映像檔,將此該完整映像檔進行簽章,以取得一簽章檔,並將該簽章檔嵌入至該完整映像檔。
TW107143858A 2018-12-06 2018-12-06 映像檔打包方法及映像檔打包系統 TWI682296B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107143858A TWI682296B (zh) 2018-12-06 2018-12-06 映像檔打包方法及映像檔打包系統
US16/573,361 US20200183675A1 (en) 2018-12-06 2019-09-17 Image file packaging method and image file packaging system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107143858A TWI682296B (zh) 2018-12-06 2018-12-06 映像檔打包方法及映像檔打包系統

Publications (2)

Publication Number Publication Date
TWI682296B true TWI682296B (zh) 2020-01-11
TW202022660A TW202022660A (zh) 2020-06-16

Family

ID=69942458

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107143858A TWI682296B (zh) 2018-12-06 2018-12-06 映像檔打包方法及映像檔打包系統

Country Status (2)

Country Link
US (1) US20200183675A1 (zh)
TW (1) TWI682296B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI760752B (zh) * 2020-05-20 2022-04-11 瑞昱半導體股份有限公司 應用加速驗證映像檔方法的系統

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103503424A (zh) * 2010-12-20 2014-01-08 思杰系统有限公司 用于实现多核系统中的连接镜像的系统和方法
CN103530150A (zh) * 2013-10-10 2014-01-22 上海爱数软件有限公司 一种Linux操作系统远程更新的方法
EP2372520B1 (en) * 2006-05-03 2014-03-19 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
TW201504842A (zh) * 2013-07-17 2015-02-01 Ind Tech Res Inst 應用程式管理方法、應用程式管理系統與使用者裝置
TW201814511A (zh) * 2016-09-15 2018-04-16 美商納茲控股有限責任公司 加密使用者資料傳輸及儲存(nuts)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2372520B1 (en) * 2006-05-03 2014-03-19 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
CN103503424A (zh) * 2010-12-20 2014-01-08 思杰系统有限公司 用于实现多核系统中的连接镜像的系统和方法
TW201504842A (zh) * 2013-07-17 2015-02-01 Ind Tech Res Inst 應用程式管理方法、應用程式管理系統與使用者裝置
CN103530150A (zh) * 2013-10-10 2014-01-22 上海爱数软件有限公司 一种Linux操作系统远程更新的方法
TW201814511A (zh) * 2016-09-15 2018-04-16 美商納茲控股有限責任公司 加密使用者資料傳輸及儲存(nuts)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Merkle Tree(默克爾樹)演算法解析",網址:https://ifun01.com/8NAZIFK.html *
"Merkle Tree(默克爾樹)演算法解析",網址:https://ifun01.com/8NAZIFK.html。

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI760752B (zh) * 2020-05-20 2022-04-11 瑞昱半導體股份有限公司 應用加速驗證映像檔方法的系統

Also Published As

Publication number Publication date
US20200183675A1 (en) 2020-06-11
TW202022660A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
RU2363044C2 (ru) Компактная идентификация аппаратных средств для привязки пакета программного обеспечения к компьютерной системе, имеющей допуск на изменения аппаратных средств
US10586026B2 (en) Simple obfuscation of text data in binary files
JP5904505B2 (ja) 仮想ディスクを暗号化及び復号するためのコンピュータ可読ストレージ媒体
JP5740573B2 (ja) 情報処理装置および情報処理方法
US20190114401A1 (en) On device structure layout randomization for binary code to enhance security through increased entropy
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
CN104318155A (zh) 一种防逆向apk文件的动态加载方法
CN104866739A (zh) 安卓系统中应用程序加密方法及系统
EP3552093B1 (en) Application piracy prevention with secure enclave protection of automatically modularized functions
CN104408337A (zh) 一种apk文件防逆向的加固方法
JP2011170847A (ja) ソフトウェアのインテグリティを実行中に確かめる方法及び装置、並びにこのようなソフトウェアを生成する装置
JP6392446B2 (ja) クラウドベースのアプリケーションセキュリティサービスの提供方法及びシステム
CN111008034B (zh) 一种补丁生成方法及装置
CN103765429A (zh) 数字签名机构相关的平台秘密
JP5466645B2 (ja) 記憶装置、情報処理装置およびプログラム
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
US20060259903A1 (en) Method for creating unique identification for copies of executable code and management thereof
WO2021114902A1 (zh) 程序初始化方法、程序初始化装置、终端设备及存储介质
US20060259900A1 (en) Method for creating unique identification for copies of executable code and management thereof
TWI682296B (zh) 映像檔打包方法及映像檔打包系統
CN116235174A (zh) 用于执行加密算法的设备和方法
US10796004B1 (en) Split boot for computing devices with secure and insecure states
KR20200017120A (ko) 코스 스프레잉을 이용한 코드 보호 방법 및 시스템
KR100772881B1 (ko) 자기 수정 코드의 무결성 검증 장치 및 방법
CN111338664A (zh) 映像文件打包方法及映像文件打包系统