Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Making p2 deal with (PGP?) signatures for artifacts in metadata

On Thu, Jan 21, 2021 at 10:33 AM Johan Compagner <jcompagner@xxxxxxxxx> wrote:

Signing is a certification of origin that follows the artifact around no matter where it goes...

I've just tried getting Jetty to sign there artifacts and it seems that external PGP signature is preferred way in the way more security constraint world of web servers. Actually signatures in MANIFEST.MF are considered harmful for some usecases . Please see for details.

(from there)
"If the eclipse-jarsigner-plugin modifies the META-INF/MANIFEST.MF with signatures, then this is undesired for general usage of our artifacts (there are enough projects that use Eclipse Jetty with bytecode manipulation where actually signed jar files do cause problems at the classloader)."

really? i have never heard of that.. isn't byte code manipulation done after the class that you manipulate is loaded through the classloader and checked? or are they saying if you generate fully new classes in memory with that package then you get that "different signagures of the same package" problem?

There is support for verifying at runtime (search in and this is probably similar to the usecase that breaks for Jetty. If Jetty specifically removed injar signatures I trust them that they had a real issue.

In many years i think we used byte code manipulation stuff (even currently i think in our eclipse product) and everything is signed but i never encountered any problem, so i really wonder if there is a unit test

If you do PGP external signatures, where do those external things come from when for example eclipse wants to update/install plugins (and it checks that kind of signature)? Do i need to have an internet connection? 

These are all questions that are up for discussion. Technically it should be possible for the pgp public key used to sign the plugin to be part of the p2 metadata so being part of the update site itself and using eclipse foundation pgp key as "Root CA" and distribute with eclipse always ( like it's expected "Root CA" is available on the machines or current certificate validation will fail) and this Root CA being used to sign the metadata itself.
Such a model could allow extensibility like the following:
- more open "Root CA" in which smaller entities can participate if they don't have the infrastructure/money/whatever to pay for certificates etc.
- stricter "Root CA" where only your company certificate is trusted as one artifact could be signed with multiple certificates if the signature is external.

Again, there is no work started so such questions are very appreciated as they allow us all to think more in detail and potential blockers. Keep'em coming!

p2-dev mailing list
To unsubscribe from this list, visit

Alexander Kurtakov
Red Hat Eclipse Team

Back to the top