entropic-dev / entropic-dev/entropic

Building a compromise-resilient registry with TUF and in-toto

Open
#321 0 comments 3 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
5.2k
Forks
147
PR merge metrics
No merged PRs in 30d

Description

# Is this a feature request or a bug?

Feature request

# Expected behavior:

In order to better distinguish itself from npm, and add more value, Entropic should use [The Update Framework (TUF)](https://theupdateframework.com) to secure the package registry in a _compromise-resilient_ manner: i.e. a compromise of the registry does not result in the instant compromise of all packages. A high-level overview of TUF is available in this [podcast with @andrew](https://manifest.fm/7).

To ease adoption, Entropic may start with the [minimum security model](https://www.python.org/dev/peps/pep-0458/), where the registry signs for all packages using _online keys_, or signing keys that are accessible on-demand by the registry. This model protects users from man-in-the-middle (MitM) attacks, but not a compromise of the registry itself.

To achieve compromise-resilience, Entropic should support the [maximum security model](https://www.python.org/dev/peps/pep-0480/), where a subset of packages are signed using _offline keys_, or signing keys kept off the repository, by their respective developers. This model protects users of these packages from a compromise of the registry itself.

To provide even stronger security guarantees in the maximum security model, Entropic may allow developers to use [in-toto](https://in-toto.io) to provide end-to-end integrity of packages. in-toto ensures that packages were not tampered with from the moment developers checked in source code to a VCS system to the moment packages were built and uploaded to the registry.

The [Datadog Agent integrations](https://www.datadoghq.com/blog/engineering/secure-publication-of-datadog-agent-integrations-with-tuf-and-in-toto/) are an example of a real-world deployment using both TUF and in-toto to achieve compromise-resilience.

More technical information about how TUF and in-toto can be combined is available in [ITE-2](https://github.com/in-toto/ITE/pull/4) and [ITE-3](https://github.com/in-toto/ITE/pull/5).

# Actual behavior:

I haven't looked deeply into it, so I don't want to misrepresent, but Entropic probably uses TLS to secure packages in transit, but not at rest. Please correct me if I am wrong.

# Steps to replicate:

N/A

# Environment info (where relevant)

N/A

Cc @jlegrone @SantiagoTorres @JustinCappos

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.