0

Web applications on servers often perform tasks in which users have to trust them, e.g. securely storing their passwords.
Is there any way of letting the user convince himself that the server is actually doing what it is supposed to do, e.g. by checking that it is really executing an unmodified compilation of the source code that is publicly available?

  • 3
    I am afraid not. – Philipp Sep 6 '15 at 20:53
  • The easiest way to ensure the server doesn't store your password in plain is by not sending it to the server. But in the fewest cases you have control over the client where you enter the password. Also, try to teach users to enter their password only via custom browser provided UI elements, and to recognize the website faking the web browser's entry form. – user10008 Sep 6 '15 at 22:11
  • Can someone then explain why this is not possible in theory or praxis? – Benjoyo Sep 7 '15 at 5:06
1

The question I believe is more general than securing passwords.

Is there any way of letting the user convince himself that the server is actually doing what it is supposed to do, e.g. by checking that it is really executing an unmodified compilation of the source code that is publicly available?

There is a consortium of companies (Microsoft and more...) called the Trusted Computing Group that have an objective to use hardware and software to do this.

However - the initiative is controversial as it would protect the user against himself also. Richard Stallman came out against the initiative strongly and calls it treacherous computing - one of his concerns was that TC was going to be used by Hollywood to enforce DRM on only one machine.

In practice - this reached a height in the so-called AACS encryption controversy in 2007-9 + with cracking of Blu Ray. If TC had been enforced then a large percentage of the worlds TVs and DVD players would have been bricked.

Since then, free market and consumers seem to have prevailed over the "treacherous designs" of media consortia simply because there is no economic sense in protecting consumers against themselves and even less economic sense in bricking your TV set just because you streamed unprotected content.

Back to your question - it is technically feasible but not a commodity feature in modern operating systems by far. If you wanted to roll your own this comes up with some googling http://www.trustedcomputinggroup.org/developers/software_stack

There is an important related issue of ensuring integrity of deployed code; this is handled superbly in git using SHA1 hashes. When you use Git to deploy your code, you have guaranteed integrity.

| improve this answer | |
  • Thank you, very interesting! Is there any software available then, that can ensure integrity up to application level? – Benjoyo Sep 7 '15 at 8:21
  • In the Linux/Solaris world there is no standard way - see this long thread on Stackoverflow stackoverflow.com/questions/1732927/… In the Microsoft .NET world - signing assemblies is a standard feature in Visual Studio – Danny Lieberman Sep 7 '15 at 9:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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