2016-11-07 99 views
0

在我的服務器上,我需要確保僅接收來自Android設備的連接。 這可能嗎?要存儲客戶端證書在定製android組裝,這是抵抗生根?或者我可以在根植設備上完全隱藏任何東西?並且無法通過任何方式避免生根(前者提供我自己的android組裝固件)?因爲即使我設置了程序根檢查 - 應用程序可以通過3D方重建以避免此檢查。任何有用的想法讚賞。 Thx提前。僅通過設備的Android客戶端證書授權

+0

你在說什麼樣的連接?套接字(TCP)或HTTP甚至?有一些方法可以讓黑客用虛假來源與Android設備建立不同的連接,例如通過自己的握手來實現一個協議,如果握手失敗,那麼在連接完成之前立即刪除連接。對於HTTP,還有其他方法可以完成此握手方法。 因此,知道你在談論什麼樣的連接很重要。 – kevto

+0

Ssl。證書意味着https。 – AlexInspired

+0

不完全。 SSL證書也可用於安全套接字連接。但是,感謝這些信息,如果我是你,我會更新你的問題,其餘的是通過HTTPS完成通信。 – kevto

回答

0

1)OAuth2是認證和授權協議,它被大型甚至更小的公司廣泛使用。想想Facebook API。如果用戶沒有身份驗證或無權進行該呼叫,則可以刪除入站請求。這是一種方法。

2)第二種方法是將您自己的用戶代理添加到您的HTTP標頭和其他自定義HTTP標頭。如果您的服務器檢查這些標頭,則可以刪除入站請求。

您不必在客戶端上存儲SSL證書,因爲客戶端將啓動與具有SSL證書的服務器的安全連接。

無論如何,使用證書客戶端可以很好地加密數據,但我不相信Android Java支持這一點。如我錯了請糾正我。如果您確實碰巧使用該密鑰加密數據,則可以加密某個字符串或多個字節,您可以將其解析爲您的一個自定義HTTP標頭,但是如果有人發現加密的字符串是什麼,他/她仍然可以僞造一個連接。不過,我不建議將您的SSL證書存儲在客戶端的設備上。


不管你可能會做什麼,總有一個辦法是假像它的HTTP/HTTPS連接的FROM Android設備來,但你可以使用這兩種方法縮小傳入的HTTPS請求,並使其更難。一個例子是PokémonGO。 GitHub上有很多非官方的API可以僞造來自官方應用程序的連接。