TWI598765B - Data protection methods and devices - Google Patents
Data protection methods and devices Download PDFInfo
- Publication number
- TWI598765B TWI598765B TW102132564A TW102132564A TWI598765B TW I598765 B TWI598765 B TW I598765B TW 102132564 A TW102132564 A TW 102132564A TW 102132564 A TW102132564 A TW 102132564A TW I598765 B TWI598765 B TW I598765B
- Authority
- TW
- Taiwan
- Prior art keywords
- source data
- parameter
- encryption
- confusing
- obfuscation
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 60
- 238000004422 calculation algorithm Methods 0.000 claims description 102
- 238000012545 processing Methods 0.000 claims description 41
- 238000006467 substitution reaction Methods 0.000 claims description 29
- 238000012795 verification Methods 0.000 claims description 29
- 238000003672 processing method Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 36
- 230000006399 behavior Effects 0.000 description 12
- 238000005336 cracking Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013496 data integrity verification Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/128—Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Description
本申請案係有關資料安全領域,尤其有關一種資料保護的方法和裝置。
當今社會對電腦等終端設備的應用越來越廣泛,但是,在用戶端中儲存或用戶端之間傳輸的源資料的資訊安全也隨之引起了公眾的注意,由於沒有對這些源資料進行源資料保護或保護措施較差,造成這些源資料在利用電子郵件、瀏覽器等應用軟體進行傳輸、交換或儲存的過程中,出現了源資料偽造、篡改、重放、丟失和洩露等現象的發生。
例如,JavaScript是一種廣泛用於用戶端Web開發的腳本語言,常被用來給頁面添加動態功能,JavaScript語言的出現使得頁面和用戶之間實現了一種即時性的、動態性的、交互性的關係。但是,由於JavaScript源代碼(源資料)以明文形式呈現於用戶端中,透過JavaScript採集的重要資料無法實現防偽造、防篡改、防重放等需求。所以,在該明文中存在的敏感源代碼或者有價值的資訊,可
以在用戶端中輕而易舉地被獲得到,並依此針對用戶端中的可能發生的行為進行非法操作。
在現有技術中,為應對上述問題,出現了在伺服器側對腳本資源進行混淆並在用戶端側對採集的資料進行加密和混淆,並傳輸給伺服器端的方法,但是大多採用固定的加密演算法、固定的加密密鑰和固定的混淆參數,亦即,靜態的資料,缺少加密和混淆的更新機制,一旦被破解,資料很容易被偽造和篡改,嚴重威脅了源資料的安全性。
本申請案的主要目的在於提供一種資料保護的方法和裝置,以解決現有技術存在的源資料明文容易被破解,而造成的用戶端的相關資料易被偽造、篡改的問題,以提高資料的安全性。
為了解決上述技術問題,本申請案的目的是透過以下技術方案來予以實現的:
本申請案提供了一種資料保護的方法,包括以下步驟:透過解析腳本資源源資料,獲得與所述腳本資源源資料相應的多個語義單元;基於所述多個語義單元,形成樹形源資料,其中,所述樹形源資料包含多個語義結構,所述多個語義單元被填充在所述多個語義結構中;針對所述樹形源資料,選擇混淆策略;基於所述混淆策略,對所述樹形源資料進行等價混淆處理,以得到混淆樹形源資料;以及將所述混淆樹形源資料反編譯成混淆後的腳本資
源源資料。
較佳地,在根據本申請案所述的方法中,所述混淆策略包括如下混淆處理方式的至少其中一個:變數名替換、函數名替換、數值替換、語句順序替換、去除空白、***無效代碼、代碼加密。
較佳地,在根據本申請案所述的方法中,基於所述混淆策略,對所述樹形源資料進行等價混淆處理的步驟,包括:根據所述混淆策略中包含的一個或多個混淆處理方式,產生與所述一個或多個混淆處理方式中每一個混淆處理方式對應的混淆參數;以及基於所述一個或多個混淆處理方式和所對應的混淆參數,對所述樹形源資料進行混淆處理。
較佳地,在根據本申請案所述的方法中,所述混淆樹形源資料和所述樹形源資料的執行順序相同。
較佳地,在根據本申請案所述的方法中,所述將所述混淆後的樹形源資料反編譯成混淆後的腳本資源源資料的步驟包括:透過對所述混淆樹形源資料進行拆分,得到多個混淆後的語義結構;以及基於所述多個混淆後的語義結構中混淆後的語義單元,建構所述混淆後的腳本資源源資料。
較佳地,根據本申請案所述的方法,還可以包括:接收來自用戶端的腳本資源請求,其中,所述腳本資源請求用以獲取對應的腳本資源源資料,並且在所述腳本資源請求中包含加密符記參數;基於所述加密符記參數,產生與
所述加密符記參數對應的加密密鑰;根據所述加密符記參數,選擇加密演算法,並將所述加密密鑰寫入所述加密演算法中;將包含所述加密密鑰的加密演算法組合到所述腳本資源源資料中。
較佳地,根據本申請案所述的方法,還可以包括:接收來自用戶端的校驗請求,其中,所述校驗請求包括:加密符記參數及被加密的參數,其中,所述加密符記參數為用戶端提取的網頁資料中的加密符記,所述被加密的參數為用戶端根據混淆後的所述加密密鑰和混淆後的所述加密演算法加密的用戶端中的相關參數;獲取與所述混淆後的加密密鑰對應的解密密鑰和與所述混淆後的加密演算法對應的解密演算法;基於所述解密密鑰和所述解密演算法,對所述校驗請求中被加密的參數進行完整性驗證。
較佳地,在根據本申請案所述的方法中,所述被加密的參數包括:加密符記參數、用戶端環境參數、用戶行為參數、調用其他瀏覽器插件參數。
較佳地,在根據本申請案所述的方法中,所述基於所述解密密鑰和所述解密演算法,對所述校驗請求中被加密的參數進行完整性驗證的步驟,包括:確定所述被加密的參數為非空值資料;透過所述解密密鑰和所述解密演算法,對非空值的所述被加密的參數進行解密;基於解密後的參數,提取加密符記,並確定所述提取的加密符記參數和所述校驗請求中的加密符記參數相同。
本申請案還提供了一種資料保護的裝置,包括:解析
模組,用以透過解析腳本資源源資料,獲得與所述腳本資源源資料相應的多個語義單元;形成模組,用以基於所述多個語義單元,形成樹形源資料,其中,所述樹形源資料包含多個語義結構,所述多個語義單元被填充在所述多個語義結構中;選擇模組,用以針對所述樹形源資料,選擇混淆策略;混淆模組,用以基於所述混淆策略,對所述樹形源資料進行等價混淆處理,以得到混淆樹形源資料;以及反編譯模組,用以將所述混淆樹形源資料反編譯成混淆後的腳本資源源資料。
較佳地,在根據本申請案所述的裝置中,所述混淆策略包括如下混淆處理方式的至少其中一個:變數名替換、函數名替換、數值替換、語句順序替換、去除空白、***無效代碼、代碼加密。
較佳地,在根據本申請案所述的裝置中,所述混淆模組還包括:產生單元,用以根據所述混淆策略中包含的一個或多個混淆處理方式,產生與所述一個或多個混淆處理方式中每一個混淆處理方式對應的混淆參數;以及混淆單元,基於所述一個或多個混淆處理方式和所對應的混淆參數,對所述樹形源資料進行混淆處理。
較佳地,在根據本申請案所述的裝置中,所述混淆樹形源資料和所述樹形源資料的執行順序相同。
較佳地,在根據本申請案所述的裝置中,所述反編譯模組還包括:拆分單元,用以透過對所述混淆樹形源資料進行拆分,得到多個混淆後的語義結構;以及建構單元,
用以基於所述多個混淆後的語義結構中混淆後的語義單元,建構所述混淆後的腳本資源源資料。
與現有技術相比,根據本申請案的技術方案存在以下有益效果:
本申請案採用編譯的方式將腳本資源源資料編譯成樹形源資料,並利用選擇的混淆策略而對樹形源資料進行等價混淆處理,藉以降低源資料的可讀性,增加了源資料的破解難度,從而提高源資料的安全性,同時保護了腳本資源源資料中主要的資料結構、資料流程程、函數入口、參數等資訊;本申請案利用隨機產生的加密密鑰和加密符記並透過隨機選取的加密演算法,對用戶端的相關參數進行資料加密,並作資料完整性校驗,藉以降低資料被非法操作的可能性,提高了資料安全。
500‧‧‧裝置
501‧‧‧解析模組
503‧‧‧形成模組
505‧‧‧選擇模組
507‧‧‧混淆模組
5071‧‧‧產生單元
5073‧‧‧混淆單元
509‧‧‧反編譯模組
5091‧‧‧拆分單元
5093‧‧‧建構單元
此處所說明的附圖用來提供對本申請案的進一步理解,構成本申請案的一部分,本申請案的示意性實施例及其說明用以解釋本申請案,並不構成對本申請案的不當限定。在附圖中:圖1是本申請案實施例的資料保護的混淆方法的流程圖;圖2是本申請案實施例的資料保護的加密符記產生的步驟的流程圖;
圖3是本申請案實施例的資料保護的腳本資源源資料加密演算法和加密密鑰產生步驟的流程圖;圖4是本申請案實施例的資料保護的資料完整性校驗的步驟的流程圖;以及圖5是本申請案實施例的資料保護的裝置的結構圖。
本申請案的主要思想在於,隨機產生加密密鑰並隨機選取加密演算法,將所述加密密鑰和所述加密演算法置於腳本資源源資料中,將在用戶端明文可見並且包含加密密鑰和加密演算法的腳本資源源資料進行等價混淆處理,增加源資料的破解難度,防止了腳本資源源資料被破解後,源資料(網頁資料、腳本資源源資料)中的加密符記、加密演算法、加密密鑰以及與客戶端相關的參數容易被利用,導致發生用戶端的相關資料被偽造、篡改、重放等非法操作,而且本申請案所述加密符記和所述加密密鑰為一次性加密工具,使用過後立即銷毀,極大的增加了資料非法性造作的成本,提高了資料安全。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀取媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀取媒體的示例。
電腦可讀取媒體包括永久性和非永久性、可移動式和非可移動式媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀取指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電氣可擦除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位影音光碟(DVD)或其他光學儲存、卡匣式磁帶,磁帶式磁片儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀取媒體不包括非暫態電腦可讀取媒體(transitory media),如調變的資料信號和載波。
為了使本申請案的目的、技術方案和優點更加清楚,以下結合附圖及具體實施例,對本申請案作進一步地詳細說明。
根據本申請案的實施例,提供了一種資料保護的方法。
圖1為本申請案實施例的資料保護的混淆方法的流程圖。
本申請案的對腳本資源源資料的混淆的方法,是對腳本資源源資料進行編譯,將腳本資源源資料解析成樹形源資料,透過對樹形源資料中多個語義結構進行邏輯關係轉
換和/或語義替換(混淆),同時保持和原執行結果一致,最後將混淆後的樹形源資料反編譯成混淆後的腳本資源源資料。該混淆後的腳本資源源資料和明文形式的腳本資源源資料執行效果相同,而且,混淆處理方式可選並且混淆參數隨機產生,這樣可以做到對同一腳本資源源資料的多次混淆的混淆結果不同,從而增加了腳本資源源資料的破解難度,提高了腳本資源源資料的安全性,並且,透過選擇不同的混淆處理方式,控制了混淆後的腳本資源源資料的長度,減輕了因為混淆後的腳本資源源資料體積過大,造成腳本資源載入和執行過程過慢。
在步驟S102處,透過解析腳本資源源資料,獲得與所述腳本資源源資料相應的多個語義單元。
具體而言,將所述腳本資源源資料讀取成長字串,掃描所述長字串,並對該長字串進行語法分析,對該長字串中包含的具有實質意義的語義單元進行拆分,以得到所述腳本資源源資料中包含的多個語義單元。例如:分析長字串中包含關鍵字for,說明該處涉及迴路結構,則可以查詢出長字串中包含for(;;){ }結構的語義單元。
在步驟S104處,基於所述多個語義單元,形成樹形源資料,其中,所述樹形源資料包含多個語義結構,所述多個語義單元被填充在所述多個語義結構中。
建構一個樹形語義結構定義庫,在該樹形語義結構定義庫中儲存了多個語義結構,如:Script根節點(在該根節點下可以掛載任意符合JavaScript樹形源資料特點的節
點)、Block結構(最小儲存和處理單位,可以掛載主要的執行過程)、函數聲明、函數調用、基礎資料節點(具體的數位或具體的字串)、變數聲明、變數賦值、變數引用、變數操作符、迴路語法結構等等。
每一個語義單元都會存在有一個對應的語義結構,當獲得與所述腳本資源源資料相應的多個語義單元後,在所述樹形語義結構定義庫中找到每一個語義單元對應的語義結構,將所述多個語義單元中的每一個語義單元掛載至對應的語義結構中,將多個掛載了語義單元的語義結構進行拼裝,以組成完整的樹形源資料。
進一步地,將語義單元掛載至對應的語義結構中,還可以理解為,基於所述語義單元,對所述多個語義結構中的字元和/或數值進行賦值,如,對語義結構中的函數名進行賦值,以使樹形語義結構定義庫的語義結構中的通用函數名變化成和所述腳本資源源資料中的函數名一致。
例如,解析出所述長字串中包含function add(num1,num2)語句,則表示該處代碼包括函數聲明,在樹形語義結構定義庫中查找對應所述函數聲明的語義結構struct function( ),基於function add(num1,num2),對所述語義結構進行賦值,則可以得到struct function add(num1,num2)。
在步驟S106處,針對所述樹形源資料,選擇混淆策略。
該混淆策略利用不同的混淆處理方法或不同混淆處理
方法的組合,實現對樹形源資料的混淆,並且保持混淆前和混淆後的樹形源資料的語義和執行順序一致,亦即,等價混淆處理。選擇不同的混淆處理方法得到的混淆程度不同,越難被破解則混淆度越高,越容易被破解則混淆度越低。可選地,可以隨機地選擇混淆策略。
所述混淆策略包括如下混淆處理方式的至少其中一個:變數名替換、函數名替換、數值替換、語句順序替換、去除空白、***無效代碼、代碼加密。
所述變數名替換是對樹形源資料中的變數名稱進行替換,同時確保該變數的定義、變數的賦值、變數的運算正確。所述變數名替換包括對變數聲明節點、變數賦值、變數引用節點中相同變數的變數名進行替換。進一步地,在進行變數名替換時,變數名替換參數隨機產生,並確保在同一個變數作用域內,不同變數的變數名不同,並且邏輯正確。例如,將變數名替換參數為隨機的沒有意義的字元,如“a”、“b”,用該沒有意義的字元進行變數名替換。
與變數名相似,所述函數名替換是對樹形源資料中的函數名稱進行替換,將原本有意義的函數名替換為沒有意義的字元,並確保在同一個函數作用域內,不同函數的函數名不同,並且邏輯正確。所述函數名替換包括對函數聲明節點、函數引用節點中相同函數的函數名進行替換。進一步地,在進行函數名替換時,函數名替換參數隨機產生,例如,產生函數名替換參數“aa”,並用該“aa”替
換函數名。
進行變數名替換和函數名替換可以將原本有意義的變數名和函數名替換為沒有意義的字元,加大了破解者的閱讀難度和分析難度。
所述數值替換是將樹形源資料中的數值替換成一個算數運算式,該算數運算式的計算結果是原來的數值。例如,隨機產生兩個數值替換參數,rand1和rand2;使用這兩個數值替換參數組成一個算數運算式(num+rand1*rand2)%rand2,以此表示一個數值,並且可以將該算數運算式用8進制、16進制進行表示,增加混淆度。例如:在樹形源資料中包含數值var1=1,將該數值替換為算數運算式(16進制)var1=0307%0x63。
所述語句順序替換是在不影響樹形源資料正常執行的情況下,對不要求調用順序的資料之間進行順序重組。具體而言,可以將能夠打亂順序的多個語句放置在一個迴路結構內,例如,使用Switch函數選擇語句順序,使原來的語句順序被打亂,但是在執行時,按照原來的語句順序執行。
所述去除空白是查詢樹形源資料中所有的回車符、語句與語句之間的所有空格,將所述回車符、空格去除,藉以降低資料的可讀性。
在樹形源資料中***無效代碼既不影響樹形源資料的原有邏輯,也不影響樹形源資料的正常執行。所以,可以預先建構一個無效代碼庫,在該無效代碼庫中隨機的選擇
一個或多個無效代碼***樹形源資料中,在***無效代碼後,該被***無效代碼的樹形源資料能夠正確執行。
所述代碼加密是對樹形源資料中的代碼進行加密,例如,對特定類型的關鍵字和特定長度的字串進行加密,對滿足特定長度的字串進行加密等。
該代碼加密從預設的代碼演算法庫中隨機選擇代碼加密演算法,並隨機產生代碼加密密鑰;基於所述代碼加密演算法和所述代碼加密密鑰,計算出需要加密的代碼對應的密文;從所述代碼演算法庫中查詢與所述代碼加密演算法對應的代碼解密演算法,將所述代碼加密密鑰作為代碼解密密鑰或者產生一個與該代碼加密密鑰對應的代碼解密密鑰;在樹形語義結構定義庫中查找所述代碼解密演算法對應的語義結構,將所述代碼解密密鑰和所述密文作為所述語義結構的參數填充到該語義結構中,將該語義結構掛載到樹形源資料的相應位置中,並且該位置確保所有代碼都可以調用該代碼解密演算法;將所述需要加密的代碼替換成解密演算法的調用形式,以使執行結果不發生變化,亦即,該執行結果為透過所述代碼解密演算法和所述代碼解密密鑰對所述密文進行解密後的代碼。
以上幾種混淆處理方式,可以單獨用於混淆處理,也可以選取其中幾個組合在一起來執行混淆處理,以得到混淆策略。每一種混淆處理方式或每一個混淆處理方式的組合都會獲得不同的混淆度。在應用中,可以預先確定一個混淆策略,也可以在多個混淆處理方式中隨機選取一個或
多個混淆處理方式作為混淆策略,還可以預先確定多個混淆策略並隨機選擇這多個混淆策略的其中之一來進行混淆處理。
多個混淆處理方式的組合不同或組合順序不同,可以得到不同的混淆效果,例如,混淆後的樹形源資料混淆度大小不同、體積大小不同等等。
例如,在表1中,組合1-組合3是7個混淆處理方式的三種不同組合形式,每一種組合形式中包含的混淆處理方式相同,但是由於組合順序不同,所得到混淆後的樹形源資料的混淆度從組合1-組合3依次減小,而且資料的體積也是從組合1-組合3依次減小。若需要混淆後的樹形源資料具有較小的代碼體積,可以選擇少量的混淆處理方式組成一個混淆策略,以獲得較小的混淆度,例如:表1中
的組合4。
需要說明的是,所述混淆處理方式並不限於在此描述的幾種,還可以包括本領域已知或未來開發的可以用於混淆處理的混淆處理方式。
在步驟S108處,基於所述混淆策略,對所述樹形源資料進行等價混淆處理,以得到混淆樹形源資料。
在執行每一種混淆處理方式時都會產生與該混淆處理方式對應的混淆參數,例如:變數名替換參數、函數名替換參數、數值替換參數、用於語句順序替換的迴路結構、無效代碼、代碼加密密鑰等等。
根據所述混淆策略中包含的一個或多個混淆處理方式,產生與所述一個或多個混淆處理方式中每一個混淆處理方式對應的混淆參數。由於混淆策略的不同或是混淆策略中混淆處理方式的組合順序不同或是混淆處理方式產生的混淆參數不同,使所述的混淆處理具有隨機性和一次性,換言之,利用本申請案的混淆處理方法可以使同一腳本資源源資料的每一次混淆結果不同。這樣有效地提高了源資料的安全性。
基於所述一個或多個混淆處理方式和所對應的混淆參數,對所述樹形源資料進行混淆處理。其中,對所述樹形源資料的混淆處理為等價混淆處理,所述等價混淆處理表示所述混淆樹形源資料和所述樹形源資料的執行順序相同。例如:基於所述代碼加密的混淆處理方法對樹形源資料中的字串“javascript”進行代碼加密(混淆),加密後
的結果為“GvajecsaGpirot”,雖然“javascript”和“GvajecsaGpirot”內容不同,但是執行混淆樹形源資料中混淆後的字串“GvajecsaGpirot”時,執行結果依舊為“javascript”,所以混淆後的字串“GvajecsaGpirot”等價於混淆前的字串“javascript”。進一步地,所述等價混淆處理可以用於保護所述樹形源資料中包含的重要資料,例如,在圖3和圖4的實施例中涉及的腳本資源源資料中包含的加密工具(加密演算法和加密密鑰),加密演算法和加密密鑰在經過等價混淆處理後,加密演算法和加密密鑰的內容可以發生變化但是執行結果不變,所述混淆後的加密演算法和混淆後的加密密鑰不影響後續使用,反而經過混淆處理加強了加密工具(加密演算法和加密密鑰)的破解難度。
在步驟S110處,將所述混淆樹形源資料反編譯成混淆後的腳本資源源資料。
遍歷該混淆樹形源資料,根據樹形語義結構定義庫中的語義結構,分析所述混淆樹形源資料中的語義結構,透過對所述混淆樹形源資料進行拆分,得到多個混淆後的語義結構。
在對樹形源資料進行混淆處理時,所述樹形源資料中語義結構,以及所述語義結構中填充的語義單元都進行了混淆處理,所以,基於所述多個混淆後的語義結構中混淆後的語義單元,建構所述混淆後的腳本資源源資料。
由於對所述樹形源資料進行的是等價混淆處理,所以
所述腳本資源源資料在混淆前和混淆後,執行結果相同,但是,因為對樹形源資料進行了混淆處理,所以混淆後的腳本資源源資料與混淆前的腳本資源源資料內容不同,混淆後的腳本資源源資料較為複雜,增加了破解難度,保護了源資料的安全。
將該混淆後的腳本資源源資料發送至用戶端,透過該混淆後的腳本資源源資料以實現對腳本資源的載入和運行。
本申請案所述的資料保護的混淆方法可以增加腳本資源源資料的資料複雜性,有效地保護資料安全,以防腳本資源源資料中涉及的重要資料被非法利用。換言之,所述的混淆方法可以保護所述腳本資源源資料中包含的加密工具,該加密工具用於保護與客戶端相關的參數,若腳本資源源資料中的加密工具等重要資料被破解,發生在用戶端中的操作行為即可被非法操作。
在對腳本資源源資料進行上述混淆方法之前,可以預先將需要保護的重要資料放置於腳本資源源資料中,透過混淆處理的方式保護所述重要資料資料安全。
在一個實施例中,所述混淆方法可以用來保護腳本資源源資料中的加密工具(加密密鑰和加密演算法),並透過保護所述加密工具,實現對用戶端中的相關參數的保護。
具體而言,所述加密工具用以加密所述用戶端中的相關參數,在加密過程中,需要使用加密符記。首先參考圖
2來說明本申請案實施例的資料保護的加密符記產生的步驟的流程圖。
在步驟S202處,接收來自用戶端的頁面請求,並隨機產生與該頁面請求對應的加密符記。
接收來自用戶端的頁面請求,該頁面請求用以建立該用戶端與伺服器之間的網路會話,獲得該網路會話的會話符記,以實現對該伺服器的訪問,從而最終獲取與所述頁面請求對應的網頁資料。
針對與該頁面請求對應的會話符記,隨機產生加密符記,該會話符記和該加密符記存在一一對應關係,將所述加密符記與所述會話符記的對應關係儲存於加密符記庫中。其中,所述加密符記可以是一個隨機長字串,例如,由資料或字母所組成的,不少於16位元的字串;所述網路會話的會話符記可以是一個具有唯一性的標識,用於表示用戶端與交互的伺服器之間的不間斷的通信時間間隔,也可以用於識別用戶端並保持該用戶端與伺服器之間的通信。例如,Web中的Session(會話)。
在步驟204處,將所述加密符記寫入所述網頁資料的相關位置中。例如,將產生的加密符記寫入所述網頁資料的語句:<script type="text/javascript" src="http://xxx.com/yyy.js?token=abcdefghijklmn0123456789"></script>中,其中:語句“http://xxx.com/yyy.js”為需要用戶端載入的JavaScript腳本資源位址,並且透過執行該腳本資源位址指向的腳本資源源資料來實現對用戶端
中的相關參數的收集和資料加密;語句“token=abcdefghijklmn0123456789”為加密符記,該加密符記的值“abcdefghijklmn0123456789”由伺服器端隨機產生。
在步驟S206處,將包含加密符記的網頁資料返回給用戶端。基於所述包含加密符記的網頁資料,用戶端對所述頁面進行渲染,並將所述加密符記渲染到網頁中。
在網頁渲染過程中,由於在用戶端中不具備JavaScript腳本資源,所以,需要用戶端向伺服器再次發送腳本資源請求,以獲取對應該腳本資源請求的腳本資源源資料,以完成腳本資源的載入。
與現有技術不同,本申請案實施例的腳本資源載入的步驟還包括腳本資源源資料加密演算法和加密密鑰的產生步驟和腳本資源源資料的混淆步驟。基於加密演算法和加密密鑰對與用戶端的相關參數進行資料加密,並由伺服器對該加密後的相關參數進行完整性校驗,以確定所述用戶端產生的資料是否為合法資料。其中,加密密鑰為隨機產生,加密演算法是在加密演算法庫中隨機選擇,加大了資源源代碼的破解難度;以及對包含有所述加密演算法和加密密鑰的腳本資源源資料進行混淆,增強明文形式的腳本資源源資料在內容的複雜度,加大腳本資源源資料的閱讀難度和破解難度的同時可以保護腳本資源源資料中主要的資料結構、資料流程程、函數入口、參數等資訊。
加密符記產生後,需要選擇加密演算法以及產生加密
密鑰。如圖3所示,圖3是本申請案實施例的資料保護的腳本資源源資料加密演算法和加密密鑰產生步驟的流程圖。
在步驟S302處,接收來自用戶端的腳本資源請求。
其中,所述腳本資源請求用於獲取對應的腳本資源源資料,並且在所述腳本資源請求中包含加密符記參數。該加密符記參數等價於伺服器隨機產生的加密符記,該加密符記參數用以請求與該加密符記相對應的加密密鑰和加密演算法。
在步驟S304處,基於所述加密符記參數,產生與所述加密符記參數對應的加密密鑰。
伺服器端接收到該腳本資源請求,基於該腳本資源請求中的加密符記參數,隨機產生一個具有唯一性的加密密鑰,並將該加密符記和與該加密符記對應的所述加密密鑰保存至加密密鑰庫中,在該加密密鑰庫中還保存與該加密密鑰相對應的解密密鑰,進一步地,該解密密鑰可以與該加密密鑰相同,也可以產生與該加密密鑰相關的解密密鑰。
在步驟S306處,根據所述加密符記參數,選擇加密演算法,並將所述加密密鑰寫入所述加密演算法中。
基於該加密符記參數,在預設的加密演算法庫中選擇一個加密演算法,並記錄該加密符記對應的加密演算法的標籤,其中,該標籤用於確定唯一一個加密演算法和與該加密演算法相對應的解密演算法。進一步地,在選擇加密
演算法時,可以隨機選擇加密演算法,也可以根據預定規則選擇加密演算法,並且,儲存於該加密演算法庫中的加密演算法可以是對稱加密演算法,也可以是非對稱加密演算法,以及定期對該加密演算法庫中儲存的加密演算法進行維護和更新,提高加密演算法的安全性。
將所述加密密鑰寫入所述加密演算法中,例如,將該加密密鑰作為該加密演算法的參數掛載在加密演算法的代碼中。
在步驟S308處,將包含所述加密密鑰的加密演算法組合到所述腳本資源源資料中。換言之,並將代表加密演算法的加密演算法代碼(包含加密密鑰)組合至代表JavaScript腳本資源的腳本資源源代碼中,將該包含有加密密鑰的加密演算法放置於該腳本資源源資料的相關位置中,例如,放置於所述腳本資源源代碼的第一層代碼中,使該包含加密密鑰的加密演算法不被嵌套在任何迴路結構中。
將該包含有加密演算法和加密密鑰的腳本資源源資料發送至用戶端,該用戶端可以利用腳本資源源資料中加密演算法和加密密鑰對採集的客戶端相關的參數進行加密保護。為了進一步加強資料保護,如上所述地採用圖1的混淆方法對該包含有加密演算法和加密秘鑰的腳本資源源資料進行混淆處理,既不影響資料的執行結果還可以增加破解難度,透過保護加密工具從而進一步保護了資料安全。
在另一個實施例中,還可以對所述用戶端中的相關參
數進行校驗,以驗證透過該混淆處理方法保護源資料的安全性和保護用戶端中相關資料的安全性所達到的效果。
在運行所述腳本資源源資料時,收集用戶端中的相關參數,該相關參數可以用來分析用戶端中的操作行為,例如:點擊滑鼠的次數,調用瀏覽器插件的種類等等。需要收集的用戶端的操作行為可以被預先寫入腳本資源源資料中,透過在用戶端中運行該腳本資源源資料,達到收集並加密與該操作行為相關的參數的目的。
所述用戶端中的相關參數可以包括:用戶端環境參數、用戶行為參數、調用其他瀏覽器插件參數、加密符記參數等等,並將所述收集的用戶端中的相關參數,利用混淆後的腳本資源源資料中的加密演算法和加密密鑰進行資料加密。
具體而言,所述用戶端環境參數,例如:瀏覽器版本、作業系統版本、用戶端尺寸(大小、長寬)、螢幕解析度等等。
所述用戶行為參數,例如:滑鼠移動資訊、滑鼠點擊資訊、鍵盤敲擊資訊、焦點移動資訊等等。
所述調用其他瀏覽器插件參數,例如:調用其他瀏覽器控制項、獲得用戶端MAC位址等。
所述加密符記參數是指寫入所述網頁源代碼中的加密符記。
利用所述混淆後的腳本資源源資料中的混淆後的加密演算法和混淆後的加密密鑰對所述用戶端中的相關參數進
行資料加密,將加密後的所述相關參數發送至伺服器進行操作行為分析,為了確定該用戶端中的相關參數是否已經發生非法操作,在進行所述操作行為分析之前,還需要對加密的資料進行資料完整性校驗。向伺服器發送校驗請求,將所述加密資料(加密後的用戶端中的相關參數)和所述網頁資料中的加密符記,作為該校驗請求的參數,基於該參數做資料完整性校驗,以確定是否存在偽造、篡改、重放等非法操作。
圖4是本申請案實施例的資料保護的資料完整性校驗的步驟的流程圖。
該資料完整性校驗的步驟,用以檢查所述加密資料是否存在(空值為不存在)、所述加密資料是否可以解密、是否存在資料重放。
在步驟S402處,接收來自用戶端的校驗請求,其中,所述校驗請求包括:加密符記參數及被加密的參數,其中,所述加密符記參數為用戶端提取的網頁資料中的加密符記,所述被加密的參數為用戶端根據混淆後的所述加密密鑰和混淆後的所述加密演算法加密的用戶端中的相關參數。
所述被加密的參數包括:加密符記參數、用戶端環境參數、用戶行為參數、調用其他瀏覽器插件參數等等。
在步驟S404處,獲取與所述混淆後的加密密鑰對應的解密密鑰和與所述混淆後的加密演算法對應的解密演算法。
在加密演算法庫中保存了與加密符記對應的加密演算法的解密演算法,在加密密鑰庫中保存了加密符記對應的加密密鑰的解密密鑰,並且,所述加密演算法和所述加密密鑰在經過等價混淆處理後語義未發生變化,所以,在所述加密演算法庫中可以查找與混淆後的加密演算法對應的解密演算法以及在所述加密秘鑰庫中可以查找與混淆後的加密密鑰對應的解密密鑰。根據所述校驗請求中包含的加密符記參數,獲取與該加密符記參數對應的解密演算法和解密密鑰。
在步驟S406處,基於所述解密密鑰和所述解密演算法,對所述校驗請求中被加密的參數進行完整性驗證。
對所述校驗請求中被加密的參數進行完整性驗證,首先,要確定所述被加密的參數為非空值資料,若為空值,則表示該被加密的參數不存在,資料完整性校驗失效,並將該加密的參數確定為非法資料;若為非空值,則進行資料解密校驗。
然後,透過所述解密密鑰和所述解密演算法,對非空值的所述被加密的參數進行解密。基於查找到的解密演算法和解密密鑰對所述加密的參數進行解密處理。若解密失敗,則表示該被加密的參數可能發生過非法操作,資料完整性校驗失效,並確定該加密的參數為非法資料;若解密成功,則產生與該被加密的參數對應的解密後的參數,並對該解密參數進行防資料重放校驗。
最後,基於解密後的參數,提取該參數中加密符記參
數(加密符記),並確定所述提取的加密符記參數和所述校驗請求中的加密符記參數相同。進一步地,還可以將加密符記庫中與該網路會話對應的會話符記與該提取出的加密符記進行比較,判斷是否相同,若不相同,則判斷為資料重放,這樣將該解密後的參數確定為非法資料;若相同,則將該解密後的加密符記參數與接收到驗證請求中的加密符記參數進行比較,若不相同,則將該解密資料確定為非法資料,若相同,則所述解密資料的防重放校驗通過。
當用戶提交的加密的參數通過了資料完整性校驗,則可以確定該加密的參數為合法資料,這時,可以利用解密的參數進行用戶端的操作行為分析。
對於資料完整性校驗中未通過的非法資料,可以向用戶端發送用戶資料異常的提示資訊。
在資料完整性校驗結束後,將本次網路會話過程中產生的加密符記和加密密鑰從加密符記庫和加密密鑰庫中刪除,藉以確保所述加密符記和加密密鑰不再被使用,達到加密符記和加密密鑰的一次性,藉以增加源資料的破解難度。
本申請案還提供了一種資料保護的裝置。
參考圖5,圖5是本申請案實施例的資料保護的裝置的結構圖。
根據本申請案的所述裝置包括解析模組501,形成模組503、選擇模組505、混淆模組507和反編譯模組
509。
解析模組501,用以透過解析腳本資源源資料,獲得與所述腳本資源源資料相應的多個語義單元。
形成模組503,用以基於所述多個語義單元,形成樹形源資料,其中,所述樹形源資料包含多個語義結構,所述多個語義單元被填充在所述多個語義結構中。
選擇模組505,用以針對所述樹形源資料,選擇混淆策略。
所述混淆策略包括如下混淆處理方式的至少其中一個:變數名替換、函數名替換、數值替換、語句順序替換、去除空白、***無效代碼、代碼加密。
混淆模組507,用以基於所述混淆策略,對所述樹形源資料進行等價混淆處理,以得到混淆樹形源資料。
所述混淆模組還包括:產生單元5071,用以根據所述混淆策略中包含的一個或多個混淆處理方式,產生與所述一個或多個混淆處理方式中每一個混淆處理方式對應的混淆參數;以及混淆單元5073,基於所述一個或多個混淆處理方式和所對應的混淆參數,對所述樹形源資料進行混淆處理。
所述等價混淆處理,表示所述混淆樹形源資料和所述樹形源資料的執行順序相同。
反編譯模組509,用以將所述混淆樹形源資料反編譯成混淆後的腳本資源源資料。
所述反編譯模組509還包括拆分單元5091,用以透
過對所述混淆樹形源資料進行拆分,得到多個混淆後的語義結構;以及建構單元5093,用以基於所述多個混淆後的語義結構中混淆後的語義單元,建構所述混淆後的腳本資源源資料。
本申請案採用編譯的方式將腳本資源源資料編譯成樹形源資料,並利用選擇的混淆策略而對樹形源資料進行等價混淆處理,藉以降低源資料的可讀性,增加了源資料的破解難度,從而提高源資料的安全性,同時保護了腳本資源源資料中主要的資料結構、資料流程程、函數入口、參數等資訊;本申請案利用隨機產生的加密密鑰和加密符記並透過隨機選取的加密演算法,對用戶端的相關參數進行資料加密,並作資料完整性校驗,藉以降低資料被非法操作的可能性,提高了資料安全。
由於圖5所描述的本申請案的裝置所包括的各個模組的具體實施方式與圖3所示的資料保護的腳本資源源資料的混淆步驟的具體實施方式是對應的,由於已經對圖3進行了詳細描述,所以為了不模糊本申請案,在此不再對各個模組的具體細節進行描述。
本說明書中的各個實施例一般採用遞進的方式描述,每一個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本申請案可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組或單元。一般地說,程式模
組或單元可以包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。一般來說,程式模組或單元可以由軟體、硬體或兩者的結合來予以實現。也可以在分散式計算環境中實踐本申請案,在這些分散式計算環境中,由透過通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組或單元可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
最後,還需要說明的是,術語“包括”、“包含”或者其任何其他變型意在涵蓋非排他性的包含,從而使得包括一系列組成要素的過程、方法、物件或者設備不僅包括那些組成要素,而且還包括沒有明確列出的其他組成要素,或者是還包括為這種過程、方法、物件或者設備所固有的組成要素。在沒有更多限制的情況下,由語句“包括一個......”限定的組成要素,並不排除在包括所述組成要素的過程、方法、物件或者設備中還存在另外的相同組成要素。
本領域內的技術人員應明白,本申請案的實施例可提供為方法、系統、或電腦程式產品。因此,本申請案可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請案可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本文中應用了具體個例對本申請案的原理及實施方式
進行了闡述,以上實施例的說明只是用於幫助理解本申請案的方法及其主要思想;同時,對於本領域的一般技術人員,依據本申請案的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應被理解為對本申請案的限制。
Claims (12)
- 一種資料保護的方法,其特徵在於,包括:透過解析腳本資源源資料,獲得與該腳本資源源資料相應的多個語義單元;基於該多個語義單元,形成樹形源資料,其中,該樹形源資料包含多個語義結構,該多個語義單元被填充在該多個語義結構中;針對該樹形源資料,選擇混淆策略;基於該混淆策略,對該樹形源資料進行等價混淆處理,以得到混淆樹形源資料;將該混淆樹形源資料反編譯成混淆後的腳本資源源資料;接收來自用戶端的腳本資源請求,其中,該腳本資源請求用以獲取對應的腳本資源源資料,並且在該腳本資源請求中包含加密符記參數;基於該加密符記參數,產生與該加密符記參數對應的加密密鑰;根據該加密符記參數,選擇加密演算法,並將該加密密鑰寫入該加密演算法中;將包含該加密密鑰的加密演算法組合到該腳本資源源資料中;接收來自用戶端的校驗請求,其中,該校驗請求包括:加密符記參數及被加密的參數,其中,該加密符記參數為用戶端提取的網頁資料中的加密符記,該被加密的參 數為用戶端根據混淆後的該加密密鑰和混淆後的該加密演算法加密的用戶端中的相關參數;獲取與該混淆後的加密密鑰對應的解密密鑰和與該混淆後的加密演算法對應的解密演算法;以及基於該解密密鑰和該解密演算法,對該校驗請求中被加密的參數進行完整性驗證。
- 根據申請專利範圍第1項所述的方法,其中,該混淆策略包括下列混淆處理方式的至少其中一個:變數名替換、函數名替換、數值替換、語句順序替換、去除空白、***無效代碼、代碼加密。
- 根據申請專利範圍第2項所述的方法,其中,基於該混淆策略,對該樹形源資料進行等價混淆處理的步驟,包括:根據該混淆策略中所包含的一個或多個混淆處理方式,產生與該一個或多個混淆處理方式中每一個混淆處理方式對應的混淆參數;以及基於該一個或多個混淆處理方式和所對應的混淆參數,對該樹形源資料進行混淆處理。
- 根據申請專利範圍第1項所述的方法,其中,該混淆樹形源資料和該樹形源資料的執行順序相同。
- 根據申請專利範圍第1項所述的方法,其中,該將該混淆後的樹形源資料反編譯成混淆後的腳本資源源資料的步驟包括:透過對該混淆樹形源資料進行拆分,得到多個混淆後 的語義結構;以及基於該多個混淆後的語義結構中混淆後的語義單元,建構該混淆後的腳本資源源資料。
- 根據申請專利範圍第1項所述的方法,其中,該被加密的參數包括:加密符記參數、用戶端環境參數、用戶行為參數、調用其他瀏覽器插件參數。
- 根據申請專利範圍第6項所述的方法,其中,該基於該解密密鑰和該解密演算法,對該校驗請求中被加密的參數進行完整性驗證的步驟,包括:確定該被加密的參數為非空值資料;透過該解密密鑰和該解密演算法,對非空值的該被加密的參數進行解密;以及基於解密後的參數,提取加密符記,並確定該提取的加密符記參數和該校驗請求中的加密符記參數相同。
- 一種資料保護的裝置,其特徵在於,包括:解析模組,用以透過解析腳本資源源資料,獲得與該腳本資源源資料相應的多個語義單元;形成模組,用以基於該多個語義單元,形成樹形源資料,其中,該樹形源資料包含多個語義結構,該多個語義單元被填充在該多個語義結構中;選擇模組,用以針對該樹形源資料,選擇混淆策略;混淆模組,用以基於該混淆策略,對該樹形源資料進行等價混淆處理,以得到混淆樹形源資料;以及反編譯模組,用以將該混淆樹形源資料反編譯成混淆 後的腳本資源源資料,還包括:接收來自用戶端的腳本資源請求,其中,該腳本資源請求用以獲取對應的腳本資源源資料,並且在該腳本資源請求中包含加密符記參數;基於該加密符記參數,產生與該加密符記參數對應的加密密鑰;根據該加密符記參數,選擇加密演算法,並將該加密密鑰寫入該加密演算法中;將包含該加密密鑰的加密演算法組合到該腳本資源源資料中;接收來自用戶端的校驗請求,其中,該校驗請求包括:加密符記參數及被加密的參數,其中,該加密符記參數為用戶端提取的網頁資料中的加密符記,該被加密的參數為用戶端根據混淆後的該加密密鑰和混淆後的該加密演算法加密的用戶端中的相關參數;獲取與該混淆後的加密密鑰對應的解密密鑰和與該混淆後的加密演算法對應的解密演算法;以及基於該解密密鑰和該解密演算法,對該校驗請求中被加密的參數進行完整性驗證。
- 根據申請專利範圍第8項所述的裝置,其中,該混淆策略包括下列混淆處理方式的至少其中一個:變數名替換、函數名替換、數值替換、語句順序替換、去除空白、***無效代碼、代碼加密。
- 根據申請專利範圍第9項所述的裝置,其中,該混淆模組還包括:產生單元,用以根據該混淆策略中包含的一個或多個混淆處理方式,產生與該一個或多個混淆處理方式中每一個混淆處理方式對應的混淆參數;以及混淆單元,基於該一個或多個混淆處理方式和所對應的混淆參數,對該樹形源資料進行混淆處理。
- 根據申請專利範圍第8項所述的裝置,其中,該混淆樹形源資料和該樹形源資料的執行順序相同。
- 根據申請專利範圍第8項所述的裝置,其中,該反編譯模組還包括:拆分單元,用以透過對該混淆樹形源資料進行拆分,得到多個混淆後的語義結構;以及建構單元,用以基於該多個混淆後的語義結構中混淆後的語義單元,建構該混淆後的腳本資源源資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310186287.7A CN104166822B (zh) | 2013-05-20 | 2013-05-20 | 一种数据保护的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201445355A TW201445355A (zh) | 2014-12-01 |
TWI598765B true TWI598765B (zh) | 2017-09-11 |
Family
ID=51896782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102132564A TWI598765B (zh) | 2013-05-20 | 2013-09-10 | Data protection methods and devices |
Country Status (7)
Country | Link |
---|---|
US (1) | US9836612B2 (zh) |
EP (1) | EP3000068B1 (zh) |
JP (1) | JP6257754B2 (zh) |
CN (1) | CN104166822B (zh) |
HK (1) | HK1202666A1 (zh) |
TW (1) | TWI598765B (zh) |
WO (1) | WO2014189900A1 (zh) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095846B2 (en) * | 2013-05-30 | 2018-10-09 | Jscrambler S.A. | Web application protection |
WO2016068847A1 (en) * | 2014-10-27 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Key splitting |
WO2016068974A1 (en) | 2014-10-31 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | System and method for vulnerability remediation verification |
JP6121981B2 (ja) * | 2014-12-18 | 2017-04-26 | ファナック株式会社 | 加工時に使用した変数値を埋め込んだ変数確認用ncプログラムの作成機能を備えた数値制御装置 |
WO2016108902A1 (en) * | 2014-12-31 | 2016-07-07 | Hewlett Packard Enterprise Development Lp | Enterprise service bus logging |
US20160328539A1 (en) * | 2015-05-05 | 2016-11-10 | Nxp B.V. | Obscuring Software Code With Split Variables |
JP6481515B2 (ja) * | 2015-05-29 | 2019-03-13 | 富士通株式会社 | 情報処理装置、コンパイル方法、及びコンパイラプログラム |
CN107533614B (zh) * | 2015-08-14 | 2020-10-16 | 慧与发展有限责任合伙企业 | 用于存储数据的装置和存储介质 |
TWI603276B (zh) * | 2015-11-18 | 2017-10-21 | 財團法人資訊工業策進會 | 網頁內容顯示系統及方法 |
CN106897211A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 针对混淆脚本语言的定位方法和*** |
US20170187690A1 (en) * | 2015-12-24 | 2017-06-29 | Mcafee, Inc. | Mitigating bot scans of sensitive communications |
CN107180168A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 文件加载、生成方法和装置,以及智能终端 |
CN105897415B (zh) * | 2016-06-06 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 一种提升兼容性的数字签名生成方法及*** |
CN106331752A (zh) * | 2016-08-31 | 2017-01-11 | 杭州当虹科技有限公司 | 一种流媒体视频文件的保护方法 |
US10410014B2 (en) | 2017-03-23 | 2019-09-10 | Microsoft Technology Licensing, Llc | Configurable annotations for privacy-sensitive user content |
US10380355B2 (en) * | 2017-03-23 | 2019-08-13 | Microsoft Technology Licensing, Llc | Obfuscation of user content in structured user data files |
US10671753B2 (en) | 2017-03-23 | 2020-06-02 | Microsoft Technology Licensing, Llc | Sensitive data loss protection for structured user content viewed in user applications |
CN107085677A (zh) * | 2017-03-29 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种Flash中防止代码被破解的方法及*** |
CN109033764B (zh) * | 2017-06-09 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 反混淆处理方法及终端、计算机设备 |
US10977221B2 (en) * | 2017-10-20 | 2021-04-13 | Hewlett Packard Enterprise Development Lp | Encoding of data formatted in human-readable text according to schema into binary |
CN107908392B (zh) * | 2017-11-13 | 2020-12-22 | 平安科技(深圳)有限公司 | 数据采集工具包定制方法、装置、终端和存储介质 |
CN109861944A (zh) * | 2017-11-22 | 2019-06-07 | 浙江智贝信息科技有限公司 | 一种分布式信息安全处理及交互方法及其交互*** |
CN109858241B (zh) * | 2017-11-22 | 2021-12-17 | 浙江智贝信息科技有限公司 | 一种单设备代码安全执行和交互方法及其交互*** |
CN109861945A (zh) * | 2017-11-22 | 2019-06-07 | 浙江智贝信息科技有限公司 | 一种分布式代码运行及交互安全方法及其*** |
CN108363911B (zh) * | 2018-02-11 | 2021-10-29 | 西安四叶草信息技术有限公司 | 一种Python脚本混淆、水印的方法及装置 |
KR102109864B1 (ko) * | 2018-02-22 | 2020-05-12 | 주식회사 알파비트 | 문서객체모델 레벨의 키 입력 암호화 장치 및 방법 |
CN108268178B (zh) * | 2018-02-27 | 2021-07-13 | Tcl移动通信科技(宁波)有限公司 | 移动终端触摸屏坐标输出控制、移动终端及存储介质 |
CN108683627B (zh) * | 2018-03-23 | 2020-12-29 | 深圳市超算科技开发有限公司 | 一种物联网节点间通信加密方法及*** |
CN108471423B (zh) * | 2018-04-02 | 2021-03-09 | 北京奇艺世纪科技有限公司 | 一种私钥的获取方法及*** |
CN108846265B (zh) * | 2018-04-18 | 2021-07-30 | 北京奇虎科技有限公司 | 一种程序加固方法及装置 |
CN110196718B (zh) * | 2018-05-10 | 2023-07-25 | 腾讯科技(深圳)有限公司 | 脚本混淆方法 |
CN108829396B (zh) * | 2018-06-15 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 脚本编译的方法、脚本执行的方法、相关装置及*** |
CN109145535A (zh) * | 2018-08-13 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种前端页面提供方法及装置 |
CN109344575B (zh) * | 2018-08-17 | 2022-08-26 | 北京奇虎科技有限公司 | Lua脚本文件处理方法、装置及计算设备 |
CN109450906A (zh) * | 2018-11-20 | 2019-03-08 | 杭州安恒信息技术股份有限公司 | 基于动态字符集混淆数据的方法和装置 |
CN109711118A (zh) * | 2018-12-29 | 2019-05-03 | 上海上讯信息技术股份有限公司 | 一种基于插件化的iOS安全编译器及安全编译方法 |
US11095667B2 (en) | 2019-02-14 | 2021-08-17 | Forcepoint Llc | Session-based recording of association of activities |
CN109918917B (zh) * | 2019-03-19 | 2021-06-08 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
US11250169B2 (en) | 2019-05-02 | 2022-02-15 | Bank Of America Corporation | System for real-time authenticated obfuscation of electronic data |
CN110300121B (zh) * | 2019-07-23 | 2021-12-07 | 上海易点时空网络有限公司 | 基于全双工通讯的数据处理方法及装置 |
CN110555291B (zh) * | 2019-08-06 | 2021-08-27 | 苏宁云计算有限公司 | 网页脚本代码保护方法及装置 |
US11086991B2 (en) * | 2019-08-07 | 2021-08-10 | Advanced New Technologies Co., Ltd. | Method and system for active risk control based on intelligent interaction |
CN112804184B (zh) * | 2019-11-13 | 2023-10-10 | 阿里巴巴集团控股有限公司 | 数据混淆方法、装置及设备 |
US11610039B2 (en) * | 2020-03-31 | 2023-03-21 | Arm Limited | Creating and/or enhancing hardware obscurity via randomization points |
US11550548B2 (en) | 2020-03-31 | 2023-01-10 | Arm Limited | Autonomous pseudo-random seed generator for computing devices |
US11748460B2 (en) * | 2020-04-27 | 2023-09-05 | Imperva, Inc. | Procedural code generation for challenge code |
CN112035857B (zh) * | 2020-08-26 | 2024-03-19 | 深圳市百富智能新技术有限公司 | 数据保护方法、装置、设备及介质 |
CN113268736A (zh) * | 2021-06-24 | 2021-08-17 | 深圳平安智汇企业信息管理有限公司 | 一种信息处理方法、装置及电子设备 |
CN115085974A (zh) * | 2022-05-20 | 2022-09-20 | 武汉虹旭信息技术有限责任公司 | 流量混淆方法及装置 |
CN115935302B (zh) * | 2022-12-13 | 2023-09-15 | 深圳市探鸽智能科技有限公司 | 安卓安装包的生成方法和装置 |
CN116305131B (zh) * | 2023-05-20 | 2023-08-11 | 北京长亭科技有限公司 | 脚本静态去混淆方法及*** |
CN116405210B (zh) * | 2023-05-29 | 2023-08-15 | 中国科学院大学 | 网络报文标签混淆方法、装置和电子设备 |
CN117235814B (zh) * | 2023-11-16 | 2024-01-26 | 贵州华谊联盛科技有限公司 | 一种含有时间序列关联混淆数据的数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070299928A1 (en) * | 2006-06-22 | 2007-12-27 | Pooja Kohli | Maintaining sessions using cookie updation |
US20080123861A1 (en) * | 2006-11-03 | 2008-05-29 | Chow Richard T | User privacy through one-sided cookies |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4739465B2 (ja) * | 1997-06-09 | 2011-08-03 | インタートラスト テクノロジーズ コーポレイション | ソフトウェアセキュリティを増強するための混乱化技術 |
US6829614B2 (en) * | 1999-09-30 | 2004-12-07 | Nec Corporation | Scrambling method of the data files |
US7065652B1 (en) | 2000-06-21 | 2006-06-20 | Aladdin Knowledge Systems, Ltd. | System for obfuscating computer code upon disassembly |
JP3766367B2 (ja) | 2002-10-18 | 2006-04-12 | 株式会社エヌ・ティ・ティ・ドコモ | 情報配信方法 |
DE10316951A1 (de) * | 2003-04-12 | 2004-10-21 | Daimlerchrysler Ag | Verfahren zur Überprüfung der Datenintegrität von Software in Steuergeräten |
KR100568228B1 (ko) * | 2003-05-20 | 2006-04-07 | 삼성전자주식회사 | 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치 |
US7587616B2 (en) * | 2005-02-25 | 2009-09-08 | Microsoft Corporation | System and method of iterative code obfuscation |
US7620987B2 (en) * | 2005-08-12 | 2009-11-17 | Microsoft Corporation | Obfuscating computer code to prevent an attack |
US20090132419A1 (en) | 2007-11-15 | 2009-05-21 | Garland Grammer | Obfuscating sensitive data while preserving data usability |
JP5395372B2 (ja) * | 2008-06-19 | 2014-01-22 | 株式会社東芝 | 通信装置、鍵サーバ及びデータ |
JP5132782B2 (ja) * | 2008-11-11 | 2013-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 提供装置、システム、サーバ装置、プログラム及び方法 |
CN101807239A (zh) * | 2010-03-29 | 2010-08-18 | 山东高效能服务器和存储研究院 | 一种防止源代码反编译的方法 |
CN101986326A (zh) * | 2010-12-01 | 2011-03-16 | 浙江核新同花顺网络信息股份有限公司 | 保护软件安全的方法及装置 |
US8806223B2 (en) | 2011-05-03 | 2014-08-12 | Douglas Norman Crowe | System and method for management of encrypted data |
CA2840094C (en) | 2011-06-21 | 2016-10-18 | The Nielsen Company (Us), Llc | Methods and apparatus to measure exposure to streaming media |
JP2013061843A (ja) | 2011-09-14 | 2013-04-04 | Fujifilm Corp | コンピュータ・ソフトウエア解析システムならびにクライアント・コンピュータ,その動作制御方法およびその動作プログラム |
CA3043707C (en) * | 2011-09-30 | 2022-06-14 | Paypal, Inc. | Differential client-side encryption of information originating from a client |
JP5882683B2 (ja) * | 2011-11-02 | 2016-03-09 | キヤノン株式会社 | 情報処理装置およびその方法 |
US8914859B2 (en) | 2011-11-07 | 2014-12-16 | International Business Machines Corporation | Managing the progressive legible obfuscation and de-obfuscation of public and quasi-public broadcast messages |
WO2013091709A1 (en) | 2011-12-22 | 2013-06-27 | Fundació Privada Barcelona Digital Centre Tecnologic | Method and apparatus for real-time dynamic transformation of the code of a web document |
US8910297B2 (en) | 2012-01-05 | 2014-12-09 | Vmware, Inc. | Securing user data in cloud computing environments |
US9100382B2 (en) * | 2012-03-20 | 2015-08-04 | Qualcomm Incorporated | Network security configuration using short-range wireless communication |
JP2014186905A (ja) | 2013-03-25 | 2014-10-02 | Honda Motor Co Ltd | 燃料電池スタック |
-
2013
- 2013-05-20 CN CN201310186287.7A patent/CN104166822B/zh active Active
- 2013-09-10 TW TW102132564A patent/TWI598765B/zh active
-
2014
- 2014-05-16 US US14/280,145 patent/US9836612B2/en active Active
- 2014-05-20 JP JP2016515006A patent/JP6257754B2/ja active Active
- 2014-05-20 WO PCT/US2014/038746 patent/WO2014189900A1/en active Application Filing
- 2014-05-20 EP EP14734976.5A patent/EP3000068B1/en active Active
-
2015
- 2015-03-25 HK HK15103039.0A patent/HK1202666A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070299928A1 (en) * | 2006-06-22 | 2007-12-27 | Pooja Kohli | Maintaining sessions using cookie updation |
US20080123861A1 (en) * | 2006-11-03 | 2008-05-29 | Chow Richard T | User privacy through one-sided cookies |
Non-Patent Citations (1)
Title |
---|
http://web.archive.org/web/20100819121958/http://github.com/mishoo/UglifyJS 張寶國, "基于JAVA的代碼混淆研究", CNKI中國知識資源總庫, 2009-04-15 * |
Also Published As
Publication number | Publication date |
---|---|
EP3000068B1 (en) | 2019-11-20 |
US9836612B2 (en) | 2017-12-05 |
HK1202666A1 (zh) | 2015-10-02 |
EP3000068A1 (en) | 2016-03-30 |
TW201445355A (zh) | 2014-12-01 |
US20140344569A1 (en) | 2014-11-20 |
JP2016521875A (ja) | 2016-07-25 |
WO2014189900A1 (en) | 2014-11-27 |
JP6257754B2 (ja) | 2018-01-10 |
CN104166822B (zh) | 2017-10-13 |
CN104166822A (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI598765B (zh) | Data protection methods and devices | |
JP5996810B2 (ja) | 自己書換え基盤のアプリケーションコード難読化装置及びその方法 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
WO2019091016A1 (zh) | 数据采集工具包定制方法、装置、终端和存储介质 | |
CN113010856A (zh) | 一种动态非对称加解密的JavaScript代码混淆方法与*** | |
CN114547558B (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
CN108111622A (zh) | 一种下载白盒库文件的方法、装置及*** | |
CN109040134A (zh) | 一种信息加密的设计方法及相关装置 | |
Chen et al. | Data privacy in trigger-action systems | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
CN109241707A (zh) | 应用程序的混淆方法、装置和服务器 | |
CN103853943A (zh) | 程序保护方法及装置 | |
CN111212033A (zh) | 基于组合式网络爬虫防御技术的页面显示方法、装置和电子设备 | |
CN108319822B (zh) | 一种保护网页代码的方法、存储介质、电子设备和*** | |
CN116015767A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN103971059A (zh) | 一种Cookie本地存储与使用方法 | |
CN113114646B (zh) | 一种风险参数确定方法、装置、电子设备及存储介质 | |
CN111859226A (zh) | 一种页面跳转方法、装置及其相关设备 | |
CN117093964A (zh) | 一种源代码的加密方法、装置、存储介质及电子设备 | |
CN115422561A (zh) | 一种Web端明文数据交互安全加密处理方法及*** | |
CN111639349B (zh) | 一种数据加密处理方法、装置和存储介质 | |
CN114357391A (zh) | 数据加、解密方法及计算机存储介质 | |
CN104866740A (zh) | 一种防静态分析文件的方法及装置 | |
CN106156625A (zh) | 一种插件签名的方法及电子设备 | |
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 |