
隨着科學技術的快速开展, 電腦、智能手機等電子設備現已處處可見, 電視、電影、音樂、圖片等數碼化信息的廣泛傳播, 智能卡、移動令牌、無線傳感器網絡等設備的許多運用, 使得人們對隱秘信息訪問的途徑越來越多, 從而密碼算法的運用環境也不再單純和可信。
例如, 用戶在自己的機器上作業一個數字媒體的播放軟件, 這個軟件對加密過的數字信息進行解密後播放, 那麼這些軟件的作業環境很有可能是不安全的, 因為軟件的解密進程關於攻擊者(乃至可能就是用戶自身)是可見的, 他們能夠很簡單就取得密鑰信息; 相同, 無線傳感器網絡節點等一般配備在無人監管的場所, 因此, 對這些節點內部作業的觀測、改動等都是有用的攻擊方法。 所以, 針對作業終端的攻擊十分的直接, 咱們將這樣的攻擊稱為白盒攻擊。
白盒攻擊的概念最早由Chow 等人在2002 年提出, 這兒的“白盒”與程序檢測中的“白盒查驗”所指的環境有相通之處, 在白盒攻擊中, 攻擊者對設備終端(即應用程式的作業的環境)具有完全的控制才調、與軟件的施行者具有對等的權利。 他能夠對程序作業的二進制尋覓、讀取內存中的密鑰、查詢程序施行的中心作用、恣意的靜態剖析以及改動子核算的作用等。 攻擊者能夠在終端做任何的操作, 比較傳統的黑盒模型,對攻擊者的才調只需很少的限制。
白盒攻擊是在不可信任終端環境下發作的更高檔的安全挾制。 白盒攻擊能夠看作是man-at-the-end 攻擊, 現在常見的直接白盒攻擊有: OllyDbg、IDA Pro、HexRays、HIEW、VMware 等, 以及近年來提出的時間剖析、功耗剖析、插入過錯剖析等旁路攻擊(side-channel attack)。 因此, 傳統的密碼算法在白盒攻擊環境中不能安全運用, 顯得極度脆弱。 所以, 為了確保在不可信任終端密碼算法的加密、解密、認證等功用的正常運用, 結構出能夠在白盒攻擊環境下確保安全性的密碼算法將是信息安全範疇面對的一個嚴峻課題。
咱們將能夠抵擋白盒攻擊的密碼算法及其實現稱為白盒密碼。 白盒密碼包含了已有密碼算法的白盒實現和白盒密碼算法。 已有密碼算法的白盒實現是指, 將已知的密碼算法顺利获得白盒密碼技術進行規劃, 使得在白盒攻擊環境下, 不改動原算法的功用但原算法所期望確保的安全性不受損壞。 例如, 加密算法期望確保其密鑰不會走漏、簽名算法期望其簽名不會被編造等。
而白盒密碼算法其實是指一種新的密碼算法, 它與傳統的密碼算法不同的是, 它能夠抵擋白盒攻擊環境下敵手的攻擊, 其自身是一個新的算法, 而不是在已存在的算法上的進行白盒安全實現的規劃。
現在的白盒密碼技術實例大部分為已知密碼算法的白盒實現, 例如白盒AES 實現、白盒DES 實現,設計者們企圖運用稠濁的方法結構查找表, 並顺利获得查表的方法來實現程序的施行, 使得白盒攻擊者即便能夠查詢到整個查找表的查詢, 也無法比窮舉查找更快地取得密鑰信息, 以此抵擋白盒攻擊。 可是事實證明這個方法的作用現在並不令人滿意。
此外, 也有設計者運用插入擾亂項或多變量密碼的方法來提高攻擊者的攻擊難度, 可是其安全性還有待參議。 除此之外, 並沒有點破的其他白盒密碼的規劃技術, 可是信息躲藏、同態加密等方法或許能夠應用到白盒密碼的規劃中來。
