When Does Usability Become a Liability?
nasteric asks: "I caught myself in the middle of a very interesting discussion last Friday over Krispy Kreme donuts and coffee. The discussion had to do with usability and security. Many of the Microsoft Administrators I work with argued the more user friendly Linux becomes, the more vulnerable it becomes. They claimed making Linux a friend of Joe User will require it to 'open itself up' and become more susceptible to attack. Needless to say, this became an endless debate between our Microsoft Administrators and our Linux/Unix Administrators that will undoubtedly continue into the morning. Therefore I pose this question to the Slashdot community. Will making Linux more user friendly result in it becoming less secure? Hopefully your expertise will help shed some light on (and bring to and end) our discussion." Does decent usability necessarily imply the presence of vulnerabilities? Macs seem to have this area down pretty well, with little in the way of vulnerabilities. Can Linux software follow the same route?
Please, no comments about how Mac OS X was "attacked" by a trojan.
It doesn't "expose" some fatal flaw in the OS, nor is it some newly discovered exploit. All it is was an application that displayed a dialog box. Mac OS applications (with the exception of Cocoa applications) have always been able to have:
a.) any icon, and
b.) any name
The only remotely slightly interesting feature of this proof-of-concept was that it stored the executable code within an MP3 ID3 tag, and even contained valid MP3 data. But that's mostly irrelevant, since the executable code could be anywhere, and the code can't even be moved in raw binary form without destroying the resource fork. Though the major media outlets haven't picked up on the subtleties of this thanks to Intego's FUD-mongering and self-serving press release, this "trojan" is nothing more than a Carbon application. (Though, the discussion that comes of this will be fruitful: maybe Apple will revisit yet again the filesystem metadata vs. file extension dichotomy, and discuss novel ways of visually identifying executables, perhaps in the same fashion as aliases.)
So, to get on-topic, no, an OS doesn't necessarily have to become less secure to become user-friendly. Some (most?) of the security of an operating system, both from a user perspective and network perspective, comes from underlying philosophical design principles and fundamentals - not to mention the intensive peer examination that open source software encourages. Sure, some user-friendly "features", such as auto-opening attachments in the preview pane of Outlook, exist to make things "easier" for the user. But this is a wrongheaded approach: a sensible focus on security can solve the majority of problems without necessarily making it harder on the user. Ease of use and security aren't entirely, or even mostly, mutually exclusive.
The key is making security easy to use.
But the age-old technique of "tricking the user" will ALWAYS be possible via various means, on any OS on any platform.
...then you should have asked for their explanation of why OS X is more secure than Windows.
Anonymous Kev
Proudly posting as AC since 1997
(Finally got a dang account in 2004)
On Windows they call it Administrator, on Linux they call it Root. It's the same thing, the user account that has no restrictions on it. Every user wants to run that way, because seeing a "permission denied" message on their own box just isn't going to make them consider the system user-friendly.
It's really more of a user eductation issue than a technical one. The best security practices are usually in counter to an element of ease of use.
Of course if you have elitist programmer types who use their case-modded Amiga's to talk to talk to each in Klingon don't expect your user experience to be one 'Joe User' can use or enjoy. If you are one of those people who are disdainful of people not as smart as you and want to keep Linux/OSS in the hands of your CRT tanned brethren then by all means continue to disparage and FUD usability all day long - just don't complain about Linux's adoption - EVER.
A few things for folks to remember:
-_-
Extremely poor analogy.
We spend literally decades learning to read and write and even then very few people are actually any good at writing books. Natural language is also, compared to computer languages, extremely stable. Natural language are also exactly that - natural. Our brains evolved to support them and our languages evolved over millenia to suit our brains.
Understanding images is considerably more important than language and certainly long pre-dates any human language- written or spoken.
And I'm sure you've heard the expression "A picture is worth a thousand words".
So, your point would be?
Bad analogies are like waxing a monkey with a rainbow.
If popularity breeds vulnerability, Apache should have far more vulnerabilities than IIS. It doesn't.
This theory needs only a slight modification to become valid...
It's popularity among stupid people that breeds vulnerabilities.
Apache may not have very many holes, but it's far too easy to write a PHP script that gives away the keys to the kingdom if you're not careful. A password of "password" is insecure on any system.
one picture is worth a thousand words?
Seriously though, I'm an author and do a lot of writing. We are a visual species - look at the popularity of TV, movies, and video games. Why are GUIs popular? It gives you a lot of information in a small amount of space. Think small applets, like CPU usage or disk usage. More information can be sent quicker using a pie graph and setting colors than just giving raw capacity and percentage used.
But writing is much more precise. When you write something down, you need to know *exactly* what you're saying and who you're saying it to. Otherwise the meaning could be lost.
Because commandline is NOT END-USER FRIENDLY. Things are different when you're a system admin. Click a picture of a music note, you get music. Click a picture with a music note flowing into a CD, you burn your CD. That's much easier than " CD_DA TRACK AUDIO FILE "secret-pregap.wav" START FILE "track1.wav""
Linux: Free if your time is worthless.
All the "secure code" in the world wont shield the system from a clueless user.
/ /dev/rand > /dev/dsp
As secure as you think OSX is, anyone who wanted to write an application to fuck stuff up, call it "Super Happy Funtime Sexy Game", and email it to morons, could do so just as easily as they could with a VBScript file.
I could write:
#!\bin\sh
rm -rf
cat
echo Linux is teh gay!
Email it to some stupid people, tell them they have to run it as root or else they wont see the video of Condoleeza Rice's tits.
Stupid people will run what came with the box they bought at Best Buy. When those boxes start shipping with linux, they'll be on linux. The REALLY stupid people shop at K-Mart, who I understand are in the business of ubercheap linux boxes these days.
Be afraid, be very afraid, of the rootkits that get put on this new army of lindows boxes.
I don't need no instructions to know how to rock!!!!
As you've noted, Mac OSX has managed it (although in all honesty it probably isn't the focus of as many attacks as Windows). I think that the main problem is that if users are running their browsers, email clients etc under their own uid, and they contract a virus then it's going to cause damage to all their files. I don't know about anyone else here, but I value the files in my /home more than the rest of the OS, which can easily be reinstalled (yes, I do back up, BTW).
;-)
I think that maybe all vulnerable processes, like web browsers, irc clients etc should run under a separate uid from the user (maybe each user should have 2 uid's - one normal, and one restricted so that it can only access a subdirectory of the users home). So rather than Mozilla launching as user fredbloggs:fredbloggs, it launches as "fredbloggs_restricted:fredbloggs_restricted" by default. The user could then chown some directory to be writable to fredbloggs_restricted" for downloads, cache etc.
Maybe this is already implemented? The real problem though is that a user could still build and run something they downloaded, potentially wiping all their files, unless a mechanism automatically made anything they installed themselves, run as the restricted user and not their own uid:gid.
Does any of that make sense?
Code, Hardware, stuff like that.
GUIs let you explore until you find what you want by pointing and clicking on things. With command lines, you need to know the commands, and the options, before starting. That means that you need some sort of training before you start using the command line. So in your analogy, you'd have to "learn" the language of the OS before you can start 'writing' anything at all. Learning English actually took you a very, very long time, even if you don't remember it.
Once you have that training, the command line is a very useful tool. But if you can't get the training, and aren't self-sufficient or technically apt enough to go to the bookstore and buy a book on how to use the command line, you're screwed.
That's why people like having icons for things. The message icon is your mail program. Don't have to remember what it's name is, or where it's at. Just click.
Naw, it's even more simple than that. It is about choices. Staring at a blank command-line offers no intuitive options. You have no idea where to start as a n00b. Basically a graphical interface enables a user, without prior experience, to poke around and discover - simply by exploring all options.
What is easier - a multiple choice test, or a fill in the blank test?
ymmv
Things that need to be expressed before my opinion:
:)
-Microsoft does not hire retards. Their programmers are skilled.
-IBM,Sun,Novell,etc, do not hire retards. Their programmers are probably equally skilled with Microsoft's.
-Linux was inspired by Unix
-Unix is a multi-user operating system originally designed during the dawn of computing for big iron mainframes accessible by client terminals via command line.
-Computer "users" at the time of the creation and dominance of Unix knew, more often than not, how to program, do shell scripts, etc. They were very computer-literate. To use a computer in that age meant you knew how a computer worked.
-Windows began as a (more or less) single user operating system intended to run on PCs, not mainframes, and is used more often than not by people who know nothing of programming, or how a computer works abstractly.
Before you jump to say that Microsoft produces crap code, think logically. The Windows O/S may be considered to be a history lesson for all the O/S programmers out there. Learn from it. Sure, they didn't invent the GUI. Sure they weren't the first windowing O/S. But consider that Windows is the first operating system to reach the level of adoption that it has. They have to support every common architecture, network protocol, hardware design, etc, in the world.
If Windows serves any purpose to you guys at all, it is to illustrate what works, and what doesn't. From their example, user stupidity has been illustrated. Never more than now have programmers been aware of the need to balance ease of use with covering for the ignorance of a user. From their example, we've learned that the user really shouldn't be trusted to be a good admin, that firewalls are a good feature to build into an O/S, etc etc. Microsoft has proven useful in studying the effectiveness of GUI systems and their pitfalls.
Don't sit and criticize Microsoft. Take the lessons they had to learn the hard way, and use them to make better code. That's essentially what Apple did with OSX, even though for them it was a lot easier - they don't have to standardize for all hardware and software configs. They offered very limited backwards compatibility, as ugly compatibility hacks aren't good to keep in code
------- "From bored to fanboy in 3.8 asian girls" ----------