网络嗅探与防范实验

实验工具与环境配置

  • 服务器操作系统:macOS Catalina 10.15.2
  • 客户端操作系统:macOS High Sierra 10.13.6
  • FTP 服务器:QuickFTP Server 1.0.4
  • FTP 客户端:ForkLift 2.6.6
  • 浏览器:Chrome 83.0.4103.61
  • Sniffer 工具:Wireshark 3.2.3

邮箱登录嗅探

我们知道,现在绝大多数网页访问都是基于安全的 HTTPS 协议,本实验选择的 QQ 邮箱也不例外。不同于 HTTP 协议,HTTPS 使用的是 443 端口。因此,为了更方便地分析报文,我们直接过滤 443 端口。

具体实验步骤为:

  1. 打开 Wireshark,选择本地连接;
  2. 设置过滤规则:tcp.port == 443
  3. 开始监听;
  4. 在 Chrome 浏览器中访问 QQ 邮箱,输入账号密码完成登录;
  5. 停止监听。

截获的报文如下图所示:

mail

可以看到,通过网页登陆邮箱的过程中,涉及到的网络协议主要是 TCP 和 SSL/TLS,而 HTTPS 正是基于此二者的应用层协议。

HTTPS 协议是 HTTP 协议的安全版,利用 SSL 层对会话进行加密,使得即使他人嗅探到了数据报,也会因为数据是密文形式而无法得知其中的内容。此外,HTTPS 还提供身份认证和消息认证等安全服务,保证信息在存储和传输过程中不被非法篡改、破坏、增删,能够真实无误地到达目的地。接收方也可以对收到的消息进行验证,证明消息是可信的,即确实来自声称的发送方,并且没有被修改过。

FTP 登录嗅探

实验使用两台电脑,分别作为服务器和客户端,在同一个局域网中建立 FTP 连接。

在服务器上,运行 QuickFTP Server 软件,设置端口为 21,启动 FTP 服务器。

quickftp

在客户端,先打开 Wireshark,开始监听。运行 ForkLift 软件,选择 FTP 协议,输入服务器、用户名和密码,同样设置端口为 21。点击 Connect,连接到服务器。

forklift

连接成功后,停止 Wireshark 监听,过滤 FTP 报文,找到如下两条含有重要信息的报文:

user

pass

显然,Wireshark 成功嗅探到了 FTP 登录过程中需要的用户名和密码,可见 FTP 协议不能保证传输数据的安全性。

SFTP 登录嗅探

为了对局域网嗅探器进行防范,我们选择使用 SFTP 协议再次进行实验。SFTP 是 Secure File Transfer Protocol 的缩写,即安全文件传送协议,可以为传输文件提供一种安全的加密方法。SFTP 为 SSH 的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在 SSH 软件包中,已经包含了一个叫作 SFTP 的安全文件信息传输子系统。SFTP 使用加密传输认证信息和传输的数据,因此使用 SFTP 是非常安全的。然而,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。

我们在服务器上启动 macOS 系统自带的远程登录服务,允许其他电脑上的用户使用 SFTP 访问这台电脑。sftpserver

在客户端依然使用 ForkLift 软件建立连接,但这次选择 SFTP 协议,且将端口号设置为 22。

sftp

在 Wireshark 中,设置过滤规则为 ip.addr == 10.30.4.61(即服务器的 IP 地址),截获的报文如下图所示:

sftppacket

可以发现,这次没有截获到 FTP 报文,取而代之的是 TCP 和 SSH 报文。在建立 TCP 连接之后,客户端与服务器先进行握手协议,完成加密算法的协商和会话密钥的传递,然后进行安全数据传输。此时报文中的数据均已是密文形式,无法再从中嗅探出用户名和密码等重要信息,从而实现了对网络嗅探的防范。

posted @ 2020-07-19 13:32  TimDyh  阅读(634)  评论(0编辑  收藏  举报