android安全
-
網(wǎng)絡(luò)安全
應(yīng)用層網(wǎng)絡(luò)協(xié)議HTTP、WebSocket等
微信截圖_20210202095728.png
Http半雙工/WebSocket雙全工 (ws/wss 不加密/加密)
數(shù)據(jù)通信加密==對稱锭汛、非對稱加密區(qū)別:
對稱加密:加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)
非對稱加密:它使用了一對密鑰袭蝗,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管朵逝,不能外泄乡范,而公鑰則可以發(fā)給任何請求它的人啤咽。非對稱加密使用這對密鑰中的一個進行加密渠脉,而解密則需要另一個密鑰
DNS污染:
例OKHttp中DNS解析失敗,采用ip訪問
中間層攻擊:
xml配置禁止自簽名證書
-
加固
微信截圖_20210202114611.png原理:類似于熱修復(fù)技術(shù)(hook没陡、gradle索赏、dex加密贴彼、打包)
加固過程:
1.源程序
源程序也就是我們的要加固的對象,這里面主要修改的是原apk文件中的classes.dex文件和AndroidManifest.xml文件器仗。
2.殼程序
殼程序主要用于解密經(jīng)過加密了的dex文件,并加載解密后的原dex文件威鹿,并正常啟動原程序轨香。
3. 加密程序
加密程序主要是對原dex文件進行加密,加密算法可以是簡單的異或操作臂容、反轉(zhuǎn)、rc4糟秘、des球散、rsa等加密算法。
該加固過程可以分為如下4個階段:
(1) 加密階段
(2)合成新的dex文件
(3)修改原apk文件并重打包簽名
(4)運行殼程序加載原dex文件
加密階段
加密階段主要是講把原apk文件中提取出來的classes.dex文件通過加密程序進行加密蕉堰。加密的時候如果使用des對稱加密算法,則需要注意處理好密鑰的問題泻蚊。同樣的丑婿,如果采用非對稱加密没卸,也同樣存在公鑰保存的問題秒旋。
合成新的dex文件
上一步生成的加密的dex文件和我們的殼dex文件合并,將加密的dex文件追加在殼dex文件后面迁筛,并在文件末尾追加加密dex文件的大小數(shù)值
簽名
運行殼程序加載原dex