安卓安全的白盒測試介紹

2021-10-09 18:28:44 字數 1502 閱讀 9310

白盒攻擊者對終端具有完全控制的能力,能夠觀測和修改程式執行時的內部資料,包括記憶體資訊,磁碟的讀寫許可權等。在程式執行時就可以dump出記憶體中的資料,從而使執行在記憶體中的金鑰不再安全。這種攻擊環境稱為白盒攻擊。

像擁有最高許可權的android、ios等裝置(root或者越獄後)的情況下就是乙個白盒攻擊環境。

一般常用的白盒攻擊分析工具有jeb,ida pro,ollydbg,vmware,hopper等

白盒密碼是指能夠在白盒環境下抵禦攻擊的一種特殊的加密方法。它的目是不在執行環境**現完整的金鑰。為此,需要對金鑰本身做盡量複雜的混淆,同時提供函式來處理。

白盒加密技術需要抵抗白盒攻擊,核心思想是把秘鑰隱藏起來, 加密執行過程中, 記憶體中不會出現秘鑰的值.

白盒密碼構造白盒密碼演算法有兩種策略,標準密碼演算法白盒化和構造全新密碼演算法。現在通用的技術是查詢表技術, 即把秘鑰隱藏在查詢表中。

標準密碼演算法白盒化,在標準密碼演算法安全理論的基礎上和不改變原演算法功能的前提下,將原有密碼演算法通過白盒密碼技術進行設計,在白盒攻擊環境下能夠有效保證其金鑰安全。

構造全新密碼演算法,新演算法密碼分析結果不能弱於標準密碼演算法同時具備抵抗白盒攻擊的能力。

用於解決複雜問題的步驟,通常稱為演算法(algorithm)。從明文生成密文的步驟,也就是加密的步驟,稱為加密演算法,而解密的步驟則稱為解密演算法。加密、解密的演算法合在一起統稱為密碼演算法。

密碼演算法中需要金鑰(key)。根據柯克霍夫原則,密碼演算法是標準的,而金鑰是需要保密的,因此金鑰的安全對密碼系統至關重要。

通訊雙方共享乙個金鑰,用於加密任意大小的資料塊或資料流的內容,包括訊息、檔案、加密金鑰和口令。常用對稱密碼演算法有des、aes。

非對稱密碼又稱公鑰密碼,加密和解密分別使用不同的金鑰,即私鑰和公鑰。公鑰密碼演算法多用於加密小的資料塊,如加密金鑰或者數字簽名中使用的hash函式值。常用公鑰密碼演算法包括rsa、ecc。

密碼協議是指針對密碼演算法的應用。常見協議有ssl/tls、https。

hash函式、mac、數字簽名、數字證書、隨機數生成器。

開發人員實用密碼學:

白盒密碼技術從實現方式上可以分為兩類:靜態白盒和動態白盒。

靜態白盒是指密碼演算法結合特定的金鑰經過白盒密碼技術處理後形成特定的密碼演算法庫,稱為白盒庫,白盒庫具備特定的密碼功能(加密、解密以及加解密),並能在白盒攻擊環境下有效保護原有金鑰的安全。靜態白盒更新金鑰,需要重新生成白盒庫。

動態白盒是指白盒庫生成後就不需要再更新,原始金鑰經過同樣的白盒密碼技術轉化為白盒金鑰。白盒金鑰傳入相匹配的白盒庫可以進行正常的加密或解密功能。白盒金鑰是安全的,攻擊者不能通過分析白盒金鑰得到任何關於原始金鑰的資訊。

常見的白盒演算法有:白盒aes,白盒sms4。

白盒sms4的簡單實現見:

白盒aes的簡單實現見:

aes算是我們日常開發中最常用一種對稱加密演算法了,主要由如下四個過程實現:

1.s盒位元組替換 (subbytes)

2.行移位(shiftrows)

3.列混淆(mixcolumns)

4.輪秘鑰加 (addroundkey)

白盒測試的測試方法

邏輯覆蓋法是白盒測試最常用的測試方法,基本包括語句覆蓋,判定覆蓋,條件覆蓋,條件判定覆蓋,條件組合覆蓋,路徑覆蓋6種。對程式的邏輯覆蓋很少,只關心判定表示式的值,是很弱的邏輯覆蓋標準。基本思想 設計若干測試用例,執行被測程式,使程式中每個可執行語句至少執行一次。優點 檢查所有語句 覆蓋率高 缺點 無...

安卓裝置安全測試框架DTF

安卓裝置測試框架 android device testing framework 簡稱dtf 是乙個可以幫助研究人員進行漏洞挖掘的資料收集和分析框架。dtf提供了模組化的方法和內建的api,允許測試人員快速建立指令碼來與android裝置進行互動。dtf包含有多個模組,允許測試人員從他們的andr...

黑盒測試 白盒測試的定義

白盒測試 是通過程式的源 進行測試而不使用使用者介面。這種型別的測試需要從 句法發現內部 在演算法,溢位,路徑,條件等等中的缺點或者錯誤,進而加以修正。黑盒測試 是通過使用整個軟體或某種軟體功能來嚴格地測試,而並沒有通過檢查程式的源 或者很清楚地了解該軟體的源 程式具體是怎樣設計的。測試人員通過輸入...