指纹 软件 B

BoringSSL

1. 什么是 BoringSSL

BoringSSL 是 Google 的开源加密库,基于 OpenSSL,专为 Chromium 和 Android 项目设计。主要组件包括:

  1. 协议实现:TLS 1.2/1.3、DTLS 1.2
  2. 加密原语:AES-GCM、ChaCha20-Poly1305、RSA-PSS、ECDSA
  3. 证书验证:X.509 链验证
  4. 安全传输:BIO 抽象层

与 OpenSSL 不同,BoringSSL:

  • 移除对过时算法的支持(SSLv3、RC4)
  • 消除 FIPS 140-2 验证要求
  • 默认使用静态链接
  • 实施严格的证书策略

2. BoringSSL 与 OpenSSL 架构对比

特性BoringSSLOpenSSL
代码库~240Kloc(简化)~500Kloc
线程安全原子操作全局锁
内存自定义分配器标准 malloc/free
APIChromium 专用通用的
更新每周滚动季度发布
兼容性故意破坏 ABI维护 ABI 稳定性

关键架构差异:

  • BoringSSL 使用 BoringCrypto FIPS 模块
  • 不支持 ENGINE API
  • 移除 80% 的可配置选项
  • 简化的错误处理系统

3. BoringSSL 的核心模块

  1. TLS 栈
  • 无服务器状态的会话恢复
  • False Start 优化
  • 密钥材料导出器
  1. 加密
  • 常量时间实现
  • 硬件加速(AES-NI、PCLMULQDQ)
  • 后量子加密实验
  1. X.509
  • 证书透明度
  • OCSP 钉取
  • 名称约束
  1. 内存管理
  • ScopedOPENSSL 宏
  • 关键路径中无 malloc/free
  • 零化保证
  1. 测试
  • 92% 行覆盖率
  • 使用 libFuzzer 模糊测试
  • 跨平台 CI

4. BoringSSL 在现代应用中的作用

在安全栈中的关键作用:

  1. Chromium 集成
  • 为 Chrome 中的 QUIC 和 HTTP/3 提供动力
  • 为超过 10 亿设备提供证书验证
  • WebRTC DTLS 实现
  1. 性能优化
  • TLS 1.3 握手速度比 OpenSSL 快 2 倍
  • 二进制文件大小缩小 40%
  • ARMv8 加密扩展
  1. 安全增强
  • 严格的证书名称匹配
  • 自动 EC 曲线选择
  • 始终开启证书透明度
  1. 开发者体验
  • 简化的 API 表面
  • 明确的弃用策略
  • 每个函数的文档

您可能还喜欢

FlashID blog avatar image
运行多个帐户,不受封禁和屏蔽
免费试用

多账户安全防护,从 FlashID 开始

通过我们的指纹技术,保持不被追踪。

多账户安全防护,从 FlashID 开始