2016-09-08 19 views
1

我正在編寫一個Android庫,它是一個HTTPS端點的REST API客戶端。這個庫將被應用程序用來抽象訪問REST服務。如何從我的庫中獲得Network Security Config的好處?

我想使用證書釘扎和明文退出讓我的流量安全的,但我不希望從交談其他服務或管理其自身的安全配置停止消費應用。我想確保即使應用程序設置錯誤並與其他服務不安全地通信,來自我的圖書館的所有流量也將始終保持安全。 (要明確:我沒有這麼多的關於惡意應用程序試圖讀取我的網絡流量,我只是擔心寫的不好應用打破我的安全政策,並接受壞的HTTPS連接,暴露用戶數據擔心。從我的網絡服務。)

庫交付作爲AAR。如果它有所不同,我使用OkHttp3作爲我的HTTP客戶端。一個額外的複雜性:我需要minSdkVersion 21,所以要使用網絡安全配置,我不得不使用CommonsWare's backport

什麼是爲我建立了我的圖書館的網絡安全策略不能被應用程序被破壞,不會影響應用程序的其他交通的最簡單的方法?

回答

1

有沒有辦法,以確保應用程序嵌入你的庫不能與你的庫使用的網絡流量混亂。原因是Android應用程序沙盒不能區分應用程序和嵌入在該應用程序中的庫。他們的代碼在相同的進程中運行,他們可以訪問(讀/寫)彼此的狀態,他們共享全局狀態(例如默認的SSLSocketFactory,HostnameVerifier和X509TrustManager)等等。

你能做的最好的是假定應用程序開發人員不是惡意的,併爲他們提供什麼添加到他們的應用程序的網絡安全配置,以確保您的圖書館發出的交通誘導。

相關問題