商密软件栈SIG :基于 Anolis OS,在整个系统软件层面(包括硬件,固件,bootloader,内核以及 OS)实现以国密算法为主的全栈国密操作系统,结束一直以来国密算法生态碎片化的状况,在技术方面打造社区和生态,在资质合规方面致力于为行业提供基于国密的信息安全标准。作者:张天佳,商密软件栈SIG负责人。
欢迎更多开发者加入商密软件栈SIG:
网址:https://openanolis.cn/sig/crypto
邮件列表:tc@lists.openanolis.cn
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数量
当前商密软件栈的整体支持情况
当前相关的主要开源软件栈对国密的支持情况以及社区回馈统计:
- ✅ 表示由OpenAnolis开发并已经贡献到开源软件中的特性
- “开发中”表示由OpenAnolis开发中的、或是开源软件正在进行review的特性
- “Y”表示开源软件已经支持且不是由OpenAnolis开发的
- ❌ 表示开源软件尚未支持
- “-”表示开源软件无需支持
相关阅读:
直播回顾:如何基于Linux内核构建起商用密码基础设施?网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?Anolis商密OS最佳实践之内核模块签名商密化
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】拉你入群;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等按照自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于2020年9月,旨在构建一个开源、中立、开放的Linux上游发行版社区及创新平台。
短期目标是开发龙蜥操作系统(Anolis OS)作为CentOS替代版,重新构建一个兼容国际Linux主流厂商发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
龙蜥OS 8.4已发布,支持x86_64和ARM64架构,完善适配Intel、飞腾、海光、兆芯、鲲鹏芯片。
欢迎下载:
https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!