Skip to content

Latest commit

 

History

History
76 lines (56 loc) · 12.5 KB

_index.md

File metadata and controls

76 lines (56 loc) · 12.5 KB
date title summary sideMenu heroTitle heroDescription tags
2024-02-01 07:00:00 UTC
Remote Key Attestation
Remote key attestation is a capability for an entity to show to a remote party certain attributes of cryptographic keys. For example that they are generated in a hardware cryptographic module and not exportable. The PKI Consortium is working to promote the adoption of remote key attestations and is managing a list of cryptographic modules describing their attestation capabilities.
true
Remote Key Attestation
A list of cryptographic devices that includes support for remote key attestations
resource

Use cases

Common use cases for key attestation are:

  • Issuing code signing certificates for subscriber keys, verifying that the subscribers private signature key is generated and managed in an approved cryptographic device.
  • Issuing digital signature certificate for subscriber keys, verifying that the subscribers private signature key is generated and managed in an approved cryptographic device.

There are other ways to achieve the same purpose, such as shipping hardware devices (USB tokens, smart cards, etc) to the subscriber, or requiring a formal audit of the key generation procedure from the subscriber. Using remote key attestation makes this process more efficient and possible to automate in a larger scale.

Implementations

The table lists known hardware cryptographic devices and their support, or non-support, for remote key attestation.

Vendor/Model Capability Format Documentation Notes
Cloud HSMs
Google CloudHSM ✔️ JSON https://cloud.google.com/kms/docs/attest-key
AWS CloudHSM
AWS KMS
Azure Key Vault
Azure Managed HSM ❌🕐 Claimed to be on the roadmap
HSMs
Crypto4A QASM ✔️ Proprietary/PEM https://support.crypto4a.com/public/documentation/C4A-302-0043-AttestationInQasm.html
Entrust nShield ✔️ JSON https://nshielddocs.entrust.com/key-attestation-docs/v1.0.2/intro.html
Utimaco CryptoServer
Thales Luna ✔️ CMS/PKCS#7 Meeting CA/Browser Forum Standards with Luna and Luna Cloud HSMs / Public Key Confirmations
Marvell HSMCMS/PKCS#7 ✔️ Proprietary/Binary https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html GCP Cloud HSM, AWS CloudHSM and MS Managed HSM are using Marvell hardware in the background
Securosys Primus HSM ✔️ XML with external sig HSM User Guide Docs
I4P Trident HSM ✔️ CMS/PKCS#7 https://www.i4p.com/documents/Trident_RSS_summary_sheet_200929.pdf No detailed documentation about using key attestation available publicly.
Fortanix ✔️ JSON Verifying Key Attestation Statements Doc
Tokens
Yubico ✔️ X.509 Attestation Concept PIV Attestation
Trusted Platform Module ✔️ TPMS_ATTEST/PKCS#10 TPM Fundamentals / MS Key Attestation / MS CSP with Key Attestation / TCG Trusted Attestation Protocol
Century Longmai PKI Token ❌🕐 CMS/PKCS#7 Claimed roadmap item
TrustSec SLCOS - Bio/PKI token
SmartCard-HSM ✔️ CVC, BSI TR-03110-3 Remote Key Attestation explained
Other Devices
Apple iOS ✔️ X.509/ACME/CBOR/WebAuthn Apple
Android ✔️ ASN.1/CBOS/COSE Android

Vendor Details

Android

Android provides multiple resources.

Key attestation using a custom ASN.1 format.

A (not well documented) certificate management protocol called KeyMint, which is conceptually a CBOR/COSE-based version of a CSR plus response, the utilized attestation technology is DICE.

Apple

Apple provides multiple resources.

Managed Device Attestation, in iOS 16 and later, can be used for key attestation.

DeviceCheck app integrity attestation is not usedfor the purpose of key attestation as defined here.