usfa7med/SecureS2S

GitHub: usfa7med/SecureS2S

基于 RSA-2048 与 AES-256-GCM 混合加密架构的服务器间安全通信演示系统。

Stars: 0 | Forks: 0

# 🔐 SecureS2S ### RSA + AES-GCM 加密的服务器间通信系统 ![Python](https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white) ![RSA](https://img.shields.io/badge/RSA-2048-green) ![AES](https://img.shields.io/badge/AES-256--GCM-orange) ![Sockets](https://img.shields.io/badge/Networking-TCP-red) ![Cryptography](https://img.shields.io/badge/Cryptography-Hybrid-yellow) ![License](https://img.shields.io/badge/License-MIT-lightgrey) 一个安全的服务器对等通信系统,实现了**混合加密架构**,使用 **RSA-2048** 进行安全的密钥交换,并使用 **AES-256-GCM** 进行经过认证的加密消息传输。 该项目演示了现代安全通信协议(如 **TLS**、**HTTPS** 和 **SSH**)如何通过结合非对称加密和对称加密来建立安全通道。 # 📑 目录 - [功能](#-features) - [架构](#-architecture) - [演示](#-demo) - [安装说明](#-installation) - [使用方法](#-usage) - [项目结构](#-project-structure) - [安全性分析](#-security-analysis) - [挑战与解决方案](#-challenges--solutions) - [未来改进](#-future-improvements) - [使用的技术](#-technologies-used) - [许可证](#-license) - [免责声明](#-disclaimer) - [联系方式](#-contact) # 🌟 功能 ## 🔑 RSA 安全密钥交换 - 生成 2048 位的 RSA 密钥对。 - 使用带有 SHA-256 的 RSA-OAEP。 - 安全地交换 AES 会话密钥。 - 防止对称密钥在网络中暴露。 ## 🔒 AES-256-GCM 认证加密 - 使用 AES-256-GCM 加密所有通信。 - 提供机密性、完整性和真实性。 - 在解密过程中自动验证消息完整性。 ## 🎲 随机 Nonce 生成 - 为每条加密消息生成一个新的 96 位 nonce。 - 防止 nonce 重用攻击。 - 遵循 NIST 关于 AES-GCM 的建议。 ## 🔄 全双工通信 - 支持同时发送和接收。 - 使用多线程进行双向通信。 - 模拟真实世界的安全通信系统。 ## 📨 自动送达回执 消息会自动生成加密的回执。 示例: ``` > Hello Server B (Arrived) ``` 这确认了消息已被远程服务器成功解密和接收。 ## 📡 可通过 Wireshark 验证的加密 可以使用 Wireshark 检查网络流量。 捕获的数据包仅包含加密的二进制 payload,不包含任何明文应用数据。 示例过滤器: ``` tcp.port == 65431 || tcp.port == 65432 ``` ## 🛡 消息完整性保护 AES-GCM 会自动检测: - 被修改的数据包 - 比特翻转攻击 - 消息篡改 - 无效的认证标签 ## ⚡ 轻量级且极简的依赖 仅需: - Python 标准库 - Cryptography 包 无需外部 broker 或框架。 # 🏗 架构 ``` RSA KEY EXCHANGE ┌─────────────────────────────────────────────┐ │ │ │ Server A generates RSA key pair │ │ │ │ Server A ───── Public Key ─────► Server B │ │ │ │ Server B generates AES-256 key │ │ │ │ Server B ─ AES Key Encrypted with RSA ─► A │ │ │ └─────────────────────────────────────────────┘ SECURE CHANNEL ESTABLISHED ┌─────────────────────────────────────────────┐ │ │ │ AES-256-GCM Encrypted Communication │ │ │ │ Server A ◄══════════════════► Server B │ │ │ └─────────────────────────────────────────────┘ ``` # 🎥 演示 ## 架构截图 ![SecureS2S 架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/62/62d578a0bae0476f6151bc87ae88676b89cb956caf94ba6b29e8b13d411d8652.png) ## 演示视频 在此处观看项目演示视频: https://drive.google.com/drive/folders/1Nj8TFVBfTfe7szLYRo91aSQZ5-aqncpW?usp=sharing ## 📖 案例研究 [![Case Study](https://img.shields.io/badge/Read-Case%20Study-blue?style=for-the-badge)](https://usfahmed.dev/projects/secure-s2s) 一篇全面的技术文章,解释了其架构、加密工作流程、实现细节、安全性权衡以及未来的改进。 # ⚙️ 安装说明 ## 克隆仓库 ``` git clone https://github.com/usfa7med/SecureS2S.git cd SecureS2S ``` ## 安装依赖 ``` pip install -r requirements.txt ``` # 🚀 使用方法 ## 配置 IP 地址 在以下文件中: ``` server_A.py server_B.py ``` 更新: ``` REMOTE_HOST = "192.168.x.x" ``` 以匹配你的网络环境。 ## 启动服务器 A ``` python server_A.py ``` ## 启动服务器 B ``` python server_B.py ``` ## 开始通信 示例: ``` > Hello > This message is encrypted. > Hybrid cryptography is awesome. ``` # 📂 项目结构 ``` SecureS2S/ │ ├── assets/ │ └── photo.png │ ├── crypto.py ├── server_A.py ├── server_B.py │ ├── LICENSE ├── README.md └── requirements.txt ``` # 🔍 安全性分析 | 安全属性 | 状态 | |------------------|--------| | 机密性 | ✅ | | 完整性 | ✅ | | 认证 | ✅ | | 重放保护 | ⚠ 部分 | | 前向保密 | ❌ | | 完美前向保密 | ❌ | # ⚠ 挑战与解决方案 ## 问题: 直接在网络中传输 AES 密钥会导致其被拦截。 ## 解决方案: 使用 RSA-OAEP 加密来安全地交换 AES 会话密钥。 ## 问题: AES-CBC 加密无法保证消息的完整性。 ## 解决方案: 实现了 AES-GCM 认证加密。 ## 问题: 静态 IV 的重用可能会危及加密流量的安全。 ## 解决方案: 为每条加密消息生成一个新的随机 nonce。 ## 问题: 由于多线程的原因,控制台输入和接收到的消息在视觉上会发生重叠。 ## 解决方案: 使用锁实现了线程安全的控制台打印。 # 🔮 未来改进 - 用于完美前向保密的 ECDHE 密钥交换 - X.509 证书认证 - 数字签名 - 用于重放保护的序列号 - 自动密钥轮换 - 双向认证 - 类 TLS 的握手实现 - 多客户端支持 - 群组加密通信 - GUI 应用程序界面 # 🛠 使用的技术 ## 编程语言 - Python ## 网络 - TCP Sockets - 多线程 ## 密码学 - RSA-2048 - RSA-OAEP - AES-256-GCM - SHA-256 ## 库 - cryptography ## 安全性分析 - Wireshark # 📄 许可证 该项目基于 MIT 许可证授权。 有关更多详细信息,请参阅 `LICENSE` 文件。 # ⚠ 免责声明 该项目仅为教育和研究目的而开发。 它无意替代 TLS 或其他生产级别的安全通信协议。 在实际部署中,应实现适当的证书管理、认证、重放保护和完美前向保密。 # 📫 联系方式 **Youssef Ahmed Abdelfatah** 个人主页:https://usfahmed.dev GitHub:https://github.com/usfa7med LinkedIn:https://linkedin.com/in/usfahmed 邮箱:hello@usfahmed.dev
标签:AES-GCM, Python, RSA, 密码学, 手动系统调用, 无后门, 服务器通信, 混合加密, 网络通信, 蓝队防御, 逆向工具