TW487839B - A method of providing secure linkage of program modules - Google Patents

A method of providing secure linkage of program modules Download PDF

Info

Publication number
TW487839B
TW487839B TW89123279A TW89123279A TW487839B TW 487839 B TW487839 B TW 487839B TW 89123279 A TW89123279 A TW 89123279A TW 89123279 A TW89123279 A TW 89123279A TW 487839 B TW487839 B TW 487839B
Authority
TW
Taiwan
Prior art keywords
program module
address
program
scope
file
Prior art date
Application number
TW89123279A
Other languages
Chinese (zh)
Inventor
Lewis V Rothrock
Richard L Maliszewski
Carlos V Rozas
Lihui C Tung
Kumar Ranganathan
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW487839B publication Critical patent/TW487839B/en

Links

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

Secure linkage of first and second program modules so that they may authenticate each other and provide security for digital content accessed by one or more of the modules. The method includes storing at least one address of at least one function of the first program module in a file, calling the second program module by the first program module and passing the file to the second program module, verifying integrity by the second program module of the first program module, and calling, by the second program module, a selected function of the first program module using an address obtained from the file when integrity of the first program module is verified. In one embodiment, the first program module may be a digital content player application and the second program module may be an integrity verification kernel for verifying the integrity of the player application. The file may be a signed binary description file including addresses of functions in the first program module.

Description

487839 五、發明說明(1) 發明背景 1. 範疇 本發明一般而言係關於在電腦及消費電子系統中數位内 容的保護,更特定而言,係關於在程式模組之間的保護鏈 接。 2. 說明 個人電腦(PC )平台為一開放式可存取的電腦架構。但 是,該PC的開放性係指其基本上為一不安全的計算平台。 硬體及軟體皆可被存取來觀視及修正。此開放性允許心懷 惡意的使用者及程式來觀察及修改執行碼,其可能藉由軟 體工具的協助,例如除錯器及系統债錯工具。雖有這些風船 險,在此基本上不安全的PC平台上必須安全地執行不同類 別的運作,此即為那些應用程式所必須假設的基本運作完 整性,或至少經過驗證而成為可靠。這種運作的範例包含 財務交易’其它電子交易,未受注意的存取認證,及數位 内容管理。 對於内容提供者而言,要對抗PC上數位侵害的威脅,需 要新的軟體來抵抗一心懷惡意的使用者的攻擊。在此策略 中’該心懷惡意的使用者會想要擅改,或是取代該軟體的 特定元件來取得未經授權的存取到數位内容,或是進行未 經授權的複製。一種基於加密方法而用於配合該軟體的加你 密系統,可以用來協助保護該内容擁有者的權利。内容可 經過加密來提供某種程度的保護,但是該軟體在播放期間 存取經解密的内容,仍容易遭受到攻擊。487839 V. Description of the invention (1) Background of the invention 1. Scope The present invention relates generally to the protection of digital content in computers and consumer electronic systems, and more specifically, to the protection link between program modules. 2. Description The personal computer (PC) platform is an open and accessible computer architecture. However, the openness of the PC means that it is basically an insecure computing platform. Both hardware and software can be accessed for viewing and modification. This openness allows malicious users and programs to observe and modify executable code, which may be assisted by software tools, such as debuggers and system debt tools. Despite these sailboat risks, different types of operations must be performed safely on this essentially insecure PC platform, which is the basic operational integrity that those applications must assume, or at least proven to be reliable. Examples of such operations include financial transactions' other electronic transactions, unattended access authentication, and digital content management. For content providers, to counter the threat of digital intrusion on PCs, new software is needed to resist attacks from malicious users. In this strategy, the malicious user will want to tamper with or replace specific components of the software to gain unauthorized access to digital content or make unauthorized copies. An encryption system based on an encryption method that works with the software to help protect the rights of the content owner. Content can be encrypted to provide some level of protection, but the software is still vulnerable to attacks that access decrypted content during playback.

第7頁 487839 五、發明說明(2) 一種已知的方法來保護這種 的兩個元件)。说方法包含檢杳 ,合播放不統 一個的傳回位址,並利用今你—式杈組函數呼叫另 的特徵。該安全鏈接方法二=證被呼叫與呼叫模組 擊,其中一攻擊者利死的。=大使”型的攻 取到一程式化介面。在此例由或ΐ擬的模組來取得存 取代了該授權的模組。“接;"虛擬用模組在執行時即 呼叫函數。該安全鏈接;叫函數及被 ::址或該被呼叫函數的位址,i 二函數的傳 =驗證該位…預設驗證通訊協定基且的合法 疋否一位址係在該認證模組的一簽認可係用於决定 ::2:: ΐ係以該位址來驗證經授權的::叫:份。更複 模組的内部程序。 存取控制來用於〜 級的安全性,仍有改盖认办 、又 έ係提供了一 e 數位内容竊取的之前-#。皇所需要的:1人體,並保待在 允許基本上是不安全β /、 要的疋一種方法, 難地被觀察或修改。 仃軚肢,使其 火 發明概述 u 雖然如上所述的安全鏈接,一般而言係提供了 ^ 487839 五、發明說明(3) 儲存該地一程式模組的至少一個函數的至少一個位址於一 檔案中,由該第一程式模組呼叫該第二程式模組,並傳送 該檔案到該第二程式模組,由該第一程式模組的該第二程 式模組來驗證其完整性,並由該第二程式模組呼叫該第一 程式模組的一選定的函數,其在當該第一程式模組的完整 性被驗證之後,即利用自該檔案所取得的一位址。 其亦說明並主張其它的具體實施例。 圖式簡單說明: 本發明的特徵及好處將可藉由以下本發明的詳細說明而 更加瞭解,其中: 圖1所示為根據本發明的一具體實施例的一安全鏈接系 統; 圖2所示為根據本發明的一具體實施例的安全鏈接處理 的流程圖;及 圖3所示為根據本發明的一具體實施例的一種能夠運作 為一安全鏈接系統的範例處理系統。 詳細說明 本發明的一具體實施例為一種透過一受保護的環境來重 新導向函數呼叫的方法,其可影響程式模組的安全鏈接。 此方法提供了兩個程式模組的安全鏈接,其可至少部份達 到,藉由包含特定編譯器組合碼到所呼叫的一模組的進入 點,來擷取該呼叫者的傳回位址,及該叫用的離開點,來 保證所使用的是適當的回傳位址。本發明的一具體實施例 利用一回呼方法來補充傳回位址的檢查,可另外保護程式Page 7 487839 V. Description of the invention (2) A known method to protect such two elements). The method includes checking the return address that is not integrated, and using the present-style function to call another feature. The second secure link method is to authenticate the call and the call module, and one of the attackers killed. = Ambassador "type of attack to a stylized interface. In this example, the authorized module is obtained by replacing or replacing the authorized module." Access; " The virtual module calls the function when it is executed. The secure link; called the function and the :: address or the address of the called function, the transfer of the two functions = verification of the bit ... the default verification protocol base and the legality of whether the address is in the authentication module The one-sign accreditation is used to determine :: 2 :: that is, the address used to verify authorized :: call: copies. Update the internal procedures of the module. Access control is used for ~ -level security, and there is still a change to cover it, and the system provides an e-digital content theft before-#. What the emperor needs: 1 human body, and staying in the permissive is basically unsafe β /, a method that is difficult to be observed or modified. The limbs make their fire invention outline u Although the security link mentioned above is generally provided ^ 487839 V. Description of the invention (3) Store at least one address of at least one function of a program module in the place In a file, the first program module calls the second program module and sends the file to the second program module. The second program module of the first program module verifies its integrity. , And the second program module calls a selected function of the first program module, which uses a bit address obtained from the file after the integrity of the first program module is verified. It also illustrates and claims other specific embodiments. Brief description of the drawings: The features and benefits of the present invention will be better understood through the following detailed description of the present invention, wherein: FIG. 1 shows a secure link system according to a specific embodiment of the present invention; FIG. 2 shows FIG. 3 is a flowchart of a secure link process according to a specific embodiment of the present invention; and FIG. 3 is an exemplary processing system capable of operating as a secure link system according to a specific embodiment of the present invention. DETAILED DESCRIPTION A specific embodiment of the present invention is a method for redirecting function calls through a protected environment, which can affect the secure link of a program module. This method provides a secure link to two program modules, which can be reached at least in part by retrieving the caller's return address by including a specific compiler combination code to the entry point of a module being called , And the exit point of the call, to ensure that the appropriate return address is used. A specific embodiment of the present invention uses a callback method to supplement the check of the return address, which can additionally protect the program.

487839 五、發明說明(4) 模組的呼叫。如此處所使用的,一程式模組可以是任何電 腦程式碼的可辨識部份,或在任何程式語言中任何的程式 指令的順序。一第一程式模組的回呼函數可以註冊於該模 組的資格性。由一第二程式模組的特許運作的結果,可利 用該第一模組的註冊回呼函數來傳回。傳回位址檢查可用 於決定是否要執行在一給定回呼函數中的所需要的運作。 本發明的具體實施例可使一攻擊者更難略過由該第二程式 模組所執行的第一程式模組驗證處理,而修改了該第二程 式模組的行為,其係為了叫用第一模組的服務來用於未經 授權的使用,或是以一外加的模組來取代一合法的第一程 式模組。 參考本發明的” 一具體實施例π或π某具體實施例π的規 格,其表示配合於本具體實施例說明的一特定的特徵,結 構或特色,其係包含於至少本發明的一具體實施例中。因 此,該語句”在一具體實施例中π的意思在整個規格中不同 的地方並不一定皆表示同樣的具體實施例。 圖1所示為根據本發明的一具體實施例之一安全鏈接系 統1 0。在此具體實施例中,本發明的觀念可用於安全地鏈 接一第一程式模組與一第二程式模組。一第一程式模組’ 即程式模組A 1 2,其使用一第二程式模組,稱之為一完整 性驗證核心(I VK ) 1 4,其用來驗證該第一程式模組的完整 性。本發明的具體實施例的運作是使其很困難地由其它的 程式模組(如一駭客的驗證該程式模組的程序)來取代該 I VK,或是觀察或修改該I VK的内部運作。更一般性而言,487839 V. Description of invention (4) Call of module. As used herein, a programming module can be an identifiable part of any computer code, or the order of any programming instruction in any programming language. A callback function of a first program module can be registered in the qualification of the module. The result of the franchise operation of a second program module can be returned using the registration callback function of the first module. The return address check can be used to decide whether to perform the required operations in a given callback function. The specific embodiment of the present invention can make it more difficult for an attacker to skip the first program module verification process performed by the second program module, and modify the behavior of the second program module, which is for invocation The services of the first module are used for unauthorized use, or an additional module is used to replace a legitimate first program module. Refer to the specification of a specific embodiment π or a specific embodiment π of the present invention, which represents a specific feature, structure or characteristic described in conjunction with this specific embodiment, which is included in at least one specific implementation of the present invention Therefore, the phrase "in a specific embodiment" does not necessarily mean the same specific embodiment in different places throughout the specification. FIG. 1 shows a secure link system 10 according to a specific embodiment of the present invention. In this embodiment, the concept of the present invention can be used to securely link a first program module and a second program module. A first program module 'is program module A 1 2 which uses a second program module and is called an integrity verification core (I VK) 1 4 which is used to verify the first program module. Completeness. The operation of the specific embodiment of the present invention makes it very difficult to replace the I VK by other program modules (such as a hacker's verification of the program module), or to observe or modify the internal operation of the I VK . More generally,

第10頁 / 玉、發明說明⑸ 這兩個要由本發呈啤 以包含任何的軟體元;m:;全鏈接的程式模組可 做成侵入防護, 肢K施例中,I VK 14可以Page 10 / Description of the invention ⑸ These two are to be presented by the present to contain any software element; m :; Fully linked program modules can be used for intrusion protection. In the case of limb K, I VK 14 can

者的侵入,觀察其執彳^ 自己來防範一心懷惡意的使用 利用侵入防護的技術;協二或其與程式模組A間的互動。 的運作環境。 來&供一經保護的程式模組A 侵入防護軟體為一種敕卿 ^ 某種範圍之内是可以作=奴,其可防護觀察及修改。其在 <運作。侵入防護軟體俜:::使是有惡意的攻擊之下也 憶體中。因此,侵入防罐^地配置,並不需要存在於記 址空間或處理哭來執行又上體亚不需要在其產生的相同位 藉由一侵入防護編嘩哭去具體實施例中,這種軟體係 器是當其應用到一預^不出)來產生。該侵入防護編譯 文字原始碼編譯器所產生軟體模組時’用以取代平述 像。此自我解密的軟體=像,而產生一種較模糊的映 之後,並沒有改變該映^ ^其由該侵入防護編譯器編譯 執行。該侵入防護編,;^何部份之下,才能夠正確地 一”隱藏"•行模式下執;; = :;#軟體㈤方式來^具有在 解該軟體實際的運作,戋θ :力的軟體核心。:嘗試要破 ^ ^ ^ ^ 次疋要修改此軟體,皆會造成該核 心=王地失效(即其無法適當地解穷)。 红式模組A ;1 2也可與一整合驗證核心(t VK ) i 4相關。— IVK為一種驗證在記憶體中程式映像的,,指紋”(例如程式模 組A ),來對應於一提供的數位簽章的資料。此程序認證該 程式映像(例如程式模組A)’其可提供一種堅強的機制來Observe the intruder's intrusion, and prevent himself from malicious use. Use intrusion prevention technology; Xie Er or its interaction with program module A. Operating environment. Come & For a protected program module A The intrusion prevention software is a kind of 敕 ^ It can be used as a slave within a certain range, which can be protected for observation and modification. It works on <. Intrusion prevention software 俜 :: Even if it is a malicious attack, it will be remembered. Therefore, the intrusion prevention tank configuration does not need to exist in the address space or handle the cry to perform, and the upper body does not need to cry in the same place where it was generated by an intrusion prevention editor. In this specific embodiment, The soft architecture is generated when it is applied to an unpredictable one. The intrusion prevention compiles a software module generated by a text source code compiler 'to replace a plain image. This self-decrypting software = image, and after generating a fuzzy map, it does not change the map ^ ^ It is compiled and executed by the intrusion prevention compiler. The intrusion prevention code is only able to correctly perform a "hidden" under the "run mode"; = :; #software mode to ^ have the actual operation of the software, 戋 θ: Power software core .: Try to break ^ ^ ^ ^ times. Modifying this software will cause the core = King Land to fail (that is, it cannot properly solve poverty). Red module A; 1 2 can also be used with An integrated verification core (t VK) i 4 is related. — IVK is a kind of fingerprint verification (for example, program module A) that verifies the program image in the memory, corresponding to the data provided by a digital signature. This process authenticates the program image (such as program module A) ’which provides a strong mechanism to

4S7839 五、發明說明(6) " 一"' '一' --- 偵測對於執行軟體的改變,其中那些改變可能是由傳輸錯 誤或對軟體的惡意攻擊所產生。對軟體的任何未經授權 的=變會使得驗證的過程失敗。如果驗證過程失敗的話, ^匕相關於程式模組A的處理即會被禁止執行。舉例而 "如果紅式杈組A為一數位内容播放應用程式的一部 Ϊ如ί Ϊ ί Ϊ由所包含的1VK來偵測,然後該播放應用程 ^ΐ脚亚播放内容。用於侵入防護軟體的1 VK s係 /、斤山a二1 ^碼的自我檢查,合作模組的雙邊認證,及 2 μτΓλ端έ貝料的檢查,用於驗證一軟體模組的完整 .y y +我t正,自我解密,並須是獨立安裝的。 其所建立的是當。二要f個士内處理軟體模組來彼此通訊’ 由驗證該被叫用模J二U用-預定的”根"鍵來藉 執行者。此處理即;早’以便確定其的確是所要 施例中,IVK 14可 為雙邊的認證。在本發明的具體實 氽叮田於批σ以用來驗證程式模組A 1 2的完整性。該 I VK也可用於執行扃如二、w 模組B 16之間的餡邊/換組A 12及其它程式元件如程式 09/109,472中所;3證,例如在美國專利申請編號 軟體模組安全d:其名為”完整性驗證,認證,及 的受讓人。產生法與裝置”’其係與本發明有相同 的—敦性給峨嗥X 防護模組及提供具有IVKS及雙邊認證 的完整性驗證處理的士、丨 卜 5,892,899中’其名\=細節,Λ見於美國專利 利編號08/924, 740中為名t入防護方法及裝置",及申請專 與本發明有相同的侵入防護方法及裝置”’兩者皆4S7839 V. Description of Invention (6) " 一 " '' 一 '--- Detecting changes to the execution software, where those changes may be caused by transmission errors or malicious attacks on the software. Any unauthorized changes to the software will cause the verification process to fail. If the verification process fails, the processing related to program module A will be prohibited. For example, " If the red-style group A is a part of a digital content playback application Ϊ 如 ί Ϊ ί Ϊ is detected by the included 1VK, then the playback application will play the content. Self-inspection of 1 VK s series / Jinshan a 2 1 ^ code for intrusion prevention software, bilateral authentication of cooperative modules, and inspection of 2 μτΓλ end-shell materials, used to verify the integrity of a software module. yy + i t positive, self-decrypting, and must be installed independently. What it builds is Dang. The second is to have the internal processing software modules communicate with each other 'to verify that the called user uses the -predetermined "root" key to borrow the executor. This processing is early; so as to determine that it is indeed what is required In the embodiment, the IVK 14 may be a bilateral authentication. In the specific implementation of the present invention, Ding Tian is approved to verify the integrity of the program module A 1 2. The I VK can also be used to perform two or w Stuffing / changing group A 12 between modules B 16 and other program components are as described in program 09 / 109,472; 3 certificates, such as in the US patent application number software module security d: its name is "Integrity Verification, Certification , And the assignee. "Generation method and device" "It is the same as the present invention-to Emei X protection module and to provide integrity verification processing taxis with IVKS and bilateral certification," its name \ = details in 5,892,899, Seen in U.S. Patent No. 08 / 924,740 for a method and device for protecting against entry, and an application for the same method and device for intrusion protection as the present invention "'both

第12頁 五、發明說明(7) 根:本發明的具體實施例,程式模組a i2包含—個或多 個回呼函#丈’其標示為回呼函數1 18,回呼函數2 2 0 , η回,乎甘函數N 等’如圖1所示。如此處所使用的-回呼 凸 ,、為在耘式模組Α之中的軟體的一份, 它的程式模組來叫用,么丨Λ τ ντ/ ,、 ^ ^ 勃彳干浐Λ ΛΛ用例如1 VK 1 4。一回呼函數可以協助 式換組A的驗證運作…回呼函數是以在程式模組八 ",回呼位址開始。每個回呼函數可以對應於一特別的 私式驗證或是此處稱之為一”里程碑,,的特定區段。 ”至少:具體實施例中,至少有三個里程碑。—個 =要也耘式模組A並未被侵入。另一個里程碑是驗證 目=亚j有由執行程式模組A的電腦系統所執行的程式除 ‘ ^ 1種除錯器可被惡意使用者利用來干擾、觀察或修 =程式模組A的執行。另一個里程碑是要驗證關於該程式/ 旲組八及I VK組合的一簽章的二元值描述檔案(BDF) 24,是 否已經由一可信任的實體產生。 簽^章過的BDF 24為一個檔案,其至少部份包含程式模組 A的鲨性的一元值描述。該簽章過的B D F可以儲存在任何 可由程式模組A及IVK可以存取到的地方。在一具體實施例 中,該BDF包含識別資訊26,關連於該檔案與程式模組a 1 2及I V K 1 4,一個或多個對應於回呼函數丨8,2 0及2 2的回 呼位址(在圖1中標示為回呼位址1 2 8,回呼位址2 3 〇, ^ ·,回呼位址N 32),及一數位簽章34。該簽章過的bdf 可由分早工具3 6產生’其係由程式模組A接受有關該回 呼函數的資訊,及來自程式模組A及丨νκ的識別資訊,並簽Page 12 V. Description of the invention (7) Root: In the specific embodiment of the present invention, the program module a i2 includes one or more callback functions # '′, which are labeled as callback functions 1 18, callback functions 2 2 0, η back, Hugan function N, etc. 'are shown in Figure 1. As used here-callback convex, is a part of the software in the cloud module A, its program module is called, 丨 Λ τ ντ / ,, ^ ^ 博 彳 乾 浐 Λ ΛΛ Use for example 1 VK 1 4. A callback function can assist the verification operation of group A ... The callback function starts with the callback address in program module eight. Each callback function may correspond to a special private verification or a specific section referred to herein as a "milestone." At least: In a specific embodiment, there are at least three milestones. —A = Yaoyun Module A has not been hacked. Another milestone is to verify that the program is executed by the computer system running program module A. ^ 1 type of debugger can be used by malicious users to interfere, observe or repair the program module A . Another milestone is to verify that a signed binary value description file (BDF) 24 of the program / 旲 group eight and I VK combination has been generated by a trusted entity. The signed BDF 24 is a file, which at least partially contains the unary description of the sharkness of the program module A. The signed B D F can be stored anywhere that can be accessed by program modules A and IVK. In a specific embodiment, the BDF includes identification information 26 related to the file and the program modules a 1 2 and IVK 1 4 and one or more callbacks corresponding to the callback functions 丨 8, 20, and 22 Address (labeled as callback address 1 2 8, callback address 2 3 0, ^ ·, callback address N 32 in Figure 1), and a digital signature 34. The signed bdf can be generated by the early morning tool 36, which is received by the program module A about the callback function and the identification information from the program modules A and 丨 νκ.

第13頁 /^39 五、發明說明(8) 早該檔案。適用於此目的之簽章工具可見於美國專利申請 編號0 9 / 1 0 9, 472中’其名為"完整性驗證’認證,及軟體 ί莫組安全鏈接的方法與裝置",其係與本發明有相同的受 =人。在一具體實施例中,程式模組Α的—亂數值可以做 為該識別資訊的一部份來計算出來,並與該回呼位址 ^ ^B〇DF中。此資訊可利用一非對稱鍵對的私有的半部來卞 —藉由利用在該簽章的BDF中的加密回呼位址, 各來說就很難來以一惡意模組來取代丨ν K,每 ”Λ 對於一給定的回呼函數而t1卵錐釦、#干貝上仏由於 址。 J u于w歎向D其很難知遏需要叫用那個位 程式模 送該相關 對於一駭 址係儲存 該加密數 實施例所 接下的一 置。此架 完整性檢 好處。再 易被一惡 推翻程式 該驗證 組A叫用該IVK來,哎你、,一 」凡* 性,祐 =簽章BDF到該IVK。因為該IVK為侵入防謨的 j而言,很難觀察或修改mvK β ς呼: 章後的BDF’其不能在使得儲存於= 使;:失效之Τ,而被改變。根據本發明的且-使用的回呼位址,係藉由提供在該模組二姐 ::接I級,來加入額外的安全性至,丨此槿組:王鏈 :結合了程式模組Α的好處的呈;V :配 所以-使用者可執行該整合檢杳由=行的 f ’該IVK因為該加密的回呼位址厂:到此- 广模組所取代。因此,其更加地 來、不容 杈組A與I VK之間的鏈接。 雖水刀離或 運作可被區分為—個或多個里程碑。t每個里裎Page 13 / ^ 39 V. Description of the invention (8) The file is already available. A signature tool suitable for this purpose can be found in the US Patent Application No. 0 9/1 0 9, 472 'its name " integrity verification' certification, and the method and device for secure linking of software ", which It has the same recipients as the present invention. In a specific embodiment, the random value of the program module A can be calculated as a part of the identification information, and is calculated with the callback address ^ ^ BODF. This information can be exploited with the private half of an asymmetric key pair—by using the encrypted callback address in the signed BDF, it is difficult to replace a malicious module with a malicious module. K, each "Λ for a given callback function, t1 egg cone buckle, #squeegee on the address. Ju sighed to D, it is difficult to know which need to use the bit pattern to send the correlation to a The hacker is the one that stores the encrypted number. The integrity check benefit of this rack. It is easy to be overthrown by a malicious program. The verification group A calls the IVK. You = sign the BDF to the IVK. Because this IVK is a j that invades Mozilla, it is difficult to observe or modify the mvK β ς: The BDF after the chapter cannot be stored so that it is invalidated and changed. According to the present invention and the -used callback address, additional security is added by providing the second sister of the module ::: level I, this hibiscus group: Wang chain: combined with the program module The benefits of Α are presented; V: Equipped-the user can perform the integration check by the line 'f' the IVK because of the encrypted callback address factory: here-replaced by the wide module. Therefore, it is even more tolerant of the link between Group A and I VK. Although waterjet separation or operation can be divided into one or more milestones. t every mile

487839 五、發明說明(9) 碑皆成功地完成之後,關於該里程 該簽章的BDF來取得,重辦配置,、、:、、回σ乎位址可以由 為一合法的位址。如果該 並在私式模組Α中被驗證 呼函數即可被叫用,或是執行。士句6凌的,該相關的回 程式模組A所提供服務所霉要丁的亥此回呼函數執行了 一些由 放數位内容),並在失敗的情況;=關,工作(例如像是播 具體實施例中,並不會傳回錯誤回·▲錯誤指示。在一 地停止執行。在此方式下,即需 Τ μ 4 ^式模組即簡單 地進行該模組的關鍵函數 &也&式模組Α來成功 很難跳過該σ乎叫而到達該I ^ κ。 、 攻4者而言’其 在IVK中對應於該回呼函 叫函數1 19,呼叫函數2 21 , 程碑呼叫函數(標示為呼 定義來提供程式模組A的安全鏈接:叫函數N 23),可以 服務。里程碑呼叫函數包八在 也,及提供關鍵程式 實施驗證的動作。這些里程 ^ 1 VK、中的軟體部份,用於 在IVK建立時達到侵入的防%。叫函數可被模糊化來使其 呼叫在程式模組A中的相關:呼::里程碑呼叫函數皆可 圖2所示為根據本發明的一呈二奋。 的一流程圖。在方塊丨〇 〇中,二:灵轭例中安全鏈接處理 程式模組A 12的執行。在方嫂系統(0S)載入並開始 章過的二元值說明檔案(BDF) ,程式模組A傳送該簽< 之前驗證該模組的完整性。 μ 1 4,來在繼續處理487839 V. Description of the invention (9) After the monument has been successfully completed, the signed BDF for the mileage will be obtained, and the configuration will be reset. The address can be set to a legal address. If the and are verified in the private module A, the call function can be called or executed. In the case of Juju 6 Ling, the callback function of the service provided by the relevant callback module A performs some digital content), and in the case of failure; = Off, work (for example, like In the specific embodiment of broadcasting, no error response will be returned. ▲ Error indication. Execution is stopped in one place. In this mode, a T μ 4 ^ type module is needed to simply perform the key function of the module & It is also very difficult for the & type module A to successfully skip the σ call and reach the I ^ κ. For the attacker 4, its corresponding to the callback function in IVK is called function 1 19 and function 2 21 , Cheng Bei call function (labeled as call definition to provide a secure link to program module A: called function N 23), can serve. Milestone call function package eight in the same, and provide key programs to perform verification actions. These miles ^ 1 The software part of VK, is used to achieve the intrusion prevention% when the IVK is established. The calling function can be obfuscated to make the call in the program module A related: call :: milestone call function can be shown in Figure 2 A flowchart is shown in accordance with the present invention. In 丨 〇〇, 2: The execution of the secure link processing program module A 12 in the example of the spiritual yoke. The binary value description file (BDF) is loaded and started in the square system (0S), and program module A sends The sign < verified the integrity of the module before. Μ 1 4 to continue processing

時,以該簽章的BDF做為一於/ //呈式模組Α在叫用該1VK 中,該IVK藉由該簽章BDF ::數。接著,在方塊104 人執仃程式模組A的驗證,至少 487839 五、發明說明(10) 要針對一個里程碑。舉例而言,一 合,該程式模組必定已遭侵入…果:亥數值亚不吻 106中並不成功,該IVK即停止程式模組H驗^在方塊 ,方塊m中傳回—失敗表示到程式模m,並 處理。 被危及,亚要放棄,而不執行任何其Λ 如果目前的里程碑驗證在方塊〗06中 處理即持續到方塊no。在此方塊令,該IVKWu驗證 獲得關於目前里程碑的回呼位址,重新配置它f =BDF 回:,址是在程式模㈣當,,並利用該回=登該 :運作。也就是說,該IVK所叫用的函數位址,于 :目w的回呼位址來定址。在一具體實广 在该IVK中的一里程碑呼叫函數(如呼叫函數1工 二 用,私式杈組A中的一回呼函數。該回呼函數的進行1 4 執行一些對程式模組A有用的函數。一般而言,此=二 以是程式模組A運作的成功關鍵。舉例而言,此可包八: 位内谷的一部份解密。當該回呼函數結束時,其即 制權到在I VK中叫用它的該呼叫函數。如果所有的里、程σ 在方塊112中並未完成,該IVK即在方塊104檢查下里 程碑。如果所有的里程碑在方塊1 1 2中完成的話,^ U即在 方塊11 4中完成程式模組a的驗證,並傳回一成功驗證的扑 不到程式模組A。在此時,控制權即可傳送回到程式曰 A,而進行後續的處理。 、、、且At the time, the BDF of the signature is used as a // // presentation module A. In calling the 1VK, the IVK uses the signature BDF :: number. Then, at block 104, perform the verification of program module A, at least 487839. V. Invention description (10) is aimed at a milestone. For example, in one, the program module must have been invaded ... If: the numerical value is not successful in the Asian kiss 106, the IVK stops the program module H and returns ^ in the box, box m-failure indication Go to program mode m and process. Being compromised, Asia will give up without performing any of its Λs. If the current milestone verification is processed in block 06, it will continue to block no. In this box, the IVKWu verification obtains the callback address for the current milestone, reconfigures it to f = BDF return :, the address is in the program mode, and uses the return = register the: operation. That is, the function address used by the IVK is located at the callback address of: w. A milestone call function in the IVK (such as the call function 1 for dual use, a callback function in the private branch group A. The callback function is performed 1 4 to perform some program module A Useful functions. In general, this = 2 is the key to the success of program module A. For example, this can include eight: a part of the inner valley is decrypted. When the callback function ends, it is Control to call this calling function in I VK. If all miles and distances σ are not completed in block 112, the IVK checks the milestones in block 104. If all milestones are in block 1 1 2 When completed, ^ U completes the verification of program module a in block 11 4 and returns a successful verification of program module A. At this time, control can be returned to program A, and Perform subsequent processing.

第16頁 487839 五、發明說明(11) 本發明包含一通用的機制,用 :的侵入防護碼或在平述文字碼,;鏈接侵入防護码及其它 |其它未經授權的存取。在本發明2此方法來區別出侵入或 1包含前述技術中不同的選擇[舉$不同具體實施例中,可 除了 I V κ之外,可以應用到其它的Η而言’該安全鏈接處理 地檢查來提供程式模組Α在執行中镇組。里程碑可以重複 侵入防護除了可利用軟體實施,〜持續的自我檢查。該 (本發明的另一具體實施例可另〜可在硬體中實施。 ^ 例外處理器的内容來 控制權,而對一攻擊者而言,其1 V K在失敗片 回呼。因此,該攻擊者僅能觀察更難去偵測該失敗纪 但不能夠決定出為什麼其不工作忒程式模級並未工作, 在其它的具體實施例中,可以舍^ 化。顧客化的里程碑呼叫函數可二虼安全鏈接的額外變 隨意的參數數目。該顧客化的里3用相關的呼叫函數及一 會是侵入防護螞。傳入到一顧客=碑呼叫函數其本身可能 位址可以做為一指標,指到—資里裎碑呼叫函數的回呼 、料儲存區 〈該回呼位址,及在其由IVK使用^由在該簽章BDF中加密 強其安全性。該加密密碼可以被隱财才解密的方式,來加 由IVK來取用。如果該回呼位址 '藏起來,而在需要時才 日π,當έ亥回呼位址被呼叫或參考至,句乎函數已經被侵入 示。在另一具體實施例中,該回^時,即會產生一錯誤指 前,才進行加密及解密。為了加“函數可以在剛要使用之 呼叫函數可以利用在該IVK之中Λ韻外的保護,一里程碑 阻止非法的運作。依此方式,該丨〜例外上 控制權,而對一攻擊者而言,其在失敗狀況中仍維持 回呼。因此,垓攻擊者僅能觀察糾f更難去偵測該失敗的 或是在一資料Page 16 487839 V. Description of the invention (11) The present invention includes a general mechanism, using: an intrusion prevention code or plain text code, a link intrusion prevention code and other | other unauthorized access. In the present invention 2 this method to distinguish the intrusion or 1 contains different options in the aforementioned technology [for example, in different specific embodiments, it can be applied to other than the IV κ, for example, the security link processing check To provide the program module A during the execution of the town group. Milestones can be repeated In addition to intrusion prevention, which can be implemented using software, ~ continuous self-inspection. This (another specific embodiment of the present invention can be implemented in hardware. ^ Exceptions to the content of the processor to control, and for an attacker, its 1 VK callback on a failed piece. Therefore, this An attacker can only observe that it is more difficult to detect the failure period but cannot determine why it is not working. The program mode is not working. In other specific embodiments, it can be rounded down. The customized milestone call function can be Second, the number of additional random parameters of the security link. The customized call function is related to the intrusion protection function. Incoming to a customer = the call function of the tablet can itself be used as an indicator. , Refers to the call-back, material storage area of the call-to-call function of Zili, the call-back address, and its use by IVK ^ encryption in the signature BDF to strengthen its security. The encrypted password can be hidden The method of wealth decryption is to be added and retrieved by IVK. If the callback address is 'hidden', and only when required, when the callback address is called or referenced, the sentence function has been Intrusive display. In another specific embodiment, this time ^, An error will occur before encryption and decryption are performed. In order to add "functions can be used in the call function that is just in use, the protection outside the rhyme in the IVK can be used, and a milestone prevents illegal operation. In this way, the control is exceptional, and for an attacker, it still maintains a callback in a failure condition. Therefore, an attacker can only observe the correction and it is more difficult to detect the failure or the A data

487839487839

五、發明說明(12) 二5 士運作’或許可利用儲存在該1 VK的侵入防護碼中的 秘禮、貧訊來提供另一個間接的層級。傳入到一里程碑呼叫 u數的回呼位址可以做為一指標,指到一保有做為一”遺 失函數”實體碼的資料儲存區,其可移置到IVK中的,,正確” 地方’可有效地使得僅在該程式模組被驗證之後,就可使 得該程式模組能夠正確地工作。該回呼函數的傳回值可以 被鏈接在一起,因此允許叫用一系列的函數。該特定回呼 也可依據該呼叫者的位址,造成根據該叫用函數的特定位 置所產生的不同程式行為。 在先前的描述中,已說明了本發明的不同方面。為了解 釋起見,所提出的特定數目,系統及架構等,皆是為了提 供對本發明完全的瞭解。但是,對於本技藝的一專業人士 而吕’所揭示内容的好處在於不需要特定的細節即可實於 本發明。在其它的狀況下,即省略或簡化已熟知的特二, 以便不混淆本發明。 本發明的具體實施例可 的組合。但是,本發明的 個處理器 資料儲存 憶體及/或儲存元素),及 置的可程式化系統中,所 用於輸入資料來執行此處 該輸出資訊可以利用已知 裝置。為了達到此應用的 處理系統,包含任何具有 具體實施例可以實施於包含至小 系統(包含揮發性及非揮發性 至少一輸入裝置與至少 王夕一輪出梦 執行的電腦程式内。转々& 所述的函數,並產生輪屮 〜 ^ ^ 别出貧訊。 的方式來應用到一個赤夕v 或多個輪屮 目的,一包含該播放举 出 一處理器的系統,例如 的 琢Τξ: ~數V. Description of the invention (12) The operation of the 2-5 taxis' may permit the use of secrets and poor information stored in the 1 VK intrusion protection code to provide another level of indirection. The callback address passed to a milestone call u number can be used as an indicator, referring to a data storage area that holds an entity code as a "missing function", which can be relocated to the IVK, right "place 'It can effectively make the program module work correctly only after the program module is verified. The return value of the callback function can be chained together, thus allowing a series of functions to be called. The specific callback may also cause different program behaviors according to the specific location of the calling function according to the address of the caller. In the previous description, different aspects of the invention have been explained. For the sake of explanation, The specific numbers, systems, and architectures proposed are intended to provide a complete understanding of the present invention. However, for a professional in the art, the advantage of Lu ''s disclosure is that it does not require specific details to be able to implement the present invention. In other situations, the well-known special two is omitted or simplified so as not to confuse the present invention. Specific embodiments of the present invention can be combined. However, the individual of the present invention Processor data storage memory and / or storage elements), and programmable programming system, and used to input data to perform the output information here can use known devices. In order to achieve the processing system of this application, including any The specific embodiment can be implemented in a computer program including a small system (including at least one volatile and non-volatile input device and at least Wang Xi's round of dream execution. Turn the function described in & and generate the rounds ~ ^ ^ Do not give out poor information. The method to apply to a red evening v or multiple rounds, a system that includes the playback and a processor, for example, τξ: ~ number

第18頁 487839Page 18 487839

特疋應用積體電路 五、發明說明(13) 位信號處理器(D SP ),一微控制器, (ASIC),或是一微處理器。 該程式可以實施於一高階的程序或物件導向式的程式语 言來與一處理系統通訊。該程式也可視需要來眚 σσ 丨、只她於址合 語言或機器語言。實際上,本發明並不受限於任何特定的 程式語言。在任何情況下,該語言皆玎是一編譯過或 過的語言。Special application integrated circuit 5. Invention description (13) Bit signal processor (DSP), a microcontroller, (ASIC), or a microprocessor. The program can be implemented in a high-level process or object-oriented programming language to communicate with a processing system. The program can also use 眚 σσ 丨 as required, only in address language or machine language. In fact, the invention is not limited to any particular programming language. In any case, the language is not a compiled or compiled language.

該程式可以儲存在一儲存媒體或裝置(如硬碟機,軟碟 機,唯讀記憶體(ROM),CD-ROM裝置,快閃記憶裝置,數 位多功能碟片(DVD),或其它儲存裝置),其可由一通用或 特定用途的可程式化系統來讀取,並在當該儲存媒體或裝 置由該處理系統讀取來執行此處所述的程序時,用來設定 及運作該處理系統。本發明的具體實施例也可考慮實施成 一機器可讀取儲存媒體,設定來用於一處理系統,其中該 儲存媒體的設置可使得該處理系統可以用一特定及預定的 方式來運作,並執行此處所述的函數。 如圖3所示,其為這樣一種處理系統的範例,但是,也 可使用其它系統,也不是所有此處所顯示的元件在本發明 中皆需要。例如,樣本系統4 0 0可以用來執行該安全鏈接 系統的具體實施例的處理,其係根據本發明中前述的具體 實施例。樣本系統40 0代表了由Intel公司所提供的 PENTIUM I,PENTIUM ®I I I 及CELER0NTM 處理器的處理系 統,雖然也可利用其它的系統(包含具有其它微處理器的 個人電腦,工程用工作站,其它機上盒等)及架構。The program can be stored on a storage medium or device (such as a hard drive, floppy drive, read-only memory (ROM), CD-ROM device, flash memory device, digital versatile disc (DVD), or other storage Device), which can be read by a general purpose or special purpose programmable system and used to set up and operate the process when the storage medium or device is read by the processing system to execute the procedures described herein system. The specific embodiment of the present invention can also be considered to be implemented as a machine-readable storage medium and set for a processing system, wherein the storage medium is set up so that the processing system can operate in a specific and predetermined manner and execute The function described here. As shown in Figure 3, this is an example of such a processing system, but other systems may be used, and not all of the elements shown here are required in the present invention. For example, the sample system 400 can be used to perform processing of a specific embodiment of the secure link system, which is according to the foregoing specific embodiment in the present invention. Sample system 40 0 represents the processing system of PENTIUM I, PENTIUM ® III, and CELERONTM processors provided by Intel Corporation, although other systems (including personal computers with other microprocessors, engineering workstations, other machines) Box, etc.) and architecture.

第19頁 487839Page 19 487839

/則為本發明的一具體實施例中—系統4⑽的方塊圖 糸統4 0 0包含一處理器4〇 2,其可處理資料作 V 4一02可以搞合於一處理器匯流排4。4 ’其在系二。〇中傳。 貧科信號於處理器4 0 2與其它元件之間。 、 系統40 0包含一記憶體40 6。記憶體4〇6可以儲存由資 信號所代表的指令及/或資料,其可由處理器4〇2來執行叶 该指令及/或資料可以包含程式碼來執行任何及/或所有 务明的技術。記憶體40 6也可包含額外的軟體及/或資料 (未示出)。一快取記憶體40 8可存在於處理器4〇2中,其可 儲存原先儲存在記憶體4 0 6中的資料信號。 ^/ In a specific embodiment of the present invention-the block diagram of the system 4⑽ system 400 includes a processor 402, which can process data as V 4 02 and can be combined with a processor bus 4. 4 'It's in department two. 〇 Intermediate. The poor signal is between the processor 402 and other components. System 40 0 contains a memory 40 6. The memory 406 can store the instructions and / or information represented by the information signal, which can be executed by the processor 402. The instructions and / or the data can include code to perform any and / or all well-known technologies . The memory 406 may also contain additional software and / or data (not shown). A cache memory 408 may exist in the processor 402, which may store data signals previously stored in the memory 406. ^

橋接器/記憶體控制器4 1 0可以_合於該處理器匯流排 4 0 4及記憶體4 0 6。該橋接器/記憶體控制器4 1 〇導引資料信 號在系統4 0 0中的處理器4 0 2,記憶體4 0 6及其它元件之 間,並橋接資料信號在處理器匯流排404,記憶體4 0 6及一 第一輸入/輸出(I / 0 )匯流排4 1 2之間。在此具體實施例 中’繪圖控制器413與一顯示裝置(未示出)構成一介面, 用於顯示所提供的影像,或是另由該繪圖處理器4 1 3處理 給一使用者。 第一 I / 0匯流排4 1 2可包含一單一匯流排或多個匯流排的 組合。第一 I /0匯流排41 2提供了系統40 0中元件之間的通❹ 訊鏈接。一網路控制器4 1 4可以耦合於該第一 I / 〇匯流排 4 1 2。在一些具體實施例中,一顯示裝置控制器4 1 6可以耦 合於第一 I /0匯流排4 1 2。該顯示裝置控制器4 1 6允許一顯 示裝置耦合到系統40 0,並做為一顯示裝置(未示出)及該The bridge / memory controller 4 1 0 can be combined with the processor bus 4 0 4 and the memory 4 0 6. The bridge / memory controller 4 10 guides the data signal between the processor 402, the memory 406 and other components in the system 400, and bridges the data signal on the processor bus 404. Memory 406 and a first input / output (I / 0) bus 4 1 2. In this embodiment, the 'drawing controller 413 and a display device (not shown) constitute an interface for displaying the provided image, or processed by the drawing processor 4 1 3 to a user. The first I / 0 bus 4 1 2 may include a single bus or a combination of multiple buses. The first I / 0 bus 41 2 provides a communication link between the components in the system 400. A network controller 4 1 4 can be coupled to the first I / O bus 4 1 2. In some embodiments, a display device controller 4 1 6 may be coupled to the first I / 0 bus 4 1 2. The display device controller 4 1 6 allows a display device to be coupled to the system 40 0 as a display device (not shown) and the display device

第20頁 487839 五、發明說明(15) -----〜 ί 介面。該顯示裝置透過顯示幾置控制器“6來 接收末自處理器4〇2的資料信號,並顯示出包談 信號的資訊給系統4〇〇的一使用者。 、-< 、4 一第二I /〇匯流排4 2 〇可包含一單一匯 =合。該第塌讀卿μ 了^^ 二=鏈接。一資料儲存裝置422可以執合: 飢排42 0。一鍵盤介面424可以耦合於 不1/U a 420。一使用者輸入裝置425可以輕合^ :1一/0匯流排 4 2 0。該使用者輸入裝置可以耦合於— < 弟一 I /〇匯流排 例如一遙控器,滑氣,搖桿,或軌跡球吏用者輸入裝置, 料到該電腦系、统。一匯流排橋接器4 ?輪入資 412耦合到第二"〇橋接器42〇。 字昂一I/O橋接器 本發明的具體實施例係關於該系統4 ^ 接系統。根據一呈俨每 _ 用做為一安全鏈 川所執行在記,、體種處理可以根據處理器 甘口己U fe4U4中的指令序列夾ά 行。這樣的指令可以由 糸統400執 憶體4。4,例如資料儲存、媒體來讀入到記 制器41 4而來自直它來、 ,或疋透過例如該網路控 根據本發明的且。/日令序列的執行將使處理器4 0 2 具體實施例中;來執行安全鏈接處理。在另-個 結合來實施本發明的ΐ = ”來取代’或是與軟體指令1 於任何特定的硬體線路心:::。因& ’本發明並不限定 系統40 0的元素係以—及权月豆的組合。 習用的功能。尤其是資藝中所熟知的方法來執行其 抖儲存裝置4 22可以用來提供根據 487839 五、發明說明(16) 本發明的安全鏈接系統的具體實施例之可執行指令與資料 結構的長期儲存,然而記憶體4 0 6係用於在處理器4 0 2執行 中,根據本發明的安全鏈接系統的具體實施例之可執行指 令的一較短期的儲存。 本發明已藉由所示的具體實施例來加以說明,本說明並 不是要構成一種限制。對於該所示具體實施例及本發明的 其它具體實施例的不同修改,對於本技藝的專業人士而言 皆可瞭解,並且可視為位在本發明的精神與範圍之内。Page 20 487839 V. Description of Invention (15) ----- ~ ί Interface. The display device receives data signals from the processor 4 by displaying several controllers "6", and displays the information of the chat signal to a user of the system 400.-< The two I / 〇 buses 4 2 0 can include a single sink. The second reading link μ ^^ two = links. A data storage device 422 can be implemented: Hungry 42 0. A keyboard interface 424 can be coupled At 1 / U a 420. A user input device 425 can be lightly closed ^: 1 a / 0 bus 4 2 0. The user input device can be coupled to a < brother I / 0 bus such as a remote control Device, slider, joystick, or trackball user input device, the computer system is expected. A bus bridge 4? 4 into the capital 412 is coupled to the second "quota bridge 42". Word Ang An I / O bridge The specific embodiment of the present invention is related to the system 4 ^ connection system. According to a presentation, each _ is used as a security chain to perform in mind, the various types of processing can be processed according to the processor The command sequence in fe4U4 is divided into lines. Such commands can be executed by the system 400, such as data storage, The system reads into the register 414 and comes directly from it, or through the network control according to the present invention and the execution of the / day order sequence will make the processor 402 in the specific embodiment; to Execute secure link processing. In another combination to implement the present invention ΐ = "instead of 'or with software instruction 1 on any specific hardware line :::. Because & 'the present invention is not limited to the combination of the elements of the system 400 and the right moon beans. Custom functions. In particular, the methods well known in the art to implement its shake storage device 4 22 can be used to provide long-term storage of executable instructions and data structures of specific embodiments of the secure link system of the present invention in accordance with 487839 V. Invention Description (16) However, the memory 406 is used for short-term storage of executable instructions of the specific embodiment of the secure link system according to the present invention during the execution of the processor 402. The invention has been described with reference to the specific embodiments shown, and the description is not intended to be a limitation. Different modifications of the illustrated specific embodiment and other specific embodiments of the present invention can be understood by those skilled in the art, and can be regarded as within the spirit and scope of the present invention.

II

第22頁 487839 圖式簡單說明 4 第23頁Page 22 487839 Simple illustration of the diagram 4 Page 23

Claims (1)

487839 六、申請專利範圍 1. 一種安全鏈接第一及第二程式模組之方法,包含: 儲存該第一程式模組的至少一個函數的至少一個位址 在一檔案中; 由該第一程式模組來呼叫該第二程式模組,並傳送該 檔案到該第二程式模組; 由該第二程式模組來驗證該第一程式模組的完整性; 及 由該第二程式模組來呼叫該第一程式的一選定的函 數,在當該第一程式模組的完整性被驗證時,其係利用取 自該檔案的一位址。 2. 如申請專利範圍第1項之方法,其中該檔案包含該至 少一位址的一數位簽章及該第一程式模組的一數位簽章之 中的至少一個。 3. 如申請專利範圍第2項之方法,其中驗證完整性包含 查證該至少一位址的該數位簽章及查證該第一程式模組的 該數位簽章中的至少一個。 4. 如申請專利範圍第1項之方法,其中該檔案包含關聯 該第一程式模組與該第二程式模組的識別資訊。 5. 如申請專利範圍第1項之方法,其中該第二程式模組 包含侵入防護軟體。 6. 如申請專利範圍第1項之方法,其中驗證完整性包含 該第一及第二程式模組的雙邊認證。 7. 如申請專利範圍第1項之方法,其中驗證完整性包含 至少以下各項之一,即驗證該第一程式模組並未被修改,487839 VI. Scope of patent application 1. A method for securely linking first and second program modules, comprising: storing at least one address of at least one function of the first program module in a file; by the first program A module to call the second program module and send the file to the second program module; the second program module to verify the integrity of the first program module; and the second program module To call a selected function of the first program. When the integrity of the first program module is verified, it uses a bit address taken from the file. 2. The method of claim 1 in which the file contains at least one of a digital signature of the at least one address and a digital signature of the first program module. 3. The method of claim 2, wherein verifying the integrity includes verifying at least one of the digital signature of the at least one address and the digital signature of the first program module. 4. The method according to item 1 of the patent application scope, wherein the file contains identification information relating to the first program module and the second program module. 5. The method according to item 1 of the patent application scope, wherein the second program module includes intrusion prevention software. 6. The method of claim 1, wherein the verification integrity includes bilateral certification of the first and second program modules. 7. If the method of applying for the scope of the first item of the patent, wherein the verification integrity includes at least one of the following items, that is to verify that the first program module has not been modified, 第24頁 487839 六、申請專利範圍 決定在一執行該程式模組之一處理系統上並沒有執行程式 除錯器應用程式,及驗證該檔案係由一信賴的實體所產 生。 8. 如申請專利範圍第1項之方法,其中驗證完整性包含 查證該位址是在該第一程式模組中該選定函數的一呼叫位 址。 9. 如申請專利範圍第1項之方法,其中儲存該至少一位 址於該檔案中,另包含在儲存期間加密該至少一位址。 1 0.如申請專利範圍第1項之方法,其中該至少一函數包 含侵入防護軟體。 1 1.如申請專利範圍第1項之方法,其中呼叫該選定的函 數包含以一隨選的參數數目來呼叫該選定的函數。 1 2. —種物件,包含:一儲存媒體,該具有複數個機器 可讀取指令,其中當該指令由一處理器執行時,該指令提 供第一及第二程式模組的該安全鏈接,其藉由 儲存該第一程式模組的至少一個函數的至少一個位址 在一檔案中; 由該第一程式模組來呼叫該第二程式模組,並傳送該 檔案到該第二程式模組; 由該第二程式模組來驗證該第一程式模組的完整性; 及 由該第二程式模組來呼叫該第一程式的一選定的函 數,在當該第一程式模組的完整性被驗證時,其係利用取 自該檔案的一位址。Page 24 487839 VI. Scope of patent application It is decided that a program debugger application is not executed on a processing system that executes one of the program modules, and verify that the file is generated by a trusted entity. 8. The method of claim 1, wherein verifying the integrity includes verifying that the address is a calling address of the selected function in the first program module. 9. The method of claim 1 in which the at least one address is stored in the file, and the at least one address is encrypted during storage. 10. The method of claim 1 in the scope of patent application, wherein the at least one function includes intrusion prevention software. 1 1. The method of claim 1, wherein calling the selected function includes calling the selected function with a number of on-demand parameters. 1 2. An object comprising: a storage medium having a plurality of machine-readable instructions, wherein when the instruction is executed by a processor, the instruction provides the secure link of the first and second program modules, It stores at least one address of at least one function of the first program module in a file; the first program module calls the second program module, and sends the file to the second program module Group; verifying the integrity of the first program module by the second program module; and calling a selected function of the first program by the second program module when the first program module is When integrity is verified, it uses an address taken from the file. 第25頁 487839 六、申請專利範圍 1 3.如申請專利範圍第1 2項之物件,其中該檔案包含該 至少一位址的一數位簽章及該第一程式模組的一數位簽章 之中的至少一個。 1 4.如申請專利範圍第1 3項之物件,其中用於驗證完整 性的指令包含用於查證該至少一位址的該數位簽章及查證 該第一程式模組的該數位簽章中的至少一個的指令。 1 5.如申請專利範圍第1 2項之物件,其中該檔案包含關 聯該第一程式模組與該第二程式模組的識別資訊。 1 6.如申請專利範圍第1 2項之物件,其中該第二程式模 組包含侵入防護軟體。 1 7.如申請專利範圍第1 2項之物件,其中用於驗證完整 性的指令包含用於該第一及第二程式模組的雙邊認證的指 〇 1 8.如申請專利範圍第1 2項之物件,其中用於驗證完整 性的指令包含用於至少以下各項之一的指令,即驗證該第 一程式模組並未被修改,決定在一執行該程式模組之一處 理系統上並沒有執行程式除錯器應用程式,及驗證該檔案 係由一信賴的實體所產生。 1 9.如申請專利範圍第1 2項之物件,其中用於驗證完整 性的指令包含用於查證該位址是在該第一程式模組中該選 定函數的一呼叫位址的指令。 2 0.如申請專利範圍第1 2項之物件,其中用於儲存該至 少一位址於該檔案中的指令,另包含用於在儲存期間加密 該至少一位址的指令。Page 25 487839 VI. Scope of patent application 1 3. If the object of the scope of patent application item 12 is included, the file contains a digital signature of the at least one address and a digital signature of the first program module. At least one of. 14. The article of item 13 in the scope of patent application, wherein the instruction for verifying the integrity includes the digital signature for verifying the at least one address and the digital signature for verifying the first program module. At least one of the instructions. 1 5. The object of item 12 in the scope of patent application, wherein the file contains identification information relating to the first program module and the second program module. 16. The object of item 12 in the scope of patent application, wherein the second program module includes intrusion prevention software. 1 7. As for the article 12 in the scope of patent application, wherein the instruction for verifying the integrity includes instructions for bilateral authentication of the first and second program modules. 0 8. As in the scope of patent application 1 2 Item, wherein the instruction for verifying the integrity includes an instruction for at least one of the following items, that is, verifying that the first program module has not been modified, and deciding on a processing system that executes one of the program modules No program debugger application was run, and the file was verified to have been generated by a trusted entity. 19. The object of item 12 in the scope of patent application, wherein the instruction for verifying the integrity includes an instruction for verifying that the address is a calling address of the selected function in the first program module. 2 0. The object of the scope of claim 12, wherein the instructions for storing the at least one address in the file, and the instructions for encrypting the at least one address during storage are also included. 487839 六、申請專利範圍 2 1 .如申請專利範圍第1 2項之物件,其中該至少一函數 包含侵入防護軟體。 2 2 ·如申請專利範圍第1 2項之物件,其中用於呼叫該選 定的函數的指令,其包含以一隨選的參數數目來呼叫該選 定的函數的指令。 2 3. —種提供由一第二程式模組來做一第一程式模組的 完整性驗證之方法,該具有可叫用函數的位址的第一程式 模組係儲存在一檔案中,其包含: 由該第一程式模組呼叫該第二程式模組來驗證該第一 程式模組的完整性; 利用該檔案中至少一個驗證里程碑來由該第二程式模 組執行對該第一程式模組的完整性驗證;及 由該檔案取得一選定的位址,驗證該位址是在該第一’ 程式模組之内,並在當該驗證里程碑成功地達到時,呼叫 由該選定位址及相關的該至少一個驗證里程碑所定址的一 選定的函數。 2 4.如申請專利範圍第2 3項之方法,其中該至少一個驗 證里程碑包含至少以下各項之一,即驗證該第一程式模組 並未被修改,決定在一執行該程式模組之一處理系統上並 沒有執行程式除錯器應用程式,及驗證該檔案係由一信賴 的實體所產生。 2 5.如申請專利範圍第2 3項之方法,其中該檔案包含該 位址的一數位簽章。 2 6.如申請專利範圍第2 3項之方法,另包含呼叫該第二487839 VI. Scope of patent application 2 1. For the object of scope 12 of the patent application, wherein the at least one function includes intrusion prevention software. 2 2 · The object of the scope of patent application item 12, wherein the instruction for calling the selected function includes an instruction for calling the selected function with a number of optional parameters. 2 3. —A method for verifying the integrity of a first program module by a second program module. The first program module with an address of a callable function is stored in a file. It includes: calling the second program module by the first program module to verify the integrity of the first program module; using at least one verification milestone in the file to execute the first program module on the first program module; Verify the integrity of the program module; and obtain a selected address from the file, verify that the address is within the first program module, and call the selected address when the verification milestone is successfully reached An address and a selected function associated with the at least one verification milestone. 2 4. If the method according to item 23 of the scope of patent application, wherein the at least one verification milestone includes at least one of the following, that is, verify that the first program module has not been modified, it is decided to execute a program module A program debugger application was not running on a processing system and verified that the file was generated by a trusted entity. 25. The method according to item 23 of the scope of patent application, wherein the file contains a digital signature of the address. 2 6. The method according to item 23 of the scope of patent application, further comprising calling the second 第27頁 487839 六、申請專利範圍 模組,執行完整性驗證,取得該選定的位址,驗證該選定 的位址,並在該第一程式模組的整個執行過程當中重複地 呼叫該第一程式模組來偵測任何危害到該第一程式模組的 完整性。 2 7 ·如申請專利範圍第2 3項之方法,其中該第一程式模 組包含一數位内容播放應用程式,及該第二程式模組包含 一完整性驗證核心。 2 8.如申請專利範圍第2 3項之方法,其中該位址係加密 於該檔案中,而取得該選定的位址包含解密該選定的位 址 ° 2 9.如申請專利範圍第2 3項之方法,其中該第二程式模 組是侵入防護的。 3 0. —種製造之物件,其包含:一儲存媒體,該具有複 數個機器可讀取指令,其中當該指令由一處理器執行時, 該指令提供由一第二程式模組來對一第一程式模組進行完 整性驗證,該第一程式模組的可叫用函數的位址係儲存在 一檔案中,該指令係用來 由該第一程式模組來呼叫該第二程式模組,來驗證該 第一程式模組的完整性; 利用該檔案中至少一個驗證里程碑來由該第二程式模 組執行對該第一程式模組的完整性驗證;及 由該檔案中取得一選定的位址,驗證該位址是在該第 一程式模組内,並在當該驗證里程碑成功地達到時,呼叫 由該選定位址及相關的該至少一個驗證里程碑所定址的一Page 27 487839 VI. Apply for a patent scope module, perform integrity verification, obtain the selected address, verify the selected address, and repeatedly call the first during the entire execution process of the first program module A program module to detect any compromise to the integrity of the first program module. 27. The method according to item 23 of the scope of patent application, wherein the first program module includes a digital content playback application program, and the second program module includes an integrity verification core. 2 8. The method according to item 23 of the scope of patent application, wherein the address is encrypted in the file, and obtaining the selected address includes decrypting the selected address ° 2 9. According to the scope of patent application, 2 3 The method of claim 1, wherein the second program module is intrusion prevention. 3 0. An article of manufacture, comprising: a storage medium having a plurality of machine-readable instructions, wherein when the instruction is executed by a processor, the instruction is provided by a second program module to The first program module performs integrity verification. The address of the callable function of the first program module is stored in a file, and the instruction is used by the first program module to call the second program module. Group to verify the integrity of the first program module; use at least one verification milestone in the file to perform integrity verification of the first program module by the second program module; and obtain a The selected address, verify that the address is within the first program module, and when the verification milestone is successfully reached, call one of the addresses specified by the selected location and the at least one related verification milestone 第28頁 487839Page 487 839 第29頁Page 29
TW89123279A 1999-11-16 2000-11-04 A method of providing secure linkage of program modules TW487839B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US44140999A 1999-11-16 1999-11-16

Publications (1)

Publication Number Publication Date
TW487839B true TW487839B (en) 2002-05-21

Family

ID=23752763

Family Applications (1)

Application Number Title Priority Date Filing Date
TW89123279A TW487839B (en) 1999-11-16 2000-11-04 A method of providing secure linkage of program modules

Country Status (3)

Country Link
AU (1) AU7623600A (en)
TW (1) TW487839B (en)
WO (1) WO2001037067A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181726B2 (en) 2003-03-07 2007-02-20 Benq Corporation Method for providing active protection to programming tools for programmable devices
US8127276B2 (en) 2006-12-13 2012-02-28 Institute For Information Industry Apparatus, method, and computer readable medium thereof for generating and utilizing a feature code to monitor a program

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2391341A (en) * 2002-07-31 2004-02-04 Hewlett Packard Co A method of validating the rights of a user to participate in an interactive computer environment
US20070174571A1 (en) * 2006-01-25 2007-07-26 Safenet, Inc. Binding a protected application program to shell code
US20100325077A1 (en) * 2007-02-21 2010-12-23 Naoshi Higuchi Computer, operation rule application method and operating system
EP3514713B1 (en) 2013-07-02 2023-11-15 Precise Biometrics AB Verification application, method, electronic device and computer program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689565A (en) * 1995-06-29 1997-11-18 Microsoft Corporation Cryptography system and method for providing cryptographic services for a computer application
US5757914A (en) * 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US5958051A (en) * 1996-11-27 1999-09-28 Sun Microsystems, Inc. Implementing digital signatures for data streams and data archives

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181726B2 (en) 2003-03-07 2007-02-20 Benq Corporation Method for providing active protection to programming tools for programmable devices
US8127276B2 (en) 2006-12-13 2012-02-28 Institute For Information Industry Apparatus, method, and computer readable medium thereof for generating and utilizing a feature code to monitor a program

Also Published As

Publication number Publication date
AU7623600A (en) 2001-05-30
WO2001037067A1 (en) 2001-05-25

Similar Documents

Publication Publication Date Title
JP5285075B2 (en) Differentiate safety standards with secure kernel design
JP4702957B2 (en) Tamper resistant virtual machine
Smith et al. Building a high-performance, programmable secure coprocessor
US5991399A (en) Method for securely distributing a conditional use private key to a trusted entity on a remote system
CN101894224B (en) Protecting content on client platforms
JP4664398B2 (en) Incremental code signing method and apparatus
JP5636371B2 (en) Method and system for code execution control in a general purpose computing device and code execution control in a recursive security protocol
CN109840430B (en) Safety processing unit of PLC and bus arbitration method thereof
Chen et al. Certifying program execution with secure processors
US9602289B2 (en) Steganographic embedding of executable code
US10503931B2 (en) Method and apparatus for dynamic executable verification
EP2300952B1 (en) A method for adapting and executing a computer program and computer program product and computer architecture therefor
US20110191593A1 (en) Software License Embedded In Shell Code
WO2004006075A1 (en) Open type general-purpose attack-resistant cpu, and application system thereof
JPH08166879A (en) Method and apparatus for reinforcement of safety of softwarefor distribution
IL168907A (en) System and method for protected operating system boot using state validation
CN101199159A (en) Secure boot
JP2004038939A (en) Storage and retrieval of data based on symmetric key encryption
US10628562B2 (en) Method for protecting a computer program from being influenced, and computer system
WO2017000648A1 (en) Authentication method and apparatus for reinforced software
CN115104096A (en) Protecting commercially-ready program binaries from piracy using a hardware secure enclave
US20100205459A1 (en) Method and system for protecting against access to a machine code of a device
JP2007310688A (en) Microcomputer and software tampering prevention method thereof
TW487839B (en) A method of providing secure linkage of program modules
JP5060372B2 (en) Data processing device