首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用双隧道时,系统的根可以访问未加密的数据吗?

当使用双隧道时,系统的根可以访问未加密的数据吗?
EN

Security用户
提问于 2012-10-16 16:35:54
回答 3查看 219关注 0票数 3

我连接到一个不安全的DMZ网关系统(B)。从这台机器(B)我可以连接到最终目的地(C)。

A->B->C

我创建了一个从A到B的ssh隧道,并转发C的端口22:

代码语言:javascript
复制
ssh -L 2222:C:22 user@B

然后我就可以从A连接到C

代码语言:javascript
复制
ssh -p 2222 user@localhost

这是安全的,但它并不是非常有效的开销加起来,因为我有一个隧道内隧道。

另一种方法是将ssh作为ssh命令运行:

代码语言:javascript
复制
ssh user@B ssh user@C

这样的开销就少了,但是这个安全吗?

如果某人有根目录访问B,他能访问任何信息吗?据我所知,这些信息在内核级别是未加密的?

如果我没有C的公钥呢?

有什么想法或建议可以让我找到有关这方面的信息吗?非常感谢!

EN

回答 3

Security用户

发布于 2012-10-16 18:11:47

在尝试用性能来换取安全性之前,我建议实际测量性能。SSH加密的开销很小;它使数据大小增加了不到1%,并且CPU使用率很低,除非您的CPU相当弱或网络非常快( Core2 CPU可以通过使用单个核的15%以下来跟上10 MBytes/s SSH )。因此,使用双隧道的安全方法很可能并不昂贵。

此外,在您的第二个建议中,您的大小开销更小,桌面系统( A )上的CPU开销也更小,但是网关(B)上的CPU开销更多,因为该网关必须解密来自A的数据并对其进行再加密才能将其发送到C。由于网关往往是共享资源,因此B上的空闲CPU可能比A更少,因此,如果性能很重要(我不这么认为,而且无论如何都应该衡量它),那么安全的方法也是最佳的性能方法。

正如@Iszi所指出的,您的第二个方法也是不安全的,因为它允许网关生成一个MitM攻击。我想指出,这也使scp的使用更加困难。因此,您应该使用隧道内的方法:它更安全,更灵活,甚至可能更快。

票数 4
EN

Security用户

发布于 2012-10-16 17:55:38

如果某人在给定的场景中能够访问B,他们可以设置一个代理来对从A到C的连接执行中间人攻击,这将允许他们解密A和C之间的任何通信,如果没有在更高的级别上加密它。

攻击者将配置B,使其在使用攻击者的密钥对时将自己显示为C。然后,他也会模仿A到C,这样信息就可以通过B传递,就好像没有什么不寻常的事情发生,除了攻击者现在可以在B处嗅探流量。

检测这一点的唯一方法是A和/或C拥有彼此公钥的预先存在的、经过验证的副本。然后,当攻击者使用他的密钥跳进中间时,可以识别不受信任的实体,并拒绝连接。

票数 3
EN

Security用户

发布于 2012-10-16 20:38:19

是的,B上的根用户可以窥探您的流量,尽管您没有确切地说明它是什么操作系统。在Linux上,这可能包括ttysnoop程序或使用针对sshd的调试器。

我经常使用隧道中的隧道(以及SSH上的SSH之上的SSH,这是另一个层),它不一定有一个严重的性能或延迟负担。当然,存在一些开销,但不超过连接的通常可变性。

考虑一下单个字符的最坏情况。在Telnet中,它将作为以太网帧发送,有效负载为46字节(20字节IP报头、20字节TCP报头、1字节数据,但以太网标准需要46字节的最小有效负载,在VLAN环境中为42字节)。在SSH中,它将是68个字节的有效负载(“数据包的最小大小为16 (或密码块大小,以较大者为准)字节”(加号‘mac’)。“,RFC 4253);我看到92个字节在观察与Wireshark的实际连接。在SSH-over-SSH中,存在SSH帧的开销;我看到了140字节的有效负载。

发送大量数据时,SSH使用最多32k字节的帧(通过TCP协议,因此不受数据包大小的限制),因此双隧道的开销可以忽略不计。通过SSH隧道或直接通过SSH将一个2M文件传输到VM需要20多个时间。如果我dd一个36k文本文件,那么从“简单”ssh会话发送大约需要84个数据包--几乎所有的1380字节。

最后,你给出的命令,

代码语言:javascript
复制
ssh user@B ssh user@C

这第二个"ssh“可能会给出消息”由于stdin不是终端而不会分配伪终端“,您将得到一个shell,它不会提示您输入或支持命令行编辑。相反,试着

代码语言:javascript
复制
ssh user@B -t ssh user@C

还请注意,如果B主机无法跟上进入它的数据,那么实际上可能会产生更多的小数据包(= TCP报头开销和实际延迟)。

票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/22694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档