開發中如何防範重放攻擊

2021-09-25 18:43:04 字數 808 閱讀 2174

重放攻擊的基本原理就是把以前竊聽到的資料原封不動地重新傳送給接收方。很多時候,網路上傳輸的資料是加密過的,此時竊聽者無法得到資料的準確意義。但如果他知道這些資料的作用,就可以在不知道資料內容的情況下通過再次傳送這些資料達到愚弄接收端的目的。例如,有的系統會將鑑別資訊進行簡單加密後進行傳輸,這時攻擊者雖然無法竊聽密碼,但他們卻可以首先擷取加密後的口令然後將其重放,從而利用這種方式進行有效的攻擊。再比如,假設網上存款系統中,一條訊息表示使用者支取了一筆存款,攻擊者完全可以多次傳送這條訊息而偷竊存款。

在開發中,為了防止資訊被竊取之後被第三方重放,來攻擊遠端伺服器,我通常會在資料報中加入時間戳,伺服器端解密資料後,首先取出時間戳,判斷資訊是否已過期,如果資料中攜帶的時間戳與伺服器當前時間戳之間不在安全區,則認為此次傳送的資料為過期資料,伺服器可將其丟棄,拒絕服務。

當然不止這一種,還有其他的方法:

1,加隨機數:雙方只需要記住各自使用過的隨機數,不能有重複數,如果報文中有以前使用過的隨機數,則被認為是重放攻擊

優點:雙方不需要保持時間的同步,

缺點:需要額外儲存使用過的隨機數,則需要儲存和查詢開銷

2,加時間戳:時戳——代表當前時刻的數

而重放的時戳將相對遠離當前時刻

優點:不需要記憶體開銷

缺點:通訊各方的計算機時鐘必須保持同步(同步越好,受攻擊的可能性越小)

3,加流水號:雙方在報文中新增乙個逐步遞增的整數,則只要收到乙個不連續的流水號報文(太大或者太小)就認為有重放威脅

優點:不需要時間同步,儲存的資訊量小

缺點:攻擊者如果對報文解密成功,就獲得了流水號進而會偽造資料

登入重放攻擊 SSH如何防禦重放攻擊

ssh之所以能夠保證安全,原因在於它採用了公鑰加密。整個過程是這樣的 遠端主機收到使用者的登入請求,把自己的公鑰發給使用者。使用者使用這個公鑰,將登入密碼加密後,傳送回來。遠端主機用自己的私鑰,解密登入密碼,如果密碼正確,就同意使用者登入。如果中間人在使用者第二個步驟獲取到這個請求,這個請求裡面就包...

Web安全防範 防止重放攻擊

我們在開發介面的時候通常會考慮介面的安全性,比如說我們通常會要求請求的url攜帶乙個經過演算法加密的簽名sign到服務端進行驗證,如果驗證通過,證明請求是合法的。比如以下的url 醬紫,可能語言難以理解,我畫個圖先 首先正常的請求系統會要求校驗,當你的合法請求被黑客攔截之後,黑客就會重複地傳送該合法...

C 如何防止重放攻擊

重放攻擊 重放攻擊是指黑客通過抓包的方式,得到客戶端的請求資料及請求連線,重複的向伺服器傳送請求的行為。比如你有乙個 購買 的操作,當你點選購買按鈕時,向伺服器傳送購買的請求。而這時黑客對你的請求進行了抓包,得到了你的傳輸資料。因為你填寫的都是真實有效的資料,是可以購買成功的,因此他不用做任何改變,...