Botan密码库中即将废弃的功能解析

Botan密码库中即将废弃的功能解析

botan Cryptography Toolkit botan 项目地址: https://gitcode.com/gh_mirrors/bo/botan

前言

Botan作为一个功能强大的密码学库,随着密码学标准的演进和安全需求的提升,会定期评估并淘汰一些不再符合现代安全标准或使用率低的功能。本文将详细解析Botan库中即将废弃的各项功能,帮助开发者及时调整代码,确保应用的安全性和兼容性。

废弃功能警告机制

Botan通过宏定义来标记废弃的函数和头文件,默认情况下会显示警告。如果希望禁用这些警告,可以在包含任何Botan头文件前定义BOTAN_NO_DEPRECATED_WARNINGS宏。

注意:并非所有废弃功能都有对应的警告提示。

平台支持废弃项

  • Windows系统支持:Windows 10之前的版本支持将被废弃

TLS协议废弃项

以下TLS协议特性将在未来主要版本中移除:

  1. 点压缩支持:TLS 1.3已移除该功能,为保持一致性,TLS 1.2也将移除
  2. 所有CBC模式密码套件:包括所有3DES套件,连带移除Encrypt-then-MAC扩展
  3. 所有DHE密码套件
  4. TLS 1.2的重协商支持
  5. 使用静态RSA密钥交换的所有密码套件
  6. Credentials_Manager::psk()方法:改为使用Credentials_Manager中的专用方法

椭圆曲线相关废弃项

  1. 弱/少用曲线

    • 将完全移除的曲线:"secp160k1", "secp160r1", "secp160r2", "brainpool160r1", "secp224k1"
    • 可能移除但可自定义添加的曲线:"secp192k1", "brainpool192r1"等
  2. 类型变更

    • EC_Point类型将被EC_AffinePoint取代
  3. 参数限制

    • 移除显式ECC曲线参数和ImplicitCA编码参数支持
    • 未来将禁止创建cofactor>1的EC_Group
    • 应用自定义椭圆曲线参数将受以下限制:
      • 位长度192-512位且为32的倍数
      • 521位Mersenne素数或X9.62 239位素数例外
      • 素数必须≡3 mod 4
      • 素数位长与阶数位长必须相等
  4. 编码格式

    • 移除对"hybrid"编码格式的支持
    • 移除对EC恒等元素的编码/解码支持

废弃模块

以下模块将在未来版本中完全移除:

  1. 密码算法

    • kyber_90s:未纳入NIST ML-KEM标准
    • dilithium_aes:类似Kyber 90s情况
    • gost_28147:20年前已过时
    • noekeon:设计有趣但应用不广
    • lion:类似Noekeon
  2. 校验和

    • adler32:无密码学用途
    • crc32:无密码学用途
  3. 哈希函数

    • gost_3411:安全性存疑
    • streebog:S盒设计可疑
    • md4/md5:已过时
    • keccak:非标准SHA-3实现
  4. 其他

    • siphash:仅支持64位输出
    • x919_mac:已过时
    • dsa:NIST不再推荐
    • gost_3410
    • mce:将被Classic McEliece取代
    • shake_cipher:仅影响作为流密码的使用
    • cryptobox:密码加密工具,已过时
    • dlies:已过时
    • tpm:仅支持TPM 1.2且测试不足

其他废弃功能

  1. 密码学原语接口

    • PBKDF类将被PasswordHashPasswordHashFamily取代
  2. 密钥处理

    • 移除私钥到公钥的隐式转换
    • 统一SM2算法名称(移除"SM2_Enc"/"SM2_Sig"区分)
  3. 签名算法

    • 简化DSA/ECDSA等算法的哈希指定方式
  4. 基础类

    • 移除Buffered_Computation基类
  5. 安全限制

    • 移除GCM对64位标签的支持
    • 移除所有<2048位的MODP组
    • 移除所有预置DSA组
    • 限制RSA公钥指数大小(≤2⁶⁴-1)
    • 限制新RSA密钥长度为≥2048位且为1024的倍数
  6. 填充机制名称统一

    • 标准化各种公钥填充机制的名称

即将内部化的头文件

以下头文件未来将仅限库内部使用:

  1. PBKDF相关bcrypt_pbkdf.h, pbkdf2.h
  2. 内部实现assert.h, curve_gfp.h
  3. 工具类compiler.h, mem_ops.h, uuid.h

迁移建议

  1. 定期检查代码中是否使用了废弃功能
  2. 关注Botan的更新日志和发布说明
  3. 对于关键功能,考虑提前迁移到推荐替代方案
  4. 如有特殊用例依赖废弃功能,及时与开发团队沟通

通过及时了解和应对这些废弃变更,可以确保您的应用在Botan未来版本中保持兼容性和安全性。

botan Cryptography Toolkit botan 项目地址: https://gitcode.com/gh_mirrors/bo/botan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶婉珊Vivian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值