[Nix-dev] Authenticating binary substitutes

Ludovic Courtès ludo at gnu.org
Wed May 22 23:48:12 CEST 2013


Eelco Dolstra <eelco.dolstra at logicblox.com> skribis:

> On 22/05/13 16:16, Ludovic Courtès wrote:
>
>> I think it’s enough to sign nars.  What do you think it would add to
>> sign narinfos as well?
>
> I think it's enough to sign the narinfo, since it contains the hash of the NAR
> (which Nix already verifies).

Right.

> Also, rather than having a separate .sig file, the signature could be stored in
> the narinfo file itself.  That would halve the number of HTTP requests.

Well, the .sig only needs to be downloaded when the user actually
substitutes something; this is not a situation where it would really
make a difference.

Also, how would the signature be formatted, then?

> On 22/05/13 15:19, Lluís Batlle i Rossell wrote:
>
>>> How about: rather than relying on nix-cache-info, nix.conf should specify a list
>>> of fingerprints of trusted OpenPGP signing keys.  Then when we fetch a .narinfo,
>>> we check whether it is signed by a trusted key.  This way you don't have the
>>> problem Lluís described.
>> 
>> Well, if we use gpg, gpg has its own system of trust, too. Or it's about not
>> using gpg?
>
> Now that you mention it, it would probably be better to use OpenSSL than GnuPG,
> given that we already have a (optional) dependency on OpenSSL, while GnuPG would
> be a fairly big new dependency.

I was mentioning OpenPGP (the spec), not GnuPG (an implementation).

What format and model do you have in mind?

The ideal may be SPKI/SDSI here, but OpenPGP is what people are used to,
and it’s readily available.

Ludo’.


More information about the nix-dev mailing list