您好,登錄后才能下訂單哦!
這篇文章主要講解了“支付寶支付加密規則是怎么樣的”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“支付寶支付加密規則是怎么樣的”吧!
在了解簽名前,先回顧一下支付的交互流程。如上圖所示,支付的過程中可以大概分為6個步驟。
用戶選擇自己的商品提交訂單。
商家服務器將商品信息和所需要的金額發給支付寶,生成支付寶訂單。
支付寶訂單返回成功之后生成一個支付頁面,方便手機支付或者網頁支付。
手機調起支付寶app進行支付。
輸入支付密碼發送給支付寶服務器。
支付寶服務器轉賬成功,告知商家服務器某個訂單的金額轉賬成功。
這6個步驟中,最為重要的是步驟2和步驟6。拆解如下。
商家服務器和支付寶服務器交互的過程中傳輸的信息異常敏感,所以,在交互時必須防止中間人對于信息的篡改。例如步驟2將商品的金額改為0,支付寶就誤認為是轉賬0元。
數字簽名解決了交互時這一安全問題。它可以驗證一條消息或者文檔的真實性。在支付寶支付的接口中,有一個sign
參數用來填寫簽名。這個簽名作用是為了防止信息偽造。通過這種方式可以有效的防止消息在傳遞過程中被篡改。
2.1 簽名原理
數字簽名是一個信息安全的保障,它的實現依賴于雙方系統的密鑰。
簽名過程如下:
計算希望簽名的文檔的散列。不論輸入文檔的長度如何,輸出長度總是固定的。比如,使用SHA256就是256位。
對結果散列和一些額外的元數據進行編碼。比如,接收方需要知道你使用的散列算法,否則不能處理簽名。
使用私鑰加密編碼過的數據,其結果就是簽名,可以追加到文檔中作為身份驗證的依據。
驗證簽名(驗簽):
接收方接收文檔并使用相同的散列算法獨立計算文檔散列。
接著,她使用公鑰對消息進行解密,將散列解碼出來,再確認使用的散列算法是否正確,解密出的散列是否與本地計算的相同。
2.2 非對稱加密
支付寶采用RSA非對稱加密對信息進行簽名。
非對稱加密是由一個公鑰和一個私鑰組成,一般代碼中命名為public key
和private key
。非對稱加密的特點是:私鑰加密的信息只有公鑰才能解密,公鑰加密的信息只能有私鑰才能解密。
一般會將私鑰進行保留,開發時一般會放在配置文件中,安全級別和數據庫賬號密碼一樣。公鑰會交給其它系統,這樣系統間交互時中間人不知道密鑰的情況下,是無法破解交互的信息的。發送方只要保證私鑰不泄露,任何人發送給接收方的信息在簽名驗證時都無法匹配成功。
支付寶的實現簽名的方式也大致如此,支付寶在信息交互的時候兩個很重要的名詞支付寶公鑰
和應用公鑰
,這兩個秘鑰總是讓人混淆。這是因為支付寶提供了兩套RSA加密。一套是用來保證步驟2
統一下單接口時的信息安全,另一套是用來保證步驟6
回調時的信息安全。
如下圖,步驟2商戶服務器通過紅色應用私鑰(priv key 2
)計算簽名,支付寶通過紅色應用公鑰(pub key 2
)進行驗簽;步驟6支付寶服務器通過藍色支付寶私鑰(priv key 6
)計算簽名,商家通過藍色支付寶公鑰(pub key 6
)驗證簽名。
如上圖,說明使用RSA2
加密方式,HASH
算法采用SHA256
。進入設置之后要設置應用公鑰
和保存支付寶公鑰
。
應用公鑰和應用私鑰 這兩個需要自己生成一對,保證步驟2的安全。生成方式跳轉支付寶開放平臺開發助手
支付寶公鑰和支付寶私鑰是支付寶提供的,私鑰支付寶自己保留的,和自己服務器的應用私鑰一樣,人家不會提供出來。公鑰復制下來用于在回調時進行簽名的認證。
簽名雖然可以防止中間人的信息篡改,但是無法防止中間人信息查看。比如步驟2中,向支付寶發送的商品金額,中間人即可獲取每天中該商家交易的金額。信息在網絡中傳輸感覺是一個虛無縹緲的過程,網絡中信息有可能被不法分子進行攔截。
因此在支付的過程中,會推薦使用https
協議進行交互,使得交互的信息加密傳輸。而且,支付寶的很多接口還支持使用AES
加密之后進行傳輸,使得信息更加安全。
AES加密是一種對稱加密算法,對稱加密算法相對于非對稱加密要簡單一點。系統間只存在一個密鑰,這個密鑰可以用來加密也可以用來解密。
在與支付寶交互的信息可以通過AES加密。防止信息的泄露,官方對接口的解釋如下:
若 OpenAPI 無 bizContent 傳參則無法使用 AES 密鑰加密,否則會報錯 當前 API 不支持加密請求。例如:alipay.user.info.share(支付寶會員授權信息查詢接口)未使用 bizContent 傳參則無法使用 AES 密鑰加密。
AES 密鑰是對接口請求和響應內容進行加密,密文無法被第三方識別,從而防止接口傳輸數據泄露。
RSA 密鑰是對接口請求和響應內容進行簽名,開發者和支付寶開放平臺分別加簽驗簽,以確認接口傳輸的內容沒有被篡改。不論接口內容是明文還是密文,RSA 均可正常簽名。
開發者可對請求參數先做 AES 加密,然后對密文進行 RSA 簽名。
感謝各位的閱讀,以上就是“支付寶支付加密規則是怎么樣的”的內容了,經過本文的學習后,相信大家對支付寶支付加密規則是怎么樣的這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。