Questions tagged [host-proof]

"host-proof" means that no unencrypted or insecure data is stored on the server or passed over the network.

"host-proof" goes one step beyond the idea that no unencrypted or insecure data is passed over the network.

In traditional cryptography, people traditionally try to design things so that, even if an attacker completely controls the communication channel between a (trusted) client and a (trusted) server, that attacker will never be able to read the plaintext of the secret documents we send back and forth over that channel. For example, when Bob tries to send a secret message to Alice through email via an intermediate server controlled by Trent, traditional systems assume it's OK for Trent to temporarily decrypt the email from Bob before re-encrypting the email and sending it on to Alice.

People who try to design host-proof applications take this one step further: they try to design things such that, even if an attacker completely controls the server as well as the communication channel, that attacker will never be able to read the plaintext of those secret documents. For example, when Bob tries to send a secret message to Alice through email via an intermediate server controlled by Mallory, we want to be confident that Mallory will never be able to read the plaintext of that message, or to substitute his own forged message in such a way that it tricks Alice into thinking the forged message was from Bob.

Handling passwords in a way that, even if Eve steals the passwd file from the server backup tape, Eve can't recover the actual passwords or otherwise use that data to impersonate any of the authorized users, is one of the great triumphs of the host-proof paradigm.

Wikipedia: Host Proof Storage (see also )

Host-proof applications: doing it wrong, and an attempt to do it right

Passpack Host-Proof Hosting libraries

14 questions
38
votes
4 answers

How can one securely generate an asymmetric key pair from a short passphrase?

Background info: I am planning on making a filehost with which one can encrypt and upload files. To protect the data against any form of hacking, I'd like not to know the encryption key ($K$) used for a file, so the user will have to asymmetrically…
Flumble
  • 485
  • 1
  • 4
  • 6
16
votes
6 answers

Is the decompression of compressed and encrypted data without decryption also theoretically impossible?

We have two communication points in an information system, call them A(lice) and B(ackup). B has to store encrypted data received from A. The storage of B is encrypted, but not compressed1. B should have no option to decrypt the data of A2. However,…
peterh
  • 390
  • 5
  • 18
12
votes
2 answers

Encryption scheme for social-network-like data sharing data via untrusted server?

I am thinking quite a lot lately abut the problem of secure, privacy-preserving social networking. Distributing the network among trusted, preferably self-hosted servers (like Diaspora, GNU Social etc. attempt to do) is obviously not a good solution…
10
votes
1 answer

How do I store encrypted files on a web server and decrypt them locally?

I want to store files (images) on a public webserver and let users see them if they know a password. The server shouldn't have the unecrypted files and the server can only serve files, not perform any server-size computation. One thing that I know…
Eyal
  • 405
  • 1
  • 4
  • 13
7
votes
1 answer

Is this design of client side encryption secure?

I want to build a secure file storage web application. Users should be sure that server doesn't know how to decrypt files so encryption should take place at client side (i.e. in Javascript) and TLS will be used. Also public key cryptography is…
6
votes
2 answers

How should I implement a secure recovery of encryption?

I want to create a system to host as securely as possible encrypted data in a way that not even the system can know the content of the data, but that it could be recovered. I would like to know how is it that other systems implement the use of a…
6
votes
0 answers

How to make a "zero knowledge" cache/key-value store

I'd like to use a possibly insecure cache for storing expensive-to-calculate sensitive information. My requirements are: If the cache ever gets compromised it should reveal nothing about its ids or values (except for the number of records/size of…
Daan Bakker
  • 500
  • 2
  • 10
6
votes
4 answers

Encryption algorithm that produces dummy output on incorrect passwords

Background: I've been thinking about using encryption in the context of backing up files to untrusted locations (to the point of making the file publicly and widely distributed for practically failsafe backup). The problem is, once a file is…
4
votes
3 answers

Encrypted messaging web app design

I’m implementing an encrypted messaging web app using JS. When composing a message, the user is provided with the public key of the recipients. A body field is also rendered for every recipient. After the user clicks submit, the original message is…
tsuzuki
  • 51
  • 2
4
votes
1 answer

How can one share information using the 'host-proof' paradigm?

I am attempting to make a web-based secure password management and sharing utility, both as an academic exercise and to fully understand and feel safe about using it. I really like the idea of a "host-proof" application, where encryption/decryption…
Travis
  • 41
  • 1
4
votes
1 answer

Repeatable crypto

Is there a safe way to do crypto that will always produce the same result for a given input? My use case is transferring deltas of huge files, to a backup server. The backup server has no knowledge of what's in the byte stream (and it shouldn't). In…
2
votes
1 answer

Client side encryption / hashing of "person ID's" with password?

What we're looking for A solution where data is stored and retrieved (!) from a server using a person ID that can only be known at the client (form of anonymization). Furthermore, the client should be able to calculate the original person ID back…
Jochem
  • 123
  • 3
2
votes
1 answer

Tips on conceiving safe software messaging platform

I have a personal project in mind in which I plan to use cryptography in order to let the users be confident in the fact that, even if all data get's stolen, it would be virtually impossible to crack in the next few decades. I would like some advice…
Berzemus
  • 175
  • 5
1
vote
1 answer

Proving ownership of an encryption key

In the context of a host-proof storage service, is there an encryption scheme that allows me to prove to the server that I own the secret key to decrypt the ciphertext I am currently uploading but (indeed) without revealing the key nor the plaintext…