arunk133/Secure-Session-Key-Exchange
GitHub: arunk133/Secure-Session-Key-Exchange
基于 RSA-2048 与 AES-128 EAX 的混合加密教学演示器,展示安全会话密钥交换及认证加密机制。
Stars: 0 | Forks: 0
# 安全会话密钥交换与混合加密演示器
## 1. 项目概述
本项目是一个**混合密码系统**的功能性实现,旨在为两个网络实体(Alice 和 Bob)之间提供安全的通信通道。它通过结合非对称加密和对称加密的优势,解决了“密钥分发问题”。
该系统展示了网络安全的三大支柱:
* **机密性:** 确保数据对未授权方不可读。
* **完整性:** 检测数据在传输过程中是否被修改。
* **密钥交换:** 通过不安全的媒介安全地共享秘密会话密钥。
## 2. 核心组件
该项目包含五个主要脚本:
* `crypto_utils.py`:密码学引擎,包含 **RSA-2048** 和 **AES-128 EAX** 模式的逻辑。
* `server.py` (Bob):接收方,负责生成 RSA 密钥对并监听连接。
* `client.py` (Alice):发送方,负责发起握手并生成秘密 AES 会话密钥。
* `eve_sniffer.py`:模拟脚本,用于证明拦截的数据是不可读的(机密性)。
* `tamper_demo.py`:演示脚本,用于检测密文的任何比特级修改(完整性)。
## 3. 技术规格
* **非对称算法:** 使用 PKCS1_OAEP 填充的 RSA-2048。
* **对称算法:** AES-128 EAX(认证加密)模式。
* **完整性检查:** 16 字节消息认证码 (MAC) 标签。
* **网络协议:** TCP/IP Sockets (端口 12345)。
## 4. 如何运行演示
### 前置条件
* Python 3.12+ (推荐使用 Anaconda)
* 已安装 `pycryptodome` 库
### 分步执行
1. **初始化环境:**
conda activate secure_crypto
2. **启动服务器 (Bob):**
打开一个 Anaconda Prompt 并运行:
python server.py
3. **启动客户端 (Alice):**
打开第二个 Anaconda Prompt 并运行:
python client.py
4. **测试机密性:**
打开第三个终端并运行嗅探器模拟:
python eve_sniffer.py
5. **测试完整性 (篡改):**
运行篡改演示以查看 MAC 验证失败:
python tamper_demo.py
## 5. 安全性分析
通过使用 **AES-EAX**,本项目提供了**认证加密**。与仅隐藏消息的标准加密不同,EAX 模式确保如果密文的哪怕一个比特被更改(如 `tamper_demo.py` 所示),接收方的系统将抛出 `ValueError` 并拒绝该消息。这可以防止“中间人”攻击。
标签:AES-128, EAX模式, MAC校验, PKCS1_OAEP, PyCryptodome, Python, RSA-2048, TCP/IP Socket, Zenmap, 中间人攻击防护, 会话密钥交换, 安全通信, 客户端服务器, 密码学, 密钥分发, 手动系统调用, 教育演示, 数据保密性, 数据完整性, 无后门, 混合加密, 演示工具, 网络安全, 蓝队防御, 逆向工具, 防御绕过, 隐私保护