Hyper Protect Crypto Services (HPCS)扫盲篇

  • Hyper Protect Crypto Services (HPCS)扫盲篇
    • 什么是HPCS
    • 什么是HSM
    • 主秘钥(Master key)
    • BYOK
      • 安全性
      • 冗余性
    • BYOK VS KYOK

Hyper Protect Crypto Services (HPCS)扫盲篇

什么是HPCS

关于Hyper Protect Crypto Services(HPCS),IBM 的官方文档的描述是这样的

IBM Cloud® Hyper Protect Crypto Services (Hyper Protect Crypto Services for short) is a dedicated key management service and hardware security module (HSM) based on IBM Cloud. With this service, you can take the ownership of the cloud HSM to fully manage your encryption keys and to perform cryptographic operations. Hyper Protect Crypto Services is also the only service in the cloud industry that is built on FIPS 140-2 Level 4-certified hardware.Hyper Protect Crypto Services integrates with Key Protect application programming interface (API) to generate and manage keys. The Keep Your Own Key (KYOK) function is also enabled to provide access to cloud-based cryptographic HSMs. You can access the network addressable HSMs by making standard PKCS #11 API calls or Enterprise PKCS #11 over gRPC (GREP11) API calls to perform cryptographic operations.

我们先把这段话翻译成中文大概是这样的:
IBM Cloud®Hyper Protect Crypto Services(以下简称Hyper Protect Crypto Services)是一款基于IBM Cloud的专用密钥管理服务和硬件安全模块(HSM)。通过此服务,您可以获得云HSM的所有权,以完全管理您的加密密钥并执行加密操作。Hyper Protect Crypto Services也是云行业中唯一基于FIPS 140-2 Level 4认证硬件的服务

Hyper Protect Crypto Services集成了Key Protect应用程序编程接口(API)来生成和管理密钥。还启用了KYOK (Keep Your Own Key)功能,以提供对基于云的加密HMS的访问。您可以通过标准PKCS #11 API调用或企业PKCS #11通过gRPC (GREP11) API调用来执行加密操作来访问网络可达的HSM服务。

看不懂是不是,没错一般人都看不懂,我第一次看也看不懂,因为仅仅两段话包换的名词和信息量巨大,任何一个点都能写成一篇又臭又长的文章。
那么这票博客的目的就是用最通俗的大白话把上面这段话说明白

通过文档描述我们能看到 HPCS主要包含两个主要的部分:

  1. 秘钥管理服务(key management service), 简称KMS
  2. 硬件安全模块(hardware security module), 简称HSM

如果你之前接触过其他厂家的相关服务,您可能听到KMS和HSM会觉得耳熟,没错,通常来说像AWS等这是2个服务是单独的,但是IBM把他们打包成了一个服务,这个服务就叫HPCS, 那么为什么IBM把他们打包成一个服务呢,因为企业级或者说金融级别的KMS是依赖于HSM。所以我们先来讨论什么是HSM。

什么是HSM

我的习惯是先上图:

这货就是硬件安全模块(hardware security module)HSM,说白了就是一块加密卡,这货牛的不得了,具体怎么牛,请参考这里。
我们通常用的都是软件生成的秘钥,比如用ssh-keygen生成登录秘钥对或者用openssl生成证书,加密卡干的就是这些事,当然这卡能办的事远远不止上面这些。
有人可能会问为什么要用硬件的加密卡,软件的不是也可以吗?
其实要回答这个问题就涉及到企业级的加密需求与合规需求了。
软件的解决方案的安全性和合规性是没法和加密卡比的,
这个加密卡IBM给的描述是

FIPS 140定义了加密模块的安全需求。它是由美国国家标准与技术协会(NIST)发布的,被广泛用于衡量hms的安全性。IBM CEX6S通过NIST(证书编号3410(链接位于ibm.com之外)的FIPS 140-2 Level 4认证,这是商用加密设备可获得的最高级别认证

没错,这货是你能在市面上各个云厂家里唯一实现了FIPS 140-2 Level 4认证的,也是最高等级的认证。
搞安全的应该知道各种认证能把人搞死,所以我们就不具体展开讲了,如果想了解具体的可以自行谷歌下这个认证,但是有一点可以提一下,这个FIPS 140-2 Level 4 之所以牛逼,在于它是360度物理保护的,如果检查到入侵,存储的秘钥会被自动清除,以防止秘钥有泄露的风险

听到这里是不是有点慌,这货是不是太过安全了,检测到入侵直接把秘钥给我删了,那我的秘钥如果没有备份岂不是凉凉了。这里就要引出一个新的概念 master key, 这货其实删除的是master key。
那我们下面不得不讲一下什么叫master key了。

主秘钥(Master key)

学安全的都知道,安全的东西拼的是逻辑紧密,有些东西用起来很简单,但是背后的原理,如果深究就会很头痛,里面的逻辑是一环扣一环,为了大家的快速理解本人将用最大的大白话说明这里面的逻辑。

首先我们知道秘钥是加密数据的,这个加密数据的秘钥,IBM那边的叫法是数据加密秘钥data encryption key(DEK),但是这个秘钥怎么保存成了叫人头痛的问题,如果以明文保存,一旦被窃取,就凉凉了,所以安全起见通常会把这个秘钥也加密,这个被加密的DEK的秘钥,叫root key,也叫客户根秘钥customer root key(CRK),那么问题又来了,这个CRK怎么存又是个问题了,所以还要给他加个密,这个秘钥就叫master key(主秘钥),这个master ky 就是最后的总秘钥,所以他们的关系应该是这样的


从上面这张图可以看出master key 是这个加密链条的根,也是最重要的客户隐私资产,有点像分层确定性加密钱包里的seed,所以他的重要性是不言而喻的,关于这个master key,我后面会单独写一篇文章讲他的加密与管理逻辑,为什么要单独把它拿出来讲呢?一个是它太重要了,

那么问题来了master key要怎么存呢?
这里面又要引入一个新的概念 KYOK

BYOK

KYOK 就是keep your own key的缩写,翻译成中文叫保持客户自己的秘钥,
与之对应的是BYOK (bring your own key),这俩货有啥区别我们等会展开讲,
万事不离其宗,我们先讲原理。

首先回到刚才那个master key 的问题。我们把master key要怎么存的问题细化下引入了如下子问题
1 master key 是怎么来的
2 master key 保存在哪里
3 master key 的安全防护是怎么做的

我们先看第一个问题 master key是怎么来的?
1 master key 是HSM在硬件内部通过多个key合成来的,这些合成master key的子key ,我们叫它秘钥分量。
秘钥分量被上传到HSM后,HSM通过多个秘钥分量合成一个master key,这个master key 会被烧录到HSM的硬件里,master key被写入到硬件里后,就不能被读取了,就是说这个master key 不能离开HSM的硬件,这个是由技术来保证的, 所以这个master key 也是不能够被备份的,所以用户初始化的时候要求至少有2个HSM 加密单元,两个加密单元同时初始化并烧录master key,大概流程如下图。

如上图 通常来说秘钥分量是由多个人同时持有不同的秘钥分量,合成master key的时候通过多人同时操作来完成秘钥分量的上传,master key 收到秘钥分量后合成master key,HSM不并保存秘钥分量,秘钥分量只有客户才拥有,所以这就是KYOK,用户持有自己的key。

安全性

master key 生成与保存问题解决了,安全性通过以下几点来保证
1 HSM 基于FIPS 140-2 Level 4 安全标准,从物理层面保证master key 的安全性,如果检查到有泄露风险行为的发生,HSM会主动删除master key 以防止用户关键资产泄露,客户需要拿秘钥分量重新合成master key。
2 秘钥分量的形式,通过不同人持有不同的秘钥分量,通过权限隔离,防止了坚守自盗的风险。
3 角色隔离,我们这里提到的HSM初始化的流程其实省略了很多逻辑步骤,真正的初始化流程其实还有管理员角色与秘钥分量持有人角色和CA 角色,实际的操作还需要有签名管理员签名才可以下发,由于篇幅的原因我们这里不展开了。
4 master key 被烧录进HSM的硬件里,是只写的,IBM和机房运维人员以及任何人都没法读取的,这个是通过技术手段保证的,而不像其他云厂商是通过流程与合规手动保证的。

冗余性

1 HSM 实例支持多个加密单元,而且可以夸大区,这里就提高了冗余性
2 加密分量是可以备份的
3 即使HSM 的所有大区都遭受灾害,所有HSM都被毁坏,客户依然可以使用手中的加密分量在IBM任何一个可用区快速初始化一个新的HSM和相应的master key。

BYOK VS KYOK


上面这张图是从youtube 的IBM HPCS 介绍视频中截图下来的,里面列了BYOK与KYOK的对比信息与异同。
我们先挑重点讲

  1. master key,没办法这个是根本,我们上来还是要先讲这个
    KYOK : IBM的HPCS的master key是通过用户持有秘钥分量来持有的,IBM本身不能访问master key
    BYOK: 其他云厂家的master key 是通过HSM自动生成的,客户并不持有master key,而且这个master key 是通过合规与流程保证云厂家不会访问的,说白了就是AWS帮你生成一个master key,然后告诉你我不会访问这个key,请你放心,其实这个是不符合安全里的概念-零信任。
    看到了吧这个就是最主要的区别。
    所以这一点引出了上图中的如下不同
    - technical assurance - IBM can not access the keys (IBM 从技术角度不能访问你的key,因为IBM访问不了master key)
    - Client has exclusive control of HSM master key (这个没什么好讲的,上面很大篇幅都在讲这个,客户端独占HSM主密钥)
    - FIPS 140-2 level 4
    - Client manage master with smart card (客户通过智能卡的方式管理主秘钥,这个就不展开讲了,后面有机会写给大家)
    - client can perform key ceremony (这个就是master key的初始化了,这个要客户自己执行,因为master key 的生命周期是客户自己控制的,不像其他云厂商提供一个自己生成的master key,)
    怎么样,原理懂了,这些鸟语是不是就看明白了。:)

基本原理都讲清楚了,期待我们的下一篇文章使用HPCS吧:)

公有云上唯一一个FIPS-level4级别的HSM是如何实现的相关推荐

  1. 比较MongoDB在公有云上的性能:AWS、Azure和Digital Ocean

    比较MongoDB在公有云上的性能:AWS.Azure和Digital Ocean 英文原文: http://blog.mongodirector.com/comparing-mongodb-perf ...

  2. 部署到gcp_将S/4部署在“大型公有云”上

    作者:Rami Kandimalla 翻译:大话君 本文根据公开资料整理,不代表SAP官方 本文的目的是解释将SAP S/4HANA部署在大型公有云上时,所涉及的SAP解决方案和技术架构. 什么是&q ...

  3. 公有云上虚拟机故障恢复

    .. 声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 新浪微博:@寻觅神迹 内容系本人学习.研究和总结,如有雷同,实属荣幸! ...

  4. TiDB 在 UCloud 公有云上的实践

    原文来源: https://tidb.net/blog/c911abce 本文系上海 TUG 活动 "TiDB + Cloud" 实录整理,作者:UCloud 资深研发工程师 常彦 ...

  5. 5G 行业专网 — 公有云上的 5G 专网

    目录 文章目录 目录 公有云上的 5G 专网趋势 常规专网模式 与公有云协同/竞争的专网模式 Azure Operators(即是云厂商,又是电信设备商) Azure 的 5G 网络方案 Azure ...

  6. Elasticsearch-31.在私有云上管理Elasticsearch 的一-些方法 he 在公有云上管理与部署Elasticsearch

    Elasticsearch 在私有云上管理Elasticsearch 的一-些方法 管理单个集群 ECE,帮助你管理多个Elasticsearch 集群 基于Kubernetes的方案 Kuberne ...

  7. 公有云上基于微服务架构SAAS产品研发实践「活动通知」

    公有云SAAS产品不同于传统的软件包产品,我们不仅需要负责软件的研发,同时需要负责产品的运维,面对众多用户,需要保障产品7X24不间断运行:客户业务是不断变化的,产品需要在持续运行过程中进行持续升级, ...

  8. 在IBM公有云上平台随心所欲的构建GPU虚拟服务器

    如何在IBM Cloud上使用物理机自建带GPU的虚拟机 最近准备使用GPU的计算资源,听说IBM云平台上的裸机服务器性能不错,于是在IBM公有云平台上注册了一个账号(账号注册还是比较简单的,三步搞定 ...

  9. oracle数据库在公有云上,【云端起舞】在Oracle公有云上创建克隆数据库

    编辑手记:云端起舞也要脚踏实地,Oracle全面向云,将会演绎怎样的精彩,海外专家伴你踏上云端之旅. 系列文章回顾:1.Configure and Practice Backup and Recove ...

最新文章

  1. 压测接口线程数设置_ZAT掌门性能压测巡检系统实战和落地
  2. Android中 AsyncTask
  3. 核心员工要离职,怎么办?
  4. Linux 环境变量 /etc/profile 和 ~/.bashrc
  5. 百度地图根据经纬度计算瓦片行列号
  6. Ajax联手SOA打造企业级应用
  7. 001-pro ant design 升级2.0后变更
  8. java ee 8 api_Java EE 8安全性API:概述
  9. linux gcc 简单使用记录01
  10. http:(2):http请求方法
  11. 【IEEE Transactions NNLS】DSAN: Deep Subdomain Adaptation Network for Image Classification译读笔记
  12. python数据结构与算法分析 第2版_题库 | 百度数据结构 / 算法面试题型介绍及解析 第 2 期...
  13. 由陌生到认识——物联网LoRa技术入门简介
  14. 【PR】PR剪辑视频编辑软件视频去字幕
  15. 荣耀6plus+android5.1,荣耀6Plus Emui3.1-Android5.1.1 Root教程
  16. Android仿人人客户端(v5.7.1)——个人主页(三)
  17. regedit命令应用
  18. html5迷宫小游戏,JS实现的走迷宫小游戏完整实例
  19. Neo4j:入门基础(八)之Traversal API
  20. 在电脑上使用考研APP的方法(亲测有效)

热门文章

  1. 新一代“独角兽”,上汽集团网约车获10亿融资,稳坐龙头
  2. 计量经济学理论与stata分析 人大范红岗老师
  3. 数学建模——整数规划
  4. 虚拟机启动出现“内部错误”解决方法
  5. 翻译:Flash Player 9资源管理策略,欢迎指正
  6. 杀毒软件不能为了一己私欲剥夺用户选择权
  7. TeamViewer 历史版本下载
  8. 密码学基础知识---CFB---OFB---CTR
  9. 跨端物料解决方案-织网
  10. IT人的出路:饿狼传说