Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

Please help me pick right design of software…

I have to design client-server software, where the server should verify that the client runs software from specific source code. It has to be verifiable that the software doesn't simulate actions (results of algorithms). So, we accept that client could be compromised. We just want to be able to notice if that happens.

The real task behind this question: “burn-after-read” text messenger. How can a sender verify that the receiving client really deleted message and didn't store it in RAM?

A related question: is there FOSS software which operates like Smart card?

The design should implement open source software, and could be applied to p2p network (that means server could be compromised too, and we need avoid 51% botnet attack). It should be applied to basic x86 desktops, without TPM, CA & Smart card.

I feel answer could lie near fields of cryptography, GPG, i2p, DHT, Kademlia, Bitcoin.

share|improve this question
1  
Short answer: that is impossible on today's commodity PC, even discounting the generic attack in this answer. –  fgrieu Apr 22 at 18:19
1  
Intel seems to be working on something that could enable such functionality in future CPUs. (But Intel itself could still subvert it and it obviously can't prevent the analog attack) –  CodesInChaos Apr 22 at 18:50
1  
You might find this paper interesting. –  mikeazo Apr 22 at 19:10
    
@mikeazo In short: a method of calculating a checksum without a (practical) possibility for an attacker to alter the memory in such a way that the same checksum is obtained. (yawn) –  owlstead Apr 23 at 0:53

1 Answer 1

Assumption: the normal user can read the message, which is displayed on his screen.

Generic attack: the user uses a camera to take a snapshot of the screen when the message is displayed.

And voila! What you seek is demonstrated to be impossible.

share|improve this answer
    
Dear Thomas, I already assumed that and it is obvious. But that doesn't stop anybody who interested to seek such theoretical algorithm. I found the comment of @owlstead is more useful. –  Alex May 13 at 18:47
1  
@Alex Are you just trying to motivate people to do research in that area, or are you really interested in an answer to your question? Thomas provided an on-point answer. I honestly don’t see where the comment by CodesInChaos is more useful as it merely philosophizes about rumours related to a potential future product functionality that has yet to be confirmed. –  e-sushi Sep 5 at 1:12

Your Answer

 
discard

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.