目前,不少金融机构都使用国密卡(满足国密算法要求的加密卡)和国产密码解决方案保障金融信息安全。而在传统虚拟化架构下,单块加密卡通常只能服务一个系统,经常会出现资源利用率低、加密处理性能不足等问题,影响业务开展并提升使用成本。
近期,SmartX 与某金融机构开展合作,共同探索超融合信创云基础设施对国产加密技术的支持能力。得益于 SmartX 超融合虚拟化 PCIe 设备虚拟化、VFIO 设备直通,以及对于基于 CPU 实现加密方案兼容适配等技术优势,超融合信创云基础设施不仅可良好对接国密卡、海光 HCT 等国产加密技术,还可进一步优化资源分配,提升加密效率,满足现代金融行业对于加密服务的需求。
本文,我们将简单介绍国产加密技术现状,并分享金融用户基于超融合架构开展的国产加密技术探索。
更多金融用户行业实践与超融合支持能力验证,请下载阅读《金融核心生产业务场景探索合集》系列电子书。
1 国产加密技术:发展、场景与实现
1.1 国产加密技术发展与现状
为了保证金融交易的安全性,国内金融机构曾广泛使用国际通用的商业密码算法对关键数据进行加密。例如传统 SSL 网关技术,就是通过纯软件的方式结合国际商业密码算法实现的。
图 1:传统 SSL 网关系统逻辑架构图
而面对复杂多变的国际形势,密码算法的自主可控能力成为重中之重,加密技术的“国产化转型”也被提上日程——证监会发布的《证券期货业密码应用工作规划(2015-2020 年)》明确强调,证券期货机构需在 2020 年全面应用国产密码技术保护行业信息安全。同时,等保三级标准也对国产密码算法的应用提出了要求,在全栈信创验收中,符合国家密码算法标准也会获得更多的分数。
国产密码算法是指由中国国家密码管理局发布的密码算法标准,旨在保障国家信息安全。目前,国家密码管理局已发布了一系列国产商用密码标准算法,包括 SM1(SCB2)、SM2、SM3、SM4、SM7、SM9 以及祖冲之密码算法(ZUC)等,其中 SM1 和 SM7 对外是不公开的,若想调用则需要通过加密芯片的接口。
1.2 国产加密技术使用场景
国产密码的引入要求通常发生在业务流程的设计和更新阶段,如 CA 证书改造、算法升级改造、支付系统改造、交易系统改造、终端系统改造等场景下,金融机构可能会选择实施符合国密标准的加密算法。这涉及到评估现有系统的加密方案,选择合适的国密算法,以及更新系统以集成新的加密技术。在实施过程中,可能需要进行算法替换、系统测试和性能调优,以及硬件设备、云底座选型以确保业务流程的顺利运行。
常见国产密码场景:
- 数据加密:在数据加密传输、加密存储方面,主要通过国产的对称加密算法 SM4 替换 DES/AES 等国际算法。
- 身份认证:在防止身份信息被篡改、冒用方面,主要通过国产的非对称加密算法 SM2 替换 RSA 等国际算法。
- 消息认证:在保证数据完整性、防止消息被篡改方面,主要通过国产哈希函数算法 SM3 替换 MD5/SHA-256 等国际算法。
除此之外,SM1 算法安全保密强度及相关软硬件实现性能与 AES 相当,主要实现芯片领域的国密替换,ZUC 算法主要用于移动通信加密。
1.3 国产加密技术实现与改造
国产密码算法的实现主要依赖于加密机或加密卡:加密机是一种独立的硬件设备,专门用于执行密钥管理和加密运算,通常被设计来处理高强度的加密任务;加密卡是一种可以插入服务器或其他计算设备的硬件组件,用于执行加密运算和安全密钥管理。与加密机相比,加密卡成本更低、部署更灵活,具备易于扩展、易于集成等优势,在适应性和能效比上也优于加密机,是一种更加实用和经济的加密解决方案。
我们以网上交易系统模块为例介绍下加密卡的使用模式。网上交易系统通常采用账户 + 身份认证口令进行认证,通过单向 SSL 通道进行加密传输,从客户端发出的指令流到达服务端后将根据请求功能的不同把不同的交易指令送达后台系统并转发到交易所和银行。该系统的国产密码改造方案主要是由支持国密算法的协同签名网关结合了数字证书系统和硬件加密卡。架构示意如下所示:
协同签名网关包含了安全认证网关和协同签名服务。其中安全认证网关主要负责客户端的安全接入和通讯数据的加密,协同签名服务以及数字证书系统负责维护客户端身份的安全性。硬件加密卡安装在主板上,为协同签名网关和密钥管理系统提供基础的密码计算和密钥存储服务,应用层通过使用加密卡的驱动程序和接口来调用加密功能。此外,加密卡还提供硬件级别随机数的能力来确保密钥安全。
在进行国密改造时,金融机构需要评估现有系统的加密方案、选择合适的国密算法,以及更新系统以集成新的加密技术。目前,成熟的国产加密解决方案种类繁多,选择哪一种需要根据业务需求和技术对接要求综合评估,涉及到安全性、性能、成本以及与现有系统的兼容性等多个方面的考量。同时,国密改造也可能涉及 IT 基础架构的选型,需充分评估 IT 基础架构的架构统一性、先进性、成熟性、可靠性、规范性、兼容性、扩展性等方面,以确保业务流程的顺利运行。
2 用户实践:验证 SmartX 超融合与国产加密技术的适配效果
为了提升交易系统互联网接入的安全级别,优化密码服务的成本和灵活性,某证券用户针对超融合信创环境下某国产厂商国密卡和海光 HCT(Hygon Cryptographic Technology)技术的适配进行了深入探索。
2.1 与某国产国密卡的适配
2.1.1 适配思路
在传统的加密卡应用场景中,通常一台服务器配备的单块加密卡仅服务于一个系统,这种一对一的配置方式在很多情况下会导致资源的低效利用,尤其是当服务器的计算能力和加密需求不是恒定的时候,加密卡的潜能往往无法得到充分发挥。
针对这一问题,SmartX 超融合可通过 PCIe 设备虚拟化技术,即 SR-IOV(Single Root Input/Output Virtualization),来优化资源配置。通过 SR-IOV 技术,一块物理的加密卡能够被分割为多个独立的虚拟加密卡,每个虚拟加密卡都可以分配给不同的虚拟机使用。这种方式不仅显著提升了加密卡的利用率,还增加了系统的灵活性和扩展性。此外,SR-IOV 技术的引入还意味着加密任务可以在多个虚拟环境中并行进行,不仅提高了加密处理的效率,也为加密任务的管理和监控提供了便利。
2.1.2 适配流程
适配的软硬件环境:
- 某国产厂商加密卡 PCIe v7.x
- Suma R6240 海光服务器(或者其他适配该加密卡的海光服务器)
- SMTX OS 5.0.5 及以上版本
服务器 BIOS 配置:
除了常规配置,并特别注意开启以下选项(这些设置对于后续操作至关重要):
- IOMMU: 设置为 Enabled
- SR-IOV: 设置为 Enabled
具体适配过程:
1. SMTX OS 安装部署:在海光平台安装 SMTX OS 的主机操作系统,进行 SmartX 超融合集群的常规安装部署,通过 CloudTower 启用节点 IOMMU 特性。2. 国密卡 PF 驱动安装:
- 首先,将国密卡驱动上传到节点目录,并解压。
- 执行 pf driver 安装程序。安装完成后,运行 lspci 命令,预期如下输出显示设备列表,其中第一个设备是 PF,其余的设备是 VF。
c1:00.0 Encryption controller: Device 464d:e700 (rev 01)
c1:01.0 Encryption controller: Device 464d:e780 (rev 01)
c1:01.1 Encryption controller: Device 464d:e780 (rev 01)
c1:01.2 Encryption controller: Device 464d:e780 (rev 01)
c1:01.3 Encryption controller: Device 464d:e780 (rev 01)
c1:01.4 Encryption controller: Device 464d:e780 (rev 01)
c1:01.5 Encryption controller: Device 464d:e780 (rev 01)
c1:01.6 Encryption controller: Device 464d:e780 (rev 01)
c1:01.7 Encryption controller: Device 464d:e780 (rev 01)
c1:02.0 Encryption controller: Device 464d:e780 (rev 01)
c1:02.1 Encryption controller: Device 464d:e780 (rev 01)
c1:02.2 Encryption controller: Device 464d:e780 (rev 01)
c1:02.3 Encryption controller: Device 464d:e780 (rev 01)
c1:02.4 Encryption controller: Device 464d:e780 (rev 01)
c1:02.5 Encryption controller: Device 464d:e780 (rev 01)
c1:02.6 Encryption controller: Device 464d:e780 (rev 01)
c1:02.7 Encryption controller: Device 464d:e780 (rev 01)
3. VF 直通到虚拟机:
- 以 c1:01.1 为例,首先在 Tower 界面查找虚拟机的 uuid,并执行 virsh list 来确定虚拟机的 Id(注意,确保虚拟机已经启动)。
- 创建 pci.xml 文件,并替换其中的 bus=’0x’ slot=’0x’ function=’0x’ 为对应 c1:01.1 的内容,实现 VF 直通到指定虚拟机。
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0' bus='0xc1' slot='0x01' function='0x1'/>
</source>
</hostdev>
- 将 VF 直通给该虚拟机
virsh attach-device 1 pci.xml
4. 虚拟机中的驱动安装:
- 将驱动包上传到虚拟机目录,并进行 vf driver 安装。
- 执行 lspci 命令,预期如下输出证明安装完成
00:0e.0 Encryption controller: Device 464d:e788 (rev 01)
2.1.3 适配结果
通过与 SmartX 超融合适配,国密卡能够被高效地分配给虚拟机使用。具体来说,一块国密卡通过虚拟化技术最多能够生成 16 个 VF,这些 VF 可以被独立挂载到不同的虚拟机上。用户此前对 SSL 网关进行国密改造采用的是一虚二方式,单块国密卡虚化出两块 VF 分别提供给两台虚拟机使用。SmartX 超融合搭配国密卡的方案,不仅优化了资源的利用率,还显著提升了性价比,使得单一物理设备能够支持更多的虚拟机环境。
在集成国密卡到 SMTX OS 操作系统的过程中,SmartX 研发团队还与加密卡厂商工程师共同定位并解决了在驱动适配中遇到技术问题。此外,针对不同的操作系统,SmartX 工程师还可以按照需求进行专门的驱动适配工作,确保了国密卡在多种 OS 环境下的兼容性。
目前该方案已经完成了对接,在客户环境中进行应用并持续进行更新迭代,在未来 SmartX 超融合更新版本中也将正式加入标准支持功能。
2.2 与海光 HCT 的适配
海光 HCT 是基于密码协处理器和密码指令集自主设计和研发的一套密码算法加速技术软件开发套件,旨在提供软硬件结合的国密算法加密服务。HCT 技术通过在 CPU 中集成专门的加密指令集,能够在不依赖外部硬件模块的情况下,直接利用 CPU 资源高效执行国密算法,具备降低硬件成本、简化系统架构、提高加密处理的效率(可以达到高端物理加密卡性能的 2-3 倍)等优势。
2.2.1 适配思路
通过 Hygon 提供的 CCP* 设备,运行配套提供的 HCT** 加密套件即可实现加密。因此,若想实现 HCT 支持,需要给 host kernel 和 QEMU 打上 Hygon 的 HCT 设备支持 patch,然后将 CCP 设备以 MDEV 的形式透传给虚拟机使用,从而实现在 SMTX OS 上支持虚拟机使用 HCT。*CCP:全称 Crypto Coprocessor,以一种专门用来辅助加密的 co-processor,一般很多加密算法非常复杂,因此也需要硬件的协助来让其变得更加高效。**HCT:基于 CCP 开发的密码加速开发套件。
而 Hygon HCT 设备是作为 QEMU 中的一种 VFIO 设备来实现的。通常用户空间对物理设备的访问都需要经过内核,VFIO 则是一种让硬件设备直接安全地暴露给用户空间的解决方案框架,虚拟机也是利用了这个框架实现的设备透传。
2.2.2 适配流程
采用海光自带的 HCT 加密套件实现对于传输数据的加密,从而避免使用加密卡的方式。业务系统的主要应用场景为 SSL 网关提供服务。
适配的软硬件环境:
- 海光 7380 CPU
- 新华三海光芯片服务器(支持 BIOS 版本 2.1.0.4 及以上)
- SMTX OS 超融合软件
服务器 BIOS 配置:
除了常规配置,需特别注意开启以下选项:
- HYGON CBS -> NBIO Common Options -> NB Configuration -> IOMMU [Enabled]
- HYGON CBS -> Moksha Common Options -> SEV-ES ASID Space Limit 1
- HYGON CBS -> Moksha Common Options -> SMEE Control [Enabled]
具体适配过程:
1. 离线导入安全证书:
(1) 获取芯片的 Chip ID 和证书版本号
$ cd /opt/hygon/bin
$ sudo ./hag general get_id
$ sudo ./hag general hgsc_version
(2) 网站下载证书说明:在可以连接互联网的机器上,访问 https://cert.hygon.cn/hgsc,如下图所示,输入服务器的 Chip ID、证书版本号,以及公司信息。
(3) 导入证书
$ cd /opt/hygon/bin
$ sudo ./hag general hgsc_import -offline -in /realpath/to/hgsc_certchain
说明:将下载的证书拷贝到对应的服务器,证书名称类似为hygon-hgsc-certchain-v1.0-H905P0005040204.bin。如下图,使用 hag 离线导入该证书。
2. 确认证书导入成功
$ cd /opt/hygon/bin
$ sudo ./hag csv platform_status
3. CCP 设备透传
后续更新 kernel 及 QEMU patch ,可以通过后台支持指定 CCP 设备透传,这里对具体步骤不进行赘述。
2.2.3 适配结果
通过 VFIO 方法透传 CCP 设备给到指定虚拟机后,成功实现了在 SmartX 超融合平台虚拟机上支持 HCT。
在这个过程中,SmartX 的技术人员克服了 libvirt 设备识别问题、HCT 套件卡死、内存泄漏等多项技术挑战,仅用两周时间就完成了客户对 HCT 环境的需求交付。同时,实现过程中还排查出 HCT 驱动问题,已反馈海光团队进行修复。
目前该方案已经完成了对接,在客户环境中进行应用并持续进行更新迭代,在未来 SmartX 超融合更新版本中也将正式加入标准支持功能。
3 总结
总体而言,SmartX 超融合信创云基础设施可良好适配国产加密卡和海光 HCT 解决方案,充分利用 SmartX 超融合虚拟化 I/O 加速等技术支持优势和广泛的硬件兼容性,提升资源利用率与加密效率,同时解决适配中遇到的多种技术问题,帮助用户顺利实现国密改造。
除了国密卡和海光 HCT,SmartX 也在协助其他企业用户实现多种国产加密技术(如鲲鹏 KAE)的适配与调优,我们将在未来进一步进行分享。
欲深入了解更多超融合在 TA 注册登记、估值、BI 报表、O32、柜台交易系统等多种金融核心业务系统下的能力表现,欢迎点击链接,免费获取《金融核心生产业务场景探索文章合集》系列电子书。