證書鎖定Certificate Pinning技術

大學霸發表於2017-03-03
證書鎖定Certificate Pinning技術

在中間人攻擊中,攻擊主機通常截斷客戶端和伺服器的加密通訊。攻擊機以自己的證書替代伺服器發給客戶端的證書。通常,客戶端不會驗證該證書,直接接受該證書,從而建立起和攻擊機的安全連線。這樣,客戶端傳送的資料,都會被攻擊機獲取和解密。

證書鎖定Certificate Pinning是SSL/TLS加密的額外保證手段。它會將伺服器的證書公鑰預先儲存在客戶端。在建立安全連線的過程中,客戶端會將預置的公鑰和接受的證書做比較。如果一致,就建立連線,否則就拒絕連線。

Certificate Pinning在手機軟體中應用較多。因為這些應用連線的伺服器相對固定,可以預先將伺服器的X509證書或者公鑰儲存在App中。例如,蘋果應用商店Apple App Store就預置了這個功能。當使用中間人工具或者Fiddler之類的工具攔截資料,就會造成應用商店無法聯網的情況。

在滲透測試中,遇到這類技術,有三種解決辦法。第一種是從系統層面禁用證書鎖定驗證功能。第二種是反編譯軟體,將其儲存的公鑰替換為攻擊機的證書。第三種,如果該目標不是分析的物件,可以設定代理時忽略其要連線的伺服器,不進行攔截和修改。


PS:如果在手機上採用第一種或者第二種方式,就需要手機root或者越獄。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2134643/,如需轉載,請註明出處,否則將追究法律責任。

相關文章