我需要保護服務器API免受來自任何客戶端的使用,除了我創建的應用程序。將移動應用程序限制爲授權使用服務器的唯一客戶端API
沒有「用戶」,所以我認爲我可以使用SSL與硬編碼登錄/傳遞。
經過快速調查,我發現硬編碼,即使加密登錄&傳入應用程序是一個壞主意 - 總是有一種入侵者分析反編譯的代碼,並找到實際的登錄和傳遞,甚至從加密的存儲。
然後我開始在認證方向挖掘證書。事實證明,現在使用證書的標準SSL認證並不安全,並且最好使用SSL釘住技術。
SSL固定意味着將服務器證書的副本附加到應用程序包中,以確保證書驗證步驟安全。
但我不明白SSL固定是否可以以相反的方式實現,即將客戶端的證書存儲在服務器上,並在服務器端執行證書檢查以確保連接客戶端是我的應用。它看起來像附加到應用程序的證書也可以提取並用於外部驗證其他客戶端。
謝謝你的回答。由於無法保護應用程序免於逆向工程,因此我需要儘可能地爲入侵者完成任務。以純文本形式存儲的密碼或添加到該包的證書太容易從應用程序中獲取。你會如何推薦存儲/計算祕密,以便很難形成應用程序? – NAlexN
難道你會高估他人訪問你的服務的動機嗎?如果這真的很重要,也許你的安全觀是錯誤的?如果確實沒有其他選擇,請準備好玩貓鼠遊戲:立即改變您的保護,以免第三方應用程序在沒有通知的情況下中斷。 –
我正在從事的服務並不需要嚴格的安全 - 這只是我自己希望瞭解如何執行保護的權利。 – NAlexN