簡體   English   中英

驗證智能手機應用程序(如Android)的不同方法

[英]Different ways to authenticate smartphone application like Android

我正在尋找對android,iphone,Windows和Blackberry App等客戶端進行身份驗證的不同方法,哪種方法更好,為什么

根據我的研究,我知道兩種驗證客戶端1的方法。嵌入在智能手機應用程序中的私鑰將用於對消息進行簽名:這是黑客容易獲得私鑰2的問題。客戶端證書

還有其他方法可以驗證這些智能手機應用程序,哪種方法最安全?

您在此處列出的兩個選項實際上是相同的。 客戶證書實際上只是一個私有/公共密鑰對的公共密鑰部分,它由某些實體連同一些標識信息一起簽名。

驗證客戶端的最佳方法是使用相互驗證的SSL。 您可以在此處使用自簽名證書,因此,假設您控制了要允許訪問的所有客戶端並控制了與之通信的服務器,則無需從CA購買任何證書。 這將確保您的客戶端僅從合法服務器接收數據(將SSL系統配置為應用程序以僅接受服務器正在使用的自簽名證書),並且服務器僅從授權客戶端接收數據(將服務器配置為僅訪問部署在您的應用中的自簽名證書作為客戶端身份驗證的資源)。 由O'Reilly出版的《 Android平台的應用程序安全》中有一個完整的逐步總結,介紹了如何針對Android執行此操作。

您是正確的,因為您需要在客戶端應用程序中嵌入一些秘密信息(私鑰),並且攻擊者將能夠對其進行破壞。 您目前在Android中擁有的最佳解決方案是將證書和私鑰放入作為資源包含在應用程序APK中的密鑰庫中,並讓應用程序在需要使用密鑰時訪問密鑰庫。 這意味着您的應用程序將需要具有密鑰庫的密碼。 因此,如何保護該密碼就變得很重要。 您可以混淆代碼,使攻擊者更難確定該密碼,但這只會減慢對應用程序進行反向工程的確定攻擊者的速度。 但是,除了要求設備用戶每次要使用您的應用程序時都鍵入該密碼外,這是您最好的選擇。 如果在設備上運行的客戶端應用程序需要訪問其存儲的內容,則有權訪問該設備的人也可以訪問它。 您所能做的使它變得更加困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM