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代理, 逆向工具