neharajput07/ZeTACipher
GitHub: neharajput07/ZeTACipher
ZeTACipher 是一个零信任 IoT Mesh 安全平台,通过 HMAC-SHA256 加密握手实现设备间的持续身份验证与自主威胁隔离。
Stars: 0 | Forks: 0
# ZeTACipher 🔐
一个**零信任 IoT Mesh 安全平台**,使用 HMAC-SHA256 加密握手持续验证设备身份——在威胁蔓延之前将其隔离。
## 🧠 什么是 ZeTACipher?
ZeTACipher 模拟了一个 5 节点的 IoT Mesh 网络,其中每个设备在每次握手时都必须向其邻居进行加密级别的身份证明。默认情况下,任何设备都不被信任。如果任何节点验证失败,它将被自动隔离——无需人工干预。
## 🚀 功能
- 🔐 **HMAC-SHA256 加密验证** — 每个节点使用一个新的 nonce 向其邻居发起挑战,并验证其响应
- 🔄 **5 节点环形拓扑** — N1→N2→N3→N4→N5→N1 持续的对等验证
- ⚡ **自主隔离** — 受损节点无需中央服务器即可被立即隔离
- 🛡️ **基于 Nonce 的重放攻击防御** — 每次握手都使用唯一的随机值
- 📡 **实时 Mesh 监控** — 每 5 秒自动握手,并提供实时状态更新
- 🎯 **攻击模拟器** — 模拟 Packet 篡改、重放攻击、中间人攻击及随机攻击,并包含完整的事件生命周期
- 🧠 **AI 安全顾问** — 基于规则的威胁模式检测及可操作的建议
- 📊 **网络健康评分** — 基于受信任节点与被隔离节点的实时百分比
- 🚨 **威胁告警横幅** — 当任何节点被隔离时自动出现
- 👤 **真实的身份验证** — 基于 MySQL 的用户注册和登录
## 🛠️ 技术栈
| 层级 | 技术 |
|-------|-----------|
| 后端 | Java 21, Spring Boot 3.5 |
| 加密 | HMAC-SHA256 (javax.crypto) |
| 网络模拟 | Java Sockets, Daemon Threads |
| 数据库 | MySQL (JPA/Hibernate) |
| 前端 | React 18, Vite |
| 样式 | CSS3 (自定义,无 UI 库) |
| 部署 | Railway (后端), Vercel (前端) |
## 🏗️ 架构
**流程:**
`IoT 设备 → 身份验证 → 信任引擎 → 威胁检测 → 自动隔离`
**环形拓扑:**
`N1 (智能摄像头) → N2 (门锁) → N3 (温度传感器) → N4 (网络路由器) → N5 (安全警报) → N1`
每个节点仅验证其直接邻居——通过限制验证范围来执行零信任原则。
## 🔐 HMAC 握手的工作原理
```
1. Node A generates a random nonce
2. Node A sends nonce to Node B
3. Node B computes HMAC-SHA256(nonce + secretKey) → sends result back
4. Node A independently computes HMAC-SHA256(nonce + secretKey)
5. Match → Node B is TRUSTED ✅
6. No match → Node B is QUARANTINED 🚫
```
## 📁 项目结构
```
ZeTACipher/
├── backend/
│ └── src/main/java/com/zetacipher/backend/
│ ├── crypto/
│ │ └── HMACUtil.java
│ ├── node/
│ │ ├── Node.java
│ │ ├── NodeServer.java
│ │ └── NodeClient.java
│ ├── network/
│ │ └── MeshNetwork.java
│ ├── model/
│ │ ├── HandshakeLog.java
│ │ ├── NodeStatusDTO.java
│ │ └── User.java
│ ├── repository/
│ │ ├── HandshakeLogRepository.java
│ │ └── UserRepository.java
│ ├── service/
│ │ └── NetworkService.java
│ └── controller/
│ ├── StatusController.java
│ └── AuthController.java
└── frontend/
└── src/
├── components/
│ ├── TopologyMap.jsx
│ ├── NodeDashboard.jsx
│ ├── HandshakeLogs.jsx
│ ├── AttackSimulator.jsx
│ ├── AIRecommendation.jsx
│ ├── HealthScore.jsx
│ └── ThreatBanner.jsx
├── pages/
│ ├── LandingPage.jsx
│ ├── LoginPage.jsx
│ └── DashboardPage.jsx
├── services/
│ └── api.js
└── utils/
├── deviceNames.js
└── threatAnalyzer.js
```
## ⚙️ 本地安装与运行
### 后端
```
cd backend
# 在 application.properties 中配置 MySQL
./mvnw spring-boot:run
```
### 前端
```
cd frontend
npm install
npm run dev
```
### 身份验证
ZeTACipher 使用真实的基于数据库的身份验证系统。请通过注册页面创建您自己的账户以访问仪表板。
## 👤 作者
**Neha Rajput** — 大四 B.Tech 学生
[LinkedIn](https://www.linkedin.com/in/neha-rajput-9615b5295)
*ZeTACipher 是一个毕业设计顶点项目,旨在展示分布式系统、加密身份验证和自主威胁响应。*
标签:HMAC-SHA256, React, Spring Boot, Syscalls, 威胁隔离, 密码学验证, 物联网安全, 自定义脚本, 配置错误, 零信任网络