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

Feature/editorial intro and format #112

Merged
merged 5 commits into from
Jun 29, 2023

Conversation

mprorock
Copy link
Contributor

@mprorock mprorock commented Jun 28, 2023

Many line number changes here. Actual changes in this:

  1. Reformat and reflow for consistent indentation in the html and line breaks
  2. retitle to "Securing Verifiable Credentials using JOSE and COSE" with new short name "vc-jose-cose"
  3. reorder sections so securing core data model comes first
  4. adjust abstract, and add introductory text that refers to items we are actually doing in this spec

Preview | Diff

@mprorock mprorock requested review from selfissued and OR13 June 28, 2023 13:29
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Show resolved Hide resolved

COSE supports two main operations: signing and encryption. For
Copy link
Contributor

Choose a reason for hiding this comment

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

nit, maybe a second p tag.

index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
using either JOSE or COSE.
</p>
<p>
A benefit to this approach is that payloads can be made to conform
Copy link
Contributor

Choose a reason for hiding this comment

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

same issue with payload vs claimset... I don't think it makes sense to call a COSE Sign1 "payload" a "claimset"... I think we will need to do a lot of cleanup if we remove the "native JWT encoding from the spec, basically replacing the word "claimset" with "payload" everywhere, and making it content type explicitly JSON-LD ... and NOT... JSON.

<code>cty</code>.
</p>
<pre class="example vc-jwt" data-vc-kid="#key-0">
{ "@context": [ "https://www.w3.org/ns/credentials/v2",
Copy link
Contributor

Choose a reason for hiding this comment

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

nit, on formatting this for spec readability

<p>
See <a data-cite="rfc7515#section-4.1.10">Common JOSE Header
Parameters</a>
for additional details regarding usage of <code>typ</code> and
Copy link
Contributor

Choose a reason for hiding this comment

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

typ only works for JSON payloads... same issue as https://github.com/w3c/vc-jwt/pull/112/files#r1245326420

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah - didn't adjust this text, but something we need to address in next pass


<pre class="example vc-jwt" title="A secured verifiable
presentation with a holder identifier">
{ "@context": [ "https://www.w3.org/ns/credentials/v2",
Copy link
Contributor

Choose a reason for hiding this comment

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

nit on formatting

</p>
<p>[[rfc8152]] MAY be used to secure this media type.</p>
<p>When using this approach, the <code>type (TBD)</code> MUST be
Copy link
Contributor

Choose a reason for hiding this comment

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

reminder about this typ issue... cc @selfissued

Copy link
Contributor

@OR13 OR13 Jun 28, 2023

Choose a reason for hiding this comment

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

There is no tag for typ in COSE Headers, so there is no CWT equivalent of JWT.

Binary Object Representation (CBOR) Tags</a> for additional
details.</p>
</section>
<p class="issue" data-number="67"></p>
Copy link
Contributor

Choose a reason for hiding this comment

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

nit, some text here would help with future editorial cleanup

</section>

<section>
<h2>Securing JSON</h2>
Copy link
Contributor

Choose a reason for hiding this comment

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

I expect we will remove this section, @selfissued remains the only objector to #88

I suggest an editorial issue marker to communicate this better to readers.

Copy link
Contributor

@OR13 OR13 left a comment

Choose a reason for hiding this comment

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

I have nits, but I don't know if any of them matter.

Please add the issue markers for tag, to assist them in their review

@mprorock
Copy link
Contributor Author

I have nits, but I don't know if any of them matter.

Please add the issue markers for tag, to assist them in their review

yeah - the nits are in sections i didn't touch - only non-format changes were in doc title and abstract/intro
will add issue markers separately in a follow on PR

Copy link
Contributor

@andresuribe87 andresuribe87 left a comment

Choose a reason for hiding this comment

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

with new short name "vc-jose-cose"

Curious how this will be performed? Will this repository be renamed?

@mprorock
Copy link
Contributor Author

with new short name "vc-jose-cose"

Curious how this will be performed? Will this repository be renamed?

Will leave that to the chairs, but is suspect that will be the case

@mprorock
Copy link
Contributor Author

@selfissued need to get this one merged so that we are building on consistent formatting - blocking addressing of additional PRs to address notes from @OR13 above

@mprorock
Copy link
Contributor Author

since this is hard to read due to reformatting, the actual changes are here (everything else untouched):

changes:

<title>Securing Verifiable Credentials using JOSE and COSE</title>
shortName: "vc-jose-cose",

added/adjusted:

 <section id="introduction">
    <h2>Introduction</h2>
    <p>
      This specification describes how to secure media types
      expressing Verifiable Credentials and Verifiable Presentations
      as described in the [[VC-DATA-MODEL]], using approaches
      described by the COSE and JOSE working groups at IETF. This
      includes JWTs [[RFC7519]], JWS [[RFC7515]], and COSE [[RFC8152]]
      and provides an approach using well defined content types
      [[RFC6838]] to identify that the type of data being secured
      conforms with the [[VC-DATA-MODEL]].
    </p>
    <p>
      JSON Web Signatures (JWS) [[RFC7515]] provide a standardized
      mechanism for digitally signing JSON data. It provides a means
      to ensure the integrity, authenticity, and non-repudiation of
      the information contained in a JSON object. JWS enables secure
      communication and trust between parties by adding a
      cryptographic signature to a payload. This signature is
      generated using a private key and can be verified using the
      corresponding public key. JWS enables content integrity, authentication and non repudiation, 
      protecting data from unauthorized modifications. The
      versatility and wide adoption of JWS make it an essential
      component for verifying the authenticity and integrity of
      data in various applications, including
      authentication, authorization, and secure data exchange. These
      properties make JWS especially well suited to securing the
      JSON-LD [[VC-DATA-MODEL]] and through this to provide a means of
      supporting the three party model (issuer, verifier, holder) for
      exchange of credentials enabled in verifiable credenials.
    </p>

added:

<p>
      CBOR Object Signing and Encryption (COSE) [[RFC8152]] is a
      specification that defines a framework for signing and
      encrypting CBOR (Concise Binary Object Representation) [RFC8949]
      data structures. COSE provides a standardized way to secure the
      integrity, authenticity, and confidentiality of CBOR-encoded
      information. It offers a flexible and extensible set of
      cryptographic options, allowing for a wide range of algorithms
      to be used for signing and encryption.

      COSE supports two main operations: signing and encryption. For
signing, COSE allows the creation of digital signatures over
      CBOR data using various algorithms such as HMAC, RSA, ECDSA, or
      EdDSA. These signatures provide assurance of data integrity and
      authenticity. COSE also supports encryption, enabling the
      confidentiality of CBOR data by encrypting it with symmetric or
      asymmetric encryption algorithms.
    </p>
  </section>

Copy link
Collaborator

@selfissued selfissued left a comment

Choose a reason for hiding this comment

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

Approved with two comments to address before merging.

index.html Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
@OR13
Copy link
Contributor

OR13 commented Jun 29, 2023

Editorial, merging

@OR13 OR13 merged commit bd1d6a3 into w3c:main Jun 29, 2023
1 check passed
Comment on lines +113 to +120
mechanism for digitally signing JSON data. It provides a means
to ensure the integrity, authenticity, and non-repudiation of
the information contained in a JSON object. JWS enables secure
communication and trust between parties by adding a
cryptographic signature to a payload. This signature is
generated using a private key and can be verified using the
corresponding public key. JWS enables content integrity, authentication and non repudiation,
protecting data from unauthorized modifications. The
Copy link
Member

Choose a reason for hiding this comment

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

Needs re-reading...

It provides a means
to ensure the integrity, authenticity, and non-repudiation of
the information contained in a JSON object. 

is redundant with

JWS enables content integrity, authentication and non repudiation, 
protecting data from unauthorized modifications.

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.

5 participants