ietf-wg-scitt / draft-ietf-scitt-architecture

An Architecture for Trustworthy Digital Supply Chain Transparency Services
Other
11 stars 14 forks source link

URLs for Transparent Statements #69

Closed fournet closed 9 months ago

fournet commented 1 year ago

This issue summarizes discussions so far on references between transparent statements---see also slide 22 at the last IETF SCITT session. I am using "reference" below but identifier or URL may be better.

Motivation: We need a standard way to refer to previously-registered statements. In particular, references to transparent statements may be included in new statements (in headers or payloads or receipts) to point, for example, to a policy statement, to some keying information, to a prior statement it replaces on a given stream, or to statements for artifacts it depends on in the supply chain.

Goals:

  1. Given a transparent statement, we can compute its reference.
  2. Given a reference, we can discover its TS and transparent statement.
  3. A reference commits to a unique transparent statement.

Syntax: references include both a locator and a commitment. Concretely, we may use DID URLs of the form

did:web:ts.software.org/42&digest=4ce2320130450...

where 42 is the serial registration index in the log of this TS and digest is the SHA256 hash of the transparent statement.

We may provide a more compact format by making the DID optional for local references within a TS, and making the digest optional when the transparent statement is attached.

We may even just use the raw digest 4ce2320130450 as an opaque identifier (since the hash already authenticates the locator) and separately deal with locators.

Discoverability The TS, or an auxiliary database of transparent claims, may support transparent-statement lookups given their reference. This auxiliary lookup service is not a requirement (random access is hard to guarantee) and it need not be trusted (since clients can easily verify the receipt of the resulting transparent statement against their reference). Alternatively, a transparent statement may be distributed together with supporting transparent statements it refers to. This facilitates offline verification and auditing but is more verbose. Or it may include auxiliary headers to help retrieve the supporting statements from any other location.

Open issues:

henkbirkholz commented 1 year ago

NEW (during WG discussion):

OLD (I really missed the topic here, nvm):

The SCITT architecture highlight in Section 1:

A Statements payload content MAY be encrypted and opaque to the Transparency Services, if so desired: however the metadata MUST be transparent in order to warrant trust for later processing.

Following this language, this type of reference would be a... non-opaque statement. A statement that MUST be transparent and that has a well-known (standardized CBOR) structure, maybe?.

OR13 commented 1 year ago

Take a look at:

Lots on inspiration there... see also:

cabo commented 1 year ago

??? What is the point of this specification? Minimizing interoperability while maximizing complexity?

OR13 commented 1 year ago

@cabo string encodings for this table: https://github.com/multiformats/multicodec/blob/master/table.csv

notice the hash functions, public keys, and other "binary types", they get a byte prefix that is uvarint, and then they get a byte prefix for base encoding, such as base64url, base64, base32, base16, base2, base8, base32hex, base32z, base58btc, base58flickr, base64pad.... and of course my favorite: base256emoji

OR13 commented 9 months ago

I am removing myself from this issue, I don't believe it is actionable.

A simpler and more direct issue should be raised.

The new issue, should describe spec text suggestions only.

For example:

  1. the spec SHALL include an example
  2. the spec SHALL include a specific syntax for indentifiers
  3. the spec SHALL address first order and second order receipts.
  4. the spec SHALL address multiple receipts for a single statement, and show unique URLs / identifiers for each.
SteveLasker commented 9 months ago

Closing this issue as it's a bit dated as the terminology has evolved a bit, and we've had subsequent PRs to clarify portions. @fournet, please open new issues to the remaining gaps.