新闻动态
当前位置:首页 > 新闻动态
【实践】基于云峦KeyarchOS的国密技术与实践
2024-07-04

一. 背景

国密标准已出台多年,国密技术生态处于一个逐步走向成熟的阶段,但许多基础密码组件在支持国密算法方面仍然不理想,导致操作系统的应用在计算、存储、网络传输等场景下的国密算法使用存在障碍。

为了解决上述问题,云峦KeyarchOS在nettle、gnutls、qemu、openssl、cryptography等基础密码组件上实现国密算法支持,支持SM2、SM3、SM4国密算法。

 二. Nettle

Nettle是一个开源的底层加密库,主要用于实现各种加密算法、散列函数、随机数生成等功能,具备良好的灵活性和可移植性,这使得加解密功能能够轻松地应用到各种环境中。云峦KeyarchOS中的Nettle组件支持SM2、SM3、SM4国密算法,其国密算法的应用举例如下:

1)使用nettle的sample程序进行SM3、SM4国密算法验证,其中SM4加解密的填充算为PKCS7。

1.png

三. Gnutls

Gnutls是一个开源的安全通讯库,专注于实现安全的网络通信协议,如SSL、TLS等,操作系统部分上层应用的网络通信是基于Gnutls实现的。云峦KeyarchOS中的Gnutls组件支持TLSv1.2协议使用国密算法,并支持使用Gnutls的certtool工具生成国密证书。Gnutls使用国密算法进行TLS三次握手并建立链接的应用举例如下:

1)启动gnutls-serv程序,监听TLS访问请求,并指定使用国密证书(包括CA证书sm2-ca.pem,服务端证书sm2-server.key、sm2-server.pem)和国密加密套件。

1.png

2)启动gnutls-cli程序,对gnutls-serv发起连接请求,并指定使用的国密证书(包括CA证书sm2-ca.pem,客户端证书sm2-client.key、sm2-client.pem)和国密加密套件,gnutls-cli与gnutls-serv使用国密算法完成三次握手,建立链接。

1.png

四. QEMU

qemu-img是qemu项目中的一个命令行工具,主要用于创建、转换、管理和操作磁盘镜像文件。在qemu-img中,可以使用对称加密算法、Hash算法等技术创建加密磁盘镜像,以保护磁盘上的数据,云峦KeyarchOS使用libgcrypt作为后端加密库,实现qemu-img应用国密算法创建加密磁盘,其应用举例如下:

1)qemu-img创建加密磁盘镜像gm.img,对称加密算法为SM4,散列算法为SM3。并使用qemu-img info命令查看磁盘镜像信息

1.png

2)使用virt-install创建虚拟机,磁盘镜像使用gm.img,虚拟机创建成功

1.png

3)使用virsh查看创建的虚拟机状态

1.png

五. OpenSSL

OpenSSL是一个开放源代码的软件库,专注于提供安全套接字层(SSL)和传输层安全(TLS)协议的实现,以及一系列广泛的加密工具和函数库。它是互联网安全通信领域中的一个关键组件,广泛应用于各种操作系统和平台上。社区版本OpenSSL在国密算法的支持上存在缺陷,云峦KeyarchOS在OpenSSL1.1.1w版本上完善了国密算法的实现,其应用举例如下:

1)使用OpenSSL,进行SM3散列计算、SM4加解密验证

1.png

2)使用OpenSSL,生成SM2非对称算法密钥对

1.png

3)使用OpenSSL和生成的SM2非对称算法密钥对文件进行签名验签及加解密验证

1.png

4)也可以指定hash算法sm3对文件计算hash值,再对hash值做签名和验签

1.png

六.Cryptography

Cryptography是一个功能强大、易于使用的加解密原语库,专为Python开发者设计,旨在提供安全的加解密处理能力。云峦KeyarchOS在Cryptography上支持了SM2国密算法,其应用举例如下:

1)使用cryptography的sample程序使用SM2算法进行加解密及签名验签

1.png

 七.总结

国密算法的应用愈加广泛,云峦KeyarchOS的基础密码组件已经支持国密算法,这为云峦KeyarchOS用户提供了有效的国密应用支持。

关注我们

Copyright © 2024 浪潮信息 鲁ICP备13028953号-12

售前咨询

售后服务

回到顶部

回到顶部

售前咨询
售后服务