ssl pinning

0 为什么有https了还要防中间人

1)用户终端证书库几年不更新

2)用户/合作方客户端 被诱导安装过来历不明的根证书

3)CA被攻破

 

插一句,CA链的核心价值:

b4c4b612c1636ab36835a8bfa10e6ed3

 

 

1 防中间人的方式

信任系统区域根证书库-安卓7
不信任,锚定
  1)自己的公钥
  2)自己的证书,即可信任的中间ca证书为自己的公钥签发的证书
  3)中间ca证书的指纹
  4)根ca证书指纹

公钥(证书)的sha256线下给

 

2 其他app为什么不跟

6f9e75409193a075d67ee40f963fc6d2cceda646dab6da4805daf5e49e1d45a3

 

3 可以锚定公钥吗?

21a924e3f13cd9ada834ea000004376821fb9fb43f28969474d798bdb5294908

 

4 锚定中间CA证书

2e59ac5bb521e5001fd6d0a3b8819f43

验证:

1)末端证书的CN,SAN,或company;防止仅验2)时,随便一个CN突破进来

2)中间CA的公钥(或证书),防止其他无关CA被攻陷随意签发末端证书

3)为什么不验证末端公钥(或证书),因为经常换,APP不能总是强制更新,且强更还会进入死循环,用户只能到app store去更新

 

5 如何突破?基本上只能反编译

fa74ed9517e51c6c3404168dd9786688

 

posted on 2025-12-26 00:12  silyvin  阅读(32)  评论(0)    收藏  举报