views:

34

answers:

1

I have an application (exe) that uses some strongly named dll's. If I understand that correctly, nobody can replace the dll's with their own, prepared versions, because they will not be signed. Nobody can replace the exe too, because it's secured by signing the manifest.

But what if somebody prepares their own exe and changes the signature in the manifest file?

+1  A: 

If someone can re-write the manifest file, replace the exe with one of their choice and replace any dll's they want with those of their own choice, then all bets are off.

Bear in mind that the only person able to sign the manifest as you, should be you. If someone else has access to your private key, then they could easily do that. Your users do need to be aware that they should read any information displayed on screen that says What application they're running and Who has signed it. Security is only as good as the weakest link in the chain, sadly that's usually the user.

Have you thought about ClickOnce with the app being downloaded from the source every time it's run, rather than being cached on the users PC. That would at least be a partial mitigation?

Rob
The information, who signed the application is only at the beginning, before installation. After that, when running the application, already installed using ClickOnce, there is no information about that. Even if there were, it could be already prepared by person, who changed the manifest and exe file. Am I right? How can user verify that before running already installed application?
prostynick
There's no way they can verify that I'm aware of - I suppose you could have a check that runs in your code, but as soon as someone replaces the `.exe`, all bets are off I'm afraid.
Rob
@prostynick, thanks for the accepted answer, sorry if it wasn't the answer you were after though! =) Have you thought about ClickOnce with the app being downloaded from the source *every time* it's run, rather than being cached on the users PC. That would at least be a partial mitigation =)
Rob
Yeah, I though about it, but I'm not sure, if it will be good solutions for my needs. I will vote you up later, because I clicked it twice by mistake and it's locked now :)
prostynick
@prostynick, I've added that note to my answer so it should now be clear for up-voting as it's been edited ;=)
Rob