Blueprint EBWOID issuance - #132
Conversation
Included EBWOID issuing sequence diagram.
Added EBWOID Issuing sequence from the PID/EBWOID group.
|
I believe this might be interesting for @eklaver @georgepadayatti @Benhan11 @lalc @michelleludovici-ai @malinnorlander @rkxx @thodoris @joostd to review since it concerns EBW as well as EBWOID. |
Will check and revert during the week. Yes, this is very interesting for us. :) |
|
This is how we drafted the GENERAL process for EBWOID issuance. Every Issuer will issue according to national regulations, what's important are the verifications that each issuer MUST do. The order of verifications is not important. sequenceDiagram
autonumber
actor Rep as Representative
participant Issuer as EBWOID Issuer
participant AS as Authentic Source
participant IW as Issuer Business Wallet
participant HW as Holder Business Wallet
%%participant Reg as Revocation / Directory Services
rect rgb(245,245,245)
Note left of Rep: Initiate request
Rep->>Issuer: Visit eService
Rep->>Issuer: Provide user credentials (LoA Substantial)
Issuer-->>Issuer: Verify user credentials
Rep->>Issuer: Initiate EBWOID request
Rep->>Issuer: Provide economic operator identifier
Rep->>Issuer: Provide EBW endpoint
end
rect rgb(235,245,255)
Note left of Issuer: Verify eligibility
Issuer->>AS: Request economic operator information
AS-->>Issuer: Provide economic operator information
Issuer->>Issuer: Verify economic operator status
Issuer->>AS: Request user powers
AS-->>Issuer: Provide user powers information
Issuer->>Issuer: Verify user powers
end
rect rgb(235,245,255)
Note left of Issuer: Issue EBWOID attestation
Issuer->>AS: Request EBWOID information
AS-->>Issuer: Provide EBWOID information
Issuer->>IW: Request EBWOID issuance
IW->>IW: Construct EBWOID
rect rgb(255,245,255)
Note left of Issuer: Verify Wallet
IW->>HW: Request proof of state operational
HW-->>IW: Provide proof
IW->>IW: Verify wallet status
end
IW->>HW: Issue EBWOID
HW->>HW: Store EBWOID
IW-->>Issuer: Notify of issuance
rect rgb(245,345,355)
Note left of Issuer: Publish revocation information for longlived EBWOID
Issuer->>Issuer: Publish revocation information
end
Issuer-->>Rep: Notify representative (and economic operator)
end
|
|
I propose a slight change to the generic model: replace the word "provide endpoint information" with "discover wallet endpoint" and draw that arrow from the euoid issuer to the representative (reversed). This covers both the cases when the representative visits the e-service via a redirect from a wallet (bringing endpoint information along) and the case when there is a discovery service for eu wallets that can be used. |
leifj
left a comment
There was a problem hiding this comment.
I propose using the generic model provided by @miguelaguilar-bv with the change I proposed in a comment.
Added updated mermaid for EBWOID issuance from the EBWOID onboarding task group.
|
I have updated the file with the latest suggestion from the EBWOID group. I support Leifs suggestion - if @miguelaguilar-bv think it is OK I will add that change as well to this PR. If not I will it as it is since we need to close this PR for Blueprint v1.0. We have the rest of the project to decide on the details. :) |
Agree with @leifj . We have had the same discussion in the group but didn't reach a final agreement. Since we are including Wallet holder, Wallet issuer as actors, it would be clearer to refer it as "discover wallet endpoint". Thank you @Saramandus for making the changes. We will provide textual descriptions to support the understanding of the diagram. |
| ### General EBWOID issuing process | ||
| The [EBWOID Rulebook](https://github.com/webuild-consortium/webuild-attestation-rulebooks-catalog/blob/main/rulebooks/ds001-ebw-oid-rulebook.md) provides more details on the EBWOID. The sequence diagram below shows the minimum issuance flow for an EBWOID credential. It focuses on the common steps shared across use cases. Optional activities and alternative flows may be included in extended versions of the diagram. |
There was a problem hiding this comment.
Why should the Blueprint contain a dedicated specification of EBWOID issuance, if EBWOID is just a PuB-EAA or QEAA?
Just like other PuB-EAA and QEAA in WE BUILD, various interaction patterns are possible, and we should align on those interaction patterns. See #114.
If there is a justification for having a dedicated specification of EBWOID issuance, this justification should be added to the introduction of this section.
There was a problem hiding this comment.
I agree that a more descriptive introduction would be good and I believe that @miguelaguilar-bv also has a plan for description of some of the steps (those that need describing, I don't see a reason to add descriptions to every action).
There was a problem hiding this comment.
Why should the Blueprint contain a dedicated specification of EBWOID issuance, if EBWOID is just a PuB-EAA or QEAA?
Just like other PuB-EAA and QEAA in WE BUILD, various interaction patterns are possible, and we should align on those interaction patterns. See #114.
If there is a justification for having a dedicated specification of EBWOID issuance, this justification should be added to the introduction of this section.
You are right that the EBWOID (and the PID) share many characteristics with (Q-/Pub-)EAA. However, at the beginning of WE BUILD it seems that this two were considered special. And more over a wallet instance without one of those two is not complete. Any other EAA may be absent without any effect for the status of the wallet instance. Now we have a special task (WP 4, Task 3) for the issuing of the PID and EBWOID. All this justifies a special treatment in the blue print for me.
Update EBWOID issuance sequence with suggestion by @leifj and @miguelaguilar-bv
Requested changes has been added to the latest sequence diagram.
|
I agree with @sander. Issuing EBWOID should follow the defined interaction patterns. It should not define its own flow. Remarks on the defined interaction patterns: The interaction patterns dictate that the issuer should request the user's consent before issuing the credential. Why is this extra step needed? The user has already explicitly requested the credential. The authentication step in the interaction patterns needs to be clarified. It isn't authentication. Instead, it is identity proofing, or more generally, prerequisite proofing. For example, issuing an EBWOID requires proof of the identity of the requester. The issuer can choose from various identity proofing mechanisms.
This brings us to two flavors of issuing credentials:
The basic EBW doesn't hold the identity of the natural persons acting on behalf the legal person. Therefore, the EBW cannot be used to proof the identity of the requester. Instead, a separate identity proofing process is required to proof the identity of the requester, e.g.:
sequenceDiagram
user ->> ebw : select credential type
ebw ->> issuer : request credential
create participant identityProofingService
issuer ->> identityProofingService : request identity proofing
note over user, identityProofingService : identity proofing (eID, PID, VideoIdent, ...)
destroy identityProofingService
identityProofingService ->> issuer : proofed identity
issuer ->> issuer : verifies scopeOfAuthorization
issuer ->> ebw : issues credential
The enhanced EBW holds the identities of legal persons and natural persons acting on their behalf. The above interaction pattern is used to retrieve the identity credentials of the natural persons. These identities can then be used to prove the requester's identity for any kind of credential issuance, including EBWOID, EUCC, KYC, KYS and others. sequenceDiagram
user ->> ebw : select credential type
ebw ->> issuer : request credential
issuer ->> ebw : request presentation
ebw ->> issuer : present credential
issuer ->> issuer : verifies scopeOfAuthorization
issuer ->> ebw : issues credential
|
I agree.
What's the difference between identity proofing and authentication?
I think the EBW can never be used to proof the identiy of a natural person. And only a natural person can be the requester.
How can an EBW hold all this information without an EBWOID? And how can the identity be proven? The requester can only prove that he has de facto the ability to use the EBW. If there are two managers of a company and both can use the EBW independently, no identity is proven by using the EBW. Or am I mistaken? I think for the issuing process of the EBWOID we always need a speical identity proofing/authentication method for the natural person beside the EBW.
|
Added introduction text from the EBWOID onboarding team.
|
I have updated the chapter with an introduction hopefully clarifion why adding this section is justified, or what do you think @sander? I believe the EBWOID (and also PID) issuance is something we need to discuss between the PID-Wallet-Architecture Group in order to agree on a more detailed process that works. Issue #62 raise this. The Blueprint is a living document and will be continuously updated as we learn - the question for now is if this PR can be added for v1.0 (final DL tomorrow morning) or if we should skip it for now. |
|
The first version of the Blueprint has now been delivered to the Management board. Next formal update is in August/September but this is much needed for the online version anyway and I believe it is a good discussion and important that we agree on the details. |
Identity proofing is about establishing who someone is in the first place (Checking Id-Card, VideoIdent, ...). Authentication is about confirming that the person or entity trying to access a system is the same one that was already enrolled (user name, password, MFA , ...).
Of course, the EBW can be used to verify the identity of a natural person. It just needs to hold the credential of the natural person, which is bound to cryptographic key material under the sole control of that person.
This is true of basic wallets, which cannot hold private key material for individual users. However, an advanced wallet with enhanced user management can store private keys for each user. This allows issuers to link natural person credentials to users. Users of an advanced wallet can present natural person credentials and apply authentication proofs (such as key binding tokens or data integrity proofs) to these presentations. Furthermore, legal person credentials (e.g. an EUCC) can be bound to legal representatives, enabling users to prove their authorisation to represent the legal person. |
| User->>Wallet: Accesses the credential | ||
| ``` | ||
| ### General EBWOID issuing process | ||
| The [EBWOID Rulebook](https://github.com/webuild-consortium/webuild-attestation-rulebooks-catalog/blob/main/rulebooks/ds001-ebw-oid-rulebook.md) provides more details on the EBWOID. The sequence diagram below shows the minimum issuance flow for an EBWOID credential. It focuses on the common steps shared across use cases. Optional activities and alternative flows may be included in extended versions of the diagram. |
There was a problem hiding this comment.
Update the EBWOID rulebook link to:
https://github.com/webuild-consortium/webuild-attestation-rulebooks-catalog/tree/main/rulebooks/rb-ebw-oid
|
@oliver-fro @miguelaguilar-bv @malinnorlander Could you please respond to the comments and update the flow, if needed, accordingly? I would very much like to see this in the Blueprint within a week or so, I believe it has just been forgotten now that the DL has passes. :) |

Process on EBWOID issuing received from the PID/EBWOID capability group.