商密软件栈SIG :基于 Anolis OS,在整个系统软件层面(包括硬件,固件,bootloader,内核以及 OS)实现以国密算法为主的全栈国密操作系统,结束一直以来国密算法生态碎片化的状况,在技术方面打造社区和生态,在资质合规方面致力于为行业提供基于国密的信息安全标准。

作者:张天佳,商密软件栈SIG负责人

欢迎更多开发者加入商密软件栈SIG:

网址:https://openanolis.cn/sig/crypto

邮件列表:tc@lists.openanolis.cn

530c9cf2614236c8e7a142c7c187cd63.png

SIG 目标

基于 Anolis Linux,在整个系统软件层面(包括硬件、固件、bootloader、内核以及OS)实现以商密算法为主的全软件栈商密操作系统,结束一直以来商密软件生态碎片化的状况,在技术方面打造社区和生态,在资质合规方面致力于为行业提供基于商密的操作系统信息安全标准。

10-11 月 SIG 进展

11月进展

  • BabaSSL 输出技术文章:TLS 协议握手证书压缩技术

  • 龙蜥大讲堂技术直播分享《构建商用密码操作系统》,输出对应的材料到龙蜥社区,观看直播人次达 6K 多,观看人数可观

  • 给 libkcapi 和 nettle 项目开发支持 SM3 算法,目前已经在社区 review

  • CentOS 的特有 patch 已经全部移植到了BabaSSL,BabaSSL 上游具备了兼容CentOS 的能力,这为以后出包提供了便利

  • KTLS 技术调研,目前 CCM 加密模式下仍然存在问题,KTLS 加密的数据在对端无法解密

  • 在调试环境已经可以运行 nginx 驱动的基于国密算法的 WEB 服务,客户端可以使用 curl,目前还没有桌面级浏览器支持

10月进展

  • 移植 Anolis OS 上的普通镜像 OpenSSL 的上游 patch 移植到 BabaSSL 项目

  • 联系可信计算组织 trustedcomputinggroup,对于规范和 TPM 实现中的不规范的算法名称 SM3_256 更正为 SM3,这个不规范的名称导致在多处要做特殊处理

  • 修复内核 SM4 加速实现中的两处错误,感谢 Abaci 和社区的报告以及测试工作

  • 内核 KTLS 支持使用 SM4 GCM/CCM 算法,已经完成 upstream

  • 输出 Anolis 商密 OS 最佳实践两篇,IMA 商密化和内核模块签名商密化的最佳实践

  • 在 OpenInfra Days 和 CLK 会议上做了《构建商用密码基础设施》的分享

SIG 长期规划

全栈商密算法涉及到众多的上下游组件,团队,外部合作伙伴,上游社区,要尽可能团结其它团队的力量,消除不必要的重复开发,扩大推广和影响力,成为商密事实标准。

全栈商密算法要求先具备从 boot 到业务运行环节各安全链路上所需的商密算法,再针对各组件做针对性的优化,在社区版本扩大精力影响力后,也让未来商业版相比社区版本带来差异化优势。

协助 BabaSSL 申请国密资质,为应用系统提供必要的合规属性,也为有此需求的用户可以迁移到这个系统上来,增加用户的使用黏性,这也是一个主要的竞争优势。

规划支持的商密算法场景:

  • IMA 场景下使用商密算法替代国际算法

  • 内核模块签名认证流程的商密化支持

  • Web 场景下的 RFC 8998 协议支持,即 TLS v1.3 协议中支持使用商密算法套件

  • 使用商密算法支持 luks,dm-crypt 场景

  • SecureBoot 中使用商密算法替换国际算法

  • 内核 SM4 算法的指令集加速实现

  • coreutils 支持 sm3sum 工具

  • SM2 优化,类似于 NIST,主要优化点是 SM2 所用曲线的快速取模算法

  • 集成 intel QAT 方案,大量哈希算法加速 daemon

  • 集成 AMD,Hygon CCP 加速方案

  • 积极参与 OpenSSL 3.0.0 dev 开发,加速 release

  • coreboot 等未来可能替代 UEFI 的固件支持 SM 系统算法

  • gpg 支持使用商密算法

  • libssh 支持使用商密算法

Milestone

9 月提供 Anolis 商密版 OS Beta 镜像,提供默认商密算法的系统基础组件:

  • 使用 BabaSSL 替换系统默认的 OpenSSL1.1.1,提供商密的系统运行支持,也提供给开发者无门槛的商密应用二次开发体验

  • 内置 sm3sum 工具,用于计算文件 SM3 哈希算法,提供与 md5sum、sha256sum一致的用户体验

  • IMA 全场景支持商密算法,包括 ima-evm-utils 使用商密算法签名,内核使用相应算法认证签名的合法性

  • 内核模块签名支持使用商密算法

22.01 月 Anolis 商密版 OS 正式镜像:

  • 集成商密 KTLS 特性内核的商密镜像

  • 内核支持 SM4 的 avx/avx2 加速实现,性能是纯软件实现的五倍左右,为商用提供必要支持

  • Web 场景支持 RFC 8998 协议,在 TLS v1.3 中支持使用国密套件,以及提供给用户最佳实践,可以在国密 OS 上开发自己的国密应用

  • 争取更多的自研 patch 进入上游社区,减少由此导致的自定义rpm数量

当前商密软件栈的整体支持情况

当前相关的主要开源软件栈对国密的支持情况以及社区回馈统计:

ff67a93a8de7aee64226f3d7f80adbbd.png

  • ✅ 表示由OpenAnolis开发并已经贡献到开源软件中的特性

  • “开发中”表示由OpenAnolis开发中的、或是开源软件正在进行review的特性

  • “Y”表示开源软件已经支持且不是由OpenAnolis开发的

  • ❌ 表示开源软件尚未支持

  • “-”表示开源软件无需支持

相关阅读:

直播回顾:如何基于Linux内核构建起商用密码基础设施?

网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?

Anolis商密OS最佳实践之内核模块签名商密化

Anolis商密OS最佳实践之IMA商密化 | 龙蜥SIG

—— 完 ——

关于龙蜥SIG

SIG是开放的,并争取让交付成果成为社区发行的一部分,由组内核心成员主导治理,可通过邮件列表和组内的成员进行交流。龙蜥社区SIG目前约40个,包括硬件兼容性测试 SIG、商密软件栈、高性能存储技术 SIG、Java语言与虚拟机SIG、Cloud Kernel、OceanBase SIG等。

a51e4328aa141e123049932c35c4702b.png

SIG网址:https://openanolis.cn/sig

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】拉你入群;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!

45074a2b433c6a9a52a764b67d9af117.png

往期精彩回顾

1.普华基础软件加入龙蜥并成为理事单位,共创开源操作系统新生态

2.直播回顾:关于龙蜥操作系统软件包构建,这有一份开发者指南(附PPT)

3.一款跑在云上的定制容器专属 OS 来了——LifseaOS | 龙蜥技术

4.龙蜥社区11月运营亮点有哪些?月度大事件回顾来了

5.摩尔线程正式加入龙蜥社区,国内开源生态再添芯力量

Logo

欢迎加入龙蜥社区,参与开源活动即刻有好礼相送!

更多推荐