# 安全策略 ## 支持版本 | 版本 | 是否支持 | |------|----------| | 0.3.x | 是 | | < 0.3 | 否 | ## 报告漏洞 如果您发现 libsmx 存在安全漏洞,请负责任地报告: **邮箱**: [kintai@foxmail.com](mailto:kintai@foxmail.com) **请包含**: - 漏洞描述 - 复现步骤 - 受影响版本 - 潜在影响评估 **响应时间**: 本项目由个人维护,不设固定响应时间。作者会尽快处理所有安全报告,但无法承诺具体的响应期限。 ## 范围 以下领域属于安全报告的有效范围: - **时序侧信道**:执行时间依赖于秘密数据(私钥、明文、随机数)的操作 - **内存安全**:缓冲区溢出、释放后使用或未初始化内存读取(注:本库使用 `#![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。