查看原文
其他

安全的云密码服务技术及应用

Cismag 信息安全与通信保密杂志社 2023-05-22

摘 要

随着密码在云计算业务系统中的应用不断增加,云计算业务系统对云密码服务需求也随之不断增长。密码技术是云计算安全的基础,传统密码机已不能满足云计算业务系统对云化密码服务的需求,因此将传统密码机与云计算技术相结合,云服务器密码机孕育而生。同时,Kubernetes 具有按需分配、弹性调度、自动化等诸多方面的优点,云服务器密码机与Kubernetes 相结合,构建云密码资源池,可为云计算业务系统提供按需分配、弹性伸缩、高可用、安全的云密码服务。

内容目录:
1 云平台及密码机
1.1 Kubernetes 云平台
1.2 云服务器密码机
2 云密码资源池构建
2.1 云服务器密码机接入 Kubernetes
2.2 安全接入
2.3 云密码资源池管理
3 云密码资源池应用
4 结 语

在传统模式下,企业建立一套密码服务系统不仅需要购买大量的密码设备和配套软件,还需要配备专人对密码设备和系统进行运维管理。同时,随着业务规模的不断扩大,企业还需持续增加硬件投入和运维人员。

在云计算环境下,企业用户的观念从购买软硬件产品向购买服务方向转变。企业用户希望不必购买大量的密码机设备和配套的管理软件,不必雇用更多专门的人员对密码设备和管理软件进行维护管理,只希望通过向云密码服务提供商申请实现按需分配、弹性伸缩(自动化调度)、高可用等需求的云密码服务。

为解决传统模式下密码设备使用及运维方面的问题,实现云架构下对外提供可按需分配、弹性伸缩的安全云密码服务,以及安全云密码服务的创建、发布、开通、选购、调度、使用等功能,可将密码设备集群视作密码资源池,结合 Kubernetes 云平台,使用云计算的硬件虚拟化技术,将密码设备资源虚拟成各个相互独立的虚拟密码设备,通过密码资源调度系统进行密码资源的分配、管理和统一调度,并对外提供统一的按需分配、弹性扩展的密码功能服务。可为业务系统提供平台即服务(Platform as a Service,PaaS)化云密码服务,实现云密码服务的集约利用、弹性伸缩,简化密码设备的管理和维护,有效提升密码设备利用率,为用户节省大量的运维工作量。

1

云平台及密码机

1.1 Kubernetes 云平台

Kubernetes 是 Google 公司于 2014 年创建的开源容器集群管理系统,是 Google 公司十多年大规模容器管理技术 Borg 的开源版本。它构建于 Docker 技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能。Kubernetes 可以快速部署及扩展应用、无缝对接新的应用功能、节省资源并优化硬件资源的使用。

Kubernetes 基本架构如图 1 所示 。

图 1 Kubernetes 基本架构

Kubernetes 集群由 Master 和 Node 两个节点共同组成。在 Master 上运行 ETCD、API Server、Controller Manager 和 Scheduler 4 个组件。其中,API Server、Controller Manager 和 Scheduler 3 个组件构成了 Kubernetes 的总控中心,负责对集群中所有资源进行管控和调度。在 Node 上运行Kubelet、Kube-proxy 和 Docker,负责对节点上Pod 的全生命周期进行管理,以及实现服务代理的功能。所有节点上都可以运行 Kubectl 命令行工具。

API Server 作为集群的核心,负责集群各功能模块之间的通信。集群内的功能模块通过 API Server 将 信 息 存 入 ETCD, 其 他 模 块 通 过 API Server 读取这些信息,从而实现模块间的信息交互。Node 节点上的 Kubelet 每隔一个时间周期,通过 API Server 报告自身状态,API Server接收到信息后,将节点信息保存到 ETCD 中。Controller Manager 中 的 Node Controller 通 过 APIServer 定期读取节点状态信息,并做响应处理。当 Scheduler 监听到某个 Pod 创建的信息后,检索所有符合该 Pod 要求的节点列表,并将 Pod绑定到节点列表中最符合要求的节点上。如果Scheduler 监听到某个 Pod 被删除,则调用 APIServer 删 除 该 Pod 资 源 对 象。Kubelet 监 听 Pod信息,如果监听到 Pod 对象被删除,则删除本节点上相应的 Pod 实例,如果监听到修改 Pod 信息,则会相应修改本节点的 Pod 实例。

Kubernetes 可将多台 Docker 主机抽象为一个资源,以集群方式管理容器,包括任务调度、资源管理、弹性伸缩、滚动升级等功能。可通过编排系统(YAML File)快速构建容器集群,提供负载均衡,解决容器直接关联及通信问题,支持自动管理和修复容器。

1.2 云服务器密码机

密码机是一种以密码技术为核心,为业务系统提供安全的密钥管理和密码运算的硬件设备 。业务系统通过调用密码机提供的密码服务,实现数据的机密性、完整性、有效性和不可否认性。随着云计算技术的发展和普及,这些业务系统逐步向云上迁移,或采用云计算相关技术,实现了资源的节约利用、按需分配、弹性调度,也实现了业务系统的高可用、自动化部署 / 升级。相应的,这些业务系统也要求密码机具备节约利用、按需分配、弹性调度、高可用、自动化部署 / 升级等特性。

传统的密码机很难满足这些要求,因此密码机也需与云计算技术相结合,提供具备节约利用、按需分配、弹性调度、高可用、自动化部署 / 升级等特性的云服务器密码机。

由于 Kubernetes 具有按需分配、弹性调度、自动化等诸多方面的优点,因此本文将云服务器密码机与 Kubernetes 相结合,并围绕密码服务管理构建云密码资源池。相较于传统密码机,与 Kubernetes 相结合的云服务器密码机具有统一管理、按需分配、弹性伸缩、高可用、自动负载均衡、自动化部署 / 升级等优点。

2

云密码资源池构建

2.1 云服务器密码机接入 Kubernetes

通过在云服务器密码机中部署 KubernetesNode 节点组件(主要是 Kubelet、Kube-proxy),使 云 服 务 器 密 码 机 作 为 一 个 Node 节 点 接 入Kubernetes,然后可由 Kubernetes 调度云服务器密码机生成虚拟密码机(Virtual Security Module,VSM),VSM 可视为 Pod。云服务器密码机接入 Kubernetes 如图 2 所示。

图 2 云服务器密码机接入 Kubernetes

2.2 安全接入

云服务器密码机属于密码产品,在内部存储了密钥及其他敏感信息,Kubernetes 提供了多种配置及操作 Pod 的方法,使用这些方法可在云服务器密码机中运行恶意镜像、挂接外部存储获取敏感信息、管理人员恶意操作等,可能导致云服务器密码机内的敏感信息泄露或被破坏,因此,需对部署在云服务器密码机中的Kubernetes Node 组件进行安全性改造,以防止恶意镜像在云服务器密码机中执行、挂接外部存储导致敏感数据泄露、管理人员恶意操作等事件发生。

2.2.1 防止恶意镜像在云服务器密码机中执行

默 认 情 况 下, 在 Kubernetes 的 Node 节点中使用 Docker 作为容器的实现,Kubernetes 负责调度,最终由 Docker 生成 Pod。作为 Node 节点接入 Kubernetes 的云服务器密码机,内部也采用了Docker 生成 VSM。当创建 VSM 需从外部下载镜像时,Docker 可能会从外部下载到恶意镜像,恶意镜像可能导致云服务器密码机内部的敏感数据被窃取或破坏。因此,云服务器密码机可从以下两个维度限制恶意镜像在云服务器密码机中执行。

(1)禁止 Docker 从外部下载镜像。

(2)云服务器密码机自身提供安全的镜像管理功能:允许导入内置签名的镜像。导入镜像时,需验证该镜像是否具有签名以及签名是否能够验证通过,只有通过验证的镜像才能导入云服务器密码机。在创建 VSM 时,云服务器密码机可以使用提前导入的镜像创建 VSM。

2.2.2 防止挂接外部存储导致敏感数据泄露

在创建 Pod 时,Kubernetes 可配置 Pod 使用外部存储,并将外部存储映射到 Pod 的指定目录。VSM 内部存储了敏感信息,如果在创建 VSM 时,将 VSM 存储敏感信息的目录设置为外部存储,则可在外部存储中找到敏感信息。虽然密钥等敏感信息是密文形态,但敏感信息出现在外部存储中,也无形中增加了信息泄露的风险。因此,在云服务器密码机中,要禁止为 VSM 配置外部存储。一个可选的措施是改造部署在其中的 KubernetesNode 组件,在创建 VSM 时,检查是否要求 VSM使用外部存储,如有此需求,则禁止该 VSM 的创建,并向 Kubernetes 告知相应的错误信息。

2.2.3 防止管理人员恶意操作

Kubernetes 提供了一系列命令,供 Kubernetes管理人员远程操作 Pod,例如从 Pod 中拷贝数据、将数据拷贝到 Pod、在 Pod 中执行命令等。对云服务器密码机而言,如果允许 Kubernetes 管理人员执行上述命令,则管理人员可能会复制或破坏 VSM 内部的敏感信息。因此,需要对部署在云服务器密码机中的 Node 组件进行改造,限制其执行上述命令。

2.3 云密码资源池管理

2.3.1 云密码资源池工作原理

与 Kubernetes 结合的云密码资源池工作原理如图 3 所示。

图 3 云密码资源池工作原理

云密码资源池管理平台是整个云密码资源池的主控平台及统一入口,通过 API Server 对外提供的 RESTful 接口实现对 Kubernetes Master 的访问及调度,主要负责对云密码资源池的统一管理和维护。

Kubernetes Master 主 要 提 供 API Server、Scheduler、Controller Manager 组件,接收云密码资源池管理平台发起的请求命令,从 Kubernetes Node 节点中获取 Node 的资源信息,并发出调度任务。

云服务器密码机作为 Kubernetes Node 接入Kubernetes Master。Kubernetes Node提供了Kubelet、Kube-proxy,每个 Node 节点安装部署 Docker,即实际的执行者。

2.3.2 云密码资源池架构

云密码资源池管理平台是云密码资源池的主控平台,通过调用 Kubernetes 主控节点(Master)中 API Server,实现云密码资源池中所有计算节点(Node)的统一管理,为整个云密码资源池提供云服务器密码机接入、云密码资源池化、密码计算单元(虚拟密码机)和密码计算单元集群(虚拟密码机集群)控制管理等功能。云密码资源池架构如图 4 所示。

图 4 云密码资源池架构

云密码资源池包括云密码资源池管理平台、主控节点和计算节点 3 个部分。

云密码资源池管理平台是整个云密码资源池的管理入口,通过 API Server 实现对主控节点的统一调度及管理。

主控节点(Kubernetes Master)负责对多个计算节点(Kubernetes Node)进行管理及调度。

密码设备集群由多台云服务器密码机共同组成。云服务器密码机作为计算节点接入到主控节点,是云密码计算服务中的核心组件。VSM是云服务器密码机经过虚拟化处理后的虚拟密码机。  

云计算业务服务器集群中的业务系统通过虚拟密码机 API 接口实现对 VSM 虚拟密码机的访问及接口调用,完成云密码服务运算处理。

租户访问云密码服务管理平台,实现云密码资源申请、VSM 虚拟密码机创建、管理和监控。

2.3.3 云密码资源映射关系

建立统一的密码资源数据模型,形成密码资源模板(服务模板),划分云服务器密码机不同层次的密码运算能力,定义密码资源基准数据;分析租户云密码资源申请信息,利用密码资源数据模型实现密码运算能力与云服务器密码机内存的映射关系,便于云服务器密码机实例的创建,简化租户对云密码资源申请过程的复杂度,降低使用难度,提升易用性。

2.3.4 云密码资源服务类型水平扩展

首先基于镜像包装成服务模板,其次基于服务模板包装成服务目录,最后基于服务目录发布服务实例 。云密码资源服务类型水平扩展如图 5 所示。

图 5 云密码资源池服务类型水平扩展

镜 像 是 VSM 虚 拟 密 码 机 镜 像 文 件, 用于 创 建 VSM 虚 拟 密 码 机 或 VSM 虚 拟 密 码 机集群。

服务模板由一个或多个镜像构成,一个镜像对应一个或多个模板。服务模板用于定义云密码资源映射关系,划分云服务器密码机不同层次的密码运算能力。

服务目录由服务模板包装而成,一个服务模块可包装成一个或多个服务目录;一个服务目录唯一属于一个服务模板。服务目录定义不同档次、不同规格的云服务器密码机,如高端、中端、低端等。服务实例是密码计算单元(虚拟密码机)或密码计算单元集群(虚拟密码机集群),可对外提供按需分配、弹性伸缩的云密码服务。

3

云密码资源池应用

云密码资源池主要面向云计算、政务云领域,重点是私有云环境中,以池化机制为云服务器密码机对外提供可按需分配、弹性伸缩、高可用、自动化部署 / 升级的云密码服务 。云密码资源池应用如图 6 所示。

图 6 云密码资源池应用

管理人员访问云密码资源池管理平台,完成云密码资源配置、服务模板和服务目录创建、资源审批、分配、管理、监控、配置、审计、服务发布。租户访问云密码资源管理平台,完成密码资源申请、管理、监控、服务订阅。

在云应用场景中,对云服务器密码机的差异化需求是统一管理、高性能、高可用、动态伸缩(云密码资源充分利用)。云服务器密码机接入云密码资源池管理平台,由云密码资源池管理平台对其进行统一管理。由管理人员统一对云服务器密码机进行运维管理,并对 VSM 进行初始化、配置管理和密钥管理。多个 VSM 可组成集群,并在云服务器密码机中创建 Service,通过 Service 对多个 VSM 进行负载均衡,为云计算业务系统提供高性能、高可靠、按需分配、弹性伸缩的密码服务。

4

结 语

随着云计算服务的不断发展,密码在云计算业务系统中的应用不断增加,云计算业务系统对云密码服务的需求也随之增长。为顺应云密码服务技术发展趋势,将云服务器密码机接入 Kubernetes,通过云密码资源池管理平台实现云密码资源池构建,根据用户需求对外提供按需分配、弹性伸缩、高可用、安全的云密码服务。因此,安全的云密码服务技术及应用具有广阔的应用前景,可进一步满足云计算业务中对云密码服务的迫切需求。

引用格式:廖成军 , 吴庆国 , 李军 . 安全的云密码服务技术及应用 [J]. 信息安全与通信保密 ,2022(12):81-88.

作者简介 >>>廖成军,男,学士,工程师,主要研究方向为信息安全及云计算;吴庆国,男,工程师,主要研究方向为云计算和信息安全;李 军,男,学士,高级工程师,主要研究方向为网络安全。选自《信息安全与通信保密》2022年第12期(为便于排版,已省去原文参考文献)


商务合作 | 开白转载 | 媒体交流 | 理事服务 

请联系:15710013727(微信同号)

《信息安全与通信保密》杂志投稿

联系电话:13391516229(微信同号)

邮箱:xxaqtgxt@163.com   

《通信技术》杂志投稿

联系电话:15198220331(微信同号)

邮箱:txjstgyx@163.com

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存