5.8.3 商密软件栈
从商密算法标准公布到现在已有十多年时间,与AES,SHA等主流国际算法相比,目前商密在基础软件中的支持和优化仍然不完 善,甚至有较大的差距,商密算法的软硬件生态也处于碎片化状态,密码算法作为网络和数据安全的基石,应该且有必要在基础软 件中具备开箱即用的能力;另一方面,密码算法是保障信息和数据安全的核心技术,随着近年来外部的国际贸易冲突和技术封锁的 加深,内部互联网的快速发展,我们不能单一依赖国外的的技术标准和产品,增强我国行业信息系统的安全可信显得尤为必要和迫 切。商用密码算法给我们提供了一个新的选择,使得我们可以完全使用商密技术来构建网络和数据安全环境。
商密全栈架构
商密软件栈SIG依托基础软件上游,秉承为已有轮子支持商密的原则,在全栈范围内的多个基础组件中实现了商密算法以及性能优 化,包括Linux内核,OpenSSL,libgcrypt,gnulib,nettle等在内的基础组件,支持了商密算法以及大量的性能优化,并且得到 上游社区的支持进入主线,基本补齐了商密算法在基础软件中的一些短板,在兼容现有API的情况下,提供给普通开发者平滑的使用 体验。
应用场景
在以下的场景中,通过在各基础软件中支持的商密实现,可以平滑的从国际主流算法切换到商密算法上来,在提供高安全性的同时,也有效避免了国外技术封锁带来的风险
LUKS磁盘加密支持使用SM4商密算法;
fscrypt支持使用SM4算法,以及SM4-XTS,SM4-CBC模式优化加速;
TLS 1.3 支持使用商密算法套件(TLS_SM4_GCM_SM3);
IMA,modsign支持使用SM2/SM3算法组合的签名验签,涉及Linux内核,sign-file工具和ima-evm-utils的支持。