是什么让Telnet容易受到攻击?


如果您需要通过命令行连接到远程机器,您可能会倾向于使用Telnet,这是互联网上仍在使用的最古老的协议之一。但是,最好不要这样做,因为它会危及您的数字隐私。

我们将介绍为什么您不应该使用Telnet远程连接到服务器,以及您可以使用哪些其他安全协议。

什么是Telnet?

Telnet (TN) 是一种网络协议和软件包,允许您通过 TCP/IP 网络或互联网连接到远程计算机和终端。Telnet 创建于 1969 年,并由互联网工程任务组作为最初的互联网协议之一进行了标准化 (IETF)。

Telnet 是一款专用的程序,用于将远程计算机/服务器连接到主机计算机。它旨在用于远程服务器访问、管理和客户端/服务器架构。用户可以通过提供正确的登录和登录凭据来访问远程系统上的特权功能。Telnet 命令可以在支持 Telnet 的任何客户端或服务器设备上运行。

Telnet 没有任何安全功能,并且会以明文形式发送所有消息。因此,在许多应用程序和服务中,Secure Shell 已在很大程度上取代了 Telnet (SSH)。

Telnet 的工作原理

Telnet 是一种客户端-服务器协议,可以连接到远程计算机(通常是服务器)并打开命令行。此实用程序可用于 ping 端口并确定它是否已打开。Telnet 使用虚拟终端连接仿真器,这是一种计算机连接的抽象实例,通过使用标准协议模拟连接到系统的物理终端。对于需要通信数据文件的用户,可以将 FTP 和 Telnet 结合使用。

Telnet 允许用户远程连接到一台机器,通常称为 Telnetting 到系统。他们必须提供其登录名和密码组合才能访问远程计算机,这允许他们运行命令行,就像他们在计算机前一样。无论用户的物理位置如何,用户的 IP 地址都将与他们登录的计算机匹配,而不是他们用来登录的计算机。

Telnet 的安全问题

客户端和服务器之间的 Telnet 会话在没有解决方法的情况下不会被加密。那些可以访问主机之间 TCP/IP 数据包流的人可以监控所有流量、窃听并记录潜在的敏感信息,例如 Telnet 服务器用户的登录名和密码。使用 Telnet,在计算机之间传输的所有内容都以明文形式存在。这也适用于用户名和密码。如果您使用的是 Telnet,“中间人”攻击可以轻松拦截连接并泄露您发送的任何凭据。

这说明了创建 Arpanet(演变成互联网的第一个网络)的几种文化。Arpanet 是 20 世纪 60 年代末和 70 年代初的一个实验性的美国政府研究项目,当时并没有计划成为当今庞大的全球网络——互联网。

创建者是希望连接该国领先的研究型大学的学者,他们彼此信任。没有人会试图入侵计算机。

一些路由器制造商继续使用 Telnet 并将其保持为可访问状态,并犯下其他安全错误,例如硬编码凭据。这种情况已经发展到攻击策略变得过于可预测的地步:感染一台设备,然后在同一网络上寻找其他具有 Telnet 协议端口打开的设备。

在极少数情况下,恶意软件会尝试一些常用的或默认的密码,并查找其他开放的端口。如果硬件没有得到充分的保护并且仍然有一个过于开放的端口,那么接管它就很容易了。除非另行配置,否则 Telnet 在路由器上使用端口 23。但是,它并不是唯一使用此端口的协议。许多其他物联网设备使用 Telnet,这很危险,因为通信未加密并且以明文形式进行。Telnet 被认为是一种过时的技术。

Telnet 的应用

Telnet 可用于在服务器上执行一系列任务,包括文件编辑、程序执行和电子邮件检查。

一些服务器允许通过 Telnet 远程访问公共数据,允许用户玩简单的游戏或查询天气预报。许多此类功能之所以存在,是因为它们怀旧或与需要特定数据的早期系统兼容。

Telnet 还允许用户连接到任何使用基于文本的未加密协议的软件,例如 Web 服务器和端口。用户可以在远程系统的命令提示符中键入 Telnet,后跟远程设备的名称或 IP 地址,Telnet 连接将 ping 该端口以查看它是否已打开。空白屏幕表示端口已打开,但出现错误消息。

Telnet 的替代方案:SSH 和 Mosh

芬兰赫尔辛基理工大学的学生塔图·伊洛宁受到一次窃取密码的攻击的启发,创建了 Secure Shell 或 SSH。OpenSSH 是一个 OpenBSD 项目,是当前 Unix 和 Linux 系统上使用最广泛的安全协议之一。即使是 Windows 10 也内置了 OpenSSH 版本。

鉴于 SSH 消除了导致 Telnet 如此危险的问题,这并不意外。SSH 是一种加密两个或多个机器之间连接的协议,因此即使攻击者设法侵入它,他们也无法解密正在发生的事情。

SSH 与 Telnet 一样非常有用,但它构建的基础主要技术假设意味着进一步的网络部署暴露了它的缺陷。SSH 假设使用有线、始终在线的连接。看看如果您在连接时关闭笔记本电脑盖子会发生什么。您的 SSH 连接将变得无响应。

SSH 是一种加密协议和用于运行网络服务、shell 服务以及与远程计算机进行安全网络通信的接口。在不安全的网络之上,Secure Shell 允许两个远程连接的用户执行网络通信和其他服务。它最初是一个 Unix 命令,但 Windows 计算机也支持它。SSH 的创建是为了允许用户安全地登录到远程计算机并执行 shell 和网络功能。例如,网络管理员可以使用它登录到远程 Web 服务器。它也是 Telnet、RSH 和 rexec 协议的安全替代方案。基于 SSH 的通信/进程通常使用客户端/服务器设计,既有客户端也有服务器 SSH。

客户端经过身份验证并安全连接,它将加密的命令发送到服务器以执行。基于 RSA 公钥加密的数字证书对客户端和服务器进行身份验证。SSH 使用的加密技术是 AES、IDEA 和 Blowfish。

Mosh 的创建是为了解决在笔记本电脑、移动设备和无线连接上使用 SSH 的问题。即使您的 Wi-Fi 网络断开连接,Mosh 也允许您保持连接,并且可以有效地在多个网络之间漫游。

状态同步协议是 Mosh 使用的一种新协议 (SSP)。使用传统的远程连接技术,如 Telnet 和 SSH。在 SSH 下,服务器向客户端发送一些下游字节。

SSP 为组合添加了一层新的内容。服务器和客户端都使用序列号来跟踪传输。当服务器接收到与上一个序列号不同的序列号时,它会识别出客户端已切换连接。这意味着在不同的 Wi-Fi 网络之间移动、在 Wi-Fi 网络和移动网络之间移动或在 Wi-Fi 网络和有线连接之间移动等操作非常简单。

实时字符回显是 Mosh 提供的另一个有用的功能。使用 SSH 时,您可能会注意到在键入和看到文本出现在屏幕上之间存在延迟,因为服务器会将您键入的内容回显给您。

SSH 与 Telnet:有什么区别?

  • 与Telnet相比,SSH更安全。

  • Telnet以明文发送数据,而SSH则对其进行加密。

  • Telnet不使用任何身份验证,但SSH使用公钥进行身份验证。

  • 与Telnet相比,SSH会稍微增加带宽负担。

  • SSH几乎完全取代了实际所有应用中的Telnet。

  • SSH和Telnet都用于相同目的。

  • 最后,SSH客户端(允许您连接到SSH服务器的软件)适用于所有主要的运营系统和平板电脑操作系统。

更新于: 2022年3月15日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告