Input for Supply Chain Security Panel at NixCon

I am organizing a Supply Chain Security Panel at NixCon!

I’d like to collect some topics, questions and related projects, info about which people are working on specific topics, from the community here, and factor them into my preparation for the panel. So if you have any input like that, please post about it in this topic!

We also have panelists already, but if you’d interested in being on the panel or moderating, please PM me here or on Matrix, since I don’t want to adjudicate participation in public. :smile:

To give a bit of a (non-exaustive) starting point, here are some of the areas that I’d like to touch on, there is for sure a lot I am still missing though:

  • Reproducibility
  • FODs
  • Nix and/or SBOMs and how they are related
  • Vulnerability Tracking
  • https://github.com/mschwaig/laut and related/other efforts to strengthening the guarantees Nix can give in some way
  • Remote Attestation with Precomputed Hashes

I do not plan to take question form the audience at the panel directly for time reasons.

8 Likes

I’m not very familiar with cryptography and modern supply chain security practices, so maybe these don’t make sense, but I have a few questions bouncing around in my head about Laut:

  1. How does it fit in with existing tools such as SigStore?
  2. How does it handle threshold signing such as what is in FREON?
  3. Can developers sign artifacts or is it only for package maintainers?
  4. How might a package maintainer integrate a developer’s non-nix signed release? (I.e. they sign a source code bundle for a particular release, or a compiled artifact)
1 Like

From the top of my head:

  • updates of the addition to the purl spec
  • salsa applicability
  • interoperability with guac
3 Likes

What do we even expect nixpkgs maintainers and reviewers to check?

2 Likes

Another from purl regarding how SBOM spec should allow for both precise and fuzzy identifiers: What is a package? · Issue #257 · package-url/purl-spec · GitHub

1 Like

cc @mlieberman85 , Guac co-creator & SLSA Steering committee member

3 Likes

I will not be at NixCon, but I’m happy to help with anything regarding SLSA and GUAC topics.

2 Likes

I can also help with GUAC, SLSA and Sigstore, as a maintainer of GUAC and currently working on Sigstore for ML (though I won’t be at NixCon either,sadly)

1 Like

Thanks for the great questions so far!

Is there anybody who would be interested in moderating the panel?

I would rather be a panelist myself, than moderate.

Is a video recording of the panel available?

The plan is to have the video recordings available in ~2 weeks. For now you can check the raw streams at NixCon 2025 - Switzerland, September 5-7, 2025

3 Likes

The recordings of the panel are online now at
https://media.ccc.de/v/nixcon2025-56404-supply-chain-security-p
and
https://youtu.be/ncqy7S92UMw

We made the decision to not go too far out into the weeds on the technical topics, but I did the prep to answer your questions, so I will post my replies to your questions in this thread.

2 Likes

A transparency log like SigStore, can sit conceptually below laut, as a sort of foundation. It’s just for practical reasons that we are defining it as a signature format first. Using a transparency log instead is a matter of putting the same basic data into SigStore instead. @arianvp did some work to put the relevant data in SigStore in his project https://github.com/arianvp/nix-attest, but that’s not the same data format laut uses, yet. Where transparency logs can do more than signatures is if you want to make sure some specific evil build did not run ahead of yours, but there are some issues with that approach, and I think there are better alternatives.

The idea of having a fixed quorum of producers and building that into the cryptography fits well with a producer-centric perspective on supply chains. Laut tries to put consumers of software in control of what they trust instead, so you would not want a quorum like that or really any consensus-mechanism built into the cryptography, to give consumers the flexibility to freely pick their own quorum as part of the validation logic. I think this consumer-centric perspective also fits well with Nix conceptually. Nix also makes it easy for consumers to modify software after all.

There is some way in which you end up with a git repo full of nix code that defines what you are building. There are supply chain security questions about how to secure the contribution process to that repo, and the repo itself, but laut does not handle any of that in its scope, not even the maintainer aspects.
Laut only secures the technical systems that turn a tree of derivations into the final build output.
A lot of old school open source people prefer trusting people over trusting systems, but I think it makes sense to solve trust in people and systems differently or on different levels.
We can make the dependency tree in Nix express and perform these kinds of people-related signature checks, meaning laut doesn’t deliberately deal with that, but you can do it in Nix on top of laut (also see next answer).

Solving issues around how signatures interact with reproducibility in nix was one of the starting points for the work that turned into laut. Laut is designed to be strong enough that you can do serious testing an verification that depends on bitwise identity, like verifying signatures, as part of Nix’s dependency tree, which works well conceptually. Making your dependency tree express those signature checks is one option. The way I did this on top of IA derivations back in 2022 was very brittle and dark-magic-y, but we can make that more user friendly on top of laut and / or CA derivations.

Thanks a lot for those questions!

3 Likes