客戶端敏感信息隱藏技術(shù)研究

Android開發(fā)中經(jīng)常會遇到需要在客戶端對一些敏感信息進行保存的情況,客戶端的加密信息食侮,關(guān)系到整個App是否安全的關(guān)鍵問題目胡。

常見的敏感信息隱藏策略主要有:

圖一

1誉己、敏感信息嵌套在string.xml中


圖二

安全性極低巨双,第三方只需要使用ApkTool等工具對Apk的資源進行反編譯,就能輕易地拿到這個資源文件袱蜡,里面的內(nèi)容是一目了然的慢宗。

2、敏感信息隱藏在Java源代碼中

將密鑰或者app_key 以字符串或者字符數(shù)組的形式硬編碼到代碼中敏晤,這也是普通開發(fā)者常用的方式


圖三

反編譯可以得到classes-dex2jar.jar 包嘴脾,這時使用JD-GUI 可以查看反編譯后的源碼蔬墩。

3、敏感信息隱藏在BuildConfig中

Android Gradle Plugin 為我們提供了BuildConfig 文件奏司,我們可以把敏感信息存在這里蔬蕊,同時通過將敏感信息存放在工程的gradle.properties中,可以避免將其上傳到版本控制系統(tǒng)(svn麻献、git)上猜扮,從而將敏感信息控制在少數(shù)人手里旅赢,而不是暴露給所有具有svn、git 權(quán)限的人煮盼。


圖四

這種方式安全級別也是比較低的僵控,對apk進行反編譯以后,查看BuildConfig.class 文件就可以看到APP_KEY 的值悠就。

4、使用DexGuard

Android 官方默認(rèn)集成了ProGuard,它是一個免費的用于壓縮荸型、優(yōu)化和混淆Java 字節(jié)碼的工具炸茧,混淆的功能主要是使用簡短的無意義的字母組合來對代碼中的類、字段踪宠、方法和屬性進行重命名妈嘹,但它無法對字符串進行混淆润脸。也就是說,使用ProGuard之后毙驯,我們還是可以看到反編譯后代碼的完整的字符串定義。

為了實現(xiàn)更高級的混淆和加密功能爆价,我們可以選擇商業(yè)版本的ProGuard-DexGuard.

DexGuard對代碼垦巴、資源、字符串铭段、AndroidManifest.xml等進行了全面的加密和混淆骤宣,相對PorGuard,功能強大了不少。

5序愚、對敏感信息進行偽裝或者加密

雖然DexPuard功能強大憔披,也能幫助我們對敏感字符串信息進行加密,但畢竟需要付費試用爸吮,并不是每個公司都會愿意付費芬膝。因此多數(shù)情況下,只能靠我們自己對Java代碼中的敏感信息進行偽裝或者加密形娇,以加大第三方破解的難度。最簡單的我們可以試用Base64對字符串進行編碼桐早,然后將編碼后的字符串和另外一串密鑰進行異或操作锈遥,從而得到偽裝后的字符串纫事。當(dāng)然,這個用于異或的密鑰如何存放所灸,就是一個先有雞還是先有蛋的問題了。

6炫七、敏感信息隱藏在原生函數(shù)庫中(.so文件)

為了增大第三方獲取敏感信息的難度爬立,我們可以進一步把敏感信息的存放從Java 層下移到Native 層,也就是存放在.so 文件中万哪。然后通過jni 封裝對敏感信息的獲取接口侠驯。至于敏感信息在c/c++層如何存放,我們可以重復(fù)Java層的偽裝和加密方式奕巍,另外可以在c/c++層通過花指令的方式來使得反匯編.so 文件的時候出錯吟策,來增加.so文件被破解的難度。

7的止、對APK 進行加固處理

近年來檩坚,涌現(xiàn)了很多APK 加固平臺,APK的加密處理極大地增加了反編譯的難度诅福,經(jīng)過加固平臺的加固后匾委,想使用普通的dex2jar、ApkTool 等工具進行反編譯幾乎都是失敗的氓润,這使得普通開發(fā)者再也無法輕易地偷窺發(fā)布在應(yīng)用市場的app 代碼或者資源了赂乐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咖气,隨后出現(xiàn)的幾起案子挨措,更是在濱河造成了極大的恐慌,老刑警劉巖崩溪,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浅役,死亡現(xiàn)場離奇詭異,居然都是意外死亡悯舟,警方通過查閱死者的電腦和手機担租,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抵怎,“玉大人奋救,你說我怎么就攤上這事》刺瑁” “怎么了尝艘?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姿染。 經(jīng)常有香客問我背亥,道長秒际,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任狡汉,我火速辦了婚禮娄徊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盾戴。我一直安慰自己寄锐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布尖啡。 她就那樣靜靜地躺著橄仆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衅斩。 梳的紋絲不亂的頭發(fā)上盆顾,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音畏梆,去河邊找鬼您宪。 笑死,一個胖子當(dāng)著我的面吹牛具温,可吹牛的內(nèi)容都是我干的蚕涤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼铣猩,長吁一口氣:“原來是場噩夢啊……” “哼揖铜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起达皿,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤天吓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后峦椰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體龄寞,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年汤功,在試婚紗的時候發(fā)現(xiàn)自己被綠了物邑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡滔金,死狀恐怖色解,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情餐茵,我是刑警寧澤科阎,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站忿族,受9級特大地震影響锣笨,放射性物質(zhì)發(fā)生泄漏蝌矛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一错英、第九天 我趴在偏房一處隱蔽的房頂上張望入撒。 院中可真熱鬧,春花似錦走趋、人聲如沸衅金。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鉴吹,卻和暖如春姨伟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背豆励。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工夺荒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人良蒸。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓技扼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嫩痰。 傳聞我的和親對象是個殘疾皇子剿吻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容