2014-12-19 89 views
1

我从经典的MIT论文中了解到端到端原则,该原则声明在两个远程节点之间执行功能并不取决于中间节点的状态。端到端属性

但什么是端到端加密,端到端保证,端到端协议等......?我找不到端到端的准确定义。这个词似乎被过度使用。

换句话说,当一个系统属性X描述为端到端,这是什么意思?端到端的相反是什么?

回答

1

我不认为端到端是过度使用。它只是说,财产从一端到另一端。 “结束”可以是计算堆栈中的节点或层。

考虑三个节点: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 casethis casethis case

显然,解决方案是使用应用程序级校验和,它是端到端的。这里,在计算下层校验和之前,校验和的有效载荷被附加到有效载荷上。