James, Mark,

On 11/3/23 12:33, Mark Thomas wrote:
On 03/11/2023 15:45, James H. H. Lampert wrote:
Forgive me if this might be a bit off-topic. But I haven't found a lot of resources on the subject (and that includes a search of List archives).

For years now, I've been ignoring the note on the Tomcat download pages to verify the downloads, preferably by their PGP signatures, before putting them into service.

This time, though, I decided to follow the instructions. I installed GPG, imported the KEYS file, and checked the signatures.

But everything I've read about GPG, and PGP signature checking, says it's meaningless unless the keys are verified as genuine.

Is there a procedure for doing this? A few days ago, I privately emailed a well-known Tomcat developer, one who has helped me with technical matters in the past, asking for a fingerprint verification. I've heard nothing back (then again, he hasn't been heard from on-List in a few days, so he may be away).

(Sorry... Upcoming production release.)

From the ASF perspective, if the signing key is in the KEYS file then it can be considered valid. The KEYS file is protected to the same degree that the source code is protected.

+1

The KEYS file in in revision control. If someone can overwrite that, they can overwrite the release, anyway, so trust kind of begins there.

The ASF release manager keys should be in the web of trust. Those trust relationships *typically* mean that the person trusting the key has seen and validated government issued photo ID of the key holder. But there is zero guarantee of that.

You can see the signatures on my key if you ask your PGP key manager to download all signatories of my (or any other) key. You can use those to determine whether or not you trust the whole group of signers, including the signed key. For example, my key has been signed by a number of notable members of the ASF. If my key were to have been signed by a handful of people you had never heard of before, you might want to be wary. Because it's a "web", you can follow the relationships until you get to Kevin Bacon at which point I think you *have* to trust it.

A better way to validate the binaries is to reproduce the build. With recent releases, as long as you build with the same Ant and Java version/vendor as the release manager (details are in the build.properties.release file in the root of the source archive), you should be able to build a bit-for-bit identical binary - i.e. the SHSA-512s will match. If a few folks do that and post their results - ideally as part of the release vote - that adds significant weight to the validity of the released files.

Caveats
- the Javadoc bundle will be reproducible if you use the same OS
- everything else *should* be OS independent
- reproducible builds are hard and easily broken - we might not have got
   it right for every file every time

+1 again

The next 11.0 release will include a verify-release ant target which should automate essentially all of that. It can easily be back-ported to the other branches as well.

Alternatively, come along to the next Community Over Code conference, take part in the key signing party and join the web of trust (or just use this as the excuse to come to the conference).

And as a final option (I've done it once in 20 years) you can always arrange to meet a release manager face to face to have your own 2-person key signing party. Offers of $beverages can help facilitate this ;)

I live near Washington, DC if anybody wants to buy me a beer.

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to