My application employs asymmetric encryption / decryption, the process of how this work is detailed below:

Encryption - Server A

  1. Data is encrypted using the public key of server B
  2. Data is signed using the private key of server A

Admin users of the website can see the submitted data via another web application situated on 'Server B' where the decryption process takes place:

Decryption - Server B

  1. Data is verified using the public key of server A
  2. Data is decrypted using private key of server B

However, if Server A for example was 'somehow' penetrated where an attacker managed to get root access to the server, the encryption would be pointless as the attacker could modify my application code to stop encrypting data and even to send the data to another location. I would like to know how I can secure the application itself from being tampered with, if root access is gained on the server? The application is hosted on Windows Server 2003.


1 Answer 1


One of the rules of security is:

If the attacker has access to your box, it is his

This includes root access, or physical access. As root on a server an attacker can do anything.

So, what this means is you should be focusing more on prevention and detection. If you can place controls that make it difficult enough for an attacker that you spot them before they gain access, you can do something about it.

So, how do you do that?

First and foremost - get up to date. This includes upgrading to a more recent OS, and then keeping patches up to date. If a security advisory comes out in any application or framework you are using, test it doesn't break your system, then patch!

Use firewalls - they are a basic solution, but limiting access to only that which is required for business is still essential.

Similarly, limit account access.

Implement some form of IDS - whether it is a full blown IDS, logging of odd activity, su/admin logging etc. Log everything your IT administrators have access to.

Defence in depth - never gets old :-)


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .