應(yīng)用安全。應(yīng)用安全的定義是保障應(yīng)用程序使用過程和結(jié)果的安全。簡(jiǎn)言之,就是針對(duì)應(yīng)用程序或工具在使用過程中可能出現(xiàn)計(jì)算、傳輸數(shù)據(jù)的泄露和失竊,通過其他安全工具或策略來消除隱患。從而實(shí)現(xiàn)部署在服務(wù)器內(nèi)的所有應(yīng)用軟件,APP及主機(jī)安全。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括天鎮(zhèn)網(wǎng)站建設(shè)、天鎮(zhèn)網(wǎng)站制作、天鎮(zhèn)網(wǎng)頁制作以及天鎮(zhèn)網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,天鎮(zhèn)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到天鎮(zhèn)省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
apk簽名相當(dāng)于程序的身份識(shí)別代碼。
apk簽名用于程序編譯打包之后,手機(jī)在運(yùn)行程序之前會(huì)先去驗(yàn)證程序的簽名(可以看作類似于我們電腦上常說的md5)是否合法,只有通過了驗(yàn)證的文件才會(huì)被運(yùn)行,所以簽名軟件的作用的讓文件通過手機(jī)的驗(yàn)證為合法,不同的手機(jī)、系統(tǒng)是對(duì)應(yīng)不同的簽名的。
進(jìn)行加密通訊防止API外部調(diào)用
服務(wù)器端與客戶端各自會(huì)存儲(chǔ)一個(gè)TOKEN,這個(gè)TOKEN我們?yōu)榱朔乐狗淳幾g是用C語言來寫的一個(gè)文件并做了加殼和混淆處理。
在客戶端訪問服務(wù)器API任何一個(gè)接口的時(shí)候,客戶端需要帶上一個(gè)特殊字段,這個(gè)字段就是簽名signature,簽名的生成方式為:
訪問的接口名+時(shí)間戳+加密TOKEN 進(jìn)行整體MD5,并且客戶端將本地的時(shí)間戳作為明文參數(shù)提交到服務(wù)器
服務(wù)器首先會(huì)驗(yàn)證這兩個(gè)參數(shù):驗(yàn)證時(shí)間戳,如果時(shí)間誤差與服務(wù)器超過正負(fù)一分鐘,服務(wù)器會(huì)拒絕訪問(防止被抓包重復(fù)請(qǐng)求服務(wù)器,正負(fù)一分鐘是防止時(shí)間誤差,參數(shù)可調(diào)整),
然后服務(wù)器會(huì)根據(jù)請(qǐng)求的API地址和提交過來的時(shí)間戳再加上本地存儲(chǔ)的token按照MD5重新生成一個(gè)簽名,并比對(duì)簽名,簽名一致才會(huì)通過服務(wù)器的驗(yàn)證,進(jìn)入到下一步的API邏輯
粗略地分析, 登錄機(jī)制主要分為登錄驗(yàn)證、登錄保持、登出三個(gè)部分。登錄驗(yàn)證是指客戶端提供用戶名和密碼,向服務(wù)器提出登錄請(qǐng)求,服務(wù)器判斷客戶端是否可以登錄并向客戶端確認(rèn)。 登錄認(rèn)保持是指客戶端登錄后, 服務(wù)器能夠分辨出已登錄的客戶端,并為其持續(xù)提供登錄權(quán)限的服務(wù)器。登出是指客戶端主動(dòng)退出登錄狀態(tài)。容易想到的方案是,客戶端登錄成功后, 服務(wù)器為其分配sessionId, 客戶端隨后每次請(qǐng)求資源時(shí)都帶上sessionId。
上述簡(jiǎn)易的登錄驗(yàn)證策略存在明顯的安全漏洞,需要優(yōu)化。
客戶端第一次發(fā)出登錄請(qǐng)求時(shí), 用戶密碼以明文的方式傳輸, 一旦被截獲, 后果嚴(yán)重。因此密碼需要加密,例如可采用RSA非對(duì)稱加密。具體流程如下:
再仔細(xì)核對(duì)上述登錄流程, 我們發(fā)現(xiàn)服務(wù)器判斷用戶是否登錄, 完全依賴于sessionId, 一旦其被截獲, 黑客就能夠模擬出用戶的請(qǐng)求。于是我們需要引入token的概念: 用戶登錄成功后, 服務(wù)器不但為其分配了sessionId, 還分配了token, token是維持登錄狀態(tài)的關(guān)鍵秘密數(shù)據(jù)。在服務(wù)器向客戶端發(fā)送的token數(shù)據(jù),也需要加密。于是一次登錄的細(xì)節(jié)再次擴(kuò)展。
在最原始的方案中, 登錄保持僅僅靠服務(wù)器生成的sessionId: 客戶端的請(qǐng)求中帶上sessionId, 如果服務(wù)器的redis中存在這個(gè)id,就認(rèn)為請(qǐng)求來自相應(yīng)的登錄客戶端。 但是只要sessionId被截獲, 請(qǐng)求就可以為偽造, 存在安全隱患。
引入token后,上述問題便可得到解決。 服務(wù)器將token和其它的一些變量, 利用散列加密算法得到簽名后,連同sessionId一并發(fā)送給服務(wù)器; 服務(wù)器取出保存于服務(wù)器端的token,利用相同的法則生成校驗(yàn)簽名, 如果客戶端簽名與服務(wù)器的校驗(yàn)簽名一致, 就認(rèn)為請(qǐng)求來自登錄的客戶端。
1.3 TOKEN失效
用戶登錄出系統(tǒng)
失效原理:
在服務(wù)器端的redis中刪除相應(yīng)key為session的鍵值對(duì)。
App因?yàn)橐獙?shí)現(xiàn)自動(dòng)登陸功能,所以必然要保存一些憑據(jù),所以比較復(fù)雜。
App登陸要實(shí)現(xiàn)的功能:
這里判斷時(shí)間,主要是防止攻擊者截取到加密串后,可以長(zhǎng)久地利用這個(gè)加密串來登陸。
不用AES加密,用RSA公鑰加密也是可以的。AES速度比RSA要快,RSA只能存儲(chǔ)有限的數(shù)據(jù)。
是的
隨著云計(jì)算時(shí)代的到來,越來越多的用戶開始轉(zhuǎn)向云計(jì)算技術(shù)的使用。從國內(nèi)的相關(guān)數(shù)據(jù)來看,云服務(wù)器、云存儲(chǔ)用戶采用率最高,使用比例達(dá)70%以上。
但是如今網(wǎng)絡(luò)環(huán)境復(fù)雜,在網(wǎng)絡(luò)層面的攻擊日益趨多,我們?cè)谑褂迷品?wù)器的時(shí)候,要如何來提高云服務(wù)器的安全性呢。
首先我們?cè)谶x擇云服務(wù)器運(yùn)營商時(shí)需要注意選擇有實(shí)力,有資質(zhì)的服務(wù)商。