本地密钥的安全
本地密鑰的安全
1、將密鑰分成不同的幾段,有的存儲在文件中、有的存儲在代碼中,最后將他們拼接起來,可以將整個操作寫的很復(fù)雜,這因為還是在java層,逆向者只要花點時間,也很容易被逆向。 2、用ndk開發(fā),將密鑰放在so文件,加密解密操作都在so文件里,這從一定程度上提高了的安全性,擋住了一些逆向者,但是有經(jīng)驗的逆向者還是會使用IDA破解的。 3、在so文件中不存儲密鑰,so文件中對密鑰進(jìn)行加解密操作,將密鑰加密后的密鑰命名為其他普通文件,存放在assets目錄下或者其他目錄下,接著在so文件里面添加無關(guān)代碼(花指令),雖然可以增加靜態(tài)分析難度,但是可以使用動態(tài)調(diào)式的方法,追蹤加密解密函數(shù),也可以查找到密鑰內(nèi)容。
**白盒加密技術(shù)的核心思想是把秘鑰隱藏起來, 加密執(zhí)行過程中, 內(nèi)存中不會出現(xiàn)秘鑰的值. 現(xiàn)在通用的技術(shù)是查找表技術(shù), 即把秘鑰隱藏在查找表中。白盒加密的攻擊需要從數(shù)學(xué)理論上去分析, 這無疑會極大增加破解難度。白盒加密的安全度目前來看是可以值得信任的, 當(dāng)然這個世界上沒有絕對的安全, 白盒加密也會被破, 就是攻擊成本的問題啦. **
轉(zhuǎn)載于:https://juejin.im/post/5b690c5ce51d45194b1941a2
總結(jié)
- 上一篇: 无阻塞网络
- 下一篇: 大数据开发实战:数据仓库技术