Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 94461 - [About] Indicate whether plug-ins are signed
Summary: [About] Indicate whether plug-ins are signed
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.3   Edit
Hardware: All All
: P2 enhancement (vote)
Target Milestone: 3.3 M5   Edit
Assignee: Kim Horne CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-10 14:24 EDT by Nick Edgar CLA
Modified: 2007-02-06 10:48 EST (History)
10 users (show)

See Also:


Attachments
Simple "issigned" indicator for ABout box (12.58 KB, patch)
2006-04-10 11:41 EDT, Jay Rosenthal CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Edgar CLA 2005-05-10 14:24:47 EDT
3.1 M7

The about dialog should indicate whether or not a plug-in is signed.

One option would be to include an extra "Signed" column, with a check box or
Yes/No indication.

Can features be signed too?
Comment 1 Nick Edgar CLA 2005-05-10 14:25:24 EDT
For more details, see bug 78208.
Comment 2 Nick Edgar CLA 2005-12-15 11:03:59 EST
Kevin and Adrian, how important is this for 3.2?
Comment 3 Jeff McAffer CLA 2006-02-13 21:47:29 EST
interestingly we are just working out the kinks in the JAR signing approach and Adrian and I were just talking about this.  Seems like this would be pretty important to have.  
Comment 4 Adrian Cho CLA 2006-02-14 13:11:56 EST
It should not just be a yes/no thing but it should indicate the signing party and perhaps there should be a way to get to the certificate.
Comment 5 Jay Rosenthal CLA 2006-02-24 11:53:11 EST
Minimaly, there should be a column indicating if the bundle (plugin/feature) is signed and if it is signed, a column with the Distinguished Name of the signer.

You can "one plus" this many times, but time is running short.  Showing the validity dates of the signing certificate, and if present the signing date (this is the new timestamp in Java 1.5 ) could be helpful too.
Comment 6 Jeff McAffer CLA 2006-02-25 01:41:02 EST
It seems both costly and cluttered to have all this information any time anyone goes to the About dialog.  We should have a mode or separate window that shows all the signing info.  We can put an icon in a column if there is signing info.  Change the icon if we have verified the signature and allow the user to click on the icon to get signer info.
Comment 7 Thomas Watson CLA 2006-03-03 15:28:40 EST
FYI, there is a certificate verifier service org.eclipse.osgi.internal.provisional.verifier.CertificateVerifierFactory that can be used to get signer information from bundles and jar files.  See bug 130383 and bug 127110 for more information.
Comment 8 Boris Bokowski CLA 2006-04-06 17:53:00 EDT
To find out whether a bundle is signed, I have to create a CertificateVerifier. This takes time since it needs to access the disk. To actually verify a bundle's content takes even more time.

I can start fetching the information whether a bundle is signed in a background thread once the dialog is opened, or I could put a button in the dialog that triggers the background thread.

How important is it to always display whether bundles are signed? Is it important enough to cause the hard disk to start working when you open the dialog?

To be precise, I am not talking about the about dialog itself, I am talking about the dialogs with tables in them that open when you click "Feature Details" or "Plug-in Details" in the about dialog.
Comment 9 Boris Bokowski CLA 2006-04-06 18:07:56 EDT
Two more questions:

1. Would users typically want to find out which plug-ins (of all plug-ins) are signed, or would they want to multi-select some bundles to find out whether these specific bundles are signed? (The first option seems to be less complex in the UI, but it causes more disk accesses.)

2. The contents of signed plug-ins can be verified to make sure that the content has not change since it was signed. Would users want to do this for all bundles, or just for a multi-selection of bundles (less costly, but again, more complex to present in the UI)?

I am leaning towards the first option in each case, with two buttons "Show Signers" and "Verify Contents" to trigger Jobs that would stop when the user exits the dialog.
Comment 10 John Arthorne CLA 2006-04-06 18:20:22 EDT
If it's remotely expensive we shouldn't be triggering this for free when the dialog opens.  People going to that dialog for other reasons shouldn't take that hit.  I imagine you could have a "signed" column that would be initially blank or show a "?" character.  Then, if the user clicks the "Show Signers" button it populates that entire column. For your other questions, I'm leaning the same way as you ;)

Another comment: It might make sense to change the label on the existing "More Info" button if more buttons are added.  It doesn't give any clues what it's for.  Perhaps "Legal Info" would be clearer.
Comment 11 Jay Rosenthal CLA 2006-04-10 11:41:05 EDT
Created attachment 38162 [details]
Simple "issigned" indicator for ABout box

Here's a patch I was experimenting with for showing if a bundle is signed or not in the plugin details dialog box.  It's a very inexpensive way to see if a bundle is signed, without actually verifying it.  I did this before the osgi jarverifyer bundle/service became available.

Regarding some of the other issues brought up in this thread...

In my opinion, the plugin details dialog is not used very often (correct me if I'm wrong), so adding a little overhead for the addtion of this valuable information would be OK.

As I understand the jarverifyer service, it does some caching of the results, so if that is being used, AND verification of bundles at load time is turned on, the perfomance should not be too bad, to just get some of the results, like the signer and the validity of the signature and signature chain.  Now I have not had a chance to use the osgi jarverifyer service yet, so I'm just relating what I've been told.. :-)

I agree with changing the label on the "More Info" button.  Thats always bugged me :-)

At a minimum, I think you do want to show that a bundle is signed and who it was signed by.  The next level of info would be showing that the signature is still valid, when it was signed, and the validity of the signature chain or certificate hierarchy.  Also you start down a slippery slope when you begin to display only parts of a certificate or certificate chain.  The next step would be to show the contents of an entire certificate.

I'm not sure, you could do a good job with all of this given the time left.  I'd opt for the "keep it simple" principle and for 3.2 just do what is useful, but too complicated.
Comment 12 Boris Bokowski CLA 2006-05-11 02:27:33 EDT
Since we are not shipping signed plugins in 3.2, this will be addressed in 3.3.
Comment 13 John Arthorne CLA 2006-11-16 16:18:53 EST
This should be back on the radar now that we are producing signed builds.
Comment 14 Boris Bokowski CLA 2007-01-02 11:10:25 EST
Reassigning bugs to reflect changes in ownership.
Comment 15 Boris Bokowski CLA 2007-01-02 11:14:21 EST
Kim, note that this bug has a target milestone of 3.3M5 - we need to make sure that the API provided by Core/OSGi works for us.
Comment 16 Kim Horne CLA 2007-01-08 15:32:42 EST
Initial work in HEAD.  Work is similar to Jay's patch but re-written.  I saw the work as a chance to move the plug-ins dialog to use Jface.  Changes include:

image indicating signed state of the plug-ins (lazily populated)
changed "More Info" to "Legal Info"
added "Show Signing Info"  When pressed, a dialog tray is opened containing the certificate info.

This is only the initial cut. I'm not sure I like the dialog tray - it messes with the help implementation.  I also need to add problems to the signing info (if parts of the jar are incorrect) and ensure that the new column is accessible.   I've created bug 169887 and bug 169888 to track these defects.
Comment 17 Kim Horne CLA 2007-02-06 10:48:54 EST
Verified in I20070206-0010