面向云场景的高速数字签名应用研究与实践*
2022-10-18朱晓华
朱晓华
(长春吉大正元信息技术股份有限公司,北京 100086)
0 引 言
近年来,随着云计算、大数据、5G、数据中心、物联网等应用场景的涌现,数据成为继土地、劳动力、资本、技术之后的第五大生产要素[1],数字化成为国民经济发展的新引擎,而云作为新一代信息技术要素的重要实体,更是数字信息时代连接一切的“枢纽”。
在云场景中,密码技术在身份识别、安全隔离、信息加密、完整性保护和抗抵赖性等方面具有不可替代的重要作用。为确保密码算法的自主可控,降低敏感信息泄露和信息系统遭受攻击的风险,国家密码管理局制定并发布了一系列的国产加密算法及相关密码行业标准,大力倡导信息安全核心产品的国产化,并出台相关政策强制要求在国家信息安全建设过程中使用国产化信息安全密码产品,以期实现在云计算环境中国密算法及产品使用的普及和加强。在云计算环境中,传统IT 架构部署的密码产品服务器应用模式难以发挥密码优势[2],正确合理的云环境密码应用模式是保障云场景数据安全最有效、最可靠的手段。
同时,数字时代海量的数据要求通信网络向大带宽、高速率、低延迟、高可靠的方向演进[3],而存储和计算则向云与数据中心转移,因此只有将更高速的密码技术应用到云与数据通信系统中,才能避免密码成为影响网络速率和带宽的瓶颈。而传统的高速密码技术,主要以实现数据中心、骨干网络等高速数据加解密或者安全套接层加/卸载为目标,以高速芯片/现场可编程门阵列、模组、整机的重设计或性能提升为工程手段,其完整的实现路径一般都比较长,成本也相对较高,如果涉及芯片的重设计及流片,更是一般中小、创新企业难以承受和投入的。
本文将通过分析云环境中的安全风险及面临的新挑战,尝试以相对低廉和易实现的技术路径,简要阐明在用户云环境中应用高速数字签名的实践方法,并结合已有的云签验服务平台和云签验服务器产品技术,在虚拟化层面实现资源池化和统一管理,实现安全密码服务的高性能,满足日益增长的用户数据安全需求。
1 云场景的高速数字签名应用目标
云计算的安全性、可靠性以及可管理性的要求,远高于一般传统、独立的业务系统[4],云场景的虚拟化、多租户、弹性计算等特点对数字签名应用提出了更高的要求。首先,应用都部署在云上,需要保证信息的完整性和机密性;其次,多个应用系统使用同一套签名系统,需要保证用户数据的充分隔离;最后,应用系统繁多,需要做到密码资源的动态合理分配。
1.1 高数字签名运算速率
云平台的建设把业务系统部署方式由分散部署改为集中部署,云平台自身异构化复杂,并且随着承载运行的云上业务应用系统的逐渐增多,对数字签名服务的速率要求也越来越高,提供高性能的数字签名运算服务非常必要。通常,在云场景下对数字签名运算速率的要求比常规的本地部署至少高一个数量级左右,因此除了集群部署,单台数字签名设备的性能也需提升,而在当前的网络通信应用中,主流的数字签名服务器性能大部分还集中在签名验签30 kTPS 及以下的中低速率。
1.2 虚拟化与服务化
鉴于云平台具有虚拟化、分布式、资源集中等特点,云环境下相应的密码服务也要做出相应调整,如对密码服务虚拟化、密码服务动态迁移等方面进行优化构建,云平台中与之相对应的数字签名服务模式也需进行规范化设计。
1.3 高可用性
云计算中的数字签名服务十分重要,一旦中断将会影响云平台及其上众多应用的正常运行,因此对数字签名服务的可用性要求更高,即要求云环境中的数字签名应用需要具备更高的系统持续服务能力。
2 面向云场景的高速数字签名系统应用技术
实现上述目标的核心思路是将密码作为云环境中的基础资源,以云签验服务器作为基础设施,以云签验服务平台进行密码资源统一管理,并对外统一提供服务。
2.1 整体应用架构
由高性能云签验服务器虚拟多台签名服务器,并与云签验管理平台结合进行云化部署,作为云基础提供密码服务,既可以进行独立管理,也可以配合云平台进行管理。整体应用架构如图1 所示。
图1 整体应用架构
其中,云签验平台可以通过整合、共享和动态分配密码设备资源,为用户提供按需分配、动态扩展的数字签名安全服务,从而实现安全设备资源的可伸缩扩展,保证安全服务的连续性,以此显著降低企业安全设施资源的投资成本和维护成本,增强安全服务的可靠性以及实现安全设施资源的利用效率最大化。
2.2 云签验服务器架构
云签验服务器作为整个系统底层密码算力实体,直接影响整个系统的可部署性及实施成本。云签验服务器由云签验管理服务、虚拟签名服务器和签名客户端组成,虚拟签名服务器和签名客户端均可独立提供数字签名、数字信封等服务(如图2 所示)。单台服务器既可提供服务,也可与云平台结合进行部署。
图2 云签验服务器架构
虚拟签名服务器包括签名服务器和签名服务端工具包(Verification Server Tool Kit,V-STK),对外提供服务时,应用数据通过V-STK 传入签名服务器,处理后再经由V-STK 传出,以供应用系统获取;管理员可通过Web 方式登录控制台,对证书及其相关参数进行配置,以提高服务管理效率。V-STK 提供Java 接口、COM 接口、C 接口,方便调用用户的应用系统。在应用密钥隔离方面,系统支持硬件级虚拟化技术,将硬件密码模块虚拟化并映射到各虚拟签名服务器,将业务系统的密钥置于虚拟密码模块中,各虚拟签名服务器间的虚拟密码模块是彼此隔离的,不可互相访问。
签名客户端(如图3 所示)为独立运行的组件,如签名客户端工具包(Verification Client Tool Kit,V-CTK)和移动证书工具包(Mobile Client Tool Kit,M-CTK),对外提供服务时,应用客户端通过V-CTK 提供的接口函数将数据传入,处理后再经由接口函数传出。V-CTK为客户端插件,支持标准软证书、硬证书。M-CTK 为移动端插件,支持标准软证书、硬证书,支持Android 和iOS 系统。云签验服务器通过轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)/ 在线证书状态协议(Online Certificate Status Protocol,OCSP)查询和校验证书的有效性。
图3 签名客户端部署结构
2.3 云签验服务平台架构
云签验平台基于主流云计算框架进行设计,采用虚拟化、微服务、集群等技术,将管理节点、存储节点与计算节点完美地融为一体。
如图4 所示,管理节点通过集中管控,可高效扩充存储能力及运算能力,使存储能力、运算速度均大大提高。存储节点通过加密技术将私钥独立且安全地存储在密码卡中,并将私钥在其他存储节点进行备份,构成集群以达到高可用性,其中任何一个存储节点出现故障,平台都可以通过集群中的备份继续正常提供服务。计算节点通过独立高效的密码运算以支撑高并发的业务处理,同时通过流量控制技术可以在不停止业务的情况下进行扩容,计算节点使用模板技术创建新节点使部署时间缩短到分钟级,计算能力和存储能力随服务节点的数量增加而呈线性增长。
图4 云签验服务平台架构
2.4 系统关键技术
2.4.1 单节点高速数字签名技术
通过优化CPU、内存、网卡、硬盘、密码卡等硬件性能及虚拟化技术,进一步调整对软硬件密码运算的分配与协同等,在单台设备中获得最优的数字签名运算性能,并以此为基础构建密码资源池,集群化对外输出更为客观的密码运算,从而为云计算等海量业务场景提供高性能的密码支撑。
2.4.2 签名资源池弹性调度
云签验平台设计了多种灵活的密码运算资源节点调度算法,在应用系统使用的密码运算资源不足时,可以将云签验服务器剩余的运算资源或将其他使用资源量不大的应用系统的资源调配给当前应用系统;云签验平台可以支持模块热插拔,当系统运行期间出现密码速率不足时,可以随时增加硬件资源,管理员只需简单的操作就可以完成资源的扩展,并且不影响业务的正常运行或使用。
2.4.3 签名服务高可用技术
云签验平台应用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,通过增加冗余单元提高系统持续服务的能力。虚拟设备或物理设备一旦出现故障,管理系统可以将虚拟设备或物理设备进行克隆或漂移,从而保证业务的不间断运行。
3 高速数字签名系统性能优化研究与实践
本文以云签验服务系统在某政务云场景中的应用举例,在该应用场景中要求以集群的方式达成整个云签验服务系统峰值签名速率350 kTPS 以上的超高性能,因此基于原标准产品单台签名速率42 kTPS 的基础性能,需要进行大幅优化和提升。否则将使得集群的云签验服务器台数过多,导致客户实施成本高企。
3.1 性能优化前
本次作为性能优化标的的云签验服务器,其初始状态配备x86 架构CPU、双内存与机械硬盘。初始状态数字签名处理性能如表1所示。
表1 初始状态数字签名性能数据
由此可见,初始状态CPU 利用效率较低,根据木桶效应原理,属于整体硬件配置性能未达到充分协调,配置中存在明显的性能短板。
3.2 性能优化过程
针对上述整机配置特点,总体优化思路从以下3 个方面着手:一是通过调整整机的硬件配置,不断补齐性能短板,充分发挥硬件性能;二是通过虚拟化技术的选型提升性能利用率;三是通过软硬件协同优化,进一步平衡和提升利用效率。
3.2.1 硬件配置优化
在初始状态的基础上,通过理论计算和实验验证的方式将内存数增加一倍,同时,将机械硬盘调整为固态硬盘,在光卡提升为万兆的基础上,进一步将CPU 进行升级,从而使性能获得明显提升,数字签名速率接近翻倍。
3.2.2 虚拟化技术选型优化
本次虚拟化技术选型优化主要是以Docker取代基于内核的虚拟机(Kernel-based Virtual Machine,KVM),初始状态基于KVM虚拟化技术,虽然做到了完全虚拟化,但是KVM 相对较大的资源消耗以及效率影响,使得虚拟化后的性能具有明显损耗。而Docker 则相对轻量化得多,得益于Docker 的低系统开销,实际验证整体性能有15%左右的提升,显然还是比较可观的。
3.2.3 软硬件协同优化
软硬件协同优化的核心思路是将密码计算任务以合理化的比例分配于密码卡和CPU(即以软件的方式承担一部分密码运算),对CPU和密码卡的运算资源进行充分挖掘和利用。
综合采用以上优化措施后,CPU 利用效率提升至接近100%,单台云签验服务器数字签名性能提升至96.6 kTPS,采用4 台云签验服务器集群就可以满足客户应用场景的性能要求,在没有显著增加成本的基础上性能可提升至原来的2.3倍。
3.3 性能优化后
通过以上的研发与性能调优,云签验服务器实现了更高速数字签名处理性能,整体调优后测试数据如表2 所示。
表2 高速数字签名性能提升数据
由此可见,优化后不仅业务密码应用性能得到大幅提升,CPU 性能也被充分挖掘,整机硬件性能得到进一步协调发挥。
3.4 性能优化总结
以云签验服务器为代表的商用密码设备,其综合性能的提升应该从整机的维度进行综合考量,并且应结合业务应用实际。因为在实际的业务应用中,单纯密码卡的加解密性能仅是综合性能中的一个环节,还存在业务逻辑的解析、网络数据的加载卸载等瓶颈,设法消除各个环节的明显短板或瓶颈,使得整机按业务场景需要的硬件配置协调达到最优,才是实现整个系统密码业务性能指标的关键。对于客户实际应用而言,以整机硬件配置调整和软硬件交互优化的方式,集群部署提升系统整体性能,这无疑是易实施和低成本的。
4 结 语
云计算是国家关键信息基础设施,一旦遭到破坏将对国家安全、社会稳定、经济繁荣和民生改善造成严重损失。在“互联网+”的大背景下,业务信息系统融合了大量跨部门、跨平台的数据,存在用户假冒、数据篡改、信息泄露等安全风险,易遭受网络攻击。如何为业务信息系统提供更加可靠的安全保障,是当前业务信息系统建设发展过程中亟须解决的问题。
在云环境中需要普及国密技术及算法,密码技术是保障信息安全的关键核心技术[5],可确保密码算法的自主可控,降低敏感信息泄露和信息系统遭受攻击的风险。鉴于云平台具有虚拟化、分布式、资源集中等特点,云环境下相应的密码服务也要进行相应调整,如对密码设备的高性能、密码服务虚拟化、密码服务动态迁移等方面进行设计。
云签验服务系统的应用模式可以有效适用于云环境对数字签名应用的安全要求。在统一硬件的基础上,通过云签验服务平台对外统一提供数字签名服务的方式,实现数字签名服务的弹性扩展和按需定制,并可根据应用需求快速调整和组合数字签名服务系统并完成部署。同时,作为基础的单一云签验服务器可根据实际业务应用性能的需要,选取合适的硬件进行配置并优化,实现以集群的方式快速和低成本地满足用户场景的高速或高性能数字签名应用需求。