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

WIP: Identities #79

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

WIP: Identities #79

wants to merge 12 commits into from

Conversation

milux
Copy link

@milux milux commented Nov 3, 2022

Work in progress.
Definition of requirements and properties of connector identities.

sebbader and others added 11 commits September 23, 2022 08:49
Fixed typo and added missing changelog entry for changes in CONTRIBUTING.md
Adding the Structure for the communication guide and moving the infomodel to a new location.
tidy up formatting
* Adding prelimmary figure and source

Adding entities and realtionship of dataspaces as png and draw.io source

* Linking the entity model to the Communication Guide

* Add Catalog section to the CommunicationGuide

* Add Catalog section to the CommunicationGuide

Co-authored-by: Sebastian Bader <[email protected]>
Co-authored-by: Anil Turkmayali <[email protected]>
* Issue 46: Bugfix adding necessary JSON-LD context elements (#49)

* Bugfix adding necessary JSON-LD context elements



Co-authored-by: Sebastian Steinbuss <[email protected]>

* Add specification input documents

* Remove uneccessary restrictions

* Add numbering

* Fix cardinality typo

* Add mapping section

Co-authored-by: sebbader-sap <[email protected]>
Co-authored-by: Jim Marino <[email protected]>
@mokamhuber
Copy link

isn't this pull request obsolete since the respective changes have been merged to another branch by: #83?

# Identities

Connector identities according to this specification are typically represented by some sort of token.
This token contains statements about properties of the connector ("claims"), like its membership in one or more data spaces.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and it's trust level as well as it's assurance level (e.g., trust level 1 for base connector with assurance level 1 for a self-assessment).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please tell the exact claim names for the token.

In order to establish trust via these tokens, two requirements have to be met:

- Security-relevant claims within the token, or the entire token as a whole, MUST be signed by one or more trusted entities.
- There MUST exist a sound mechanism that enables a connector to proof ownership over the tokens or claims issued for this particular connector.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this means, the token belongs to the connector that is trying to establish a connection? Should we mention binding the base identity/certificate to the token?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would also have to somehow signal the used version of a DAT to the other connector. This is facilitated by the version encoded in the issuer URL at the moment. Should we consider requirements for that?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestions welcome. (:

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Talk with @bellebaum about versioning schema and whether this makes sense.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this means, the token belongs to the connector that is trying to establish a connection? Should we mention binding the base identity/certificate to the token?

I think the point right below this one is supposed to express exactly this, but making the channel binding (That's what some authentication mechanisms call it) explicit may be less subtle.

We would also have to somehow signal the used version of a DAT to the other connector. This is facilitated by the version encoded in the issuer URL at the moment. Should we consider requirements for that?

As far as I am aware, there is as of now no versioning scheme for the DAT, just for the DAPS. I feel like the more appropriate thing to do is to ensure the DAT claims stay backwards compatible, and update the verification routines to include checks on newer included information.

If applicable, some sort of critical array can also be defined marking certain keys in the DAT as critical. The idea here would be that any connector MUST reject DATs for which it does not know how to handle/check a certain claim. This should of course only be done with claims adding additional proofs of applicability to the connector (like new forms of binding). C.t. https://www.rfc-editor.org/rfc/rfc5280#section-4.2

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If applicable, some sort of critical array can also be defined marking certain keys in the DAT as critical. The idea here would be that any connector MUST reject DATs for which it does not know how to handle/check a certain claim. This should of course only be done with claims adding additional proofs of applicability to the connector (like new forms of binding). C.t. https://www.rfc-editor.org/rfc/rfc5280#section-4.2

Interesting idea. This is however not yet part of any existing OAuth-related standard, is it? If we do this, should we explain it here in the IDS-G as well?

Communication/Identities/README.md Show resolved Hide resolved
Each implementation of identity tokens MUST at least implement the following claims:

- `securityProfile`: Reflects the `SecurityProfile` of the owning connector according to IDS certification criteria.
Valid values are `idsc:BASE_SECURITY_PROFILE`, `idsc:TRUST_SECURITY_PROFILE` and `idsc:TRUST_PLUS_SECURITY_PROFILE` as given by the members of https://international-data-spaces-association.github.io/InformationModel/docs/index.html#SecurityProfile.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment above, potentially also still not reflected in the info model.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduce trustLevel instead to be consistent with certification.

The claim MUST NOT contain any property that reflects a security level lower than the requirements of the stated `SecurityProfile`.
The claim MAY contain one or more values represented by members of `SecurityGuarantee` subclasses.
For a comprehensive list, see https://international-data-spaces-association.github.io/InformationModel/docs/index.html#SecurityGuarantee.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The info model will have to be updated in a number of ways to comply with the current certification proceedings.

Copy link
Author

@milux milux Jun 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we continue maintaining this opportunity for security guarantees extending the trustLevel?
@mokamhuber Do will still have such an extension concept?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "official" certification levels for components:
https://github.com/International-Data-Spaces-Association/IDS-RAM_4_0/blob/main/documentation/4_Perspectives_of_the_Reference_Architecture_Model/4_2_Certification_Perspective/4_2_4_Component_Certification.md

So we have trust level 1-3 and assurance Level 1-3.
We can just keep the security profile as an option for future use.

Communication/Identities/README.md Outdated Show resolved Hide resolved
@milux
Copy link
Author

milux commented Jan 2, 2023

isn't this pull request obsolete since the respective changes have been merged to another branch by: #83?

No, according to @ssteinbuss it is still relevant.

@milux
Copy link
Author

milux commented Aug 17, 2023

@ssteinbuss How can we proceed from here? This has been stale for a while now.

@milux milux requested a review from ssteinbuss August 17, 2023 06:28
@ssteinbuss
Copy link
Member

We will discuss in the next Working Group meeting in September

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants