1. 程式人生 > >如何有效防止API的重放攻擊(轉自阿裏雲)

如何有效防止API的重放攻擊(轉自阿裏雲)

機器 阿裏雲 replay 方式 有效 識別 頻率 驗證 所有



API重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,這種攻擊會不斷惡意或欺詐性地重復一個有效的API請求。攻擊者利用網絡監聽或者其他方式盜取API請求,進行一定的處理後,再把它重新發給認證服務器,是黑客常用的攻擊方式之一。
HTTPS數據加密是否可以防止重放攻擊?

否,加密可以有效防止明文數據被監聽,但是卻防止不了重放攻擊。
使用簽名防止重放攻擊

使用簽名之後,可以對請求的身份進行驗證。但不同阻止重放攻擊,即攻擊者截獲請求後,不對請求進行任何調整。直接使用截獲的內容重新高頻率發送請求。

API網關提供了一套有效防止重放攻擊的方法。開啟API網關的放重放,需要您使用“阿裏雲APP”的認證方式。通過這種簽名認證方式,每個請求只能被使用一次,從而防止重放。

阿裏雲APP:是基於請求內容計算的數字簽名,用於API網關識別用戶身份。客戶端調用API時,需要在請求中添加計算的簽名。API網關在收到請求後會使用同樣的方法計算簽名,同用戶計算的簽名進行比較,相同則驗證通過,不同則認證失敗。這種認證的簽名方式請參照:請求簽名

在API網關的簽名中,提供X-Ca-Timestamp、X-Ca-Nonce兩個可選HEADER,客戶端調用API時一起使用這兩個參數,可以達到防止重放攻擊的目的。
原理

請求所有的內容都被加入簽名計算,所以請求的任何修改,都會造成簽名失敗。

不修改內容

X-Ca-Timestamp:發起請求的時間,可以取自機器的本地實現。當API網關收到請求時,會校驗這個參數的有效性,誤差不超過15分鐘。

X-Ca-Nonce:這個是請求的唯一標識,一般使用UUID來標識。API網關收到這個參數後會校驗這個參數的有效性,同樣的值,15分鐘智能被使用一次。


如何有效防止API的重放攻擊(轉自阿裏雲)