theupdateframework / theupdateframework/python-tuf

Examples: ship bootstrap root.jsons for well-known repositories

Offen
#2,206 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
1.7k
Forks
304
Ø Merge
1 T. 2 Std.
Gemergte PRs (30 T.)
17

Beschreibung

In #2193 the client example gains Trust-On-First-Use (TOFU) functionality and support for arbitrary repositories. This is very useful for testing but has two issues:

  • we should also be an example of not using TOFU (and shipping the bootstrap root metadata) whenever possible
  • some known repositories have old root metadata that the client is incompatible with: This breaks the TOFU approach. We could workaround this issue by shipping a newer root metadata as bootstrap

So:

  • client example could ship with root.json files for known repositories like https://github.com/jku/tuf-demo, sigstore, bottlerocket, the manual repo in python-tuf sources, etc
  • these should be "hidden" a bit so that they don't confuse someone who is just looking for example code
  • client should automatically use these bootstrap roots: the initial implementation could be just if cache for {REPO} does not have root.json and bootstrap root.json for {REPO} exists, then copy bootstrap root.json to cache
  • the obvious next step is #1168 , which is a ngclient feature that would make the example even simpler and safer

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne bei der Initialisierung des Repository-Caches im Client-Beispiel und überprüfe den bestehenden TOFU-Ablauf, der in #2193 beschrieben ist. Füge versteckte bootstrap root.json-Dateien für die genannten Repositories hinzu und sorge dafür, dass ein leerer Cache das passende bootstrap root verwendet; verifiziere, dass das Beispiel ohne TOFU funktioniert, und behandle #1168 als Folgearbeit.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
security
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.