m524security/GUI-STEGNOGRAPHY

GitHub: m524security/GUI-STEGNOGRAPHY

一款基于 Flask 的 Web 应用,使用混合 AEAD 密码学加密文件并通过 LSB 隐写术将其隐藏在多媒体载体中。

Stars: 1 | Forks: 0

# 🔐 安全版 Secure StegoSuite v2 — 混合密码学 + 隐写术 一款 Web 应用,使用经过身份验证的混合密码学对文件进行**加密**,然后将加密后的 payload **隐藏**在一个看似普通的载体文件(图像、音频、视频或文本)中。v2 是对原版的安全强化重写。 ## v2 中的新特性 此版本修复了 v1 中存在的实际安全问题,并使其密码学声明名副其实。完整的详细说明见 **[SECURITY_REVIEW.md](./SECURITY_REVIEW.md)**。 | 领域 | v1 | v2 | |---|---|---| | 密钥派生 | 单一 `sha512(pw+salt)` | **Argon2id**(内存密集型)+ 每个文件独立 salt | | 加密 | 未经身份验证的 AES-CBC | **AEAD**(AES-256-GCM / ChaCha20-Poly1305) | | `/download` | 路径遍历 | 验证 + `safe_join` + 边界检查 | | Flask | `debug=True`, `0.0.0.0` | 关闭 debug,默认 localhost,由环境变量驱动 | | "Kyber" 方法 | 并非真正的 Kyber | 如果安装了 `liboqs` 则使用**真正的 ML-KEM**,否则使用明确标注的 X25519 回退方案 | | 错误处理 | 静默的虚假解密 | 明确的错误提示;decoy 为可选 | | Container | 脆弱的 `::` 分割 | 带版本号、长度前缀的 AEAD 身份验证标头 | | Stego 流 | 无完整性校验 | magic marker + CRC32 + 可选的密码种子散布 | | CSRF / 标头 | 无 | 同源防护 + CSP 及安全标头 | | 测试 | 无 | 26 个 pytest 测试用例(密码学、隐写术、端点) | ## 加密方法(诚实命名) | UI 标识 | 实际对应的加密方式 | |---|---| | `aes_ecc` | 通过 **X25519 ECDH** 混合包装的 AES-256-GCM 数据密钥 | | `aes_rsa` | 通过 **RSA-2048-OAEP** 包装的 AES-256-GCM 数据密钥 | | `chacha20_ecc` | ChaCha20-Poly1305 数据 + X25519 ECDH 包装 | | `aes_chacha20_cascade` | 两层 AEAD:先 AES-256-GCM **然后** ChaCha20-Poly1305 | | `kyber_aes` | 如果安装了 `liboqs`,则使用 AES-256-GCM + **ML-KEM-768 (Kyber)**;否则使用标记为*模拟*的 X25519 | | `aes_shamir` | AES-256-GCM;数据密钥通过 **Shamir 3-of-5** 拆分 | | `aes_elgamal` | AES-256-GCM + **RSA-2048-OAEP**(v1 将其误标为 "ElGamal";实际未实现 ElGamal) | 载体媒介:图像(`png`/`bmp`/`jpg`→输出 PNG)、音频(`wav`)、视频(`mp4`/`avi`/`mkv`→输出 FFV1 AVI)、文本(零宽字符)。 ## 安装与运行 ``` git clone https://github.com/m524security/GUI-STEGNOGRAPHY.git cd GUI-STEGNOGRAPHY pip install -r requirements.txt cp .env.example .env # set a strong STEGO_SECRET_KEY python3 app.py # dev → http://127.0.0.1:5000 ``` 生产环境: ``` gunicorn -w4 -b 0.0.0.0:5000 --timeout 300 app:app # behind a TLS reverse proxy # 或 docker build -t stegosuite . && docker run -p 5000:5000 stegosuite ``` 运行测试: ``` pip install pytest && pytest -q # 26 passing ``` ## 架构 ``` app.py hardened Flask front end (routes, CSRF, headers, downloads) stegosuite/ crypto.py Argon2id KDF · AEAD · hybrid wrappers · SSS · container format stego.py LSB image/audio/video/text · magic+CRC · seeded scatter templates/index.html glassmorphism UI (unchanged) tests/ pytest round-trip + security regression suite ``` ## 诚实的局限性 - **LSB 在应对现代统计学/ML 隐写分析时并非无法检测**——它只是在强加密之上的隐蔽层,并不能作为绝对保证。 - Shamir 共享会被存储在一起(除非你将它们分发出去,否则门限设置仅作演示说明)。 - 自动删除 TTL 只是服务器尽力而为的日常清理,并非安全的磁盘擦除。 完整分析请参阅 **[SECURITY_REVIEW.md](./SECURITY_REVIEW.md)**。 ## 免责声明 仅供教育、研究和合法的隐私保护用途。作者对任何滥用行为不承担责任。
标签:DNS 反向解析, Flask, Python, 后量子密码, 安全规则引擎, 密码学, 手动系统调用, 数据加密, 无后门, 请求拦截, 逆向工具, 隐写术