7c159343f8
新增功能: - rustls CryptoProvider:完整 rustls 0.23.x 支持 - SM3 Hash/Context trait 实现 - SM3 HMAC trait 实现 - SM4-GCM/CCM AEAD 密码套件 - SM2 ECDHE 密钥交换 - SM2 签名/验签算法 - SM3 流式 HMAC(HmacSm3) - SM2 SPKI DER 编码 - SM2 DEFAULT_ID 常量 文档更新: - README 依赖版本更新为 0.3 - CHANGELOG 添加 v0.3.0 变更记录 - SECURITY 更新版本支持表
1.8 KiB
1.8 KiB
安全策略
支持版本
| 版本 | 是否支持 |
|---|---|
| 0.3.x | 是 |
| 0.2.x | 是 |
| 0.1.x | 是 |
| < 0.1 | 否 |
报告漏洞
如果您发现 libsmx 存在安全漏洞,请负责任地报告:
请包含:
- 漏洞描述
- 复现步骤
- 受影响版本
- 潜在影响评估
响应时间:
本项目由个人维护,不设固定响应时间。作者会尽快处理所有安全报告,但无法承诺具体的响应期限。
范围
以下领域属于安全报告的有效范围:
- 时序侧信道:执行时间依赖于秘密数据(私钥、明文、随机数)的操作
- 内存安全:缓冲区溢出、释放后使用或未初始化内存读取(注:本库使用
#![forbid(unsafe_code)]) - 密钥材料泄露:私钥或中间秘密值未正确清零
- 密码学正确性:偏离 GB/T 标准导致安全保证减弱
- 认证绕过:GCM/CCM 模式中 MAC/标签验证错误
不在范围内
- 不影响安全的性能问题
- 依赖库漏洞(请向上游报告)
- 需要物理访问设备的攻击
安全设计
libsmx 采用以下防护措施:
- 常量时间操作:所有依赖秘密的代码使用
subtle::ConstantTimeEq、ConditionallySelectable和固定迭代循环 - S-box 无表查找:SM4 使用布尔电路 bitslice 实现,防止缓存时序攻击
- 自动密钥清零:所有私钥类型派生
ZeroizeOnDrop - 无 unsafe 代码:库级别强制
#![forbid(unsafe_code)] - 完整 EC 公式:SM2 点加法使用无分支完整加法公式(Renes-Costello-Batina 2016)
披露策略
我们遵循协调披露原则。请不要为安全漏洞创建公开的 GitHub issue。