[TOC]
一银室、非對(duì)稱(chēng)加密
1 非對(duì)稱(chēng)加密算法應(yīng)用方式
- 銀行自己生成公鑰鳄逾、私鑰稻轨,將自己的公鑰提供給集成商下載。
- 集成商自己生成公鑰雕凹、私鑰殴俱,將自己的公鑰上傳到銀行系統(tǒng)中。
2 算法加解密方式
1)私鑰加密公鑰解密
- 場(chǎng)景:適用于雙方均需要核驗(yàn)用戶身份的場(chǎng)景枚抵,如: A 會(huì)主動(dòng)與 B 進(jìn)行接口交互线欲,B 也會(huì)主動(dòng)與 A 進(jìn)行接口交互,雙方均需要驗(yàn)證各自的身份汽摹。
- 優(yōu)點(diǎn):可防止數(shù)據(jù)被篡改李丰、同時(shí)可有效驗(yàn)證接口調(diào)用方的身份
- 缺點(diǎn):數(shù)據(jù)保密性程度不夠
- 應(yīng)用領(lǐng)域:互為接口提供方與接口消費(fèi)方,銀行與集成廠商
2)私鑰解密公鑰加密
- 場(chǎng)景:適用于數(shù)據(jù)加密的場(chǎng)景逼泣,如: A 會(huì)主動(dòng)與 B 進(jìn)行數(shù)據(jù)交互趴泌,B 也會(huì)主動(dòng)與 A 進(jìn)行數(shù)據(jù)交互,數(shù)據(jù)保密性程度要求高
- 優(yōu)點(diǎn):數(shù)據(jù)保密性程度高
- 缺點(diǎn):數(shù)據(jù)可能被偽造
- 應(yīng)用領(lǐng)域:政府內(nèi)部系統(tǒng)間接口交互拉庶,公文交換類(lèi)系統(tǒng)
3 常用的非對(duì)稱(chēng)加密算法
RSA嗜憔、DSA、ECDSA 等
二氏仗、對(duì)稱(chēng)加密
1 對(duì)稱(chēng)加密算法應(yīng)用方式
- 服務(wù)提供商生成 appid吉捶、appkey ,將二者信息保存皆尔,并提供給集成商呐舔。
- 集成商獲取到 appid、appkey 慷蠕,進(jìn)行接口服務(wù)調(diào)用時(shí)數(shù)據(jù)加密或簽名珊拼。
2 算法使用方式
1)使用appkey 進(jìn)行數(shù)據(jù)加解密,appid 用來(lái)關(guān)聯(lián)獲取對(duì)應(yīng)的appkey
- 場(chǎng)景:主要為服務(wù)提供類(lèi)接口砌们,雙方信任度很高杆麸,可以忽略雙方數(shù)據(jù)偽造的場(chǎng)景搁进,另外浪感,加密一 般不涉及到相互接口的調(diào)用
- 優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,不用單獨(dú)生成公鑰饼问、私鑰
- 缺點(diǎn):appkey 雙方共有影兽,哪方發(fā)生信息泄露不利于追責(zé)
- 應(yīng)用領(lǐng)域:應(yīng)用類(lèi)服務(wù)的提供商,如:服務(wù)市場(chǎng)中的莱革,短信類(lèi)峻堰、基礎(chǔ)信息查詢類(lèi)服務(wù)
3 常用的對(duì)稱(chēng)加密算法
DES讹开、AES 等
三、其它
在數(shù)據(jù)加密要求低捐名,需要單獨(dú)驗(yàn)證接口調(diào)用方身份的場(chǎng)景時(shí)旦万,可使用 appid、appkey 進(jìn)行數(shù)據(jù)簽名镶蹋。
實(shí)現(xiàn)方式:
1)簽名生成
將接口業(yè)務(wù)請(qǐng)求參數(shù)獲取后成艘,按參數(shù)名的屬性名字典序排序后,將對(duì)應(yīng)屬性值贺归、對(duì)應(yīng)的appkey淆两、接口調(diào)用時(shí)間加入到待簽名的字符串中,基于字符串進(jìn)行MD5 處理拂酣,將具體值作為 sign 值進(jìn)行參數(shù)傳遞秋冰,另外需額外傳遞對(duì)應(yīng)的appid、接口調(diào)用時(shí)間time婶熬。
2)簽名驗(yàn)證
接口提供方剑勾,獲取到接口對(duì)應(yīng)的業(yè)務(wù)參數(shù),與附帶的 sign尸诽、appid甥材、time后,先判斷time 是否在合理的時(shí)間周期內(nèi)性含,如果不合理直接返回異常洲赵。否則,進(jìn)行逆向構(gòu)建對(duì)應(yīng)的數(shù)據(jù)簽名串商蕴,同樣使用 MD5 進(jìn)行簽名生成叠萍,對(duì)生成的值與sign值進(jìn)行比較,不匹配則驗(yàn)簽失敗绪商。
注:如果接口中包含 request body 中的參數(shù)苛谷,可以將 body 中的參數(shù)直接以字符串的形式接收后,之前拼接到待簽名的串中格郁。