The last post discussed the “dancing bunnies” problem and offered a resolution by triggering an instinctive “danger” response from the user. While considering the problem, I started thinking: would this problem always exist? Is it a definitive feature of user-system interface, or is it a problem relating to the core of being “human”?
We, the people of Troy
The city of Troy was a secure system. They had strong walls, alert guards, and were well trained, until this appeared:
The Trojans clicked “Run” without even reading Laocoon and Cassandra’s warning, and to this day, Trojan horses, bunnies and lolcats are wheeled through the walls. Maybe we should stop it. Stop building walls, that is.
We, the people of the Web
They promised me a network computer. They really did. A dumb terminal that I’ll touch with my thumb and it will immediately access all my services from the web. Let’s assume they will make good on that promise. Now, will it be more, or less secure? Obviously, it won’t be as secure as a personal computer that is not connected to the web. Let’s assume that every computer is connected to the web and assume that they are very well protected, except for security risks caused by the users themselves. That’s a very lenient assumption, so let’s be kind to the net terminal as well. We’ll assume that data, kept remotely, is secure from attacks and can only be accessed by its rightful owner. We will also assume that all services currently enabled on the net terminal are non-malicious. That last assumption is not enough because we have to assume also that every service enabled is also safe from attacks, meaning that it is impossible to hack into the service itself or fake the service’s certificates.
Now we are offered a new service called Trojan Horse. It’s a cool service that shows a horse on wheels rolling on the task bar, ejecting dancing bunnies every now and then. How will this look like on the net terminal? Maybe something like this:
You may notice that I have a lot of control here. I could allow some application to use the screen (for a limited time), deny it the speakers if I’m at work or ask to run it anonymously. This will create a negotiation between the running program and the user, perhaps notifying it that the application cannot run without access to personal settings. Now that I do not have one central wall blocking access to my computer, I have little walls blocking access to each resource type. I can use these little walls to control programs even after they have been installed, for instance, if I am notified that the software is about to release Greek soldiers and take over my system (which I have not yet granted it permissions to do), I could deny it.
Better living through more protocols
The real beauty of this is that all the technology for cloud computing and authorized access to resources exists today, only not at the right place. Billing systems do it all the time: authenticating users, consuming resources, tracking usage. The Diameter protocol, for instance, can be used just as well when protecting system resources. Applications can authenticate themselves, consult local policy servers, request and consume resources. They can be tracked and permissions to abusive programs can be revoked.
Does this solve the “dancing bunnies” problem? Not immediately, but it does allow the system to monitor and locate abusive programs and then alert the user, so on the long run, they will be found and removed. This can also be done in current systems, but since it is not broken down into components that communicate with each other, it will require many resources just to keep track of everything – which might be worse than drunken Trojans. When it comes to controlling which programs are allowed what access to your resources and personal data, a network computer is safer than a desktop computer. If we consider that sometime in the future we’ll carry our personal data on a mobile device and use such terminals just to access remote information or use cloud computing services, our personal data is likely to be much better managed than it is now.