Computer Security, The Next 50 Years
bariswheel writes "Alan Cox, fellow at Red Hat Linux, gives a short-and-sweet talk at the European OSCON on the The Next 50 Years of Computer Security. Implementations of modularity, Trusted Computing hardware, 'separation of secrets,' and overcoming the challenge of users not reading dialog boxes, will be crucial milestones as we head on to the future. He states: "As security improves, we need to keep building things which are usable, which are turned on by default, which means understanding users is the target for the next 50 years. You don't buy a car with optional bumpers. You can have a steering wheel fitted if you like, but it comes with a spike by default." All of this has to be shipped in a way that doesn't stop the user from doing things."
What the article is basically saying is that we have to teach people how to use their computers. >85% of all the computer problems I encounter are PEBKAC (Problem Exists Between Keyboard And Chair). It's like the old saying goes, make something idiot proof and the world will make a better idiot. If people just learn how to use their computers (you shouldn't download exe's from people you don't know, a firewall is a good thing to have, ActiveX controls aren't safe and your default response shouldn't be to install them no matter what IE says) a huge number of problems would be eliminated. Like it or not, users are the biggest computer problem today. The problem shouldn't be usability, it should be user-ability.
I've always pictured the color of OS zealotry as a sort of bright flamingo pinkish hue
Oh, but we know that Microsoft will be on top of the game. For sure. Absolutely. Windows 2050 will be THE safest, THE most secure version of Windows yet.
It's either on the beat or off the beat, it's that easy.
I moderate therefore I rule!
--
and overcoming the challenge of users not reading dialog boxes,
/etc once, do you wanna do it again?"
That's true. So true. Tons of times I just clicked yes without reading or reading fully and then later on down the road...oops.
I updated outlook express for my mom the one time and it autmatically blocked attachments, confusing her. And me, until I found where to uncheck that.
The computer can be taught to enforce security policies that the users themselves are unlikely to uphold, given their propensity to ignore advisories and software dialog boxes. Software engineers must build in security that is active by default, and they must understand the user so that security tools are actually used.
But also keep in mind who the user will be. Some advanced users would probaly not need/want the security by default. New users or non-advanced ones would need it. We would need to find security to be adaptable.
In a comical way maybe the system can say "well you hosed
That which does not kill me only postpones the inevitable.
This article seems to focus more on security by design, which is of course important. However security also can be implemented at the language level, for example Java's sandbox. I predict that over the next 50 years languages will improve to prevent programmer from making "stupid" mistakes such as copying user input directly into a buffer that will be become an html document. Tainting already solves some of these problems, but there is still work to be done. (for example to discourage programmers from creating empty "de-tainting" routines when they don't have time to do it properly, de-tainting should really be done by libraries and by the language alone, but I digress)
Philosophy.
Am I alone in finding this kind of topic - "The state of X in the year 2050" - really, incredibly pointless?
Given that no-one has been able to make accurate predictions about computer technology over a 5-year horizon, what possible basis is there for thinking that anyone can predict what the state of technology will be in 50 years time? By then we may be keeping our data secure by storing it in a hidden pocket of space-time in a parallel universe 10,000,000 years back in time and retrieving it through a wormhole when required. Or civilization may have collapsed, leaving us with the 'pointy rock tied to a stick' device as our best form of security.
My point is: no-one knows. It's pointless to predict this far into the future.
I would prefer people stick to making these kinds of predictions about large, relatively predictable fields (e.g.: the climate; oil supplies; population; tectonic plate movement) and leave their prognostications about ridiculous things like 'computer security' to something like a 2-10 year window.
Or we could, you know, read some *news* instead of some random predictions.
Read Pynchon.
....and overcoming the challenge of users not reading dialog boxes....
I have to agree that this is a serious concern and as a tech, I often want to blame the stupid user since I deal with them frequently but on the other hand, can you really blame them? In any given day, an end user sees an unmeasurable amount of dialog boxes and our minds are designed to filter out things that are annoying. Instead of "Hey your email wasnt sent" you get 3 dialog boxes first that have no meaning. Of course, there is the next-next-finish epidemic as well. Does anyone really ready any options anymore? We all just go for the next button until it turns into a finish button. There are 2 huge problems with this. The first is that mixed in with all these stupid notices, there are important messages that go unnoticed. The second issue is that this is something that spyware companies thrive on for legalities.... in the middle of those next-next-finish games is the little line that signs your computer over to the dark side.
you know he wrote the Red Hat FireStarter iptables GUI and various parts of the linux tcp/ip stack right?
Cybie! aka Ralph Bonnell
Wonder how many of those will become obsolete in 10 years only, not because the problem stopped to exist, just because terms of the problem changed giving little meaning for that to normal people. Today computing security is a tangible problem, even normal users have to worry about virus, trojans, worms, spyware, not having trivial keys, etc, but how much of that problems could remain for users in 20-50 years from here, or how they will be perceived?
We can be here discussing war strategy with sticks and stones while in 50 years (to be a bit exaggerated :) they use rayguns, but some of the things discussed now could remain valid then, some could work if some fallback must be done to something similar to stick and stones, and other things could had no meaning anymore.
As a responsible parent, you don't give your kids alcohol. As a responsible driver, you don't drive 100mph near a school. And there are actually laws that, if you happen to be careless and negligant, you get fined or worse.
Only when it comes to computers and the 'net, you can be as irresponsible as you want and you won't get any negative feedback from the feds. You may click on every "please click here to become a spambot" message. You may install every kind of adware, while at the same time ignoring or even blocking updates for your system (and thus becoming the primary target for exploits like the recent WMF desaster). Nobody will hold you accountable for it. Even if you manage to fall for some cheap "please insert all your personal, bank and credit card info, and send us a copy of your passport" scam, more often than not your bank will cover for you.
Why is ignorance and irresponsibility an excuse when it comes to computers and the 'net? Because judges and legislators can't make sense outta it? At least, given some laws I'd get that impression.
Security starts with teaching the users, and most of all teaching them responsibility. Not better tech. You can have the best high secuirity door if you falls for the cheapest con job and let anyone in, you'll still have some things missing after every visit.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Aviation went through this phase a long time ago. Accidents were called "pilot error" unless the airplane broke up in midair.
The field of "human factors" recognized that controls and displays need to be designed so that it's possible for a well trained human to get things right even in a hurry. Controls with opposite effects should not be right next to each other. Controls should give meaningful feedback. Important controls should be out in the open where someone can see them.
The aviation world fixed up the cockpit and many "pilot errors" disappeared.
You can't apply these lessons too directly to computer security because bad guys are actively trying to trick computer users. Nobody sends pilots email in flight saying "You must pull the red lever immediately to avoid running out of fuel!". But at least it should be easy enough to secure a computer that an employee from a security firm can do it. We're not there yet -- a recent security conference had vendors running open WiFi access points without firewalls.
Remember - if you are going to extend the analogy:
1) You can't drive a car unless you have proven that you posess a minimum level of competency.
2) The car has to meet certain standards to be roadworthy
3) People by and large don't expect others to maintain their car for free
4) You have to pay the governmnet ragularly to be allowed to drive it on the road
I's either a bad analogy, or a very good one - you pick.
More importantly, the security models currently used in the kernel are broken, and we can formally prove that they are inadequate. Academic research in this area has been extremely productive, but there are major barriers to entry in the commercial world for the obvious reasons.
At the moment it looks like micrkernel architectures (real ones, none of this hybrid stuff) coupled with capability based security systems, should be able to provide real, formally verifiable security. As with most things there are a handful of practical barriers to overcome (primarily performance related), but another 5-10 years and those problems should be sorted out.
For a more in-depth discussion of capability systems, see the wiki page, and this essay by Dr. Jonathan Shapiro. (And to be perfectly honest, he's a professor of mine and my views are colored as such.)
The problem with IT security, historically, has been a "Default Allow" approach. This is getting better, but still has a LOOOONG ways to go. Things should not be automatically allowed, they hsould have to be turned on.
Consider Windows 98/98SE. File sharing is off. And the OS itself was more or less a fairly secure (for it's time) OS on a DEFAULT install. Compare to Win2k/WinXP. Default admin shares open, often in upgrade cases we have Administrative accounts with NO password, which (with the exception of XP) could log on remotely. XP at least was intelligent enough in it's design so as not to allow remote logins with blank passwords for Administrative accounts (UNLESS ENABLED). THAT, my friends, is the correct approach to security. Default = NO!
Once this has been accomplished, and the general mindset of programmers when considering security (and Admins, etc.) is to assume the user knows NOTHING, and that things just should NOT be permitted without full warning of the consequences (this is where figuring out how to get users to read dialogue boxes comes in handy) security will be much tighter. And lets not forget about vendors and programmers just ignoring security glitches. It's sad to see a Buffer Overflow attack remain a vulnerability in a program beyond a single patch release, once identified. Even sadder, is when further program releases STILL have not addressed the issue (see, Medal of Honor Voting)). The 'solution' is disabling a bonafide FEATURE. This type of nonchalant approach to security will always land the general populaec in the grips of security vulnerabilities, with no clearn end in sight.
My thoughts.
I'm with you here. My sibling post (correct term?) and you make nice points about lazy programmers, so I'm going to go and bash some bad designers, too.
I've found that Windows and its applications are really, really stupid with the way they handle dialog boxes. Kind of off-topic, I know, but since most security issues are luser error, I can guess that most of those are caused by blind click-click-clicking Yes to dialog boxes.
I get a dialog box when I try to delete a file. I get several dialog boxes whenever a program crashes - something about an error report. At my school, they've managed to set up Word so you get three dialog boxes when you open it: one asking you to disable macros (to which the average user goes What?), another telling you that macros have been disabled (yes, that's why I clicked that button) and another telling you that there's a window open.
With so many dialog boxes around, most of them unnecessary, I don't blame the average user for ignoring the important ones. If you press Yes, the nasty evil dialog box will go away. Sooner or later the times comes when you install some spyware trying to get rid of the dialog box.
And what has Vista done? Put even more of them in. Quoth even Paul Thurrott: The problem with UAP is that it throws up an unbelievable number of warning dialogs for even the simplest of tasks. That these dialogs pop up repeatedly for the same action would be comical if it weren't so amazingly frustrating. It would be hilarious if it weren't going to affect hundreds of millions of people in a few short months. It is, in fact, almost criminal in its insidiousness. Gah, showering the user with more dialog boxes is useless, as they ignore them all anyway!
I'm on a roll here. What else?
When I want to Save a document, I go to the button marked Save. At least, I do on Gnome and OS X: Windows likes to have buttons called "Yes", "No" and "Cancel" instead. So instead of doing what I want (Saving), I have to read the dialog to find out which button Saves my document. And most people wouldn't even try to read it; they'd just click Yes and hope it was the right one. Oh, and the dialog text is often in a small font with no discernable main point about what it does.
Windows dialog boxes are obtrusive enough that people would rather make them go away (think: click Yes) than working out what they do. Here's an example of a Mac one - I can tell what each button does before reading, and even if I have to read, there's some nice bold text so I don't have to read it all. Here's the worst example of a Windows one I could find. Note none of the above things that the Mac does right. This isn't the best example, I know, but it points out where Windows fails best.
I reckon you could've eliminated a fair few spyware installs if the "Yes" button was labelled "Install Software", or the "Next" button was lebelled "Accept this Licence", or whatever it is. No more "Let's click Yes to make the nasty evil dialog box go away", but some people will think "Do I really want to install this software?" or "Do I really want to run this program?". It makes people think, and thinking is good when you're trying to make decisions.
Oh, and:
"How dare you try to type at another window when I am here, infidel scum!"
"And Vista dyes the rest of the screen black, just in case you didn't notice me the first time. See?"
Where was I? Oh yes, computer security. I don't think it's fair to blame any and all spyware installations on user error. Windows places you on a path above a crevasse with a bicycle, and expects you to pedal to the other side. Sure, you might get blown off by wind (read: security holes in the OS). Many people
Guy asked me for a quarter for a cup of coffee. So I bit him.
2) Wasted CPU cycles and how you can prevent them.
3) Proper punch card disposal protocols.
The point? We have *no clue* what the computer will look fifty years from now, to say nothing of the security environment. Todays threats will be laughable in light of the technology and practices of tomorrow (many of the threats we spend a lot of time worrying about, such as spyware, are features not of all computing, not even of a particular application class, but that plague one particular implementation of an application which just happens to have a majority share of the market today -- who can say whether a security researcher in 2056 will even remember the words "Internet Explorer" from his history class or whether browsing any analogue to the Internet will be a common activity?). Prognosticating the threat environment that far out is a waste of time. Look to the near term (next 5 years: spam, viruses, malware) and address the perinneals (dumb users, men on the inside, etc) rather than trying to prognosticate what year we'll have the computer equivalent of flying cars.
Help poke pirates in the eyepatch, arr.