Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <kijdjK8TrndDINJsZmPKxfdpiDaRwCvpNP0cqzmmySQwBeDhQWDHTsOMFkNH9vZ8KvEZG8hy027J4PnqWL18_BcaxkDgGdDvgmF3K0pJ-no=@hexsys.org>
Date: Wed, 31 Dec 2025 00:27:41 +0000
From: Ali Polatel <alip@...sys.org>
To: oss-security@...ts.openwall.com
Subject: Re: Best practices for signature verifcation

On Monday, 29 December 2025 at 02:36, Demi Marie Obenour <demiobenour@...il.com> wrote:

> In light of the recent GnuPG vulnerabilities, I remembered that OpenPGP
> is almost never the right choice. CMS/PKCS#7 isn't any better, and
> X.509 is also bad except that its extremely wide deployment in TLS
> keeps it alive.
>
> See https://www.latacora/com/blog/2019/07/16/the-pgp-problem/
>
> and https://soatok.blog/2024/11/15/what-to-use-instead-of-pgp/.

OpenBSD has signify[1] and the article "Securing OpenBSD From Us To You"
by the main author is worth reading. Having been a loyal GnuPG user for
long years, these vulnerabilities made me reconsider my approach to
signing yet again. This time, though, I decided to act on it. I wrote
a clean Rust implementation of signify and called it signify-rs[3].
It uses the same license (ISC) as the reference implementation. Code
is free of unsafes and arithmetic side effects. No proc macros are used
in the code or any dependencies making it static-linking friendly. It's
fairly portable and passes tests on FreeBSD, NetBSD, Linux and Windows.

My initial goal is to switch signing Syd binary releases from gpg to
signify. Next intention is to consider signing package manifests on
Exherbo Linux distribution with it. If my memory serves me right,
Gentoo Linux and Portage has support for GPG signed manifests and
it has been a longstanding issue in Exherbo Linux how we want to
do manifests. Current consensus is to use thin package manifests
on a best-effort basis because we lack the developer time to go
all in. Thin manifests store a single checksum and package size
of the relevant package distfiles. My goal/dream is to integrate
signify into this workflow and start signing thin manifests using
signify.

Sharing is caring, so here is the git[5] and CI[6]. CI saves
static-linked signify binaries as build artifacts which gives
an option to quickly test. Enjoy.

Finally, my contribution is the "keyring" feature. When built
with this feature on Linux, keyrings(7) support is compiled in.
This adds a "-k <key-id>" argument to the subcommands -G(enerate)
and -S(ign) when the user may submit a 32-bit key ID rather than
inputting the passphrase manually with a prompt.

[1]: https://man.openbsd.org/signify
[2]: https://www.openbsd.org/papers/bsdcan-signify.html
[3]: https://crates.io/crates/signify-rs
[4]: https://www.kepstin.ca/blog/manifest-generation-in-exherbo/
[5]: https://git.sr.ht/~alip/signify
[6]: https://builds.sr.ht/~alip/signify

> --
> Sincerely,
> Demi Marie Obenour (she/her/hers)

Best regards,
Ali Polatel
Download attachment "publickey - alip@...sys.org - 0xC22DA9DE.asc" of type "application/pgp-keys" (637 bytes)

Download attachment "signature.asc" of type "application/pgp-signature" (344 bytes)

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.