商密软件栈 SIG 双月月报(10-11)| 龙蜥SIG

简介: 商密软件栈SIG双月报(10-11)已送达,请查阅。

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


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

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

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

商密.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数量

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

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

图片.png

  • ✅ 表示由OpenAnolis开发并已经贡献到开源软件中的特性
  • “开发中”表示由OpenAnolis开发中的、或是开源软件正在进行review的特性
  • “Y”表示开源软件已经支持且不是由OpenAnolis开发的
  • ❌ 表示开源软件尚未支持
  • “-”表示开源软件无需支持

相关阅读:

直播回顾:如何基于Linux内核构建起商用密码基础设施?网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?Anolis商密OS最佳实践之内核模块签名商密化

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

—— 完 ——

加入龙蜥社群

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

关于龙蜥社区

龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等按照自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于2020年9月,旨在构建一个开源、中立、开放的Linux上游发行版社区及创新平台。

短期目标是开发龙蜥操作系统(Anolis OS)作为CentOS替代版,重新构建一个兼容国际Linux主流厂商发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。

龙蜥OS 8.4已发布,支持x86_64和ARM64架构,完善适配Intel、飞腾、海光、兆芯、鲲鹏芯片。

欢迎下载:

https://openanolis.cn/download

加入我们,一起打造面向未来的开源操作系统!

https://openanolis.cn/

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2天前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
44 9
|
1天前
|
存储
系统调用处理程序在内核栈中保存了哪些上下文信息?
【10月更文挑战第29天】系统调用处理程序在内核栈中保存的这些上下文信息对于保证系统调用的正确执行和用户程序的正常恢复至关重要。通过准确地保存和恢复这些信息,操作系统能够实现用户模式和内核模式之间的无缝切换,为用户程序提供稳定、可靠的系统服务。
20 4
|
5天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
19天前
数据结构(栈与列队)
数据结构(栈与列队)
15 1
|
19天前
【数据结构】-- 栈和队列
【数据结构】-- 栈和队列
13 0
|
1月前
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
85 64
|
25天前
|
算法 程序员 索引
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
栈的基本概念、应用场景以及如何使用数组和单链表模拟栈,并展示了如何利用栈和中缀表达式实现一个综合计算器。
25 1
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
|
24天前
初步认识栈和队列
初步认识栈和队列
53 10
|
25天前
|
算法
数据结构与算法二:栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式
这篇文章讲解了栈的基本概念及其应用,并详细介绍了中缀表达式转换为后缀表达式的算法和实现步骤。
39 3
|
23天前
|
存储 JavaScript 前端开发
为什么基础数据类型存放在栈中,而引用数据类型存放在堆中?
为什么基础数据类型存放在栈中,而引用数据类型存放在堆中?
61 1