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, 中间人攻击防护, 会话密钥交换, 安全通信, 客户端服务器, 密码学, 密钥分发, 手动系统调用, 教育演示, 数据保密性, 数据完整性, 无后门, 混合加密, 演示工具, 网络安全, 蓝队防御, 逆向工具, 防御绕过, 隐私保护