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

Roadmap update for TUF support #5247

Closed
LucidOne opened this issue Jan 4, 2019 · 78 comments
Closed

Roadmap update for TUF support #5247

LucidOne opened this issue Jan 4, 2019 · 78 comments
Labels
needs discussion a product management/policy issue maintainers and users should discuss

Comments

@LucidOne
Copy link

LucidOne commented Jan 4, 2019

Is it possible to get an update on the development roadmap about when TUF or other encryption support might be deployed? Thanks!

Also, it appears that tomorrow will be 6 years since January 5, 2013.

@nealmcb
Copy link

nealmcb commented Feb 19, 2019

Thanks - good question.
I note that TUF is one of the options noted under Add support for API keys · Issue #994 · pypa/warehouse which appears under the "Cool but not urgent" milestone.
I agree that TUF addresses many of the nicely described PyPI-specific concerns that @dstufft wrote way back on 23 July 2013: Why Package Signing is not the Holy Grail

@LucidOne
Copy link
Author

I believe that the package signing issues stated can be resolved and in 2019 our internet depends on the security of infrastructure such as PyPI. If there is not a roadmap for TUF support, I'm going to look at solving the problem.

@MyNameIsCosmo
Copy link

MyNameIsCosmo commented Feb 19, 2019

Perhaps we can evaluate integration with third-party services for verification?
Keybase.io helps create trust by building a verified profile attached to a GPG key across multiple services.
GitHub handles gpg signature verification for commits, refs, releases, etc. (although, your GH pgp key is kept in your GH settings... 2fa could help mitigate unauthorized account access)
Falling back, you can have a PGP key on MIT's PGP keybase which forwards a public key to key servers around the world.

Now, this does assume putting trust in third-party services themselves (and the author of the actual PGP key), but the chances are very slim that your PGP key would be replaced on multiple services at once. The biggest issue is an author being unable to secure their private key (no password, weak password, bad private key handling, etc...), or their account becoming compromised (e.g. GitHub).

This doesn't solve the problem on PyPi's side of verifying someone, although PyPi shouldn't have to verify anyone. PyPi should host the package. It should display information about the package being signed (or unsigned), the package's origins and contents, and whoever is downloading the package should check that key against their trusted sources.
In the past, PyPi has hosted malicious code. Of course, this happens. It is expected. Other package managers suffer as well.


I'm sure we all can go on about this.
Sure, PGP signing doesn't guarantee security. It doesn't guarantee verification. It doesn't even guarantee safe, robust, reliable, ... code. PGP is just a part of a solution to of a complex problem.
As signing becomes supported by major services (package maintainers, source code repositories, document services, ...), a trust network (keybase, key servers, ...) can be utilized to help security-minded users track where their packages are coming from.

If a user or a maintainer doesn't care about signing, it doesn't have to be enforced at the beginning, If the feature is there, people will use it.

Edit:
A great talk - How Much Do You Trust That Package?

@LucidOne
Copy link
Author

I am convinced that this problem is tractable and I think the key here is that EigenTrust can provide us a mathematical model to get started.

We already have some data in the git commit history. When someone signs a git commit there is an eigentrust metric that can be calculated for all of the previous signed commits. There is reason to believe that causality and techniques like Bayesian inference may also be useful here where multiple commits are signed by a key we do not yet trust, but are temporally followed by a key we do trust. We can also federate our memories of git history and checksums to detect anomalies and attacks on infrastructure.

Sites like github and sr.ht can already provide trust metrics by validating that an email address is connected to a GPG key. We can formalize and automate our existing manual heuristics for validating packages.

Further I think we should start thinking about metadata for developers and organizations that produce software. Organizations can maintain a META-DEV repository that contains the PGP signing keys of active developers, key revocation information, and per repository release manager designation. Developers can also maintain a META-DEV repository that contains yaml (or whatever) metadata linking to a developers twitter / blog / instagram / keybase / identi.ca / matrix / Mastodon / xmpp / whatever where the PGP fingerprint can be posted.

Perhaps we need to start building keyrings in OS native packaging formats (.deb, .rpm, etc) so that trust can at least be established for the most critical python packages.

This is a complex problem but we need to take what small steps forward that we can instead of waiting another year to secure PyPI or even bother to figure out certificate pinning.

@brainwane brainwane added the needs discussion a product management/policy issue maintainers and users should discuss label Mar 14, 2019
@brainwane
Copy link
Contributor

Thank you to everyone who's raised this issue and shared their thoughts and useful resources! And sorry for the slow response!

Short answer: we'll be discussing TUF & Warehouse much more in April.

Longer answer:

The folks working on Warehouse have gotten funding to concentrate on improving Warehouse's security, and have kicked off work (funded by the Open Technology Fund) towards multi-factor auth, API keys, and an audit trail. And -- to quote the blog post --

Facebook... has provided the Python Software Foundation with a monetary gift that will be used to fund the development and deployment of enhanced security features to PyPI....

The PSF Packaging Working Group plans to use these funds to implement highly requested security features in PyPI such as cryptographic signing and verification of files uploaded and installed from the index. Additionally, systems for the automated detection of malicious uploads will lower the time to response and improve the resiliency of PyPI against attacks such as "pytosquatting".

This work will be undertaken in the second half of 2019 but planning will begin in the second quarter of the year.

We anticipate that in mid-April (so, basically within about a month) we'll be announcing a formal Request For Information to ask people to tell us about their interest in being contracted to do this work, and that part of that discussion will be further, more detailed conversations about whether TUF is the right tool for this job. So please watch for that, on this issue and on https://discuss.python.org/c/packaging .

(cc @pradyunsg since I think you're interested in this.)

@JustinCappos
Copy link

From the TUF side, we're very interested in moving this forward. Let us know what we can do to help!

@LucidOne
Copy link
Author

LucidOne commented Apr 3, 2019

@trishankatdatadog
Copy link
Contributor

Same, happy to help with this, just let us know how.

@westurner
Copy link

"PyPI security work: multifactor auth progress & help needed"
https://discuss.python.org/t/pypi-security-work-multifactor-auth-progress-help-needed/1042/10

@brainwane
Copy link
Contributor

At PyCon sprints several people spoke about the potential future of TUF in Warehouse and Python packaging, and put notes at https://docs.google.com/document/d/1Wz2-ECkicJgAmQDxMFivWmU2ZunKvPZ2UfQ59zDGj7g/ .

@trishankatdatadog
Copy link
Contributor

trishankatdatadog commented May 23, 2019 via email

@ofek
Copy link
Contributor

ofek commented May 23, 2019

I'll also devote whatever time is necessary to get this done

@lukpueh
Copy link
Contributor

lukpueh commented May 24, 2019

Thanks for putting together our notes, @brainwane! It was a pleasure meeting you guys at PyCon. @ewdurbin, any news on the RFI?

@ofek and @trishankatdatadog, your help will be very much appreciated.

@brainwane
Copy link
Contributor

Please check out the newly posted Request for Interest regarding upcoming work implementing cryptographic signing and malware detection on PyPI.

Our current timeline:

Date Milestone
August 28 Request for Information period opens.
September 18 Request for Information period closes.
September 23 Request for Proposal period opens.
October 16 Request for Proposal period closes.
October 29 Date proposals will have received a decision.
November 30 Contracts for accepted proposals should be finalized.
December 2 Contract work commences.

And then we intend to complete the project over a three to five month period, beginning December 2019.

We're hoping to get participation from potential participants and other experts in the discussion forum, especially about implementation questions, including which of the TUF PEPs (if either) to implement!

@brainwane
Copy link
Contributor

See the PSF's new blog post & the open RFP. Later this year, PyPI wants to start:

  • Implementation of PEP 458 once accepted to add integration of The Update Framework to PyPI
  • Development of either a stand alone service or code in the Warehouse codebase to create, sign, serve, and handle caching concerns for TUF metadata
  • Development of necessary code in the Warehouse codebase to integrate TUF metadata and signing

This means we need to move PEP 458 from "Deferred" to "Accepted" status. Per @ewdurbin's guidance, this means we'll need to get PEP 458 revised, as necessary, to pin down specifics, such as key distribution (who, where, how many?) plus any technical choices that TUF leaves up to implementations. To revise PEP 458 and get it accepted, we'll need to collaborate with previous implementers and other experts.

Given the RFP timeline the latest we should get the PEP accepted is 2 December 2019, but I'd much prefer we get it accepted by mid-October.

@trishankatdatadog
Copy link
Contributor

Thanks for the update, @brainwane!

@JustinCappos @lukpueh Ok, so we have our work ahead of us. I have work obligations to meet, but can devote whatever time I can for this. Let's plan ASAP.

@ofek
Copy link
Contributor

ofek commented Sep 26, 2019

Let me know if you need more assistance, I'd be glad to help!

brainwane added a commit to brainwane/peps that referenced this issue Sep 26, 2019
Facebook Research has now funded implementation of
cryptographic signing of packages on PyPI. Per
pypi/warehouse#5247 (comment)
this means that PEP 458 now moves out of Deferred
status and into Draft status.

Since the PEP was created, the BDFL-Delegate for
PyPI-related PEPs has shifted, and Donald Stufft
is now the Delegate.
brettcannon pushed a commit to python/peps that referenced this issue Sep 26, 2019
Facebook Research has now funded implementation of
cryptographic signing of packages on PyPI. Per
pypi/warehouse#5247 (comment)
this means that PEP 458 now moves out of Deferred
status and into Draft status.

Since the PEP was created, the BDFL-Delegate for
PyPI-related PEPs has shifted, and Donald Stufft
is now the Delegate.
@brainwane
Copy link
Contributor

brainwane commented Sep 26, 2019

Now that the PEP is back in Draft status*, I think the next steps are for one or more of the PEP authors to:

@dstufft is now the BDFL-Delegate for this PEP so it'll have to be the other authors (@trishankatdatadog, @vladimir-v-diaz, @JustinCappos) who push this forward. If we want to get any revisions done and get Donald to accept the PEP by mid-October then you should start the steps above in the next couple days, in my opinion.

* the version at python.org needs to be re-generated, but python/peps#1177 was accepted

@brainwane
Copy link
Contributor

A few of us had a chat today and are working to update the PEP (python/peps#1178 is part of that), and one or more of the PEP authors will be reaching out to @ewdurbin with a few questions.

@pradyunsg
Copy link
Contributor

@brainwane FYI - I'm happy to help with implementing functionality on the client side (i.e. pip) when we get to that point.

I think we'd want to create a tracking issue on pip's issue tracker to have implementation related discussions there, after the PEP is accepted (AFAICT how clients interact with TUF-enabled PyPI is covered by the PEP and would be discussed in the discussions on discuss.python.org).

@trishankatdatadog
Copy link
Contributor

Hi @ewdurbin and @dstufft, we have a few questions for which we could use your help:

  1. By "key distribution," do you mean who manages how many keys and where on the PyPI side? Do you also mean how package managers such as pip would determine which keys to trust in the first place?
  2. What is the current deployment process for Warehouse? This will help us determine how to edit the PEP to discuss how to update the TUF-specific code in Warehouse.
  3. What else would you like to see more about, or see changed in the PEP?

Thanks for your time!

@trishankatdatadog
Copy link
Contributor

@ewdurbin @dstufft I have also sent you both an email about a conference call this week, if possible. Thanks!

@brainwane
Copy link
Contributor

Current status: python/peps#1203 is awaiting review from @dstufft to revise PEP 458. After that, there needs to be a discussion on https://discuss.python.org/c/packaging to get the PEP from "Draft" to "Accepted".

In order to make implementation easier, Dustin wants to work towards implementing #726 (removing Test PyPI from our infrastructure will make key stuff far easier). @di will be speaking more on that in the relevant issue soon.

And, starting in December, @ewdurbin will be managing the contractors who will implement TUF on PyPI. Then the first big key ceremony will be in April at PyCon North America -- if you haven't put PyCon on your calendar yet, you probably should! Conference registration will open later this month.

@brainwane
Copy link
Contributor

@jku has some related work people might want to give feedback on, in pip: pypa/pip#8585 and pypa/pip#9041 .

@brainwane
Copy link
Contributor

I see #7488 (comment) mentions a few blockers that people are currently working on ("some bugs in the TUF reference implementation, namely missing roledb state when reloading the repository").

A few people are working on those, including @sechkova and @lukpueh and @trishankatdatadog. I'm sure they would welcome help.

I believe all of this is still true except that theupdateframework/tuf#1045 is closed.

@joshuagl
Copy link

We addressed all of the blockers for Warehouse integration of TUF mentioned above. The remaining, recently filed, issue in TUF is the addition of an abstract signing interface to support the use of signing keys stored in Hashicorp Vault.

That work is being discussed in theupdateframework/python-tuf#1263

@brainwane
Copy link
Contributor

I'm having trouble following some of the twists and turns in the linked issues and pull requests, so please forgive my ignorance -- what is left in order to finalize TUF support on PyPI? Just theupdateframework/python-tuf#574 ?

(And then attention ought to move to pypa/pip#8585 to finish up the pip side, I believe.)

@woodruffw
Copy link
Member

On the TUF side, abstract signer support is still needed. secure-systems-lab/securesystemslib#319 added it to SSLib, but I don't believe that work's been integrated into TUF itself yet. Once it is, I'll be able to continue work on the various Vault interfaces that Warehouse will use to sign metadata.

@joshuagl
Copy link

On the TUF side, abstract signer support is still needed. secure-systems-lab/securesystemslib#319 added it to SSLib, but I don't believe that work's been integrated into TUF itself yet.

Correct, though there's a PR which I'm planning to review next week theupdateframework/python-tuf#1272

@westurner
Copy link

It may not be necessary, but is there a milestone or a project board to collect the issues for this epic?

"Package signing & detection/verification" says "78%" complete, but milestones can't include issues from other repos?
https://github.com/pypa/warehouse/milestone/16

Project boards can reference issues from multiple repos.
https://github.com/pypa/warehouse/projects

It's not clear who would create and update a GH project board if even necessary for these issues

@woodruffw
Copy link
Member

I think a project board would certainly help! I only have triage permissions on this repo, so @brainwane or someone else with more permissions might need to either grant me access or do it.

@brainwane
Copy link
Contributor

sorry, I don't have time to look into this - @ewdurbin could you see about giving Will project board permissions for this repo? Thanks.

@trishankatdatadog
Copy link
Contributor

Speaking of which, do we have updates about the integration? Have not heard updates in a while...

Cc @joshuagl @mnm678

@abitrolly
Copy link
Contributor

abitrolly commented Aug 31, 2021

Sorry for joining late at the party. I tried to understand how TUF compares to blockchain protection mechanisms against take over and tampering, and to me TUF claims seem misleading.

First TUF main page at https://theupdateframework.io/ claims it provides protection from repo take over.

The Update Framework (TUF) helps developers maintain the security of software update systems, providing protection even against attackers that compromise the repository or signing keys.

And then in https://theupdateframework.io/overview/#how-does-tuf-secure-updates it says this.

TUF identifies the updates, downloads them, and checks them against the metadata that it also downloads from the repository.

In the blockhain world that means that attacker can rehash the content of the repo, and trick clients that the signed content is legit, because clients don't even a copy of Merkle Tree hash to validate the repo at any point in history. How TUF is protects from that? Could someone explain it like I am five?

If the security (by the spec) is provided by offline keys and out-of-band keys distribution, then I don't see how that security can be implemented, or if it worths the complication. For example, https://fwupd.org/ distributes firmware updates for hardware on Linux, is simple and secure without TUF. If analogy with the blockchain is hard, this can be used as an alternative baseline.

@JustinCappos
Copy link

JustinCappos commented Aug 31, 2021 via email

@abitrolly
Copy link
Contributor

@JustinCappos I am afraid that a distraction for 5 years olds, not an explanation really. :D

@mnm678
Copy link

mnm678 commented Aug 31, 2021

In the blockhain world that means that attacker can rehash the content of the repo, and trick clients that the signed content is legit, because clients don't even a copy of Merkle Tree hash to validate the repo at any point in history. How TUF is protects from that? Could someone explain it like I am five?

TUF and blockchains are based on different threat models. A blockchain uses decentralized nodes so that an attacker would have to compromise a lot of these nodes to gain control. However, it's not always practical to have a network of trusted nodes for software distribution, and it takes a lot of computation to do the proof-of-work necessary to add new items to a blockchain. TUF instead takes the existing package manager approach, and uses offline keys, revocation, and pinned keys to ensure that a compromise of the repository can be detected and recovered from. Using the blockchain analogy, TUF uses pinned root keys instead of a Merkle Tree hash to validate the state of the repository. This has the advantage that the pinned root keys remain valid through updates to the repository.

If the security (by the spec) is provided by offline keys and out-of-band keys distribution, then I don't see how that security can be implemented, or if it worths the complication. For example, https://fwupd.org/ distributes firmware updates for hardware on Linux, is simple and secure without TUF. If analogy with the blockchain is hard, this can be used as an alternative baseline.

This model has already been mostly adopted by PyPI, as well as many others, so it is certainly possible to implement. @trishankatdatadog can provide more insight into deploying TUF in production.

I don't know the details about https://fwupd.org/ specifically, but numerous supply chain security compromises of production systems occur because of a repository or key compromise. TUF mitigates these risks through the use of offline keys, threshold delegations, and namespacing.

@JustinCappos
Copy link

JustinCappos commented Aug 31, 2021 via email

@trishankatdatadog
Copy link
Contributor

trishankatdatadog commented Aug 31, 2021

Also a blockchain doesn't deal with the problems of how do you figure out what to put on there and who can change it if it is wrong / stale / keys are compromised. TUF handles those cases.

I agree. I have no idea why TUF is being compared to a blockchain without the reader doing their due research.

If you must, see this article we wrote comparing and contrasting a centralized "blockchain" (transparent/tamper-evident logs) to TUF, and why you probably want to use both.

@abitrolly
Copy link
Contributor

@mnm678 first, thanks for the explanation. Some nerdy guys like me are completely senseless to people when it comes to "defending the truth". ) I try not to criticize, but when I fail, please forgive me.

However, it's not always practical to have a network of trusted nodes for software distribution,

That's an mistake no.1 (hope you don't mind the terminology, but I don't know another word). Nodes in blockchain are not trusted. They follow the consensus rules. Good nodes do not listen to those who do not follow the consensus. Validating the consensus in that every node does when receiving the block. This way you have near real-time sync of package info and threat detection.

and it takes a lot of computation to do the proof-of-work necessary to add new items to a blockchain.

Mistake no.2 (again I don don't blame anyone - it took me several years to separate blockchain technology from blockchain hype). Proof-of-work is a consensus algorithm for ledgers (accounting books) which designed to solve double spending problem. PyPI is not a ledger, so it is totally irrelevant here. Blockchain is a signed chain of signed blocks. In case of PyPI, one block can be just one package data. The agreement, who can add the blocks is the consensus. "Every user with an account in PyPI can add block" may be a valid rule. "Only blocks that are signed with offline keys" may be a valid rule (although this can be extended to "keys that are signed by offline keys"). "Only users who have the most balance" is not the valid rule for PyPI, but it is another consensus for public ledgers called proof-of-stake.

TUF instead takes the existing package manager approach, and uses offline keys, revocation, and pinned keys to ensure that a compromise of the repository can be detected and recovered from. Using the blockchain analogy, TUF uses pinned root keys instead of a Merkle Tree hash to validate the state of the repository. This has the advantage that the pinned root keys remain valid through updates to the repository.

How packagers sign their packages if TUF private keys are offline?

What are pinned keys? My 5 years old have just read from Wikipedia that public keys pinning for HTTP was considered deprecated, and my search query for pinned keys show a lot of articles that do not recommend this technique.

Unfortunately, without understanding if TUF pinned keys are similar to HTTP pinning keys, I can not comment on if they can really replace Merkle Tree in validating the current state of repository. The state in Merkle Tree not only covers specific package, it coverts the state of all packages at the moment it is generated. If the pinned key signs the state of repository, then it brings another question.

Who owns pinned keys? (package maintainer, PyPI admin, TUF admin)

This model has already been mostly adopted by PyPI, as well as many others, so it is certainly possible to implement.

This doesn't answer the original question - how specifically to sign PyPI packages with offline keys, and which out-of-band channels PyPI users should use for keys distribution. A simple example for a monkey who wants to upload package to PyPI in the most secure manner would do.

I don't know the details about https://fwupd.org/ specifically, but numerous supply chain security compromises of production systems occur because of a repository or key compromise. TUF mitigates these risks through the use of offline keys, threshold delegations, and namespacing.

I haven't found https://fwupd.org/ in the list, so it is hard for to me to accept this argument against it. If TUF security is provided by offline keys, so does the https://fwupd.org/ but without the complications imposed by TUF. https://fwupd.org/ distributes packages signed/encrypted by vendor key (TUF offline keys), and BIOS and other hardware (according to UEFI spec) will not update itself if the signature doesn't match hardcoded public key (TUF out-of-band channel). So the security of TUF and https://fwupd.org/ are equivalent.

@JustinCappos
Copy link

JustinCappos commented Aug 31, 2021 via email

@abitrolly
Copy link
Contributor

Also a blockchain doesn't deal with the problems of how do you figure out what to put on there and who can change it if it is wrong / stale / keys are compromised. TUF handles those cases.

@JustinCappos that's a valid point, and a tough problem. if anyone can explain in those childish terms how the handling is done, that would clear up my doubts. Right now I understand this as if offline keys are lost, everything is lost. The same way if private key on the blockchain is lost. On the blockchain the problem is solved with multisignature keys, so that you need 3 out of 5 signatures to make multisig valid. There are also extensions that allow to migrate valid multisig to another multisig with no missing keys.

If you must, see this article we wrote comparing and contrasting a centralized "blockchain" (transparent/tamper-evident logs) to TUF, and why you probably want to use both.

@trishankatdatadog yes, I've read it (after asking), and I like TL very much. I think it is a way to go. So far it seemd that TUF adds a very high level of complexity even if TL + TUF is the most secure. It is hard to explain, unlike blockchain concepts, which many people have already learned. It also hard to me to wrap my head how the TUF absence of immutable history and third-party auditing can provide security in the world, where the state of dependency tree is often more important than the state of packages you own.

While I don't think that TUF is the way to go, I think it may have some good ideas on how to manage signing keys, so instead of following TUF or using combined TF+TUF, there may be a slimmed down version of security framework, that reuses components from both and also leverages some best practices from blockchain technology (like real-time sync, notifications and caching).

@ewdurbin
Copy link
Member

Hello @abitrolly! I appreciate your engagement and concern with the security of PyPI shown in this discussion.

However, there are multiple points in the recent conversation where you have chosen to belittle or dismiss things as "childish" and comparing efforts of those involved to 5 year olds. This isn't very respectful of the effort and time that people have put into this work.

I'd like to ask you to review the PSF Code of Conduct, which this repository and discussion adheres, before further disrespectful behavior becomes an issue.

@trishankatdatadog
Copy link
Contributor

While I don't think that TUF is the way to go, I think it may have some good ideas on how to manage signing keys, so instead of following TUF or using combined TF+TUF, there may be a slimmed down version of security framework, that reuses components from both and also leverages some best practices from blockchain technology (like real-time sync, notifications and caching).

Consider that if something looks complicated, there might be good reasons for it, especially if it was designed with a threat model with nation-state attackers in mind. Feel free to use TLs all you like, but the PyPA consensus has been for TUF, with the community free to record TUF metadata on TLs if they wish, thus getting the best of both worlds.

@abitrolly
Copy link
Contributor

@ewdurbin all I wanted is to receive a layperson-friendly explanation as it happens in https://www.reddit.com/r/explainlikeimfive/ which I've subscribed to. I apologize that I haven't referenced it in the first place. Does that clarify that the phrase "explain me like I am five" is not done to belittle or dismiss things as "childish", or offend those who put many efforts in developing and promoting TUF?

I'd like to ask you to review the PSF Code of Conduct, which this repository and discussion adheres, before further disrespectful behavior becomes an issue.

I acknowledge time and effort that people put into developing TUF and trying to include it into Python distribution index. If the critics of TUF framework itself is seen as disrespectful behavior, then it will be better for me to leave the people to their business.

@westurner
Copy link

westurner commented Sep 3, 2021

Thanks for your feedback.

IMHO, Sigstore should be (1) at least rooted in a trustless blockchain; and (2) using ld-proofs and W3C CCG Cryptographic Signature Suite URIs for future-proofing. That aside, how can Sigstore and TUF work together?

Is there a good ELI5 graphic of the PyPI TUF package build and release workflow, and maybe also a complete sequence diagram?
https://en.wikipedia.org/wiki/Sequence_diagram

https://www.sigstore.dev
Sigstore architecture summary

@JustinCappos
Copy link

JustinCappos commented Sep 3, 2021 via email

@trishankatdatadog
Copy link
Contributor

trishankatdatadog commented Sep 3, 2021

IMHO, Sigstore should be (1) at least rooted in a trustless blockchain; and (2) using ld-proofs and W3C Signature Suite URIs. That aside, how can Sigstore and TUF work together?

I'm not: (1) sure that there is such a thing as a "trustless" blockchain, and (2) familiar with these technologies. However, Marina and I wrote a blog post about how you can combine TUF and transparent/tamper-evident logs such as sigstore. TLDR: you can publish TUF timestamp metadata on sigstore. My upcoming talk at SupplyChainSecurityCon will discuss how the Datadog Agent integrations is the first transparent, compromise-resilient software publication pipeline in the world.

Is there a good ELI5 graphic of the PyPI TUF package build and release workflow, and maybe also a complete sequence diagram?

I don't think there is one right now, but perhaps you could help us make one using the descriptions from PEPs 458 and 480?

@trishankatdatadog
Copy link
Contributor

In a rush, but quickly wanted to point out that Sigstore uses TUF...

Yes. This will be a separate TUF repository for open source projects, distinct from the one for PyPI right now. However, PyPI can publish its own TUF timestamps to sigstore.

@westurner

This comment has been minimized.

@pypi pypi locked as off-topic and limited conversation to collaborators Sep 4, 2021
@di
Copy link
Member

di commented Feb 1, 2022

I've published a roadmap for the PEP 458 rollout in #10672. Please note that this issue is for PEP 458-related development work only, and is not a place to discuss TUF alternatives, issues with TUF as a framework, or ask for explanations on how TUF works.

@di di closed this as completed Feb 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
needs discussion a product management/policy issue maintainers and users should discuss
Projects
None yet
Development

No branches or pull requests