• 网络嗅探与防范实验


    实验工具与环境配置

    • 服务器操作系统: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 连接之后,客户端与服务器先进行握手协议,完成加密算法的协商和会话密钥的传递,然后进行安全数据传输。此时报文中的数据均已是密文形式,无法再从中嗅探出用户名和密码等重要信息,从而实现了对网络嗅探的防范。

  • 相关阅读:
    ES中对应的SQL的count(distinct 列名) java实现
    maven使用
    自旋锁
    Java手写死锁并用jps和jstack查看
    已知二叉树前序和中序,算法写出后续遍历的结果
    Idea里搭建SpringMVC项目,部署的包下没有lib
    Spring配置文件中关于bean标签的id属性和name属性的说明
    ORA-12519: TNS:no appropriate service handler found 解决
    springmvc常用注解标签详解
    Spring/SpringMvc 配置文件常用标签解释
  • 原文地址:https://www.cnblogs.com/timdyh/p/13339449.html
Copyright © 2020-2023  润新知