问题标签 [key-attestation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
371 浏览

android - 当不在 Secure Hadware 中时,Android KeyGenParameterSpec.Builder 忽略 setCertificateNotBefore 和 setCertificateNotAfter

我创建了以下方法来创建密钥对并记录证书详细信息:

当我在具有安全硬件 (TEE) 的设备中执行时,它会按预期创建证书,但是当我在没有 TEE 的设备或模拟器中执行时,它会记录以下内容:

如您所见,Not Before 和 Not After 中的日期与预期不符。

有谁知道可能是什么原因?

0 投票
0 回答
491 浏览

ios - 使用 DCAppAttestService 生成的私钥

Apple 发布了一种在 iOS 14 测试版上证明生成的密钥对的方法,名为 Device Check App Attestation Service ( DCAppAttestService )。

我已经成功生成了一个密钥对,就像苹果记录的那样:

在这个调用之后,我得到了字符串形式的 keyId。但是现在我不知道我是否遗漏了一些明显的东西,或者只是没有记录:我绝对不知道如何使用这个密钥标识符来检索对关联私钥的引用。

我知道它本身存储在 Secure Enclave 中,我无法直接获取它。但是我应该能够获得它的引用,一个 SecKey 对象,我可以使用它来签署或加密数据,例如

DCAppAttestationService 本身不提供任何使用 keyId 与密钥交互的方法(除了 attestKey 和 generateAssertion 方法)。提到的 attestKey 方法目前也只是返回一个 serverUnavailableError,正如 Apple 自己在发行说明中所说的那样。

有人有这方面的经验吗?如何获得私钥参考以有效使用它?

0 投票
0 回答
186 浏览

ios - iOS - DCAppAttestService 生成证明对象的限制

我正在查看attestKey(_:clientDataHash:completionHandler:)方法的文档。总体思路是,我们的应用程序使用这些措施来维护其对敏感或优质内容的任何服务器请求的合法性。我多久可以使用attestKey(_:clientDataHash:completionHandler:)一次来生成断言对象?如果我们为每个端点创建一个对象,可以吗?比如为高级内容、个人资料更新和聊天消息创建一个断言对象?关于我们可以生成多少次证明对象没有明确的消息。这里提到我们为每个用户每台设备执行一次。有人对此有意见或知识吗?

0 投票
0 回答
68 浏览

windows - Windows 下带有 TPM 密钥证明的证书

为了获得 OpenVPN 访问权限,员工使用 Microsoft Platform Crypto Provider (TPM) 生成证书签名请求 (CSR),将其发送到总部并取回使用自定义 CA 签名的证书。但是一个糟糕的员工可能会在 TPM 之外创建一个 CSR 并将其安装在许多 PC 中。通过密钥认证,TPM 使用来自制造商的密钥签署 CSR,总部可以检查该密钥。如何在 Windows 下创建带有密钥证明的 CSR?我试过“certreq -new”和“New-SelfSignedCertificate”

0 投票
0 回答
78 浏览

android - 有人设法使用 Android ID 证明吗

我正在使用该示例代码在多个设备(手机和最新的 chromecast)上测试 android Key & Id 证明:https ://github.com/vvb2060/KeyAttestation 。

虽然密钥证明有效(生成一对密钥、获取证明和解析数据等),但 ID 证明无效(获取设备的硬件标识符、序列号、IMEI 等)。

基本上,我得到的结果与这个问题的第一个答案相同:Sample code shows how to use Android ID Attestation

从其他答案中,我了解到这些硬件标识符必须在设备发布之前由供应商提供给 TEE,这是可选的,并在此处确认:https ://source.android.com/security/keystore/attestation #硬件标识符。这意味着如果未配置设备,即使您将应用程序设为系统应用程序(访问硬件 ID 编号 2 的必要条件),也无法获取这些硬件 ID。

那么,由于我之前引用的问题已经 3 年了,我找不到更多关于该主题的信息,有人设法完成这项工作吗?有或没有系统应用程序?

谢谢