- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于安全原因,我想将我的私钥存储在 HSM 中,然后通过 KeyChain
与另一个应用共享私钥。 . KeyStore
提到它可以由 HSM 支持,但我还没有找到任何说明 KeyChain
可以支持的文档。
基于 the KeyChain documentation ,KeyChain 是在应用程序之间共享的正确方式:
Use the KeyChain API when you want system-wide credentials. When anapp requests the use of any credential through the KeyChain API, usersget to choose, through a system-provided UI, which of the installedcredentials an app can access. This allows several apps to use thesame set of credentials with user consent.
那么,是否可以使用 HSM 保护 Android KeyChain?
最佳答案
经过大量的查找,最终发现答案是肯定的,是可以的。
Android 4.3 changelog似乎是唯一记录它的地方:
Android also now supports hardware-backed storage for your
KeyChain
credentials, providing more security by making the keys unavailablefor extraction. That is, once keys are in a hardware-backed key store(Secure Element, TPM, or TrustZone), they can be used forcryptographic operations but the private key material cannot beexported. Even the OS kernel cannot access this key material.
我用代码对此进行了测试,似乎一旦您将 KeyPair
导入到 KeyChain
中,它就会自动放入安全硬件中。这是我运行测试的 Kotlin 代码:
GlobalScope.launch {
context?.let { it1 ->
val privKey = KeyChain.getPrivateKey(it1, "device_certificate")
Log.d("App", privKey.toString()) // Shows that this is an AndroidKeyStoreRSAPrivateKey
val keyFactory: KeyFactory = KeyFactory.getInstance(privKey?.algorithm, "AndroidKeyStore")
val keyInfo: KeyInfo = keyFactory.getKeySpec(privKey, KeyInfo::class.java)
if (keyInfo.isInsideSecureHardware()) {
Log.d("App", "The key is in secure hardware!")
}
else {
Log.d("App", "The key is not in secure hardware!")
}
}
}
打印出“ key 在安全硬件中!”。
关于android - 是否可以使用 HSM 保护 Android KeyChain?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63182799/
我有一些私钥存储在 HSM 中,但没有公钥。我想通过PKCS11接口(interface)获取对应的公钥。 如果私钥是RSA key ,我可以从CKA_MODULUS中提取模数,从CKA_PUBLIC
收到CKR_GENERAL_ERROR当应用程序尝试打开与 H/W HSM 的连接时。 详细的错误是: 50004-Crypto API could not be open. Caused by: x
HSM 服务器和客户端设置已在我这边完成,我的问题是如何在没有 HSM 客户端的情况下与 HSM 服务器进行通信以通过 java 应用程序访问 Luna key 存储,是否有其他方法可以在没有客户端的
我想简要了解硬件/主机安全模块中的区域主 key 或区域控制主 key 。有人可以解释一下吗? 最佳答案 区域主 key (ZMK)只是另一个 Des key 。它用于在 HSM 之间传输 key 。
使用 HSM 命令 A0(生成 key ),我得到以下响应。 HEADA100U7D4213E0422F4E08E9455D9837E09FDDRA0072B1TX00S000073C35FF96F7
我在互联网上发现 HSM 是存储 key 的最佳位置,但我还有很多悬而未决的问题。服务器、HSM 和数据库之间如何进行交互?。是不是就像服务器从 HSM 检索 key 来解密数据库中的数据一样?如果我
我试图了解如何使用终端将 hsm 和 key 链接到交易。我应该开发一个身份验证服务器,它从终端接收交易并解析它们以获取不同的数据。但我不明白的是如何使用 hsm 来保护数据。 最佳答案 首先您必须了
我正在研究 HSM,我有一个问题。 在 HSM(对于所有系统)中,是否只有一种当前状态?例如; 在我的项目中,有两种用户类型:普通用户和技术人员用户。它们之间没有相同之处。普通用户可以随时登录系统和注
我正在尝试使用 python 代码向 HSM (Thales paysheild 9000) 发送命令。但我从代码中得到的响应并不符合预期。 Input: HEADJA12345678912306 #
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我引用以下文档: How to generate and transfer HSM-protected keys for Azure Key Vault 先决条件之一是: Thales HSM、智能卡
我工作并完成了一个 PKI 项目,该项目使用 HSM 来生成 - 存储 key 和执行加密功能。我使用 PKCS#11 与我们的应用程序交互以进行签名/验证和加密/解密。我们的平台是windows。
我引用以下文档: How to generate and transfer HSM-protected keys for Azure Key Vault 先决条件之一是: Thales HSM、智能卡
这正是我想知道的。基于云的 HSM 很昂贵,我需要确定要支付的费用。 最佳答案 主要是公钥加密。 HSM 包含 key 对,这些 key 对可以链接回受信任的公共(public)根,这与 SSL/TL
我正在连接一个 HSM,它正在生成并使用以太坊标准 (secp256k1) 进行签名。我正在使用一个名为 Graphene 的包与 HSM 连接。我使用其“pointEC”属性提取公钥:0xc87c1
此代码块正在加载 cryptoki.so 库并检索插槽信息。这是获取插槽编号中的对象列表。 0. 我不需要访问所有的键来执行一些功能,只需要一个特定的键对。有没有办法通过使用标签名称、对象 ID 或句
我有一个 Thales nShield HSM,其中创建了一个(CKA_SENSATIVE,假)AES key ,我想提取该 key ,但是我根本不知道如何在 java 中执行此操作。我的 key 创
AWS 似乎允许我们将 AWS Cloud HSM 作为提供商,请参阅 here和here Security.addProvider(new com.cavium.provider.CaviumPro
所以我正在编写一个需要使用客户端证书(相互身份验证)向服务器进行身份验证的应用程序。客户端证书 key 存储在 HSM(Gemalto 的)中。我将 OpenSSL 与 Luna 客户端集成,但请求模
我正在尝试从我的计算机访问 Safenet HSM,我将我的计算机添加到客户端并将 pem 文件发送到 HSM,就在这里。问题是当我输入“vtl verify”时,因为它启动了以下错误: SSL Co
我是一名优秀的程序员,十分优秀!