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

Add use case from original use case document to address issue 325 #328

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

Conversation

rjb4standards
Copy link
Collaborator

Added one use case from original use case document: Signing certificate authenticity use case

@rjb4standards rjb4standards changed the title Add use case from original use case document Add use case from original use case document to address issue 325 Dec 20, 2024
Also added proposed language teh the use cases present in the architecture document
Some packages include the original statement of authenticity, and some do not.
Over time, some providers no longer offer the exact same software component source code but pre-compiled software component binaries.
Some sources do not provide the exact same software component, but include patches and fixes produced by third-parties, as these emerge faster than solutions from the original producer.
Due to complex distribution and promotion life-cycle scenarios, the original software component takes myriad forms.

A consumer of a released software wants to:

* understand if a particular provider is actually the original provider or a promoter
* understand if a particular provider is actually the original authorized producer or an alternative party
Copy link
Contributor

Choose a reason for hiding this comment

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

What does authorized mean in the context of all possible subjects of a statement by an issuer? For freely and openly licensed software, there are little or no restrictions on a producer of software, not to speak of public domain work.

Is there alternative wording for authorized? I have thought of it for a little while, but have yet to find alternative wording I could propose. I will think about it some more though.

Copy link
Collaborator

@SteveLasker SteveLasker Jan 3, 2025

Choose a reason for hiding this comment

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

I struggle with Authorized as well, as it's also not clear who is stating who should be "authorized" and to whom?

A consuming company may authorize EntityA, but not EntityB, while another may require a different Entity to produce the same package, such as RedHat or a specific Industry "authorized" endorsement.

Originating could also be questioned.
At the end of the day, the verifier makes a decision which issuers they trust, for a given environment.

Suggested change
* understand if a particular provider is actually the original authorized producer or an alternative party
* understand if a particular provider is a trusted originating producer or an alternative party

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@SteveLasker would it help to replace "authorized" with "legitimate".

People need to be able to determine if an artifact is to be trusted, or not, based on a verifiable method. I'm asserting that the presence of an artifact in a SCITT registry is sufficient to make it trustworthy, but the process used to register an artifact in a SCITT trust registry needs to be able to discern a trustworthy artifact and one that is false, or not trustworthy.

Somehow, the SCITT "solution" needs to be able to discern trusted artifacts from untrusted artifacts and the ability to establish trust in the artifacts supply chain is key to this process. Only trusted artifacts, submitted by trusted parties make their way into a SCITT trust registry, IMO.

Copy link
Collaborator

Choose a reason for hiding this comment

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

How does an entity determine trust?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@SteveLasker I'm hoping the SCITT spec will describe how trust is ascertained before an item is placed into the registry. Then parties can simply trust an artifact because it is in the registry, and has been properly vetted as trustworthy. This is how a "Registry of Deeds" works, which IMO is a good model for a SCITT Trust Registry. Only trusted artifacts can be placed into the registry.


SCITT provides a standardized way to:

* reliably discern if a provider is the original producer or is a trustworthy promoter or is an illegitimate provider
* reliably discern if a provider is the original, trusted producer or is a trustworthy alternative provider or is an illegitimate provider
Copy link
Contributor

Choose a reason for hiding this comment

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

Like my previous comment, are there more neutral and perhaps less loaded terms than illegitimate?

Copy link
Contributor

@aj-stein aj-stein left a comment

Choose a reason for hiding this comment

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

I added some comments because it seems we are adding subjective descriptions that do not make the draft more crisp and clear. Can we consider alternatives?

@rjb4standards
Copy link
Collaborator Author

AJ, I'm open to other terminology that will emphasize the need to confirm a trusted party as producer and signer of digital objects. Perhaps the term legitimate could replace authorized.

A software component (e.g., a library) released by a certain original producer is becoming popular.
The released software component is accompanied by a statement of authenticity (e.g., a detached signature).
A software component (e.g., a library or software product) released by a certain original producer is common practice for both open-source and commercial offerings.
The released software component is accompanied by a statement of authenticity (e.g., an embedded or a detached signature).
Copy link
Collaborator

@SteveLasker SteveLasker Jan 3, 2025

Choose a reason for hiding this comment

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

SCITT doesn't support embedded signatures, as they don't support the multi-party/post-build processes.
Removing the suggestion, and leaving it as a comment

The released software component is accompanied by a statement of authenticity (e.g., a detached signature).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@SteveLasker you suggest removing embedded signatures. Does this mean that embedded signatures on artifacts are not supported in SCITT?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm suggesting we remove references to embedded signatures as SCITT doesn't know about them.
The content also conflates a few different concepts of attached/detached payloads, referencing an artifact the statement is about, and attached signatures that are not part of the SCITT Architecture.

I'm going to suggest the following change.

SCITT doesn't support embedded signatures, as they don't support the multi-party/post-build processes.

Suggested change
The released software component is accompanied by a statement of authenticity (e.g., an embedded or a detached signature).
The released software component is accompanied by a statement of authenticity.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@SteveLasker Many post build artifacts, like MSI installation packages contain embedded digital signatures. This change seems to allow either/or embedded/detached authenticity evidence.

Over time, due to its enhanced applicability to various products, there has been an increasing amount of multiple providers of the same software component version on the internet.

Some providers include this particular software component as part of their release package bundle and provide the package with proof of authenticity using their own issuer authority.
Some providers include this particular software component as part of their release product package bundle and provide the product package with proof of authenticity using their own issuer authority.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
Some providers include this particular software component as part of their release product package bundle and provide the product package with proof of authenticity using their own issuer authority.
Some providers include this particular software component as part of their release product/package bundle and provide the package with proof of authenticity using their issuer authority.

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.

4 participants