金秋九月,继龙蜥操作系统(Anolis OS)之后,Anolis 商密 Beta 版正式出炉,Anolis 商密版 OS 是国内首家从操作系统层面提供商用密码的 OS 解决方案。
商用密码是由国家密码管理局组织制定的密码标准,作为中国自主研发可控的密码算法,对于保护国内数据和网络安全是至关重要的。密码算法是保障信息和数据安全的核心技术,随着近年来外部的国际贸易冲突和技术封锁,内部互联网的快速发展,我们不能单一依赖国外的的技术标准和产品,增强我国行业信息系统的安全可信显得尤为必要和迫切。商用密码算法给我们提供了一个新的选择,使得我们可以完全使用商密技术来构建网络和数据安全环境。
为此,Anolis 社区开发了支持商用密码的 OS 镜像,支持开箱可用的商用密码基础设施和应用开发工具包,同时支持了诸多商用密码的应用场景,对安全合规,数据机密性,以及安全性要求较高的用户可以基于这个商密生态开发出丰富的符合自身需求的商密应用。
Anolis 商密版 OS 镜像发布
Anolis 商密版 OS 同时支持 x86_64 和 aarch64 架构,提供 ISO 镜像,虚拟机镜像以及 repo 源。由于内核需要支持商用密码算法,目前 Anolis 商密版 OS 只支持 ANCK 内核,镜像缺省 sudo 用户是 anuser,对应的登录密码是 anolisos。
社区网站:
https://mirrors.openanolis.cn/anolis/8.2/isos/ShangMi/
Anolis 额外提供了名为 ShangMi 的 yum 源提供与商密相关的软件包,其 yum 源地址为:
https://mirrors.openanolis.cn/anolis/8.2/ShangMi/
Anolis 商密版在 100% 兼容普通 Anolis OS 的基础上,从内核到应用层基础算法库的全链路上完整支持了商密算法,以及基于商密算法的安全认证机制。除此之外,对于业界领先的 QUIC API 底层密码学能力也做了支持。Anolis 商密版 OS 支持以下主要的特色功能:
使用 BabaSSL 替代 OpenSSL 作为系统默认的基础密码算法库
linux kernel 支持完整的 SM2/3/4 算法以及使用商密算法的 PKCS#7 签名和 X509 证书
提供给开发者 SM2/3/4 商密算法基础库以及使用商密算法的 X509 证书以及 SM2 签名能力
提供 GM/T 0024 和 TLCP 国密双证书协议基础库
支持 RFC 8998 协议开发,在 TLS 1.3 中使用商密算法套件
商密化改造三大典型场景
基于 Linux 内核和 BabaSSL 提供的通用的商密技术方案,可以开发出各种使用商密的产品和应用,以下几个场景是我们做的商密化改造的典型场景。
IMA 架构使用商密算法
IMA 是 linux 内核提供一个文件完整性度量架构,提供了非常严格的文件访问控制,在 enforce 模式下只允许经过认证的程序在系统上运行,这个认证就是通过数字签名来完成的,IMA 的签名数据是放在文件特定的扩展属性里,通常情况下,这个数字签名由国际算法来实现,比如 SHA256 和 RSA。
现在我们使用商密 SM2/3 算法来构建这个签名数据,SM3 计算文件哈希,使用 SM2 算法签名,同样的,在内核里使用商密算法来验证签名是否合法。为了使用商密算法替代国际算法,我们为 Linux 内核实现了商密的公钥密码算法 SM2,以及在内核支持解析使用了 SM2-with-SM3 算法的 X509 证书,在应用层,通过 BabaSSL 密码算法库提供基础的商密算法和签名支持,对应的,IMA 签名工具 ima-evm-utils 软件包也做了相应修改,支持使用 SM2/3 算法生成签名。
通过对这些软件栈的改造,可以平滑迁移到商密算法,并且完全基于商密算法构建出 IMA 的安全机制,而这些机制在以前都是由国际标准的算法来保证的。
内核模块签名使用商密算法
Linux 支持只加载通过认证的内核模块,开启这个功能时,可以阻止来源不明的和没有认证的内核模块加载到内核,用以保护系统的安全性,这个认证也是通过数字签名来保证的,不同于 IMA 的签名,Linux 内核模块的签名是以特定的数据格式追加在文件结尾的,使用算法通常也是国际算法。涉及到签名的场景就可以使用商密算法来替换掉国际算法,要使内核模块签名支持使用商密算法,也需对签名工具和内核本身做修改,签名工具和内核同时需要支持解析使用商密算法的 PKCS#7 数字签名,同样的,应用层商密基础能力由 BabaSSL 提供,sign-file 调用 BabaSSL 完成使用商密算法的签名。
商密 SM3 哈希基础工具
在一般的场景中,用户习惯于使用 md5sum、sha256sum 这类基础工具来计算文件的哈希值,这是一组 coreutils 软件包中提供的基础工具集,由 GNU 开发。
在商密场景下,sm3sum 工具支持计算文件的 SM3 哈希值,sm3sum 提供与计算其它哈希算法工具同样的参数语义,相比于用 openSSL 工具计算哈希也更方便,提供给用户一个零门槛的使用体验。
结语
Anolis 商密版 OS 在完全兼容普通版 Anolis OS 的基础上,完整内置了全链路的商用密码基础设施,整合国内碎片化的技术实现,降低了商密的使用门槛,并提供与国际主流算法一致的用户体验,使用户和开发者可以如丝般顺滑的从国际算法迁移到商用密码算法上来。以中国自主研发可控的密码算法为载体,推动国内数据和网络安全迈向更高水平。
商密软件栈SIG :基于 Anolis OS,在整个系统软件层面(包括硬件,固件,bootloader,内核以及 OS)实现以国密算法为主的全栈国密操作系统,结束一直以来国密算法生态碎片化的状况,在技术方面打造社区和生态,在资质合规方面致力于为行业提供基于国密的信息安全标准。