Skip to content

Latest commit

 

History

History
128 lines (86 loc) · 9.63 KB

notary-status-2021-02.md

File metadata and controls

128 lines (86 loc) · 9.63 KB

Notary v2 February 2021 Status

Since December 2019, teams have been meeting regularly, as captured in the Notary v2 notes. Requirements and a focused prototype have been completed, enabling conversations to upstream projects.

To deliver Notary v2, we recognized the need of experts from multiple backgrounds, experiences and skill sets. The various perspectives were needed to assure we learned from past efforts and learned from subject matter experts.

Stages of Development were identified with the following February 2021 progress:

  1. Define Requirements
  2. Build Prototypes
  3. Validate Prototypes
  4. Author a Notary v2 Spec

To complete Notary v2, key areas of focus were identified, with the following progress:

  1. Definition of a Notary v2 Signature
  2. Registry Persistance, Discovery and Retrieval
  3. Key Management
  4. Policy Management

Stages

Define Requirements

Baseline requirements have been defined, enabling focused prototyping. Additional requirements are being discussed as PRs:

Build Prototypes

In September of 2020, a focused prototype for signing, integration with a registry and client validation were completed.

The prototype focused on:

Details of the September 2020 Prototype:

The prototypes have enabled participants and subject matter experts to identify additional areas of focus, such as how policy management capabilities may be applied to Notary v2 signature validation.

Validate Prototypes

With a focused nv2 client validation complete, the next phase will integrate policy management rules, using OPA and Gatekeeper. These additional validations will surface gaps in the workflow, including key management, and what policies may be supported through multiple Notary v2 keys. Air-gap environments will likely surface additional details to be addressed, including key-revocation capabilities.

Areas of Focus

  1. Definition of a Notary v2 Signature
  2. Registry Persistance, Discovery and Retrieval
  3. Key Management
  4. Policy Management

Definition of a Notary v2 Signature

A Prototype-1 Signature Spec has been defined, serializing as a JWT variant. While additional signature types may be added, a baseline signature spec has enabled validation of the other areas of focus, including registry persistance, discovery & retrieval.

Registry Persistance, Discovery and Retrieval

To validate the end to end experiences, an experimental change to CNCF Distribution enabled linking of a container image and an independent Notary v2 signature.

An experimental docker plug-in called docker-generate generates a local manifest, used to generate the signature. The plug-in extends the docker push command to push the signature and make an additional link API request of the registry.

This prototype inspired a new OCI Artifact Manifest, which provides a way for artifacts to define the target artifact (manifest) they are linking to.

net-monitor signed image

Additional signature types have also been discussed, including IBM Simple Signing and a cosign prototype, developed by Dan Lorenc which would benefit from the OCI Artifact Manifest linking proposal. Supporting additional signature types is not within the Notary v2 scope, rather a benefit from the OCI Artifact manifest approach for linking Notary v2 signatures.

To support discovery of linked artifacts, OCI Distribution-spec list API requirements have begun. Conversations whether the linking API should be part of the OCI distribution-spec, or a registry extension defined in OCI Artifacts are being considered.

Key Management

Early on, a preliminary Notary v2 thread model was defined, with key management requirements forming. Key management is an area of additional focus in 2021 as we focus on:

  • Publishing and discovery of public keys for consumers to validate signatures
  • Key revocation, including support for air-gapped environments

Policy Management

As OPA/Gatekeeper prototypes are started in 2021, a set of policy management requirements will surface. Notary v2 will not defined a policy management solution, rather it will provide options for policy management solutions to interact with.

Author a Notary v2 Spec

A Notary v2 signature spec has been prototyped. As the OCI Artifact Manifest and Manifest Link API proposals proceed, with subsequent prototype validations, the Notary v2 spec will begin.

Plans for 2021

2020 focused on requirements gathering and initial prototypes to validate the requirements could be met. 2021 will focus on building end to end prototypes, including integration with Kubernetes, OPA and Gatekeeper. The changes required for registry persistence, discovery and retrieval will be hardened enabling registry operators and registry projects to implement the changes. The goal being user validations, and gap analysis of requirements and/or prototypes. These final validations will lead to a Notary v2 specification.

The following goals are set for 2021:

  1. Extend OCI Artifacts to support reverse lookup capabilities for signatures and SBoMs.
    1. An oci.artifact.manifest proposal has begun review.
    2. Design a manifest - linked-list lookup distribution API for discovering linked artifacts, such as Notary v2 signatures.
    3. Once a stable proposal is reached, implement it in CNCF Distribution with the ability for users to self-instance the solution.
    4. The design should be strong enough for cloud providers and registry projects to implement in sand-boxed environments for user validation.
  2. Prototype policy management rules, using something like OPA and Gatekeeper.
  3. Build out key management requirements, including discovery of public keys, and key revocation scenarios across public and private/air-gapped environments.
  4. Engage users and customers for feedback on the end to end capabilities.
  5. Begin a Notary v2 spec that captures the learnings.