yadhunandanmanjunatha/qfidsfinal
GitHub: yadhunandanmanjunatha/qfidsfinal
QF-IDS 是一个基于 BB84 量子密钥分发模拟与经典机器学习的多源入侵检测系统,通过统一检测器实现量子窃听识别与网络威胁防御。
Stars: 0 | Forks: 0
# 量子指纹入侵检测系统 (QF-IDS)
## 量子核心组件(BB84 模式)
QF-IDS 量子特性的核心是一个**功能性的 BB84 协议模拟器**,它实现了经典的 Bennett & Brassard 1984 量子密钥分发方案,**完整包含了拦截-重发窃听**功能。
### 从物理学角度说明其工作原理
QF-IDS 的 BB84 模式模拟了真实的量子通信信道:
- **Alice** 为每个光子生成一个随机比特 + 随机基(直线基或对角基)
- **Bob** 在随机选择的基下测量每个接收到的光子
- 在公开比对基之后,他们保留基匹配的位置 → **筛选密钥 (sifted key)**
- 筛选密钥的随机样本会被公开披露,以计算**量子比特错误率 (QBER)**
如果窃听者 (Eve) 拦截并重新发送光子,她在错误的基下进行测量(50% 的概率)会将光子坍缩为随机本征态。当 Bob 随后在 Alice 的基下测量时,在受到干扰的光子中有 50% 的概率会得到错误结果。最终效果:**在完全拦截-重发下 QBER ≈ 25%** —— 这是 BB84 的基础安全性结论。
### 从代码层面说明 QF-IDS 检测的内容
检测器在自然的信道噪声 QBER 基准(由暗计数 + 基失准引起的约 2%)上进行训练。当 Eve 激活时,QBER 会飙升 —— QF-IDS 的 IsolationForest 将这种偏差标记为攻击,响应引擎随之触发(终止 → 重新认证 → 重新路由至蜜罐 → 告警)。
### 验证结果
```
Test scenario: BB84 protocol, 400 pulses/window, real-fibre parameters
eve_fraction measured QBER expected QBER detector verdict
─────────────────────────────────────────────────────────────────
0.00 0.0195 0.0240 safe
0.25 0.0757 0.0865 safe (below 11% threshold)
0.50 0.1394 0.1490 ABORT — Eve detected
0.75 0.1988 0.2115 ABORT — Eve detected
1.00 0.2500 0.2740 ABORT — Eve detected
```
在完全拦截-重发攻击下 25% 的 QBER 与教科书上 Bennett-Brassard-Mermin 1992 年的结果完全吻合。
## 项目客观介绍
**真正含量子技术的部分:**
1. **BB84 协议模拟器** — 一个可运行的量子信息协议,具备正确的基投影、正确的 Eve 干扰模型,以及经受过验证的教科书级 QBER 结果
2. **ANU QRNG 实时数据源** — 从澳大利亚国立大学实时的量子实验中获取真实的、经测量的光子散粒噪声样本
**基于物理学原理的模拟部分:**
3. **量子数据集回放** — 使用真实的 Excelitas SPCM-AQRH-14 数据表参数生成的合成单光子计数
**属于经典范畴但真实存在的部分:**
4. **CICIDS-2017 数据集** 及用于实际 UNB CIC CSV 文件的转换器
5. 通过 scapy/libpcap 进行**实时 PCAP 捕获**(与 Wireshark 使用相同的引擎)
6. **Wireshark .pcap 文件回放** — 上传任何捕获的数据包,通过检测器进行回放
**非真实的部分:**
- 单光子探测器硬件(我们没有该设备)
- “信道”是软件抽象,并非物理光纤链路
- 生产级别的身份验证/审计/防火墙集成
## 七种数据源,统一检测器
| 模式 | 描述 | 状态(真实 / 模拟) |
|---|---|---|
| **SIM** | 合成高斯噪声 + 攻击类别 | 模拟 |
| **DATASET** | 光子探测器物理回放 | 真实参数,模拟值 |
| **CICIDS** | 网络 IDS 基准,5+ 种攻击类别 | 真实(包含内置转换器) |
| **PCAP** | 实时网络捕获 | 真实 |
| **PCAP·F** | Wireshark 文件回放 | 真实 |
| **ANU·QRNG** | 来自 ANU 的实时量子随机数 | 真实测量的量子数据 |
| **BB84·Q** | **包含 Eve 注入的 BB84 协议** | **真实的量子协议,可工作的物理学模型** |
同一个 IsolationForest 为这七种来源进行评分。同一个响应引擎处理这七种情况。这就是架构层面的贡献:与数据源无关的物理层指纹识别。
## 快速开始
你需要 **Python 3.10+** 和 **Node 18+**。
```
# Backend
cd backend
pip install -r requirements.txt
python run.py
# Frontend (在另一个终端中)
cd frontend
npm install
npm run dev
```
打开 `http://localhost:5173`。
### 体验量子核心组件演示
1. 在任意信道上点击 `⇄ Source` → **BB84 · Quantum KD**
2. 等待 5 秒钟,让检测器在干净的 QBER 基准上进行训练
3. 在信道卡片中,会出现一个 **Eavesdropper · Quantum Channel** 控制项
4. 点击 **▸ full Eve (intercept-resend)**
5. 在 5-10 秒内:
- QBER 从 ~2% 跃升至 ~25%
- 徽章变红:`◈ BB84 · QBER 25.30% · ABOVE THRESHOLD (Eve detected)`
- 检测器状态变为 ATTACK
- 响应引擎触发:终止 → 重新认证 → 重新路由 → 告警
- 创建 Incident:来自 `bb84://eve@ch-alpha` 的 `bb84-eavesdropper`
你刚刚检测到了一次教科书级别的量子窃听攻击。
### 体验多源架构演示
在四个信道上设置四种不同的真实数据源:
```
# 在第三个终端中:
curl -X POST http://localhost:8000/api/mode/ch-alpha -H "Content-Type: application/json" -d '{"mode":"bb84"}'
curl -X POST http://localhost:8000/api/mode/ch-beta -H "Content-Type: application/json" -d '{"mode":"cicids"}'
curl -X POST http://localhost:8000/api/mode/ch-gamma -H "Content-Type: application/json" -d '{"mode":"anu_qrng"}'
curl -X POST http://localhost:8000/api/mode/ch-delta -H "Content-Type: application/json" -d '{"mode":"pcap_file"}'
```
四个信道,四条真实数据流,一个检测器 pipeline。这就是架构的核心论点。
## 答辩指南
如果评委问**“这个项目中哪些地方用到了量子技术?”**,客观的回答是:
如果被问及**“为什么你没有使用真实的光子硬件?”**:
## REST API
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | `/api/channels` | 所有信道的快照 |
| GET | `/api/incidents` | 所有 Incident |
| GET | `/api/blocklist` | 拦截列表条目 |
| POST | `/api/attack` | 注入攻击(支持多重攻击) |
| POST | `/api/mode/{channel_id}` | 切换单个信道的数据源 |
| POST | `/api/mode` | 切换所有信道的数据源 |
| POST | `/api/bb84/eve/{channel_id}` | **设置 Eve 拦截比例 (0-1)** |
| POST | `/api/pcap/upload/{channel_id}` | 上传 .pcap 文件 (multipart) |
| GET | `/api/sources/health` | 数据源诊断 |
| GET | `/honeypot/serve` | 诱饵数据(对黑名单 IP 拦截) |
| WS | `/ws` | 实时数据流 |
## 项目布局
```
qfids/
├── backend/
│ ├── data/
│ │ ├── quantum_noise_dataset.json Excelitas SPCM physics
│ │ └── cicids2017_subset.json bundled CICIDS-format data
│ ├── tools/
│ │ ├── attacker.py real-traffic attacker
│ │ └── convert_cicids.py real CICIDS CSV converter
│ └── qfids/
│ ├── core/
│ │ ├── bb84.py ★ BB84 protocol implementation
│ │ ├── bb84_source.py ★ BB84 → detector bridge
│ │ ├── anu_qrng_source.py live quantum random API
│ │ ├── pcap_source.py scapy live capture
│ │ ├── pcap_file_source.py .pcap file replay
│ │ ├── dataset_source.py
│ │ ├── cicids_source.py
│ │ ├── noise.py
│ │ ├── detector.py
│ │ ├── response.py
│ │ ├── blocklist.py
│ │ └── manager.py
│ └── api/server.py
└── frontend/
└── src/
├── App.jsx
├── styles.css light + dark theme
└── components/
├── Logo.jsx fingerprint + strata mark
├── ChannelCard.jsx + BB84 Eve control widget
└── ...
```
## 参考文献(请在你的论文中引用这些文献)
- Bennett, C. H. & Brassard, G. (1984). "Quantum cryptography: Public key distribution and coin tossing." *Proceedings of IEEE International Conference on Computers, Systems and Signal Processing*, 175-179.
- Bennett, C. H., Brassard, G., & Mermin, N. D. (1992). "Quantum cryptography without Bell's theorem." *Physical Review Letters*, 68(5), 557.
- Sharafaldin, I., Lashkari, A. H., & Ghorbani, A. A. (2018). "Toward generating a new intrusion detection dataset and intrusion traffic characterization." *4th International Conference on Information Systems Security and Privacy*.
- Excelitas Technologies. SPCM-AQRH single-photon counting module datasheet (DATASET 模式中使用的真实设备参数).
- Symul, T., Assad, S. M., & Lam, P. K. (2011). "Real time demonstration of high bitrate quantum random number generation with coherent laser light." *Applied Physics Letters*, 98(23). (ANU QRNG 参考文献.)
## v2 — 本次发布的新特性
### 信道重命名
整个系统中的信道现已更名为 **Channel A, B, C, D**(ID 为 `ch-a`…`ch-d`)。
### 漏洞缓解措施 (`backend/qfids/core/defenses.py`)
四项经研究支持的防御机制封闭了已知的攻击向量:
1. **自适应阈值 + 压力累加器** — 击败那些刚好潜伏在检测阈值之下的低速隐蔽 / 规避攻击。
2. **基准完整性防护** — 通过漂移监测来检测对已学习基准的数据投毒行为。
3. **诱骗态分析器** — 针对针对 BB84 的光子数分离 (PNS) 攻击的标准对策。
4. **信道认证器 (PSK + HMAC)** — 阻断 QKD 信道上的中间人冒充行为。
体验:`GET /api/defenses/self-test`、`POST /api/defenses/decoy-state?eve_pns=true`、`POST /api/defenses/authenticate?inject_mitm=true`
### 更深度的加密 (`backend/qfids/core/hqnn.py`)
v3 版本加入了**双层认证加密**:量子 HQNN 密钥流现在与独立的 HKDF 经典密钥流混合,并采用了基于单条消息的密钥调度。包含可证明约 50% 扩散效果的实时**密钥雪崩测试**。
体验:`POST /api/hqnn/deep-encrypt`、`GET /api/hqnn/avalanche`、`GET /api/hqnn/depth-report`
### 更深度的蜜罐 (`backend/qfids/core/quantum_honeypot.py`)
蜜罐现在是一个**多层欺骗环境**(横幅 → 服务 → 文件系统 → 数据库 → 凭据),具备**攻击者画像**(分类、攻击烈度、互动评分)以及 **MITRE ATT&CK 威胁情报报告**。
体验:`GET /api/honeypot/deception/walkthrough`
### 信道详情视图(操作员仪表板)
点击任意信道卡片即可打开**全屏详情视图**,包含大型实时波形图、异常评分、自适应阈值 + 基准完整性状态、特征分解、活动攻击以及 Incident。
### 客户门户 (`customer-portal/index.html`,服务地址为 `/portal`)
一个独立的**多租户客户网站**。客户登录后**只能看到他们已购买的信道**,并提供安全摘要、套餐详情、实时信道卡片以及各个信道的详情。预置了三个演示账户(企业版 / 商业版 / 入门版)。
访问方式:启动后端,然后打开 **http://localhost:8000/portal**
### 活动日志格式
活动日志下载现在变为了人类易读的 **`.txt`** 报告(原为 CSV 格式)。
## v3 — 仪表板拆分(防守方 + 攻击方)
系统现在拆分为两个独立的界面,以模拟真实的攻击者
在不同的机器上攻击受防御系统的情况。
### 防守方仪表板(安全运营) — `frontend/`,端口 5173
仅用于防御。**移除了所有攻击/注入控制**(没有“注入攻击”按钮,也没有“攻击全部”)。它现在还增加了一个 **Attackers** 标签页,
显示所有攻击过该系统的外部主机,
及其系统详情和拦截状态。
### 攻击方控制台 — 服务地址 `http://localhost:8000/attacker`
一个独立的红队界面。它会显示**你所使用的攻击源系统的详细信息**(IP、平台、user-agent、指纹),并允许你向防守方的信道发起攻击。攻击会传输到后端,
并实时显示在防守方仪表板上。
### 重复攻击拦截机制
当防守方的 IDS 检测到攻击时,它会将攻击者的 IP 加入黑名单。
**来自同一系统的下一次攻击会在到达任何信道之前被以 HTTP 403 拒绝** —— 在攻击方控制台上显示为“BLOCKED”。这通过 `blocklist.is_blocked()` 在 `POST /api/attack` 中强制执行。
新增后端模块:`backend/qfids/core/attackers.py`(攻击者系统注册表)。
新增路由:`GET /api/attacker/whoami`、`GET /api/attacker/status`、
`GET /api/attackers`、`GET /attacker`。
### 双机部署设置
- 在被防御的机器上运行后端。
- 在攻击者机器上,浏览至 `http://:8000/attacker`。
- 发起攻击;观察它们出现在防守方仪表板上;并在
重复攻击时被拦截。(在单台机器上,由于 loopback 被加入了白名单,请使用攻击方控制台上的“Source IP”字段来模拟不同的攻击地址。)
## v4 — 真实蜜罐引流 + 攻击者生命周期
攻击方控制台现在是一种真正的对抗体验,
具有端到端强制的真实三状态生命周期:
**CLEAR → DIVERTED → BLOCKED**
1. **首次攻击**到达目标信道(成功投放)。
2. IDS 检测到它悄悄将攻击者标记为 **DIVERTED**。他们的*下一次*
攻击**不会**到达真实信道 —— 它被重定向到了量子蜜罐中。攻击者会收到“Foothold established. Shell access granted.”的消息,
并**认为自己成功入侵了一台真实服务器**。
3. 在蜜罐内部,攻击者运行侦察命令(`whoami`、`services`、
`ls`、`db`、`creds`)。每个命令都会返回**全新的量子随机化诱饵数据** ——
虚假的开放端口、虚假的敏感文件、虚假的数据库表、虚假的凭据。没有任何两次会话看到的数据是相同的。
4. 在探索了足够多的层级后,他们被**完全画像**(已分类 +
映射至 MITRE)并被**硬性拦截**。攻击者控制台翻转为全屏的
**锁定界面** —— 随后的每一次攻击都会在网络边界处被以 HTTP 403 拒绝,
并且发起控制项将不再可用。
新增后端路由:`POST /api/attacker/honeypot-explore`(提供诱饵层级,
对攻击者进行画像,并在画像完成后自动拦截)。
`GET /api/attacker/status?source_ip=…` 现在会报告生命周期状态,以便
控制台自动切换模式。
防守方仪表板的 Honeypot 面板和 Attackers 标签页会实时显示引流、
画像以及最终的拦截过程。
标签:MITM代理, 逆向工具