重新執行攻擊
當攻擊者複製兩方之間的訊息資料流,並且對其中一方或多方重新執行資料流時,即表示發生重新執行攻擊。 除非緩解攻擊,否則受到攻擊的電腦會將資料流當成合法訊息來處理,導致發生一連串負面的影響,例如項目的重複排序。
繫結可能受制於反映攻擊
反映攻擊是指將訊息送回至傳送者的重新執行,就好像訊息是來自接收者的回覆一樣。 Windows Communication Foundation (WCF) 機制中的標準重新執行偵測不會自動處理這個情況。
反映攻擊預設會自行緩解,因為 WCF 服務模型會將已簽署的訊息識別碼新增至要求訊息,並預期在回覆的訊息上收到簽署的 relates-to
標頭。 如此一來,要求訊息便無法當成回應來重新執行。 在安全訊息 (RM) 案例中,反映攻擊的緩解原因為:
建立順序與建立順序回應訊息結構描述是不一樣的。
在 Simplex 順序中,用戶端所傳送的順序訊息無法返回重新執行,因為用戶端無法理解此類訊息。
在雙工順序中,兩個順序識別碼必須是唯一的。 因此,傳出的順序訊息無法返回當成傳入順序訊息來重新執行 (所有的順序標頭與本文都會一併簽署)。
唯一會受到反映攻擊影響的繫結就是不含 WS-Addressing 的繫結:已經停用 WS-Addressing 並使用對稱式金鑰安全性的自訂繫結。 BasicHttpBinding 依預設不會使用 WS-Addressing,但是它在使用對稱式金鑰安全性時,不會讓本身受到此攻擊的影響。
自訂繫結的緩解作業不是要建立安全性內容或是要求 WS-Addressing 標頭。
Web 伺服陣列:攻擊者對多個節點重新執行要求
用戶端會使用已在 Web 伺服陣列上實作的服務。 攻擊者會針對伺服陣列中另一個節點重新執行已經傳送至某個伺服陣列節點的要求。 此外,如果服務重新啟動,則會清除重新執行快取,讓攻擊者重新執行要求 (快取中包含已使用、先前看到的訊息簽章值並避免重新執行,以讓簽章只能使用一次。Web 伺服陣列不會共用重新執行快取)。
風險降低的方式包括:
使用訊息模式安全性搭配具狀態的安全性內容權杖 (包含或不包含啟用的安全對話)。 如需更多資訊,請參閱如何:為安全工作階段建立安全內容權杖。
設定服務使用傳輸層級安全性。