Information Security Stack Exchange is a question and answer site for information security professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Suppose for some reason, you and your peers absolutely positively have know that a server is acting honestly.

Could the server behaviour be audited remotely through some mechanism of randomly polling portions of server memory and disk content to check against the predicted result derived from publicly cross-signed drive content?

Or could a server cunningly subvert any such mechanism?

share|improve this question
up vote 2 down vote accepted

I can think of several methods, not necessarily independent:

  • Fully homomorphic encryption, the ability to securely compute on other machines without revealing the data, and possibly without revealing the program itself.
    • HElib, a FOSS project by IBM
    • Scarab a FOSS project, though impractical/slow, it is a good demonstration
  • Secure function evaluation, see External links section of article on secure multi-party computation for possible implementations
  • SNARK/s, (Succint Non-interactive Argument of Knowledge), the ability to turn a program into a proof, and obtain a succinct that the program ran. Here the input isn't provided by you, necessarily, but the twist is, the input can be provided by the computer running the program, and not revealing that input to you. This is a bit different, but for this application, this detail doesn't matter. The program can be verified that it ran fully.

    SCIP (Succinct Computational Integrity and Privacy) is an effort to make this practical. They have designed a virtual architecture called TinyRam, for creating and verifying the program/trace/proof, and are working on a C-compiler to the architecture (see SNARKs for C : Verifying Program Executions Succinctly and in Zero Knowledge (extended version) (PDF)).

See also:

share|improve this answer

A highly skilled adversary could spoof the responses to any remote probe, so the compromised host responded exactly the same as an honest host. Although a technique like probing memory would be difficult to spoof and would certainly detect standard viruses - it's only a skilled targeted attack you'd miss.

If your server is running as a VM then you could get the hypervisor to probe it's memory. A compromised machine can't spoof this, although it can obfuscate the malware to a high degree so it's difficult to detect. And there is the potential risk of guest to host attacks against the hypervisor.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.