主動檢測軟體竄改的系統和方法
2023-05-06 12:35:21
專利名稱:主動檢測軟體竄改的系統和方法
技術領域:
本發明一般涉及軟體安全的領域。更具體地說,本發明涉及軟體竄改的檢測。
背景技術:
隨著用於電影和音樂的數位技術的出現,未授權複製的問題已經變得很嚴重。數字複製品是完全相同複製品,為了防止它們在網際網路上被廣泛地重新分發,人們開發了諸如DTCP(數字傳輸內容保護)和CPRM(可記錄媒體的內容保護)之類的許多內容保護技術。這些技術在它們的許可證中具有「健壯性條款」,其中,這樣許可證中的條款為抗竄改實現提供了保證。抗竄改技術,尤其軟體抗竄改技術的開發已經變成朝陽產業。
大多數侵入檢測機制都用在受到損害之後,因此,是反應性的。術語「主動性安全」指的是在最後受到損害之前的進程中,譬如,在執行軟體期間檢測出了什麼毛病。現有系統無法為主動性安全機制提供保證來抗擊軟體的逆向設計(reverse-engineering)。這些現有系統無法識別黑客在逆向設計嘗試期間留下的證據。因此,需要在黑客成功竄改之前和在他們訪問諸如秘密密鑰之類的重要信息之前,主動檢測正在進行的逆向設計進程(從而,通過將黑客攻擊扼殺在萌芽之中,防止真正損害發生)。
一般說來,現有侵入檢測系統是反應性的,它們利用現有知識來監視異常。監視這樣異常的一種方式是保留「審查日誌」。使用審查日誌的一般概念已經存在很長時間。但是,當應用於特定「檢測」目的時,「審查日誌」方案才表現良好和更加實用。在這種情形下,人們需要識別為了檢測目的和應該跟著的核實進程而需要放入日誌中的信息。使日誌中信息滿足某些特性不僅可以不時地使方案更加有效(就縮小日誌大小和創建更有效核實進程而言),而且可以保證核實進程和檢測目標異常。
另一個相關概念是「正向安全」,正向安全是已經認可的和出現在有關安全的文獻中的正式特性。正向安全包括在已經發生竄改之後防止舊代碼或日誌遭到破壞的方法。未來的行動可能不可信,但先存可信項目仍然未洩密。
發明內容
因此,本發明的一個方面是提供使客戶機能夠通過半可信全球資訊網伺服器訪問來自原始全球資訊網伺服器的限制信息的方法。
本發明的另一個方面是提供使客戶機能夠通過半可信全球資訊網伺服器訪問來自原始全球資訊網伺服器的限制信息的設備。
本發明的另一個方面是降低將cookies用於驗證的安全風險。
本發明的另一個方面是保護存儲在半可信全球資訊網伺服器上的數據。
在本發明的例子中,客戶機將使用這裡公開的方法訪問半可信全球資訊網伺服器上的限制信息。
如下參考文獻為反應性侵入檢測機制的一般描述提供保證。
Drake的美國專利(6,006,328)公開了用於計算機軟體驗證、保護和安全的方法。該方法涉及用直接與硬體通信的等效代碼(消除了易受攻擊性)替代易受攻擊代碼(例如,易被竊聽),並禁止系統中斷或允許流氓軟體竊聽的其它功能。竄改檢測技術用在軟體內或被軟體訪問,以便如果檢測到竄改,就不許ID數據的隨後項目進入輸入例程中。公開的發明為如下步驟提供了保證執行RAM(隨機訪問存儲器)或其它圖像的代碼檢驗和;將存儲器與可執行代碼的其它存儲副本相比較和/或解密進入進程;檢查可執行環境;將可執行大小與期望值相比較;向第三方人員或進程通知和/或傳輸驗證失敗詳細資料;和記錄與用法和/或用戶的詳細資料有關的日誌(輸入例程或安全進入進程)。
Auerbach等人的美國專利(5,673,316)為創建和分發密碼封套提供了保證。其中公開了含有用部分加密密鑰和公開密鑰加密每個部分的信息部分的集合體的封套。然後,用秘密密鑰籤名列表以生成也包括在封套中的籤名。
Pearson的歐洲專利(EP1076279-A1)公開了含有參照籤名版本和公開密鑰證書完整性檢驗的許可證相關代碼的計算機平臺。計算機平臺或可信模塊形成在表現得像用戶所期望的那樣的可信環境內可以發生許可檢驗的防竄改部件。相關清算機構機制允許對數據加以登記和支付。該系統還允許本地用戶或遠程實體核實平臺的完整性。
Allen等人的美國專利(4,757,533)公開了將硬體和軟體結合在一起以提供用戶和文件訪問的防竄改保護的用於個人微型計算機的安全系統。公開的晶片之一提供了審查痕跡日誌、保護和加密系統標誌和用戶訪問權限,其中,這個晶片保證了只有有效用戶才能訪問。
外國專利WO200077597 A1、WO200114953 A1和WO200O77596 B1一般性地公開了涉及轉換計算機軟體代碼中的數據流,以便將轉換代碼的可觀察操作與原始軟體代碼的用途割裂開的抗竄改方法。這些方法為使計算機軟體抗竄改和抗逆向設計提供了保證。
Stanton等人的外國專利(WO9904530 A1)公開了將會話密鑰用作數據加密密鑰防止竄改的文件加密方法。該方法使用基於允許合法機構緊急訪問文件的共享秘密密鑰或公開-專用密鑰密碼體制的強加密算法。
Bellare等人名稱為「安全審查日誌的正向完整性(Forward Integrity ForSecure Audit Logs)」的非專利文獻提供了保持審查日誌的安全性的方法。公開的申請包括保護侵入檢測或追究的審查日誌(例如,系統日誌(syslogd)數據)、通信安全和為移動代理器驗證部分計算結果。
Song名稱為「實用正向安全組籤名方案(Practical Forward Secure GroupSignature Schemes)」的非專利文獻為正向安全方案減輕密鑰暴露引起的損害提供了保證。
不管上面引用的參考文獻的精確價值、特徵和優點如何,沒有一篇能夠取得或實現本發明的目的。
本發明公開了根據動態演變審查日誌和密鑰值主動檢測軟體竄改的方案,其中,檢測是主動的。密鑰值根據取決於以前日誌項目和以前密鑰兩者的單向函數演變。審查日誌(含有生成的日誌項目)和最終密鑰值兩者都傳送給通過分析這些值檢測軟體侵入的清算機構。在一個特定實施例中,日誌項目值是相同的,從而縮小要傳送的日誌的大小。在這個實施例中,在傳送到清算機構期間,只有最終密鑰值和一個日誌項目需要傳送。因此,本發明通過將「完整性檢驗」記錄到日誌中使用完整性檢驗,以便在軟體執行期間檢測正在進行的黑客攻擊進程。公開的方法將「完整性檢驗」和「正向安全」結合成一種工作方案,並以黑客攻擊進程不能逃避檢測的方式應用這種方案來主動檢測竄改軟體的黑客。
在推廣的實施例中,本發明的方案進一步包括對檢測的竄改作出響應的步驟,其中,該響應包括如下步驟的任何一個或它們的組合斷開軟體代碼用戶;廢除軟體代碼用戶的設備密鑰;拒絕軟體代碼用戶對附加內容的請求;在發送給用戶的軟體代碼或內容中增加完整性檢驗的類型的數量和多樣性;增加定期發送所述審查日誌和最終密鑰的頻率;和將所述檢測竄改通告給系統管理者。
在另一個推廣的實施例中,通過確定是否超過日誌項目異常的預定閾值檢測(在清算機構上)竄改。一旦超過預定閾值,清算機構可以使用上述響應的任何一個。
圖1例示了密鑰演化獨立於日誌項目值的一般方法;圖2例示了密鑰演化使用日誌項目值的本發明方法的一個實施例;圖3例示了本發明的單個密鑰實施例;和圖4例示了實現公開在圖2和3中的實施例的系統的概況。
具體實施例方式
雖然本文以優選實施例的方式對本發明加以例示和描述,但本發明可以用許多不同的配置、形式和素材形成。畫在附圖中的和這裡詳細描述的是本發明的優選實施例,但應理解為本公開被當作本發明的原理和其結構的相關功能說明的示範,而非打算使本發明局限於所例示的實施例。本領域的普通技術人員可以在本發明的範圍內設想出許多其它可能變種。
應該注意到,自始至終用在本說明書中的術語「用戶」指的是試圖竄改軟體代碼(譬如,與如下有關的軟體代碼全球資訊網瀏覽器程序;音效卡驅動器;遊戲控制臺程序;Java小應用程式;或嵌在諸如圖像、音樂或視頻文件之類的多媒體內容中的宏)的不可信計算機(例如,頂置盒、PC(個人計算機)、PDA(個人數字助理)、視頻遊戲控制臺等)的操作者。另外,術語「日誌」指的是利用一組項目描述對於軟體代碼的執行到底發生了什麼的審查痕跡。在一種實現中,這些項目描述嵌在軟體代碼中並由軟體代碼執行的完整性檢驗的結果(例如,一塊代碼的檢驗和)。
本發明為利用審查痕跡檢測異常的系統和方法提供了保證。應該注意到,軟體在客戶機方(例如,在不友好用戶的機器上)運行的情形是想像得到的。因此,威脅來自不可信用戶本身。這種類型的威脅特別值得注意,簡單地說,這是因為黑客不僅可以訪問和竄改代碼,而且還可以竄改審查痕跡。因此,在這種情況下,痕跡本身需要保護,以便黑客沒有辦法不被檢測地刪除痕跡中的任何舊項目。不過,過了一會,仍然存在黑客完全明白記入機制的可能性,從那時開始,不能信任痕跡中的新項目。但是,根據本發明,黑客不能回頭修改日誌中的項目。
這裡所述的發明是在軟體執行期間將「正向安全」特性應用於完整性檢驗,以便主動檢測軟體竄改進程的方案。當用戶進行連接獲取新內容時,容易檢測到日誌的任何截斷、日誌的刪除或舊有效日誌的替代。假設在黑客完全明白特定軟體程序之前,他將觸發已經記入的許多「完整性檢驗」故障。因此,根據本發明,黑客無法不被檢測地逆向設計軟體。
正向安全是通過使進入日誌的信息動態演變取得的。例如,在開始執行的時候選擇隨機數作為密鑰,然後,這個密鑰用於將項目記錄到日誌中。利用單向函數使這個密鑰演變成新密鑰,然後,擦除(改寫)舊密鑰。接著,新密鑰用於將信息記錄在日誌中。該密鑰可以用於生成信息、決定記錄什麼信息、加密記錄,或用於任何其它用法。因此,進入日誌中的項目是利用單向函數演變的密鑰的函數。例如,在時間t,黑客發現他/她的行為被記錄到日誌中,但他/她沒有辦法回頭弄清楚以前的密鑰(時間t之前),以便偽造已經記錄在日誌中的信息,試圖使日誌看起來是正確的。
定期將日誌與清算機構連接並發回清算機構(清算機構是定期接收日誌、檢驗日誌、通過將日誌內容與適當日誌內容相比較確定是否已經發生了竄改的實體)。同時,一邊軟體正在記錄隨著代碼執行發生的事情,另一邊在清算機構中相同的初始隨機數(密鑰)以同步的方式演變。清算機構知道應該進入日誌中的確切信息。然後,發生在清算機構中的核實/檢測進程可以是返回日誌和清算機構利用從一次連接到下一次連接不斷地演變的相同演變密鑰計算的正確信息之間的簡單比較。如果不可信用戶替代舊有效日誌,密鑰將是不正確的。如果用戶提交截斷日誌,那麼,下一次發送日誌的時候,密鑰將是不正確的。第一次在日誌中檢測異常時,清算機構可以提醒管理者。管理者下一次可以注意同一用戶或選擇向用戶發出警告。當累積到「足夠多」的竄改證據(例如,超過閾值)時,可以將用戶與網絡斷開並不許用戶將來接收新的內容分發。
這種方案所涉及的基本步驟
(1)決定(decide on)進行完整性檢驗的地方和需要什麼類型的完整性檢驗。所有類型的完整性檢驗都在範圍之內。例如,測試一塊代碼的檢驗和可以是完整性檢驗之一。
(2)選定單向函數,譬如,C2_G、MD5或RSA。C2_G(Cryptomeria單向函數)是用在稱為CPRM的眾所周知內容保護方案中的單向函數。MD5(消息摘要#5)是在數字籤名操作中通常用作密碼散列函數的單向函數。RSA是分類公開密鑰加密算法。RSA加密算法對於不包含相關專用密鑰的任何一個都起單向函數的作用。
(3)將完整性檢驗信息嵌入要保護的代碼中,以便在在步驟(1)中確定的點上生成日誌項目並當發生時利用單向函數使密鑰演變。
(4)將日誌發回清算機構,而清算機構核實日誌和檢測竄改進程或確定是否發生了竄改。
圖1例示了密鑰演化獨立於日誌項目值的一般方法。日誌的大小是無界的。單向函數f1用於使密鑰獨立於完整性檢驗值v_i地演變f1(k_i)-k_i+1。另一個函數f2使用完整性檢驗值v_i上的密鑰生成日誌項目。函數f2可以是,例如,用值v_i加密密鑰k_i,但是,也可以用其它f2函數替代。由於利用單向函數使密鑰演變,在黑客竄改成功和獲得當前密鑰k_i的時間t,黑客仍然沒有辦法知道以前的密鑰k_0...k(i-1)。因此,黑客不能回頭偽造已經記錄的任何日誌項目。當將日誌項目發回清算機構時,清算機構可以重複f2計算並在兩種意義上核實日誌項目是否正確它們被正確加密,而完整性檢驗值指示沒有發生竄改。由於黑客攻擊進程在一些完整性檢驗值v_i上的失敗,日誌項目將是不正確的,可以被清算機構檢測到。
在本發明的基本方法(如上所述)內,存在與步驟(3)-(4)相聯繫的兩個不同實施例。下面提供兩個實施例的每一個的簡要描述。
實施例A圖2例示了密鑰演化使用日誌項目值的本發明方法。在這種模式中,單向函數使用當前密鑰k_i和當前完整性檢驗值v_i生成新密鑰k-(i+1)。在日誌中,只輸入當前完整性檢驗值v_i。日誌項目與獲得的最終密鑰k_n被發回清算機構。當軟體受到黑客攻擊和黑客竄改了一些完整性檢驗值v_i時,密鑰演變是錯誤的。因此,清算機構可以使用k_0和日誌項目值v_O...v_n使密鑰演變並檢測竄改進程。首先,它核實利用觀察的日誌項目v_i的確可以獲得返回的k_n。這是確定黑客還沒有竄改日誌中的任何v_i值。然後,清算機構檢驗實際v_i值,看一看是否存在在軟體執行期間竄改的證據。黑客以後可以得知應該存儲起來的正確完整性檢驗值v_i;但不幸的是,這對黑客來說沒有任何用處。首先,函數f是有關k和v兩者的。當黑客第一次摸索時,這是他/她無法進行完整性檢驗和獲得錯誤完整性檢驗值v_i的原因。當黑客最終在黑客攻擊上取得成功和在他/她的黑客攻擊進程中弄清楚正確完整性檢驗值v時,黑客只知道當前密鑰k-n,而不能知道以前的密鑰k_0...k_(n-1),而黑客仍然沒有辦法知道正確的k-n值應該是什麼。因此,清算機構總是可以檢測到黑客攻擊進程。其次,如果黑客試圖將所有正確完整性檢驗值v_i都恢復到日誌中,那麼,清算機構將知道黑客正在試圖偽造日誌,因為值k_n不會與觀察到的v_i一致。
因此,實施例A使實際日誌處在乾淨狀態(只輸入當前完整性檢驗值v_i)。在某些應用中可以有利地利用這個方面。
實施例B圖3例示了本發明的單個密鑰實施例。前一實施例需要將整個日誌發送回到清算機構。日誌本身隨著時間的流逝可以變得非常大。這個實施例B是圖1的一般方法的變種,目的在於縮小日誌的大小。在完整性檢驗期間,當每檢驗成功時,可以使完整性檢驗值成為固定默認值v。換句話說,只有當完整性檢驗失敗時,檢驗值才是除了v之外的其它不同值。在這種情況下,最後k_n和日誌的長度N是需要存儲和發送回到清算機構的唯一值,因為正確的日誌只不過是N個值v的序列。清算機構可以利用函數f進行密鑰計算和核實k_n是否正確。如果在軟體執行期間所有完整性檢驗都是成功的,最後k_n必定正確。如果在執行期間任何一次完整性檢驗失敗了,完整性檢驗值就不同於v,密鑰演變進程是錯誤的(即,由於f是單向函數,決不會再次生成正確值)。
為了縮短出現在清算機構中的核實計算進程,這樣選擇單向函數f,使任何有效密鑰值k_i共享公共特性,並且與無效密鑰值不同。然後,清算機構只需要核實那個特性是否成立。它不需要再次執行密鑰演變進程。例如,如果單向函數是RSA類計算和v=1ki=(vki-1)3mod pq (p和q是大素數)然後,清算機構可以核實kn=k03nmod pq黑客或不知道因子p和q的其它任何人不能對mod pq開3n次方根,使密鑰向後演變,從而保持了正向安全特性。
密鑰k_i需要存儲在非易失性存儲器中,以便不用讓用戶關掉電源來重置k演變。對於最終用戶來說,恢復以前的值也很重要,因此,簡單地將密鑰k_i存儲在文件中通常是不夠的。應該注意到,本發明被設想成用在存在存儲內容密鑰和用法計數的完全相同問題的內容保護應用中。
本發明的另一個推廣涉及當日誌具有固定大小時迴繞的使用,問題出在超過固定大小的時候。實施例B是這種情況的極端情況(可以認為實施例B是大小為1的日誌)。在圖1的一般方法中,如果日誌具有固定長度N,即使由於迴繞而一些已經丟失了,但只要清算機構知道已經記錄的日誌項目的總數,一切都會正常運行。利用總數,清算機構可以計算密鑰演變和讀取最後N個項目。應該注意到,以前的項目將被改寫,但當存在固定長度日誌時,那是不可避免的。但是,實施例A在日誌具有固定長度時,需要多一點幫助。如果由於被改寫而丟失了一些日誌項目,清算機構不能計算密鑰演變和讀取最後N個值。
於是,本發明通過將「完整性檢驗」記錄到日誌中來使用完整性檢驗,以便在軟體執行期間檢測正在進行的黑客攻擊進程。公開的方法將「完整性檢驗」和「正向安全」結合成一種工作方案,並以黑客攻擊進程不能逃避檢測的方式應用這種方案主動檢測竄改軟體的黑客。
圖4例示了實現本發明的上述實施例(A和B)的系統400的概況。方塊402代表存在嵌入式完整性檢驗的一塊軟體代碼。如上所述,可以設想出各種各樣的完整性檢驗。例如,完整性檢驗可以是測試一塊軟體代碼402的檢驗和。方塊404和406分別代表審查日誌和演變密鑰。單向函數408用於使密鑰值406演變,其中,單向函數依賴於以前的日誌項目(在審查日誌404中)和以前的密鑰。在特定實施例中,密鑰值存儲在非易失性存儲器405中。審查日誌中的值和最終密鑰值被發送到清算機構410,然後,清算機構410分析這些值(利用單向函數再現一系列密鑰值並將該系列與分配到404中的日誌項目中的密鑰相比較)以檢測軟體侵入。最後,如果清算機構檢測到軟體侵入,將響應412發送給諸如系統管理者之類的適當人員414。應該注意到,發生密鑰演變的位置不應該用於限制本發明的範圍。例如,上述密鑰演變方案可以在清算機構410中實現。
另外,本發明為包括使其成為最健壯的包含在一個或多個模塊內的計算機可讀程序代碼的製品提供了保證。並且,本發明包括基於電腦程式代碼的產品,這種產品是含有存儲在其中的可以用於命令計算機執行與本發明有關的任何一種方法的程序代碼的存儲媒體。計算機存儲媒體包括如下的任何一種(但不局限於此)CD-ROM(只讀光碟存儲器)、DVD(數字多功能盤)、磁碟、光碟、硬碟、軟盤、鐵電體存儲器、閃速存儲器、鐵磁體存儲器、光存儲器、電荷耦合器件、磁卡或光卡、智慧卡、EEPROM(電可擦除可編程只讀存儲器)、EPROM(電可編程只讀存儲器)、RAM(隨機訪問存儲器)、ROM(只讀存儲器)、DRAM(動態隨機訪問存儲器)、SRAM(靜態隨機訪問存儲器)、SDRAM(同步動態隨機訪問存儲器)和任何其它適當的靜態或動態存儲器或數據存儲器件。
在基於電腦程式代碼的產品中實現的是完成如下步驟的軟體模塊(a)生成審查日誌中的日誌項目;(b)使密鑰值根據單向函數演變,其中,單向函數依賴於以前的日誌項目和以前的密鑰兩者;和(c)幫助含有生成的日誌項目的審查日誌和最終密鑰值發送到清算機構,該清算機構通過分析所述日誌項目和所述最終密鑰值檢測軟體侵入。
結論在上面有效實現系統和方法以便主動檢測軟體竄改的實施例中已經示出了系統和方法。雖然已經示出和描述了各種各樣的優選實施例,但本領域的普通技術人員應該明白,我們的意圖不是通過這樣的公開來限制本發明,而是打算涵蓋如所附權利要求書限定的、在本發明的精神和範圍內的所有變型和可替代結構。例如,本發明不應該受軟體代碼的類型、完整性檢驗的類型、單向函數的類型或計算環境限制。
上面的改進是在各種各樣的計算環境下實現的。例如,本發明可以在傳統IBM PC(美國國際商用機器公司的個人計算機)或等效多節點系統(例如,LAN(區域網))或聯網系統(例如,網際網路、WWW(全球資訊網)、無線網絡)上實現。所有程序設計和與之有關的數據都存儲在計算機存儲器(靜態或動態)中,並可以由用戶通過如下任何一種方式檢索傳統計算機存儲器、顯示器(即,CRT)和/或硬拷貝(即,列印)方式。本發明的程序設計可以由熟悉現有安全/加密程序設計的普通技術人員實現。
權利要求
1.一種利用動態演變審查日誌主動檢測軟體侵入的方法所述方法包括如下步驟a.生成所述審查日誌中的日誌項目;b.使密鑰值根據單向函數演變,所述單向函數依賴於以前的日誌項目和以前的密鑰兩者;和c.將含有所述生成日誌項目的所述審查日誌和最終密鑰值發送到清算機構,所述清算機構通過分析所述日誌項目和所述最終密鑰值檢測軟體侵入。
2.根據權利要求1所述的方法,其中,所述日誌項目是基於軟體執行的完整性檢驗結果。
3.根據權利要求2所述的方法,其中,所述完整性檢驗包括對一部分軟體代碼的檢驗和計算。
4.根據權利要求1所述的方法,其中,所述日誌項目的值是相同的。
5.根據權利要求1所述的方法,其中,所述審查日誌的大小是有限的,從而所述日誌項目形成迴繞的審查日誌。
6.根據權利要求1所述的方法,其中,在產生下一個密鑰值之後,刪除以前的密鑰。
7.根據權利要求1所述的方法,其中,使密鑰演變的所述步驟與所述清算機構獨立地執行。
8.根據權利要求1所述的方法,其中,所述清算機構所作的所述分析包括利用所述單向函數再現一系列密鑰值並將所述系列與分配到所述日誌項目中的密鑰相比較。
9.根據權利要求1所述的方法,其中,密鑰值的所述演變發生在所述生成步驟上。
10.根據權利要求1所述的方法,其中,密鑰值的所述演變發生在所述發送步驟上。
11.根據權利要求1所述的方法,其中,所述密鑰在數字上具有不同的特性。
12.根據權利要求1所述的方法,其中,所述密鑰值存儲在非易失性存儲器中。
13.根據權利要求1所述的方法,其中,所述發送定期發生。
14.根據權利要求1所述的方法,其中,所述發送發生在第三方執行軟體代碼期間。
15.根據權利要求1所述的方法,其中,如果已經超出日誌項目異常的閾值,所述清算機構檢測軟體竄改。
16.一種包括含有具體化在其中的有助於利用動態演變審查日誌主動檢測軟體侵入的計算機可讀程序代碼的計算機可用媒體的製品,所述媒體包括a.生成所述審查日誌中的日誌項目的計算機可讀程序代碼;b.使密鑰值根據單向函數演變的計算機可讀程序代碼,所述單向函數依賴於以前的日誌項目和以前的密鑰兩者;和c.有助於將含有所述生成日誌項目的所述審查日誌和最終密鑰值發送到清算機構的計算機可讀程序代碼,所述清算機構通過分析所述日誌項目和所述最終密鑰值檢測軟體侵入。
17.一種利用動態演變審查日誌主動檢測軟體侵入的方法,所述方法包括如下步驟a.將完整性檢驗嵌入軟體代碼中;b.生成所述審查日誌中具有相同日誌項目值的日誌項目;c.使密鑰值根據單向函數演變,所述單向函數依賴於以前的日誌項目和以前的密鑰兩者;和d.將所述相同日誌項目值和最終密鑰值發送到清算機構,所述清算機構通過分析所述相同日誌項目值和所述最終密鑰值檢測軟體侵入。
18.根據權利要求17所述的方法,其中,所述軟體代碼可以包括全球資訊網瀏覽器、音效卡驅動器、遊戲控制臺程序、Java小應用程式、嵌在其它數字內容中的宏。
19.根據權利要求18所述的方法,其中,所述數字內容包括如下的任何一種圖像、音樂、視頻或資料庫文件。
20.根據權利要求17所述的方法,其中,所述方法進一步包括對檢測的竄改作出響應的步驟,所述響應包括如下步驟中的任何一個或它們的組合斷開軟體代碼用戶;廢除軟體代碼用戶的設備密鑰;拒絕軟體代碼用戶對附加內容的請求;在發送給用戶的軟體代碼或內容中增加完整性檢驗的類型的數量和多樣性;增加定期發送所述審查日誌和最終密鑰的頻率;和將所述檢測竄改通告給系統管理者。
21.根據權利要求17所述的方法,其中,所述審查日誌的大小是有限的,從而所述日誌項目形成迴繞的審查日誌。
22.根據權利要求17所述的方法,其中,所述完整性檢驗包括對一部分所述軟體代碼的檢驗和計算。
23.根據權利要求17所述的方法,其中,在產生下一個密鑰值之後,刪除以前的密鑰。
24.根據權利要求17所述的方法,其中,使密鑰演變的所述步驟與所述清算機構獨立地執行。
25.根據權利要求17所述的方法,其中,所述清算機構所作的所述分析包括利用所述單向函數再現一系列密鑰值並將所述系列與分配到所述日誌項目中的密鑰相比較。
26.根據權利要求17所述的方法,其中,密鑰值的所述演變發生在所述生成步驟上。
27.根據權利要求17所述的方法,其中,密鑰值的所述演變發生在所述發送步驟上。
28.根據權利要求17所述的方法,其中,所述密鑰在數字上具有不同的特性。
29.根據權利要求17所述的方法,其中,所述密鑰值存儲在非易失性存儲器中。
30.根據權利要求17所述的方法,其中,所述發送定期發生。
31.根據權利要求17所述的方法,其中,所述發送發生在第三方執行軟體代碼期間。
32.根據權利要求17所述的方法,其中,如果已經超出日誌項目異常的閾值,所述清算機構檢測軟體竄改。
33.一種包括含有具體化在其中的有助於利用動態演變審查日誌主動檢測軟體侵入的計算機可讀程序代碼的計算機可用媒體的製品,所述媒體包括a.將完整性檢驗嵌入軟體代碼中的計算機可讀程序代碼;b.生成所述審查日誌中具有相同日誌項目值的日誌項目的計算機可讀程序代碼;c.使密鑰值根據單向函數演變的計算機可讀程序代碼,所述單向函數依賴於以前的日誌項目和以前的密鑰兩者;和d.有助於將所述相同日誌項目值和最終密鑰值發送到清算機構的計算機可讀程序代碼,所述清算機構通過分析所述相同日誌項目值和所述最終密鑰值檢測軟體侵入。
全文摘要
利用動態演變審查日誌(404)主動檢測軟體侵入,其中,在審查日誌(404)中生成日誌項目,並根據依賴於以前的日誌(404)項目和以前的密鑰(406)兩者的單向函數(408)使密鑰值(408)演變。將含有生成的日誌項目的審查日誌(404)和最終密鑰值發送到清算機構(410),清算機構(410)通過分析這些值檢測軟體侵入。為了盡力縮小要發送的日誌(404)的大小,將相同值指定給日誌項目,從而只需將一個日誌項目和最終密鑰值發送到清算機構(410)。
文檔編號G06F12/14GK1729457SQ200380106941
公開日2006年2月1日 申請日期2003年10月22日 優先權日2002年12月19日
發明者金紅霞, 傑弗裡·B·洛茨皮奇 申請人:國際商業機器公司