一,驗證服務器通信。
二,HTTP認證。
手機銀行應用有兩種認證模式:標準驗證與快速驗證。標準驗證只是提示用戶輸入用戶名與密碼,而快速驗證則讓用戶注冊設備,然后使用PIN進行驗證,每次驗證時無需用戶名和密碼。要想確??焖僬J證的安全性,如果用戶選擇在給定的認證請求中注冊設備,那么服務器響應就需要包含一個額外的屬性,即用戶的證書。應用會存儲這個證書,并在隨后啟動時檢查,從而確定應該顯示哪個認證視圖。
1,HTTPBasic,HTTP Digest與NTLM認證。
2,客戶端證書認證。
三, 使用哈希與加密確保消息的完整性。
既然應用已經驗證在與正確的服務器通信并已被成功認證,那么用戶就可以開始發出服務請求了。應用必須確保傳輸的數據在傳輸過程中是安全且被修改的。本節將會介紹能滿足這個需求的技術,包括密碼散列,消息認證碼以及加密移除。
1,哈希,對于給定的數據塊,密碼哈希與接要會生成固定大小的位序列。這些哈希值可以簡化數據塊的比較與排序。哈希的常見使用場景包括追蹤文件變更,下載校驗和,數據混淆以及進行數據庫存儲,以及驗證請求數據的完整性等。
2,消息認證碼。消息認證碼(MAC)是這樣一種機制:可以檢測到負載是否被修改并驗證其真實性。實現方式是對進來的請求數據(或是預先設定好的請求數據的子集)生成哈希值,然后將哈希值與隨負載一同發送的預先計算好的MAC進行對比。MAC類似于之前介紹的哈希函數,但卻更加安全,這是因為它們總是與一個密鑰配對。
1)對于開發者來說,將各種處理細節輸出到日志中是種很常見的做法,不過絕不應改將生成的密鑰打印到控制臺,日志文件可以非常容易地從設備上獲取,如果被攻擊發現,那就是非常嚴重的安全問題了。
3,加密。
四,在設備上安全地存儲認證信息。
既然能安全地與服務層進行通信,那就需要在設備上安全地存儲信息。Apple提供了Keychain Services API來完成這項工作。
參考資料:《iOS網絡高級編程-iphone和iPad的企業應用開發》
新聞熱點
疑難解答