当前位置: 首页 > 知识库问答 >
问题:

泰雷兹Payshield HSM RSA私钥

逑衡
2023-03-14

我们正在从Thales 8000迁移到Thales Payshield 9000。我们在8000年生成了RSA密钥对(使用EI生成公钥/私钥对命令)。我们将公钥存储在主机上,并将私钥加载到HSM的防篡改内存中(使用EK加载私钥命令)。

问题是我们没有保留私钥,我们不想创建新的密钥对,因为如果我们这样做,我们必须与供应商开始新的认证过程。有没有解决方案,比如将此密钥存储在智能卡上并迁移到LMK等新版本。

我阅读了泰雷兹控制台-命令参考和程序员手册,但未能找到解决方案。

共有3个答案

佴涵蓄
2023-03-14

可以,只有在两个条件下,您才能将RSA私钥从payshield 9000 HSM导出到另一个payshield 9000 HSM:

第一个条件:购买特定许可证HSM9-LIC016,并使用主机命令L8,该命令用于在ZMK下导出RSA私钥。请参阅“1270A548-037卡

Host command L8函数支持将RSA私钥从LMK下的加密导出到区域主密钥下的加密。

控制台命令CS必须配置以下安全设置才能允许使用此命令:

1-“启用RSA私钥的导入/导出?”必须设置为“是”(默认为“否”)。

2-“仅以受信任的格式导出和导入密钥?”必须设置为“否”(默认为“是”)

在另一个HSM2上:

使用Host命令L6导入RSA私钥

尽管如此,如果您愿意,我可以向您发送详细的步骤。

参考手册:1270A548-037卡

茹照
2023-03-14

如果没有保存EI命令的输出(键块),那么从中取出该键的可能性实际上是不存在的。很抱歉

沙靖琪
2023-03-14

从Thales HSM密钥对生成命令返回的私钥(这是我可以访问的Payshift 9000上的命令EI)在LMK密钥对34-35下加密。您永远不会以清晰的即未加密的形式看到这一点。

从HSM中提取此信息的唯一方法是,如果您知道LMK密钥对;然后你可以用这个来解密它。在有时使用一组已知的测试LMK密钥对的测试环境中,这通常是可能的。然而,在生产环境中,这样做显然会危及整个HSM和任何依赖HSM的系统的安全性。

在您的情况下,除了生成一个新的密钥对,然后存储加密的私钥字节之外,您真的没有什么选择。

然而,只有在这个LMK密钥对下加密私钥的问题是,您需要使用HSM来签署CSR,而不是像openssl这样的既定工具。

我通过使用EI命令(生成RSA密钥对)生成密钥对,将原始加密的私钥字节存储在文件中,构建无符号的CSR结构,将其与私钥字节一起发送到HSM命令EW(生成签名),然后将签名附加到我的CSR结构。

 类似资料:
  • 所以我是HSM加密的新手。我们有一个泰雷兹PayShield 9000 HSM,要求使用ISO 9564 Format 0标准加密一个清晰的PIN。 我所拥有的是以下内容: 消息头:00000000 清除销:1111 PAN:69999999992 PIN加密密钥(32):xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 我的要求是使用hsm命令加密PIN 1111以获得1

  • 感觉没有二面了 自我介绍 测试了解多少 测试一个微信发朋友圈的功能 测试一下三条边组成一个三角形的功能 测试以下日期差 代码:如何计算一个参数日期与当前日期的时间差,如何计算一个txt中出现次数最多的单词个数 sql http无状态 get和post 为什么想做测试? 感觉凉凉了 #面试复盘##面经#

  • 这是我的密码 有人能告诉我为什么我不能精确到小数点后第15位吗?我的目的不是打印pi/4的值,我只需要打印给定n的总和

  • 2023.10.01国庆节上午10点 Java开发实习生,在杭州,公司是一个自研公司,看官网介绍是做云数据库解决方案的。 大概半个小时,全程拷打,感觉发挥地的不好 每次问到一个技术,先问有没有看过源码 1. 自我介绍 2. 介绍项目,项目分工,项目技术选型是怎么做的,为什么用这些技术?项目上线没有 3. 项目中做过哪些测试?怎么做的? 4. 用过PostgreSQL这个数据库吗?了解过,那Post

  • 玻尔兹曼机是一大类的神经网络模型,但是在实际应用中使用最多的则是RBM。RBM本身模型很简单,只是一个两层的神经网络,因此严格意义上不能算深度学习的范畴。不过深度玻尔兹曼机(Deep Boltzmann Machine,以下简称DBM)可以看做是RBM的推广。理解了RBM再去研究DBM就不难了,因此本文主要关注于RBM。 回到RBM的结构,它是一个个两层的神经网络,如下图所示: 上面一层神经元组成

  • 如何为每个作业设置流程参数?我试图配置一个自定义警报程序,我希望每个作业都触发它。它看起来像是在从流参数中寻找“alert.type”属性,但现在我只能通过接口触发它。有什么想法吗?