Hi, I have a completely untrusted remote (sand)box (stranger has root on it). I'd like to "trigger" running a program on that box and like to get the triggered program's output from that box. My problem is in trusting the output of this program since it (or the layers above/below it) could have been tampered with by the said root user. How can I trust something coming from an untrusted box?
Context: The stranger will be challenged to solve a problem on the box (say, apache fails to start, we'd like the stranger to fix it). To measure whether the stranger has solved the problem, I'd like to run something on the box (ex: ps -ef | grep apache) to validate if the end state has been achieved. However, such a naive 'ps' test can easily be cheated using a rootkit or possibly using other simpler means of reverse engineering / cheating. My current approach is to only extract part of the needed information from the box and do the validation from outside (ex: by comparing against a reference / control / ideal solution). But not all challenges will fit into this scheme (the example outlined above cannot be done this way since we'd like to actually see if such a process is running, however, for instance, I can certainly challenge a person to write a fibonacci series generating program on the machine and be able to confidently validate that program's output from this machine. In this case, the "truth" being validated is universal, whereas systems specific truth (such as whether mysqld has been configured correctly or not) can be found out only by probing the machine). Any solution that involves cryptography / signing / etc., or anything else that is out of the box will be helpful. Any tips / ideas? Regards, -Suraj -- Career Gear - Industry Driven Talent Factory http://careergear.in/ _______________________________________________ ILUGC Mailing List: http://www.ae.iitm.ac.in/mailman/listinfo/ilugc