ISO offline protocol
Learn how the ISO mDL offline protocol works in Procivis One.
ISO standards provide specifications for both the mdoc credential format and the protocols that govern how these credentials are shared and verified. Procivis One implements two key ISO standards for mdoc exchange:
-
ISO 18013-5 enables secure offline credential exchanges between holders and verifiers. This is useful for in-person verification scenarios when internet connectivity isn't required. This page explains what the system implements and how you can enable it in the configuration.
-
ISO 18013-7 extends these capabilities to online environments, allowing for remote credential verification. This includes support for unattended presentations where direct interaction between the holder and verifier isn't necessary. This is a flavor of OpenID4VP; for details on enabling it in the configuration, see Use OID4VP to present/verify ISO mdoc.
What is implemented
The protocol consists of two phases: device engagement and data retrieval. The system supports the following:
| Device engagement | Data retrieval |
|---|---|
|
|
Device engagement
In the mobile wallet, the holder either generates a QR code or initiates the NFC advertisement process. The mobile verifier either scans the QR Code or connects using NFC.
Data retrieval
Once the connection is established, the verifier requests the needed information. The digital wallet presents the holder with the request and allows the holder to review the data to be shared. The holder can then choose to share the requested data or to reject the request.
If the holder consents to sharing, the data is transmitted to the mobile verifier. The mobile verifier device then verifies the signatures on the data elements using the public keys, also called "Signer Certificates", derived from the mobile security object (MSO). In addition to checking that the signature is correct, and that the disclosure hashes match the MSO, the Signer Certificates are checked against a "Trust List" of trusted Signer Certificates.
BLE flow implementation
Both holder and verifier devices use peripheral server mode only. The
encryption algorithm used is X25519. DeviceSignature is used for
authentication.
Some elements of the standard are not currently supported but are in development, including:
-
mdoc reader authentication
-
Repeated requests within a single session - after a presentation has been submitted the BLE connection closes. Any further interactions require a new device engagement.
-
age_over_nnlogic - the standard provides a mechanism by which a verifier can ask if a holder is above a certain age and the holder's wallet generates a true/false response rather than a precise age. Currently the holder's wallet can only comply with anage_overrequest if it contains a data element with the precise age being requested.
Mandatory and optional claims
While the ISO mDL exchange protocol cannot express whether specific claims are mandatory or optional (all claims appear as optional to the wallet), the system still enforces mandatory claims during verification.
When verifying submitted proofs, any claims marked as required in your
proof schema will cause the proof to be rejected if they are missing.
Configure ISO offline protocol
To enable the ISO offline protocol in mobile devices, ensure you have the following in your configurations:
verificationEngagement:
QR_CODE: # Required
display: verificationEngagement.qrCode
order: 1
enabled: true
NFC: # Required
display: verificationEngagement.nfc
order: 2
enabled: true
verificationProtocol:
ISO_MDL:
type: "ISO_MDL" # Required
display: "exchange.isoMdl"
order: 7
You will reference these configuration entries during the offline flow.
Using the flows
For guidance on using the offline flows: