我從經典的MIT論文中瞭解到端到端原則,該原則聲明在兩個遠程節點之間執行功能並不取決於中間節點的狀態。端到端屬性
但什麼是端到端加密,端到端保證,端到端協議等......?我找不到端到端的準確定義。這個詞似乎被過度使用。
換句話說,當一個系統屬性X描述爲端到端,這是什麼意思?端到端的相反是什麼?
我從經典的MIT論文中瞭解到端到端原則,該原則聲明在兩個遠程節點之間執行功能並不取決於中間節點的狀態。端到端屬性
但什麼是端到端加密,端到端保證,端到端協議等......?我找不到端到端的準確定義。這個詞似乎被過度使用。
換句話說,當一個系統屬性X描述爲端到端,這是什麼意思?端到端的相反是什麼?
我不認爲端到端是過度使用。它只是說,財產從一端到另一端。 「結束」可以是計算堆棧中的節點或層。
考慮三個節點:A,B和C.節點A想和C通話.B位於A和C之間並在它們之間轉發消息。 B例如是負載均衡器或網關。
如果B無法讀取並篡改從A發送到C的消息,則加密是端到端的。具體示例如下:A是您的筆記本電腦,C是您家中或工作網絡中的遠程機器。 B是一個VPN網關。這裏的加密是而不是端到端,因爲只有A和B之間的鏈接實際上是加密的。坐在B和C之間的攻擊者將能夠讀取明文。這在實踐中可能很好,但這不是端到端。
另一個例子。假設我們不關心加密,而是關於可靠的消息傳輸。你知道網絡可能會破壞一些消息。因此,TCP和其他協議具有校驗和字段,每當收到消息時都會檢查該字段。但這些校驗和的保證不一定是端到端的。
如果A依靠TCP的校驗和向C發送消息m,則坐在中間的節點B可能以不可檢測的方式破壞消息。 (2)檢查m的校驗和,(3)找到到C的路由,並創建一條新的消息,其中有:(1) (5)將m(用新的校驗和)發送給C.現在,如果節點B在(2)之後但在步驟(4)之前破壞消息,則得到的消息到達C已損壞,但無法通過查看m的校驗和來檢測到!因此,這種校驗和不是端到端的。節點B甚至不必是惡意的。這種腐敗可能是由硬件錯誤或更可能由節點B中的錯誤引起的。這在亞馬遜S3服務中發生過幾次,例如:this case和this case和this case。
顯然,解決方案是使用應用程序級校驗和,它是端到端的。這裏,在計算下層校驗和之前,校驗和的有效載荷被附加到有效載荷上。