Android證書有效性驗證方案

1、前言:

1.1SSL劫持攻擊:

         目前雖然不少Android APP使用了https通訊方式,可是隻是簡單的調用而已,並未對SSL證書有效性作驗證。在攻擊者看來,這種漏洞讓https形同虛設,能夠輕易獲取手機用戶的明文通訊信息,攻擊示意圖以下:安全

 

image

2、解決方案:

2.1、服務器證書鎖定:

2.1.1、簡介:    

         服務器證書鎖定的原理是在代碼中精確的驗證當前服務器是否持有某張指定的證書。X509TrustManager接口是實現證書鎖定一種方法,它經過在SSL回調函數中讀取服務器證書密鑰並和程序預埋的證書密鑰進行對比,若是二者不一致則強行斷開連接。服務器

2.1.2 、流程圖:

image

2.2、根證書鎖定+域名驗證:

2.2.1、簡介:

         和服務器證書鎖定相似,區別在於該方案檢查服務器證書是否由指定的CA證書籤名,即檢查簽名服務器證書的CA證書的公鑰和本地預置的CA證書公鑰是否一致,同時,還會進一步校驗服務器證書的域名是否有效。ide

2.2.2、流程圖:

image

2.3、方案對比:

方案函數

優勢spa

缺點3d

服務器證書鎖定orm

安全性最高,實施攻擊必須拿到對應服務器私鑰證書。blog

更換證書時APP影響大接口

根證書鎖定+域名驗證ci

更換服務器證書不受影響

安全性和CA機構以及域名驗證機制有關。

相關文章
相關標籤/搜索