Web-based applications and web-based desktops are a promising future. A problem
will be the user data confidentiality.
You get maximum security by using a computer that contains all the data
and software needed, with no connection to the outer world and enclosed
in a high-frequency shielded Faraday cage. Yet web-based applications have
several practical advantages upon this. It depends on the actual way they work:
One option is you keep your data with you, for example inside a
USB flash stick, but you work on the data with web-based
applications. This allows you to use the applications on any computer
linked to the Web and to always use the latest versions of those
applications. Your data is supposed to stay under your control. For this you
have to thrust both the owner of the computer and the provider of the
web-based software.
A second option is your data is sent for processing towards the
servers of the web-based provider. This is for example very handy when
you work on calculation extensive data, like creating images and
movies. You use the calculation power of the remote servers. The local
computer just acts as an interface. When you finish, the servers are
supposed to keep no track of your data. Again, you have to thrust the
provider. I assume the data was transmitted encrypted.
The third option is your data keeps in the provider's servers.
This is for example what happens with webmail systems. Some of them
even propose to keep your mails on the long term and provide gigabytes
of space. You completely entrust your data to the provider. You don't
even need a USB stick, just a login and a password.
An interesting solution could be to have the provider only act on
encrypted data. The data keeps encrypted.
This is easy to perform for example for mail. Let's assume this quite
secure solution: the users have each a laptop that contains the
necessary browser and encryption/decryption software. When a user sends
a mail using his webmail interface, the data leaves his laptop
encrypted. The provider does not have the decryption keys. When the
laptop of the recipient mail gets the encrypted mail, its
browser decrypts the text to displays it.
More difficult will be a text editor where the text keeps in the
provider's server. Suppose the server has to make a search on the text.
If the word being searched is "hello" and "hello" encrypts to
"AZf6UF8GvKah82dLOEc657bQ", the laptop asks the server to search for
occurrences of "AZf6UF8GvKah82dLOEc657bQ". The server will never know
what the user is actually searching for anyway it will yield the
correct response. This imposes conditions on the way the text is
encrypted and lowers the encryption strength. The ability to use
wildcards or search parts of words will decrease the encryption
strength too much.
Even more difficult is a spreadsheet. Let's keep to the basic four
arithmetic operations. You can think it is enough to encrypt the
numbers a way that keeps computable. For example if 3 encodes to
FRFzG78, 2 encodes to GERA48sO and 5 encodes to 78GERo846, the
computation of FRFzG78 + GERA48sO yields 78GERo846, without the server
knowing it were 3, 2 and 5. The problem is the server just has to
compute FRFzG78 / FRFzG78 to know how you encode 1. From there on it
can decode all other numbers. There are ways to cope with this but the
ones I imagine imply gigantic amounts of memory, bandwidth and computer
power. Not worth the game...
The only practical solution I imagine would be to have three separate
devices:
The provider's server keeps your data, always encrypted.
Somewhere, at your home or in a vault, a processor contains the
encryption and decryption keys for your data and will perform all
computations. One can imagine the processor is encased a way that it
destroys the keys on any attempt to open it.
You travel with a lightweight laptop that just encrypts and
decrypts data and has a display and input devices like a keyboard.
Why have your processor separate from your laptop?
That way you can use a very powerful processor, heavy and
power-consuming, or even many processors.
You can hire your processor when you don't use it, for massive
parallel computing.
You can have backup processors in different locations. This is
maybe a future for bank vaults. Wired bank vaults.
Why have your data encrypted and entrusted to a provider? Sure in lots
of cases your data can be stored together with your processor. Anyway
there are practical advantages to entrust your data to a provider. For
example he can backup it in many places, possibly even on the Moon. One
never knows... The destruction of your processors is not a big problem.
Only the data is precious.