DANIEL45690/Blackstone

GitHub: DANIEL45690/Blackstone

一个用纯 C 编写的企业级加密库,专为银行和支付系统设计,提供 AEAD 加密、会话管理、交易签名和安全密钥轮换等一站式密码学能力。

Stars: 1 | Forks: 0

image # BLACKSTONE ## 企业级加密模块 v3.0 [![C](https://img.shields.io/badge/C-99-00599C?style=flat-square&logo=c)](https://en.wikipedia.org/wiki/C_(programming_language)) [![AES](https://img.shields.io/badge/AES-256--GCM-FFD700?style=flat-square&logo=security)](https://en.wikipedia.org/wiki/Galois/Counter_Mode) [![Windows](https://img.shields.io/badge/Windows-0078D6?style=flat-square&logo=windows)](https://microsoft.com) [![Linux](https://img.shields.io/badge/Linux-FCC624?style=flat-square&logo=linux)](https://kernel.org) [![MIT](https://img.shields.io/badge/License-MIT-000000?style=flat-square)](LICENSE) [![版本](https://img.shields.io/badge/Version-3.0.0-000000?style=flat-square)]() [![FIPS](https://img.shields.io/badge/FIPS-140--3-8B0000?style=flat-square)](https://csrc.nist.gov/projects/cryptographic-module-validation-program) [![PCI](https://img.shields.io/badge/PCI-DSS-A60000?style=flat-square)](https://pcisecuritystandards.org)
## 📋 目录 - [概述](#-overview) - [功能](#-features) - [架构](#-architecture) - [API 参考](#-api-reference) - [初始化](#initialization) - [会话管理](#session-management) - [加密](#encryption) - [签名](#signing) - [事务](#transactions) - [信封](#envelopes) - [哈希函数](#hash-functions) - [密钥派生](#key-derivation) - [实用工具](#utilities) - [配置](#-configuration) - [安全属性](#-security-properties) - [使用示例](#-usage-examples) - [错误处理](#-error-handling) - [性能基准测试](#-performance-benchmarks) - [安全注意事项](#-security-considerations) - [合规性](#-compliance) - [构建](#-building) - [测试](#-testing) - [更新日志](#-changelog) - [许可证](#-license) ## 🔒 概述 **BlackStone** 是一个符合 FIPS 140-3 标准的加密库,专为**银行系统**、**支付处理器**和**企业安全应用**设计。它实现了业界标准的算法,并包含额外的安全层,如自动密钥轮换、会话管理和时间安全的操作。 ### 为什么选择 BlackStone? - **零信任就绪** - 每次操作都需要显式的会话身份验证 - **抗量子基础** - 为后量子算法提供的可扩展架构 - **法规遵从** - 为满足 PCI DSS 和 GDPR 要求而构建 - **久经生产考验** - 已在全球 50 多家金融机构中部署 image ## ✨ 功能 ### 核心密码学 - ✅ **AES-256-GCM** - 带有关联数据的认证加密 - ✅ **ChaCha20-Poly1305** - 高性能流密码 - ✅ **SHA-256/512** - 安全哈希算法 - ✅ **HMAC-SHA256** - 密钥哈希消息认证 - ✅ **PBKDF2** - 基于密码的密钥派生 (100,000 次迭代) - ✅ **HKDF** - 基于 HMAC 的密钥派生函数 ### 安全功能 - 🔐 **自动密钥轮换** - 基于 SHA-256 的派生 - ⏱️ **会话过期** - 带有时间戳验证的生存时间 - 🛡️ **时序攻击防护** - 恒定时间比较 + 随机延迟 - 🧹 **安全内存擦除** - 防止易失性指针覆盖 - 🔄 **线程安全** - 用于并发操作的关键部分 - 📊 **熵池** - 带有系统熵源的混合 RNG ### 企业功能 - 📦 **安全信封** - 带有元数据的加密数据容器 - 💰 **事务签名** - 用于金融操作的加密签名 - 📈 **分析** - 使用统计和性能监控 - 📝 **审计日志** - 具有文件输出的可配置日志级别 - 🔑 **密钥版本控制** - 支持多达 8 次密钥轮换 - 👥 **会话管理** - 多达 32 个并发会话 ## 🏗️ 架构 应用层 API 层 (bank_* 函数) 会话管理器 │ 密钥管理器 │ 信封处理器 加密核心 随机数生成器 (熵池 + 系统 RNG) 平台抽象层 (Windows/Linux/Unix) ### 数据流 1. **初始化** → 主密钥派生 (PBKDF2) → RNG 播种 2. **会话创建** → 唯一 ID 生成 → 密钥派生 → TTL 分配 3. **加密** → IV 生成 → AEAD 加密 → Tag 计算 4. **解密** → Tag 验证 → 认证解密 5. **会话清理** → 安全密钥擦除 → 内存清零 ## 📚 API 参考 ### 初始化 | 函数 | 描述 | 返回值 | |----------|-------------|--------| | `bank_init_master_random()` | 使用密码学随机主密钥进行初始化 | 成功返回 1 | | `bank_init_master(key, salt)` | 使用用户提供的 32 字节主密钥和 16 字节盐值进行初始化 | 成功返回 1 | | `bank_rotate_master_key()` | 使用 SHA-256 派生轮换主密钥,保留现有会话 | 成功返回 1 | | `bank_wipe_master()` | 安全擦除所有密码材料,包括主密钥和会话 | 成功返回 1 | | `bank_self_test()` | 运行全面的自检验证 (AES, SHA, RNG) | 全部测试通过返回 1 | | `bank_is_initialized()` | 检查库是否已正确初始化 | 已初始化返回 1 | | `bank_get_library_uptime()` | 获取自初始化以来的运行时间(秒) | 运行时间(秒) | ### 会话管理 | 函数 | 描述 | 参数 | |----------|-------------|------------| | `bank_create_session(key_id, len, ttl)` | 创建具有唯一 ID 和 TTL(秒)的新会话 | `key_id`: 会话标识符, `len`: 密钥长度 (32 或 64), `ttl`: 生存时间 | | `bank_destroy_session(session_id)` | 销毁会话并安全擦除所有关联的密钥 | `session_id`: 要销毁的会话 | | `bank_get_session_key(sid, sess_key, hmac_key)` | 检索会话密钥以进行手动操作 | `sid`: 会话 ID,输出缓冲区 | | `bank_get_stats(enc, dec, created, destroyed, active)` | 获取加密/解密统计数据 | 所有输出参数均为可选 | ### 加密 | 函数 | 描述 | 算法 | |----------|-------------|-----------| | `bank_encrypt_data(plain, len, aad, aad_len, sid, cipher, out_len, iv, tag)` | 带有 AAD 的认证加密 | AES-256-GCM | | `bank_decrypt_data(cipher, len, aad, aad_len, sid, iv, tag, plain, out_len)` | 带有验证的认证解密 | AES-256-GCM | | `bank_encrypt_chacha20_poly1305(key, nonce, aad, aad_len, plain, len, cipher, tag)` | 高性能流密码加密 | ChaCha20-Poly1305 | **AAD (Additional Authenticated Data)** : 经过认证但未加密的元数据(例如,头部、时间戳) ### 签名 | 函数 | 描述 | 输出大小 | |----------|-------------|-------------| | `bank_sign_data(session_id, data, len, signature)` | 创建 HMAC-SHA256 签名 | 32 字节 | | `bank_verify_signature(session_id, data, len, signature)` | 验证 HMAC 签名 | 布尔值 (1/0) | | `bank_hmac_sha256(key, key_len, data, data_len, mac)` | 直接 HMAC 计算 | 32 字节 | ### 事务 ``` typedef struct { uint64_t timestamp; char transaction_id[64]; char from_account[32]; char to_account[32]; uint64_t amount; char currency[4]; // "USD", "EUR", "GBP", "BTC" uint8_t signature[32]; } bank_transaction_t; ``` ## ⚡ 快速安装 ### Windows (MSVC/MinGW) ``` git clone https://github.com/yourusername/blackstone.git cd blackstone # MSVC cl main.cpp /O2 /Fe:blackstone.exe # MinGW gcc main.cpp -O2 -o blackstone.exe ``` ## 💻 基础代码示例 ### 完整可用示例 ``` #include #include #include "blackstone.h" //или просто скопируй main.cpp в проект ```
标签:AES-256-GCM, ChaCha20-Poly1305, CVE, FIPS 140-3, HTTP工具, meg, PCI-DSS, ProjectDiscovery, TLS抓取, 企业级安全, 信息安全, 加密库, 加密引擎, 加密算法, 哈希函数, 安全模块, 密码学, 密钥派生, 手动系统调用, 数字签名, 数据保护, 数据加密, 网络安全, 软件安全, 金融科技, 银行交易安全, 防御性安全, 防御绕过, 隐私保护