2021-02-02(android安全)

android安全

  1. 网络安全
    应用层网络协议HTTP、WebSocket等


    微信截图_20210202095728.png

Http半双工/WebSocket双全工 (ws/wss 不加密/加密)
数据通信加密==对称、非对称加密区别:

对称加密:加密(encryption)与解密(decryption)用的是同样的密钥(secret key)
非对称加密:它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥

DNS污染:

例OKHttp中DNS解析失败,采用ip访问

中间层攻击:

xml配置禁止自签名证书
  1. 加固


    微信截图_20210202114611.png

    原理:类似于热修复技术(hook、gradle、dex加密、打包)

    加固过程:
    1.源程序

源程序也就是我们的要加固的对象,这里面主要修改的是原apk文件中的classes.dex文件和AndroidManifest.xml文件。

2.壳程序

壳程序主要用于解密经过加密了的dex文件,并加载解密后的原dex文件,并正常启动原程序。

3. 加密程序

加密程序主要是对原dex文件进行加密,加密算法可以是简单的异或操作、反转、rc4、des、rsa等加密算法。

该加固过程可以分为如下4个阶段:

(1) 加密阶段

(2)合成新的dex文件

(3)修改原apk文件并重打包签名

(4)运行壳程序加载原dex文件

加密阶段
加密阶段主要是讲把原apk文件中提取出来的classes.dex文件通过加密程序进行加密。加密的时候如果使用des对称加密算法,则需要注意处理好密钥的问题。同样的,如果采用非对称加密,也同样存在公钥保存的问题。

合成新的dex文件

上一步生成的加密的dex文件和我们的壳dex文件合并,将加密的dex文件追加在壳dex文件后面,并在文件末尾追加加密dex文件的大小数值

签名

运行壳程序加载原dex

你可能感兴趣的:(2021-02-02(android安全))