digital signatures for plugins

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: Hacker, petermad, Stefan2, white

Post Reply
drac
Junior Member
Junior Member
Posts: 37
Joined: 2006-04-04, 19:50 UTC

digital signatures for plugins

Post by *drac »

Currently Total Commander doesn't display if a plugin is digitally signed by its author or not. Since plugins are DLLs, which can do whatever parent process (Total Commander) does, I think it would be good for users to know if a plugin was digitally signed or not.

I did sign the SFTP plugin with dependencies build in, but the user has to go to totalcmd\plugins\wfx\sftpplug\sftpplug.wfx[64] and then hit file properties -> Digital Signatures to find out more information.

Total Commander should do this check before even installing the plugin and display some information to the user. MSDN provides an example on how to do this.

Authenticode might be a burden for plugin authors, but it should be a win for all Total Commander plugin users.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Are you really sure that so many plugin writers can/will buy a certificate? I don't think so. Most plugins will be unsigned anyway.

And, there are a lot of other ways of injecting malicious code except infecting plugins. So there should be another level of protection, not by TC means.
drac
Junior Member
Junior Member
Posts: 37
Joined: 2006-04-04, 19:50 UTC

Post by *drac »

MVV wrote:Are you really sure that so many plugin writers can/will buy a certificate? I don't think so. Most plugins will be unsigned anyway.

And, there are a lot of other ways of injecting malicious code except infecting plugins. So there should be another level of protection, not by TC means.
I got mine for free from Certum, see this Stackoverflow entry. You have to live with the "Open Source Developer" stigma :)

Christian Ghisler signs his plugins and its a good way to know if a binary has been tempered with.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

If everyone may self-sign a plugin, virus may do it too...
However I think signature checking may be done in a form of TC plugin which will show unsigned plugins (it may be setup for autorun to be loaded automatically). Additionally such plugin may sigh unsigned plugins with some certificate just to be sure that all plugins are signed.
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

Sorry, but like MVV said:
If everyone can add a signature to their files, virus developers can too.
A signature is only worth how much users trust that third party.

But what is the security gain, besides the check at install time?
Most likely users will check the popular plug-ins first anyway, so you could always countercheck with things like virustotal, etc.
I think a bigger problem is plug-ins files being tempered with, after they are installed.

Using a hash system in TC would be much more efficient, to detect such files.
Before installing a plug-in, TC will ask the user if he wants to scan the file first or does other measures to make sure that the file is clean.
TC will then create hash sums of the main plug-in DLL file, and stores it in a secure location, that can't be tempered with by users without losing it's integrity (like the password store).
Now for every plug-in load TC will check the hash, and if not equal, it warns the user about a tempered file and inhibits loading.
Of course, the initial check for trust would still be the problem.


There are ways in Windows to automatically check for program file integrity by the OS.
But:
  • TC can't be used portable that way
  • You can't just overwrite files manually any more
  • TC needs a new trusted installer, most likely MSI style
  • The plug-ins installation will probably not work the way it is now (every plug-in would need to be a .msp package)
TC plugins: PCREsearch and RegXtract
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

drac,
I am not really sure I understand. If I sign my malware plugin it would still be malware. If I am afraid the DLL has been tampered with I check the hash. Perhaps a hash check would be equivalent? Am I missing something?

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Post Reply