說到加密夫啊,自然少不了密鑰。密鑰的存儲辆憔,可以加密后寫在代碼里撇眯,一起編譯到最后的二進(jìn)制文件中,也還可寫個(gè)函數(shù)虱咧,用代碼來生成密鑰等熊榛。這些方法,對于黑盒攻擊來說腕巡,其實(shí)都是相對來說比較安全的玄坦。但是還有另外一種攻擊叫做白盒攻擊,比黑盒攻擊更進(jìn)一步绘沉,拿到了加密設(shè)備的運(yùn)行環(huán)境煎楣,包括內(nèi)存信息,磁盤的讀寫權(quán)限等车伞。此類攻擊就可以dump出內(nèi)存的數(shù)據(jù)择懂,從而使運(yùn)行在內(nèi)存中的密鑰不再安全。
白盒加密就是為白盒攻擊而生另玖,它的目的是不在運(yùn)行環(huán)境中出現(xiàn)完整的密鑰困曙。為此表伦,首先要對密鑰本身做盡量復(fù)雜的混淆,同時(shí)提供函數(shù)來處理慷丽。舉個(gè)例子绑榴,比如明文密鑰是abcd,混淆后的密鑰變成了非常復(fù)雜的矩陣盈魁,根據(jù)算法翔怎,每次生成的4個(gè)中間密鑰,aefg杨耙,hbigk赤套,lmcn,opqrstd珊膜,根據(jù)某個(gè)算法容握,用這些密鑰生成4個(gè)密文,然后在把4段密文用算法生成一段密文车柠,如此可以不斷重復(fù)剔氏,直到最后生成密文。整個(gè)過程中最原始的密鑰一直沒有出現(xiàn)在內(nèi)存中竹祷,白盒攻擊想拿到密鑰難度就大大增加了谈跛。