or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Notary v2 Signature Formats
tags:
notary
Notary v2 can sign any content within an OCI Distribution based registry. This document provides an iterative collaboration on what the signature content would look like, when persisted as a referenceType to content within a registry:
Target Image
For the purposes of this discussion, we'll focus on signing the Notary v2 prototypical
net-monitor:v1
image.net-monitor
application/vnd.oci.image.manifest.v1+json
sha256:9aab35483ad0ee2e56fc1cf8205d5b7ca2fe029dccfc70988eb067e6b2f38663
809
:v1
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →A Notary v2 artifact manifest of the
net-monitor:v1
signaturenet-monitor
application/vnd.oci.artifact.manifest.v1+json
sha256:218e9533924a24d64f2cc6c7db8e5120e415d441a7529919c8d30472341038e7
720
The above artifact manifest signs the
subjectManifest
. Any content within the above net-monitor image is secured with the content in theblob
Justin Cormack: What I think you're suggesting is the following annotation would become part of the signed content stored in the blob?
Signature Payload
Signature Examples
JWS JSON Serialization
Payload: aka claims
Payload contain the subject manifest and other attributes that has to be integrity protected.
notary.v2
: Top level node and private claim, encapsulating the notary v2 data. This claim MUST be present.subjectManifest
: The image manifest that needs to be integrity protected.signedAttrs
: Contains additional attributes that needs to be integrity protected.reserved
: Collection of attributes reserved for notary v2 use such as artifact revocation list(arl),identity, etc.custom
: Collection of user defined attributes such as buildId, imageScanned, etc. Use of this field is OPTIONAL.iat
: Issued at identifies the time at which the JWT was issued. This claim MUST be present.exp
: Expiration time identifies the expiration time on or after which the JWT must not be accepted for processing. This claim MUST be present.iat
,exp
as top-level nodes.ProtectedHeader:
alg
: JWS needs algorithm(alg) to be present in header so we have added it as protected header. This header MUST be present.cty
: Content type(cty) used to declare the media type of the secured content(the payload). This header MUST be present.crit
: Indicates the list of headers that implementation MUST understood and process. This header MUST be present.SignatureEnvelope:
protected
: Base64Url encoded JSON object that contains the header parameters that are integrity protected by the JWS Signature digital signatureheader
: JOSE Header containing the parameters describing the cryptographic operations and parameters employed. header is not integrity protected by signature. To start with we will only support reserved set of headers.timestamp
: Base64 encoded timestamp token generated by TSA. Use of this is OPTIONAL.kid
Hint indicating which key was used to generate the signature. Use of this is OPTIONAL.x5c
Contains the X.509 public key certificate or certificate chain corresponding to the key used to generate the signature. Use of this is OPTIONAL. If signature was generated by x509 certificate signature envelop MUST contain x5c.header
node MUST contain eitherkid
orx5c
but not both.x5c
, the leaf certificate's public key algorithm(with some additional conventions) will be used for signature generation and this algorithm must match withalg
header value. The verifier will make sure that the value ofalg
header is same as that of leaf certificate's signing algorithm.alg
will always be from a predefined set of values.Dead Simple Signature Envelop (DSSE)
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →Extended DSSE
Payload:
SignatureEnvelope:
In SignatureEnvelope's
signatures
node, MUST contain either keyid or x5c but not both. Also, currently DSSE doesn't support timestamp and x5c fields.Open Questions
subjectManifest#annotations
? We have already definedsignedAttrs#custom
collection for user defined attributes?