0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"

FPGA技术江湖 2026-07-23 08:58

 

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"

引言

同学们,想象这样一个场景:

你坐在图书馆,打开电脑,像往常一样点了"宽带连接"。弹出"正在连接"的提示,几秒钟后……连上了。

看起来一切正常。

但你不知道的是:你的账号和密码,刚刚被旁边桌子上那块巴掌大的FPGA开发板,用0.7毫秒的速度截获了。

没有弹窗,没有报警,没有任何异常。

这不是电影。这是我们实验室做的一个真实的教学演示实验。

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图1



第一幕:一场不公平的"赛跑"

要理解这个实验,我们先来看看每次"拨号上网"的时候,你的电脑到底在干什么。

当你点击"宽带连接",电脑会用一种叫 PPPoE 的协议跟校园网服务器"握手"。这个过程就像在食堂排队打饭:

🎤 你的电脑(大喊):"有没有服务器在?我要上网!"
(这一喊,就是所谓的 PADI 广播帧——全网都能听到)

🏪 校园网服务器:"我在!来我这边办手续!"
(回复一个 PADO 帧

💻 你的电脑:"好,我选你!"(发送 PADR

🏪 服务器:"连接建立!报上用户名和密码吧。"(发送 PADS

问题来了:你的电脑喊的时候,全网络都能听到。

如果有人比真正的服务器更快地回一句"我在!"——你的电脑就会和这个"冒牌货"建立连接,然后把密码乖乖交出去。

这就是一场"赛跑"。谁先到,谁就赢。

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图2

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图3

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图4

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图5

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图6


第二幕:为什么FPGA能赢?

校园网服务器是一台运行 Linux 的计算机。接收到你的广播后,数据要经过:网卡驱动 → 操作系统协议栈 → 用户态程序 → 再原路返回。一来一回,即使有缓存也要1.6毫秒,没缓存更是要20毫秒

而我们的FPGA呢?

FPGA是纯硬件。没有操作系统,没有驱动程序,没有"等CPU排队"。数据从网线进来,经过硬件状态机直接处理,组好回复帧就从另一个口发出去。整个过程:

0.7毫秒。

这就好比:服务器是一位经验丰富但动作稳重的大厨,要看菜单、找食材、起锅烧油;而FPGA是一台已经把所有食材摆好的自动炒菜机——食材一到,毫秒级出菜。


服务器
FPGA
响应时间
1.6~20 ms
0.7 ms
依赖操作系统
可重构
需要改代码重编译
重新烧录即可
并行处理
受限于CPU核数
天然并行

服务器还没反应过来,FPGA已经发完了回复,你的电脑已经"上钩"了。


第三幕:然后呢?密码就这么被"偷"了?

握手成功后,就进入了"Session阶段"。这时候假服务器(FPGA)会告诉你的电脑:"请用 PAP协议 验证身份。"

PAP 是什么?它是最古老、最简单的认证方式——用户名和密码直接明文发送。就像写在一张纸上递过去,谁都能看。

电脑乖乖地把你的学号和密码用明文发了出来。FPGA收到后,通过串口传给上位机软件——屏幕上赫然显示:

用户名:202312345
密码:woshidaxuesheng666

全程不到一秒。


第四幕:硬件的代码长什么样?

你可能好奇:纯硬件怎么处理这么复杂的网络协议?

答案是:状态机

我们用 Verilog 硬件描述语言写了一个五状态的"有限状态机"(FSM),像极了一位训练有素的门卫,按步骤接待每一位"访客":

IDLE → 等待攻击指令
 ↓
PADI → 监听广播,提取客户端MAC地址
 ↓
PADO → 发送伪造回复("我是服务器")
 ↓
PADR → 等待客户端确认
 ↓
PADS → 发送会话确认,分配会话ID
 ↓
LCP_START → 进入LCP协商,强制PAP认证

每个状态只做一件事,每件事只需要几个时钟周期。在125MHz的工作频率下,一个时钟周期才8纳秒。这就是硬件的速度——不讲道理的快

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图7
0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图8

第五幕:芯片设计师的灵魂三问 —— PPA

看完攻击过程,你可能觉得"酷是酷,但这跟IC设计有什么关系?"

关系大了。IC设计有一个永恒的灵魂三角:PPA —— Performance(性能)、Power(功耗)、Area(面积)

这个PPPoE实验,恰恰是PPA的一个有生死线的实战案例


P — Performance:快不够就输

这不是一个"能跑就行"的设计。如果 FPGA 响应比服务器慢哪怕 0.1ms,攻击就失败了。

  • • 当前 Fmax = 125MHz,响应 0.7ms → 攻击成功
  • • 如果关键路径太长,Fmax 掉到 80MHz → 响应膨胀到 1.1ms → 逼近红线
  • • 如果服务器升级到 0.5ms → 必须 pipeline 优化,把延迟压到 0.3ms

这就是"性能"在现实中的含义:不是跑分越高越好,而是有一条"不及格线"摆在那里。

就像华为被禁售 EUV 光刻机后,用 7nm DUV 多次曝光硬扛——不是追求极限性能,而是够不够用


P — Power:从实验室到产品

当前FPGA实现功耗约1.5W。听起来不多?

但如果这个设计要部署到卫星上做网络入侵检测(星载场景),功耗预算只有100mW——你需要:

  • • 空闲时 clock gating(设计99%时间在等待PADI)
  • • 帧缓存从寄存器改为 SRAM(576-bit register → BRAM)
  • • 如果流片为28nm ASIC,功耗可以降到30~80mW

同一个功能,从"能用"到"能卖",功耗可以差50倍。 这就是为什么IC设计师值钱。


A — Area:资源就是钱

当前设计用了约2000个LUT。能不能更少?

优化手段
省了什么
付出什么代价
FSM 从 one-hot 改 binary
省 2 个 FF + MUX
Fmax 可能下降
FIFO 深度从 64 减到 16
省 75% 分布式 RAM
能处理的帧长受限
帧缓存改 BRAM
释放 ~36 个 Slice
多 1 cycle 读延迟

每一个优化都是 trade-off。 省面积可能掉性能,提性能可能涨功耗。芯片设计师的日常,就是在这个三角形里找到最优平衡点。

这跟英伟达的 H100 vs H20 一个道理:功能一样,PPA 不同——一个卖10万美元,一个只能卖1万


第六幕:手机连 WiFi 也会中招吗?

有同学会问:我用的是手机连 WiFi,又不插网线,这攻击能打到我吗?

答案是:看你们学校用什么认证方式。

如果你的校园网是"连上WiFi后还要拨号"(很多学校确实如此)——恭喜,你的 PADI 广播帧会被 AP 桥接到有线侧,FPGA 照样能抓到。手机、笔记本、平板,一个都跑不掉。

如果你的校园网用的是 WPA2-Enterprise(连 WiFi 时直接输入学号密码)——那你是安全的。因为整个过程根本不走 PPPoE 协议,FPGA 监听不到任何东西。

更进阶的玩法:如果 AP 做了隔离(FPGA 收不到 WiFi 用户的广播),攻击者可以用一个 ¥50 的路由器发射一个同名假热点(安全圈叫"Evil Twin")。你的手机会自动连接信号更强的那个——然后你的 PPPoE 拨号请求就直达 FPGA 了。

为什么不干脆在 FPGA 上直接做一个 WiFi? 因为 802.11 协议的硬件复杂度是以太网的 25~50 倍(OFDM 调制 + CSMA/CA + WPA2 加解密),还需要额外的射频芯片。花 50 倍的面积和功耗,只为替代一个 ¥50 的路由器——这笔 PPA 账怎么算都不划算。

这就是工程师的智慧:让每个模块做它最擅长的事。 FPGA 做高速帧处理,路由器做无线接入。分工合作,成本最低。


第七幕:如何防御?

看到这里,你可能已经开始担心自己的密码了。别慌,现代校园网早就不用 PAP 了

现在主流的认证方式是 CHAP(Challenge Handshake Authentication Protocol)或 EAP,它们不会直接传输密码,而是用"挑战-应答"的方式验证身份——就算被截获,攻击者拿到的也只是一串无法逆向的哈希值。

这个实验告诉我们三件事:

  1. 1. 协议设计很重要。一个不安全的认证机制(PAP),可以被硬件级别的攻击轻松攻破。
  2. 2. 了解攻击,才能更好地防御。 知道"坏人"怎么做,才能设计出更坚固的系统。
  3. 3. PPA 不是课本概念,而是生死线。 快 0.1ms 就成功,慢 0.1ms 就失败——IC设计的每一个trade-off都是真金白银。

这个实验能教给你什么?

如果你是通信/电子信息/计算机专业的学生,这个实验覆盖了你课堂上学的好几门课的知识:

你的课程
这个实验里的体现
计算机网络
PPPoE协议四步握手、LCP、PAP
数字电路/FPGA
状态机设计、帧解析、时序控制
通信原理
以太网帧结构、MAC层交互
集成电路设计PPA三维分析:Fmax是性能红线、clock gating降功耗、FSM编码/FIFO深度决定面积
网络安全
中间人攻击、认证协议安全性对比
嵌入式系统
UART通信、上位机交互

这不是做个LED闪烁就结束的实验课。 这是一个完整的、能跑在真实网络上的系统。你能亲眼看到自己写的Verilog代码"偷"到了密码——这种成就感,只有动手做过的人才懂。

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图9

最后:想不想亲手试试?

这个项目来自全国大学生FPGA创新设计竞赛的参赛作品。我们已经把它改造成了教学实验——

  • • 演示模式(30分钟):跑一遍仿真,看波形里完整的协议交互过程
  • • 进阶模式(4~6学时):自己综合下板,在实验室搭建真实攻防环境

我们的"通信芯片设计基础"课程实验体系中,已经有亚稳态随机数发生器、FSM 编码 PK、跨工艺 STA 对比等精心设计的关卡。而这个 PPPoE 实验,将作为 L8 选修关卡,带你从"写代码点亮LED"跨越到"用硬件搞网络攻防"。

硬件不只是焊电路板。硬件可以比软件快30倍。硬件的每一个bit都是PPA的trade-off。硬件可以做你从未想过的事情。

如果你觉得"桌上摆一块开发板太明显了"——没错,高级玩法是把这套逻辑做进一张PCIe网卡里,插到电脑上看起来就像一台普通PC。但这里面又是一道PPA题:PCIe接口要多花3倍面积、5倍功耗,却不会让攻击快哪怕0.01ms。值不值?什么时候值?这就是IC设计师天天在做的决策。

当然,还有第二层攻击,比如你想让凌晨还在宿舍打游戏大喊大叫的舍友下线,还有第三层DDoS共计,不断地向服务器报告下面有网络故障,于是整栋楼就断网了。。。这些都可以使用一块便宜的FPGA就能实现。

下节课见。

完整演示视频如下:



尾注

本实验仅供教学演示和网络安全研究。所有演示在隔离实验环境中进行,严禁用于任何未授权场景。

参考项目:第五届全国大学生FPGA创新设计竞赛 · 0959-师兄皇朝队

课程:通信芯片设计基础 | 任课教师:潘伟涛

 

END


往期精选 

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图10 
0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图11 


0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图12
0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图13

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图14

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图15

备注姓名+公司/学校+岗位/专业进群

0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"图16

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
FPGA
more
AMD一颗“低端FPGA”,把国产厂商的路直接堵死了?
基于 FPGA 的便携式 DDS 信号发生器与示波器
基于FPGA的分布式视频处理平台
0.7毫秒"偷"走你的校园网密码 —— 一块FPGA板子的"闪电战"
资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2026.02.28更新)
国外大学生都用FPGA做什么项目(十八)
国外大学生都用FPGA做什么项目(十六)
国产FPGA闯出新速度,HME-PV为AI视觉注入新动能
在 FPGA 上重生的经典:实现 Z80 与 8051 单板电脑
广东发力!GPU、FPGA、NPU 高端通用AI芯片!
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号