Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DIS detailed with more information #285

Merged
merged 5 commits into from
Jun 17, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions docs/en/wallet-attestation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,13 @@ Wallet Instance Initialization and Registration

**Device Integrity Service:** In this section the Device Integrity Service is considered as it is provided by device manufacturers. This service allows the verification of a key being securely stored within the device's hardware through a signed object. Additionally, it offers the verifiable proof that a specific Wallet Instance is authentic, unaltered, and in its original state using a specialized signed document made for this scope.

The service also incorporates details in the signed object, such as the device type, model, app version, operating system version, bootloader status, and other relevant information to assess the device has not been compromised. For Android the service used is `Key Attestation`_ in addition to `Play Integrity API`_, while for iOS the `DeviceCheck`_ service.
This service, specifically developed by the manufacturer, is already integrated within the Android or iOS SDKs, so there is no need for a predefined endpoint to access it. Moreover, as it is specifically developed in the mobile architecture, it does not need to be registered as a Federation Entity, through the national accreditation systems.
The service also incorporates details in the signed object, such as the device type, model, app version, operating system version, bootloader status, and other relevant information to assess the device has not been compromised. For Android, the DIS is represented by `Key Attestation`_, a feature supported by `StrongBox Keymaster`_, which is a physical HSM installed directly on the motherboard, and the `TEE` (Trusted Execution Environment), a secure area of the main processor. `Key Attestation`_ aims to provide a way to strongly determine if a key pair is hardware-backed, what the properties of the key are, and what constraints are applied to its usage. Developers can leverage its functionality through the `Play Integrity API`_.
For Apple devices, the DIS is represented by `DeviceCheck`_, which provides a framework and server interface to manage device-specific data securely. `DeviceCheck`_ is used in combination with the `Secure Enclave`_, a dedicated HSM integrated into Apple's SoCs. `DeviceCheck`_ can be used to attest the integrity of the device, apps, and/or encryption keys generated on the device, ensuring they were created in a secure environment like `Secure Enclave`_. Developers can leverage `DeviceCheck`_ functionality by using the framework itself.

This services, specifically developed by the manufacturer, are already integrated within the Android or iOS SDKs, so there is no need for a predefined endpoint to access it. Moreover, as it is specifically developed in the mobile architecture, it does not need to be registered as a Federation Entity, through the national accreditation systems.
peppelinux marked this conversation as resolved.
Show resolved Hide resolved

For Apple devices Secure Enclave is available since the iPhone 5s (2013).
Strongbox Keymaster is different in that, because each smartphone manufacturer must decide whether to include it or not.

**Step 8**: The Device Integrity Service performs the following actions:

Expand Down
Loading