This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 548397 - The platform's executables are not signed in the p2 update site
Summary: The platform's executables are not signed in the p2 update site
Status: RESOLVED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.12   Edit
Hardware: PC Windows 7
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Sravan Kumar Lakkimsetti CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-18 11:13 EDT by Ed Merks CLA
Modified: 2019-06-24 06:20 EDT (History)
15 users (show)

See Also:


Attachments
Signature check log (2.31 KB, text/plain)
2019-06-18 23:28 EDT, Sravan Kumar Lakkimsetti CLA
no flags Details
Signature check log (6.56 KB, text/plain)
2019-06-19 00:28 EDT, Sravan Kumar Lakkimsetti CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Andrey Loskutov CLA 2019-06-18 11:16:09 EDT
Ed, have you checked if this is a regression in 4.12?
Comment 2 Ed Merks CLA 2019-06-18 11:20:19 EDT
No, I'd have to go back and find out which one stopped being signed, but I will start that process now.
Comment 3 Andrey Loskutov CLA 2019-06-18 11:23:46 EDT
(In reply to Ed Merks from comment #2)
> No, I'd have to go back and find out which one stopped being signed, but I
> will start that process now.

Thanks Ed. Unfortunately p2/maven is not my field of expertise, so I can't help here.
Comment 5 Ed Merks CLA 2019-06-18 11:25:59 EDT
Yes, I'm not a Maven/Tycho expert either. :-(

So I'm not sure which build step has gone astray...
Comment 6 Andrey Loskutov CLA 2019-06-18 11:29:33 EDT
Dani, Sravan: if this is "just" some missing maven /tyche flag / script change & rebuild, should we consider this for 4.12 final, or is this too late? Sounds like a serious issue.
Comment 7 Rolf Theunissen CLA 2019-06-18 11:54:01 EDT
At least eclipse.platform.releng.tychoeclipsebuilder/platform/pom.xml has a eclipse-sign profile.
Apparently this profile is not run (anymore), maybe some missing option when the build is triggered?
Comment 8 Ed Willink CLA 2019-06-18 12:42:06 EDT
(In reply to Ed Merks from comment #5)
> Yes, I'm not a Maven/Tycho expert either. :-(
> 
> So I'm not sure which build step has gone astray...

IIRC during 2019-03 both Xtext and OCL had a rogue unsigned plugin. Problem went away with a rebuild. Seems like an intermittency somewhere.
Comment 9 Dani Megert CLA 2019-06-18 12:52:48 EDT
Sravan, please have a look.
Comment 10 Dani Megert CLA 2019-06-18 13:06:23 EDT
We need to find out how it actually impacts users and since when this is the case.

NOTE: The executable in our downloads, including EPPs are signed.
Comment 11 Ed Willink CLA 2019-06-18 13:11:02 EDT
NB. Previously it was a one-off. Just one plugin in just one build. You need to look at precisely the problem build to see the problem.
Comment 12 Ed Merks CLA 2019-06-18 13:13:58 EDT
Note that on this page currently:

https://www.eclipse.org/downloads/packages/

almost 3,000,000 people have downloaded the installer.  The most popular package was download about 500,000 times.  So most people install using the installer (and on windows that contains an unsigned eclipse-inst.exe) and will end up with an unsigned eclipse.exe for their 2019-06 installations too.  Also, people updating their existing installation will end up updating to an unsigned eclipse.exe; the IU containing it has a new version number.  

As such, if having an unsigned exe is a problem, a majority of the people will have that problem.  That being said, my Windows 7 Pro system has never complained that it's running an unsigned executable, so I don't know how much of a problem this really is...
Comment 13 Andrey Loskutov CLA 2019-06-18 13:32:31 EDT
(In reply to Dani Megert from comment #10)
> We need to find out how it actually impacts users and since when this is the
> case.
> 
> NOTE: The executable in our downloads, including EPPs are signed.

The original discussion started on mailing list was about slow startup due MS defender antivirus checks, and there was a suspect that this could be related to  not signed executable.

Ed, is this possible to replace executable created by Oomph (not signed because from p2 update site) with the signed one from SDK (not sure if p2 will cry because they differ) and check if this would have any effect on startup time?
Comment 14 Ed Merks CLA 2019-06-18 13:39:32 EDT
I've personally seen no indication that would lead me to believe that a signed versus an unsigned executable has a performance impact.  My newer installations seem no slower to launch than the older ones.  But I have in the past specifically disabled virus checking for some directories to avoid p2 update/director problems, e.g., locking of files that prevent them from being moved.  

Unfortunately I'm traveling this week (in Ottawa at the Eclipse board meeting) and will be minimally available before next week.  So I'm not in a position to run extensive tests on the performance impact...

It seems to me that lack of signatures is kind of in and of itself a problem, even if there is no performance impact.  But I don't know the real "importance" of signatures to the Windows community...
Comment 15 Ed Willink CLA 2019-06-18 13:56:44 EDT
When I install N-builds or third party software, I have to reassure an Eclipse popup that I really want to proceed with the install. Presumably there is at least a risk that users will have to reassure Eclipse that an unsigned Eclipse is a sound Eclipse.
Comment 16 Dani Megert CLA 2019-06-18 20:31:03 EDT
(In reply to Andrey Loskutov from comment #13)
> (In reply to Dani Megert from comment #10)
> > We need to find out how it actually impacts users and since when this is the
> > case.
> > 
> > NOTE: The executable in our downloads, including EPPs are signed.
> 
> The original discussion started on mailing list was about slow startup due
> MS defender antivirus checks, and there was a suspect that this could be
> related to  not signed executable.
Most likely unrelated, see https://www.eclipse.org/lists/platform-dev/msg01728.html.
Comment 17 Sravan Kumar Lakkimsetti CLA 2019-06-18 23:28:38 EDT
Created attachment 278991 [details]
Signature check log

I went through platform build process and I found that platform signs the launcher only while preparing the product (SDK, platform and equinox runtime). 

Unsigned launcher executables are published in the repo. It is the client's responsibility to sign them.

I did a signature check on the executables published from 4.4.2 onward(in the repo) and found none of these are signed. See attached log
Comment 18 Sravan Kumar Lakkimsetti CLA 2019-06-19 00:28:50 EDT
Created attachment 278994 [details]
Signature check log

Updated signature check log
Comment 19 Ed Merks CLA 2019-06-19 05:10:33 EDT
Hmmm, I was pretty sure I found digital signatures in older repos, but now I can't verify that either. They all have the same name, so easily confused with each other. So I suppose it must have been this way for a long time (forever) making it less worrisome.

Nevertheless, the repositories are supposed to contain signed content and installations are created from that signed content, so if executables are not signed in the repository, it's not possible to create an installation with a signed executable from that (nor will updates update to contain a signed executable).  Of course the client (being the installer or p2 director) is not able to sign the executables that it downloads from a p2 repository so the signature has to come from the original source; that's the whole point of digital signatures.

So it seems to me it is necessarily the producer's responsibility to sign the executables also in the p2 repositories.  It may well be that this has been overlooked in the past, but that doesn't mean it should therefore be overlooked in the future.

That being said, if no one actually cares (no one complained up to now after all), and/or if folks are going to actually argue that it's okay to not have signed executables in the p2 repository (which seems highly suspect to me), there's simply no reason for me to care personally.  After all, obviously the neither installer (nor p2 updates and p2 director) can sign them while they're being installed and it can't change any repository's contents so it can't be responsible for whether the executables are signed or not; that must be the repository producers responsibility...
Comment 20 Sravan Kumar Lakkimsetti CLA 2019-06-19 05:25:00 EDT
I created a new repo with signed windows launchers. Is it possible for you to test?

https://download.eclipse.org/eclipse/updates/4.12/signed-R-4.12-201906051800/
Comment 21 Ed Merks CLA 2019-06-19 06:46:01 EDT
Thanks for investigating!

My first attempt installed the wrong thing because the IU version hasn't changed.

My second attempt in a completely clean user environment with mirroring disabled failed with this message:

  ERROR: org.eclipse.equinox.p2.engine code=0 session context was:(profile=D__test-sign_sdk-latest_eclipse, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
  ERROR: org.eclipse.equinox.p2.artifact.repository code=0 Failed to transfer artifact canonical: binary,org.eclipse.sdk.ide.executable.win32.win32.x86_64,4.12.0.I20190605-1800.
    ERROR: org.eclipse.equinox.p2.artifact.repository code=13 Retry another mirror
      ERROR: org.eclipse.equinox.p2.artifact.repository code=0 Problems downloading artifact: binary,org.eclipse.sdk.ide.executable.win32.win32.x86_64,4.12.0.I20190605-1800.
        ERROR: org.eclipse.equinox.p2.artifact.repository code=1203 SHA-256 hash is not as expected. Expected: 26ebb46bd9891901053ba091af6f6384a0e40cc7e027c2b63a0cb14ef50f4cfd and found b231baef80c217b264e163cbfefef781d2d0dcac9d256869392b3327f41be00a.
    ERROR: org.eclipse.equinox.p2.artifact.repository code=13 Retry another mirror


That looks like a mismatch in the artifact metadata's hash and the actual hash...
Comment 22 Sravan Kumar Lakkimsetti CLA 2019-06-19 07:42:03 EDT
I updated the metadata now. Can you try again?
Comment 23 Sravan Kumar Lakkimsetti CLA 2019-06-19 08:02:23 EDT
@Ed,

Since this problem is not a regression, can we release 4.12 today?

We will take care of this in 4.13
Comment 24 Ed Merks CLA 2019-06-19 08:57:23 EDT
Yes, I talked to Dani just now too, and given it's been this way for a long time, I see no reason to hold up the release for a long existing problem.

I'll will try again and get back to you shortly.
Comment 25 Ed Merks CLA 2019-06-19 09:03:04 EDT
Yes, with that repo the installer now produces an installation with a signed eclipse.exe and an signed eclipsec.exe.

During the next release cycle we can investigate how a signed version of these will affect the downstream builds.  After all, the eclipse.exe is generally branded, which changes its contents, which I think it implies it needs to be resigned at that step...

Thanks again for taking such prompt action!!
Comment 26 Sravan Kumar Lakkimsetti CLA 2019-06-19 09:11:13 EDT
Since this is no longer a blocker I am closing this bug and raised Bug 548431 to track windows signing issue.