前后端數(shù)據(jù)交互的安全性

加密方案:AES + RSA兩種加密方式混合使用腿倚,能夠?qū)崿F(xiàn)數(shù)據(jù)的全程加密(無論是上傳昏滴,還是拉取)累颂。

1滞详、從客戶端動態(tài)生成16位AES密碼

2、使用第一步生成的AES密碼加密要上發(fā)的請求數(shù)據(jù)紊馏,由于AES加密后是byte[]數(shù)據(jù)料饥,所以這里還需要使用base64封裝一層以方便傳輸。格式大概如下:

3朱监、使用RSA公鑰加密第二步生成的數(shù)據(jù)中的key岸啡,從而實現(xiàn)對key的保密,RSA加密后生成的二進制數(shù)據(jù)同樣還需要再使用base64封裝一層以方便傳輸赫编,客戶端的加密過程到這里就基本完成巡蘸,然后就可以將該請求發(fā)送到服務(wù)端了。(RSA公鑰客戶端持有擂送,RSA秘鑰服務(wù)端持有)

4悦荒、服務(wù)端收到了客戶端發(fā)送過來的請求后,拿到key參數(shù)嘹吨,即為RSA加密byte搬味。

5、使用服務(wù)端持有的私鑰解密第4步獲取到的RSA加密byte。從而獲取到了第二步時候的數(shù)據(jù)碰纬,同時需要base64解碼data數(shù)據(jù)萍聊。也即拿到了AES的key。

6悦析、獲取到AES的key后寿桨,便可以使用其來解密第5步中的data字段,也就是客戶端的真正請求數(shù)據(jù)她按。進而做相關(guān)操作牛隅,并生成相應(yīng)返回值。

7酌泰、服務(wù)端返回值生成后媒佣,同樣使用第5步獲取到的key進行加密,并得到返回的data(同樣的base64封裝)陵刹。與客戶端加密不同的是默伍,服務(wù)端的返回中key字段是客戶端的key字段加了rsa簽名后的數(shù)據(jù)。格式大概如下衰琐。

8也糊、使用服務(wù)端持有的私鑰對從客戶端傳過來的key的二進制數(shù)據(jù)進行簽名(以防止中間人攻擊),然后將數(shù)據(jù)向客戶端返回羡宙。

9狸剃、客戶端拿到服務(wù)端的數(shù)據(jù)返回后,先使用本地持有的公鑰驗證簽名狗热。然后base64解碼钞馁。

10、使用請求時候生成的key來解碼第9步驗證通過的數(shù)據(jù)匿刮,解碼后便得到了服務(wù)器端的真正返回僧凰,至此流程大概就完成了。

最后我們來分析下熟丸,為什么說训措,這套方案是比較安全的。

首先我們假設(shè)客戶端被反編譯光羞,那他能獲取到什么呢绩鸣,一個動態(tài)生成的rsa加密key嗎,拿過來并沒有卵用纱兑。不過他能拿到我們的客戶端公鑰全闷,拿到公鑰之后,他可以做兩件事情萍启,1、偽造一個客戶端,發(fā)送請求勘纯。 2局服、可以用來驗證任意請求是否來自我們的服務(wù)器。 這兩種情況也就夠他自己一個人玩玩驳遵,都無法構(gòu)成威脅淫奔。

其次,我們假設(shè)他通過抓包堤结,獲取了到了我們某個用戶的請求全過程唆迁。接下來他可能首先分析上行數(shù)據(jù),得到的是一個rsa加密后的數(shù)據(jù)竞穷,同樣我們假設(shè)他反編譯了我們的客戶端唐责,并且拿到了公鑰,然而他還是解不了我們的rsa加密瘾带。上行數(shù)據(jù)無法破解鼠哥,那他接下來就要來分析下行數(shù)據(jù)了,下行數(shù)據(jù)封裝比較簡單看政,而他也有我們的公鑰朴恳,完全可以驗證通過,并長驅(qū)直入直接拿到了我們的AES加密串允蚣,可惜啊于颖,可惜,下行數(shù)據(jù)中并沒有AES的秘鑰啊嚷兔。

總結(jié)一下森渐,這套方案要被破解,思路只有通過其他途徑直接控制服務(wù)器谴垫,然后再拿到我們的私鑰章母,那就死翹翹了。不過真到了服務(wù)器都被人家攻陷了翩剪,那人家還拿你私鑰干嘛乳怎,人家直接在上面掛個木馬來轉(zhuǎn)接客戶端請求不就可以了。綜上所述前弯,這其實是一套相當完美的前后端數(shù)據(jù)交互方案蚪缀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恕出,隨后出現(xiàn)的幾起案子询枚,更是在濱河造成了極大的恐慌,老刑警劉巖浙巫,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件金蜀,死亡現(xiàn)場離奇詭異刷后,居然都是意外死亡,警方通過查閱死者的電腦和手機渊抄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門尝胆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人护桦,你說我怎么就攤上這事含衔。” “怎么了二庵?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵贪染,是天一觀的道長。 經(jīng)常有香客問我催享,道長杭隙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任睡陪,我火速辦了婚禮寺渗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兰迫。我一直安慰自己信殊,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布汁果。 她就那樣靜靜地躺著涡拘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪据德。 梳的紋絲不亂的頭發(fā)上鳄乏,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音棘利,去河邊找鬼橱野。 笑死,一個胖子當著我的面吹牛善玫,可吹牛的內(nèi)容都是我干的水援。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼茅郎,長吁一口氣:“原來是場噩夢啊……” “哼蜗元!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起系冗,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤奕扣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后掌敬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惯豆,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡池磁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了循帐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片框仔。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拄养,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情银舱,我是刑警寧澤瘪匿,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站寻馏,受9級特大地震影響棋弥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诚欠,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一顽染、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轰绵,春花似錦粉寞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至液样,卻和暖如春振亮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞭莽。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工坊秸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人澎怒。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓褒搔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丹拯。 傳聞我的和親對象是個殘疾皇子站超,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容