漏洞解決方案 交易重放

2021-10-09 09:27:26 字數 1500 閱讀 8471

重放攻擊(replay attacks)又稱重播攻擊、回放攻擊,是指攻擊者傳送乙個目的主機已接收過的包,來達到欺騙系統的目的,主要用於身份認證過程,破壞認證的正確性。

重放攻擊可以由發起者,也可以由攔截並重發該資料的敵方進行。攻擊者利用網路監聽或者其他方式盜取認證憑據,之後再把它重新發給認證伺服器。重放攻擊在任何網路通過程中都可能發生,是計算機世界黑客常用的攻擊方式之一

威脅描述:

交易重放即重放交易請求報文,導致交易再次被執行。

導致交易重放的原因有很多種,常見的有以下幾種:

認證和交易操作在同乙個客戶端請求中。

① 如果在認證交易過程中,只使用了靜態認證因子,且靜態認證因子未使用「一次一密」 的加密演算法,或者對於隨機因子使用不當,即可造成交易重放,原理和登入重放類似(詳見登入重放的解決方案)。

② 如果在認證交易過程中,只使用了動態認證因子,且動態認證因子在成功使用後未做失效處理,也可造成交易重放。

認證和交易操作通過客戶端與服務端的多步互動完成,認證和交易操作不在同乙個客戶端請求中,在最後一步交易操作請求中,服務端只是執行交易操作,那麼,直接重放最後一步交易請求,即可造成交易重放。

涉及功能點:

各類交易場景。

優化業務邏輯,將認證和操作放在同乙個客戶端請求中,在伺服器端按照業務流程進行分步執行操作。

以轉賬場景為例:

對密碼加密時,使用隨機因子,隨機因子應參與加密運算。可使用隨機數或時間戳等方式。如此,每次隨機數和時間戳不同,加密後密碼密文也不同,實現「一次一密」。

(1)使用時間戳。

① 密碼加密時,使用服務端下發的時間戳;

② 服務端在驗密時,先驗證請求中的時間戳足夠接近當前時刻的時間戳(適當的時間窗,越大越能包容網路傳輸延時,越小越能防重放攻擊),再利用時間戳解密密碼密文。

(2)使用隨機數。

① 密碼加密時,使用服務端下發的隨機數;

② 服務端在驗密時,利用服務端儲存的隨機數(如果驗密隨機數從客戶端獲取,服務端必須驗證此隨機數和本次登入服務端下發的隨機數一致)解密驗密;

③ 隨機數在使用後,服務端應立即重置,防止重複使用。

如果採用客戶端與服務端分步業務流程執行,認證通過後,服務端記錄認證標識,最後操作時,驗證其認證標識,認證標識使用一次後,應立即失效。

如果系統採用了整體的全報文加密機制,可在報文加密過程中,加入服務端下發的隨機因子,請求提交時,服務端對隨機因子進行驗證,驗證成功後,立即對隨機因子進行失效處理。

由於隨機因子有整體的報文加密保護,無法隨意修改,可防止交易重放。

會話重放攻擊與完整性校驗解決方案

攻擊者傳送乙個目的主機已經接收過的包,特別是在認證的過程中,用於認證使用者身份所接收的包,來達到欺騙系統的目的,主要用於身份認證過程,破壞認證的安全性。也可利用系統中post請求資料報未針對單個請求設定有效的驗證引數,導致會話請求可以重放,無限制的向資料庫中插入海量資料,或無限制的上傳檔案到系統中,...

ecshop支付漏洞手工注入 解決方案

原exp為 respond.php?code tenpay attach voucher sp billno 1 and select 1 from select count concat select select select concat 0x7e,0x27,count 0x27,0x7e f...

tomcat示例檔案漏洞解決方案

漏洞名稱 apache tomcat servlet jsp容器預設檔案 解決方案 生產環境部署的tomcat中介軟體是不需要示例檔案和預設檔案的,一旦保留了示例檔案或缺省檔案就會被漏掃系統掃瞄出各種漏洞,最典型的就是上面這種預設檔案。經實際測試,windows伺服器刪除後一般不會再被掃瞄出tomc...