iOS數據安全性問題

做爲一個移動互聯網App,天生是須要和服務器通訊的。那麼,服務器如何識別客戶端的身份?咱們如何保證數據傳輸過程當中的安全性?要靠兩個東西:使用AppKey作身份識別,使用AppSecret校驗數據。

這兩個東西的定義能夠參考淘寶開放平臺上這種比較嚴肅的說法:
AppKey
客戶端調用API時的惟一標識,服務器經過App Key來鑑別應用的身份。調用API接口時必須傳入的參數。
App Secret
App Secret是服務端給客戶端分配的密鑰,用來保證應用來源的可靠性,防止請求數據被僞造。

其中,AppKey用來標識客戶端的身份,一般保密性沒有什麼要求。就比如別人知道了咱們的名字並不能假冒咱們的身份同樣。但AppSecret就不同了。
先說一下App Secret的使用流程。

一個App請求中,一般包含AppKey、業務數據、時間戳等等。咱們把這些信息定義爲A、B、C。咱們要把A、B、C這些信息發往服務器確定不能直接扔過去,那麼毫無安全性可言。一般的作法是把A、B、C和AppSecret(D)一塊兒須要作一個校驗,生成一個校驗碼(sign client),把校驗碼和A、B、C一塊兒發送給服務器,服務器收到信息後,根據客戶端發來的AppKey從數據庫中檢索對應的AppSecret,而後也一樣把A、B、C和AppSecret(D)一塊兒作一個校驗,生成一個校驗碼(sign server)。若是sign client和sign server相同,就證實數據在傳輸過程當中沒有被修改過。
能夠看出,整個過程當中D(AppSecret)和校驗過程是旁觀者沒法得知的。可是校驗過程無非就那麼幾種算法,很好破解。因此說,AppSecret的保密工做就很重要了。算法

 

也有一種加密方式是在URL前加https://前綴代表是用SSL加密的。 你的電腦與服務器之間收發的信息傳輸將更加安全。數據庫

Web服務器啓用SSL須要得到一個服務器證書並將該證書與要使用SSL的服務器綁定。安全

http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。服務器

http的鏈接很簡單,是無狀態的。網絡

HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全!加密

相關文章
相關標籤/搜索