-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Introduction
The recently published article on Eclipse Decentralized Claims Protocol & OpenID4VC Protocol states there are a number of issues with OID4VC which do not really exist. Some might stem from a misunderstanding of the protocol or the scope of the protocol being expanded beyond authentication by the authors. It seems that the comparison follows a very narrow definition of interactions inside a Data Space, where participants can only be directly represented by a Service Agent (the Data Space Connector). However, none of the usual definitions (for example by the Data Spaces Support Center) does enforce that. In practice, various use-cases requiring users and services to act more independently from the central participating organisation emerge, thus the flexibility and support for Human-to-Machine(H2M) or, in other words, Business-to-Customer(B2C) or Business-to-Employee(B2E) in OID4VC should rather be seen as an advantage for Data Spaces. Even the described example of Manufacturing-X could benefit from the separation of organizational identity and actor identity, to make the system less reliant on central components and instead allow actors (be them humans, software agents or devices) to act more independently from the organization, while still keeping the ability to identify it. In the following, we will describe the misconceptions behind the referred issues.
On "Issues this creates for OID4VC"
How is the automatic discovery of a DID going to happen? OpenID does not have a process for this that would not require a user to share this information actively. Any process devised to enable automatic discovery on top of OpenID could potentially lead to either DDOS attacks against the identity store or the leak of existence of data sharing contract offers that the other party isn’t authorized to know.
DID is a mechanism to prove decentralized identity. Service Discovery is not one of its core features, just an optional side-mechanism, supported by some of them. Relying on DID's for service discovery limits the freedom of choice for the Data Space and participants in choosing the ideal identity mechanism. It also increases the hurdle for a consumer to join a Data Space, since did-methods supporting service discovery require more effort than simpler solutions (like f.e. did:key). Tightly coupling the protocol to a specific Identifier-Schema (e.g. DID), also holds the risk of becoming incompatible with public regulation and standards in the future. The EUDI Wallet Reference Architecture for example stays identifier agnostic, similar can be expected from the upcoming EUDI Business Wallets. OID4VC is agnostic in that regard, which is an advantage for future compatibility.
There is no mechanism in OID4VC or OID4VP that would allow for the correlation of contract offers and agreements to determine policies.
Offers and Agreements belong to the Data Space Protocol, not to the identification layer. In a DSP-based data-exchange, the underlying agreement (and offer) can be resolved from the connected Transfer Process. Enforcement of those policies can be done in OID4VC based systems, too. The instance representing the end-user can reason about the credentials/claims to be presented, while enforcement of the policies should happen as part of the authorization flow, in direct connection with the requested data assets. The flow in OID4VC and the DCP are very similar here. In both cases, the verifier asks for the presentation of claims/credentials (in DCP Step 6 of the Presentation Flow, in OID4VP through the Authorization Request), then verifies the presented claims/credentials and leaves the policy evaluation open for following steps/flows.
The Authorization Request Reference with Consent Object would need to be forwarded from the Dataspace Connector to the Wallet, which adds a potential attack vector. This process would need to be standardized so different wallet implementations can be interoperable.
By using the Same-Device Flow, this risk can be mitigated. During M2M exchanges, the interaction with wallet and verifier usually will happen from the same device/environment, thus no forwarding between different entities is required. Depending on the implementation and use-case, it would even be possible to have the same component fulfilling the wallet and end-user roles, similar to the way services used to hold their own credentials in OIDC. If wallet and end-user are represented by different components, the consent-mechanism between both of them still does not touch the interfaces between the connectors, thus not necessarily has to be standardized in the context of Data Spaces. It would be up to the participant to choose a wallet with connectivity to its service. This is very similar to other already established secret-management systems (f.e. HashiCorp Vault), that also only needs to be compatible with the services directly using them.
Custom Wallet extensions are needed for the comparison of the consent object to the presentation definition.
See the previous paragraph. Beside that, the DCP also requires comparison of the access token issued by the STS with the request received in the Credential Service. How this is done is up to the implementation of the Credential Service, the same way it is for the acting services in OID4VP.
The Authentication Token needs to be bound to specific credentials and Proof of Possession is required, how is the end-user transferring this to the organization on which behalf the contract negotiation is being conducted?
This is a topic of credential hierarchies and the general trust framework, rather than a question of the protocol. The Authentication Token (in OID4VP, the Verifiable Presentation) might contain credentials delegating powers from the organisation to the end-user. This credential will be bound to the end-user and together with the use-case required credentials can prove the possession in the organisation.
An example of such hierarchy could be found in the Gaia-X Identity Credential Access Management. The end-user could use a "Service Party Credential" and "Access Entitlement Credential" issued by the organisation, containing the powers to use the requested credentials and present them together with the requested credentials. This approach holds the advantage of very fine-grained rights-management inside an organisation, while it keeps the benefits of services (and humans) acting independently from a central infrastructure.
How can the connector use the Demonstration of Proof of Possession for the authentication token without the private key of the wallet?
See previous paragraph. An organisation can have an unlimited number of Client-Entities acting in the data exchange on behalf of the organisation. They will hold their own identities and use their connected private keys to sign the tokens. In order to prove their entitlement, they will present additional credentials, provided by their organisation (for example using the hierarchies from Gaia-X Identity Credential Access Management).
The token needs to be correlated with the DSP offer messages to guard against clients using a token to obtain different datasets.
When using the DSP, every Transfer Process contains the ID of the underlying agreement. This ID can be used to resolve the policies relevant for the datasets and evaluate them on the token and data request.
How does the connector evaluate policies at this point because it needs the original credentials? E.g.: a policy constraint may require a value in the credential subject. Or a credential claim is required to fetch data.
The verifier is free to embed all required information into the token, so that its authorization layer is able to evaluate all constraints from the policies. Thus, the required subject or claim could just be put into the token. This is a flexibility that the provider has. If this is not enough, the provider could even store a reference to the presented (and verified credentials) and include this reference in the token. When getting the token presented, it then can (internally) resolve this reference and reason on the whole presentation.
Conclusion
The OID4VC set of protocols are best suited for the use of claims issuance, presentation and verification in Data Spaces which are not just restricted to cover Machine-to-Machine(M2M) or Business-to-Business (B2B) scenarios for the exchange of datasets, but also aim to enable natural persons, applications or devices linked to organisations be able to consume data services offered by data product providers, managing identity(and consequently authorization) at a grain-level finer than organizations. While they can be used in plain B2B/M2M scenarios where just identification of organizations may be required, a much broader set of Data Spaces use cases can be enabled by OID4VC involving users, linked or not linked to organizations.