龙蜥操作系统上玩转铜锁密码库 原创
编者按:龙蜥操作系统 Anolis OS 支持多计算架构,也面向云端场景优化,兼容 CentOS 软件生态,旨在为广大开发者和运维人员提供稳定、高性能、安全、可靠、开源的操作系统服务。本文为龙蜥社区理事单位蚂蚁集团技术专家张成龙,以阿里云 ECS 为例,在 Anolis OS 8.8 系统上,安装铜锁并演示国密功能。
在 2023 年上半年铜锁项目已经正式捐赠给了开放原子开源基金会,目前正处于孵化期。铜锁项目作为开源的基础密码库,希望能够助力开源操作系统,为用户提供密码学基础能力,解决密码合规等问题。为方便在龙蜥操作系统上的用户使用铜锁密码库,目前已经基于 Tongsuo-8.3.3 源代码构建 RPM 包,发布到龙蜥软件包仓库,支持的架构包括 x86_64 和 Arm64。Tongsuo-8.3.3 主要包括以下更新:
- 支持 SM4-NI 优化
- 修复未检查 OPENSSL_memdup 返回值问题
- 修复多个 CVE 安全漏洞
- SSL_connection_is_ntls 改成使用预读方式判断是否为 NTLS
下面以阿里云 ECS 为例,在 Anolis OS 8.8 系统上,安装铜锁并演示国密功能。
实战阿里云 ECS + Anolis OS + 铜锁
配置 ECS 操作系统时,选择 Anoils OS 8.8,示例如下。
登录 ECS 后,安装铜锁,步骤如下。
yum -y --enablerepo Plus install tongsuo
铜锁安装目录为/opt/tongsuo/,安装成功后,可以查看铜锁版本号:
/opt/tongsuo/bin/openssl version
国密协议初探
铜锁支持国密安全传输协议 TLCP,使用铜锁提供的客户端程序,可以访问支持 TLCP 协议的网站,如下所示:
/opt/tongsuo/bin/openssl s_client -connect ebssec.boc.cn:443 -ntls -enable_ntls
通过日志可以看到握手成功,对应协议版本为 NTLSv1.1(即 TLCP 1.1),密码套件为 ECC-SM2-SM4-CBC-SM3,截图如下所示。
生成随机数
铜锁支持基于 SM3 算法的软件随机数发生器,符合密码行业标准《GM/T 0105—2021 软件随机数发生器设计指南》,通过铜锁命令行生成随机数,如下所示。
/opt/tongsuo/bin/openssl rand -drbg_type sm3 -hex 128
相关链接:
铜锁帮助文档:https://www.yuque.com/tsdoc
铜锁代码仓库
铜锁(Tongsuo)是一个提供现代密码学算法和安全通信协议的开源基础密码库,为存储、网络、密钥管理、隐私计算、区块链等诸多业务场景提供底层的密码学基础能力,实现数据在传输、使用、存储等过程中的私密性、完整性和可认证性,为数据生命周期中的隐私和安全提供保护能力。
——完——