Recently in the Computers Department:
October 15, 2010
What OS Did The Matrix Use?
September 16, 2010
Some Geeks are Creepy
Google had a bit of an embarrassing security problem recently. An engineer did a very creepy thing and spied on teenager's Google accounts while interacting with the teens online. Apparently no laws were broken but Google, obviously, fired the engineer. Google's statement about the incident underwhelmed Greg Laden:
Sorry Google, we are not impressed. We'd like to see an independent investigation, possible prosecution, and who knows, maybe some new laws and regulations.
The idea that we should have some new laws to make systems such as Gmail more secure is an bad idea.
Because users see technology and security as a block box they are often blindsided when there is a failure or breach of trust. Greg is right that the response from Google is inadequate for most users. The response was fine for me. After all, I understand what happened and it didn't surprise me. The problem is that the response didn't address the trust that was broken with most of its users who don't understand the systems inside that black box.
I dislike, however, the suggestion that new laws and regulations should be put in place to prevent such problems in the future. Making it illegal for system engineers to open data files without permission may decrease the number of incidents, but probably wouldn't be effective at stopping such practices with just legal punishment as a deterrent. Making it impossible for engineers to see data will mean a fundamental change in the way such systems operate. Security is always a trade-off against usability and expense. Having the government choose that balance point and force it upon Google and other service providers is the wrong response.
I've always tried to address such issues with user education. Users often have a black-box mentality and think that such issues are somehow automatically taken care of by the system. Users (especially managers) need to be aware of just how much power system administrators have.
I worked as a sysadmin at a college when email was first introduced to staff. I taught users the old IT adage that email was the electronic equivalent of postcards. Every employee of the post office who touches that postcard can, if they so desire, read the message. I also made it clear that I had access to anything they stored on the server (including email) and even conducted security workshops showing them how easy it was for people like me to defeat the simple encryption used in the software of the time. I tried very hard to build the trust with my users that I wouldn't abuse that power, but wanted them to know what was possible.
Google lost some trust from its user base. The response from Google was "Why would anyone trust such a system?" In one respect they are right. Users should never have trusted such a system. I don't, but that's because I understand some of what is going on inside the black box after clicking the "send" button.
Perhaps Google should be leading an effort to upgrade the security of email and other messaging services, but by working with users rather than working under new government regulations. Email protocols were not designed for security. Of course the basic protocol of the Internet (TCP/IP) was not designed for secure transactions either, yet I'm confident that my online banking transactions are secure because of an end-to-end protocol called SSL/TLS*.
Users can already make their email secure using a similar system (called PGP) if they wish, but few people know how. Perhaps Google should lead the effort by streamlining the user interface and popularizing such a system. Google would need to educate the users and work with them to figure out what level of security is needed and how much effort users would be willing to put into such a system to make it work. Users may have to maintain special keys, for example, to communicate with recipients on different email systems. While Google can make that process easier, it will still require some effort on the user end to gain that extra security. There is always a tradeoff.
Pushback against such encryption, however, would come from governments. Governments around the world, for example, freaked out once they realized they couldn't snoop on people's Blackberry accounts. The United States government fought the introduction of PGP when it was first introduced claiming it was too dangerous to allow the technology out of the country. (Because of our government's insistence that PGP not be provided on the Internet I had to download my first copy from an overseas server.) The US government would certainly resist any pervasive end-to-end technology that would prevent them from reading email.
Government involvement in this issue seems like a bad idea. It would force providers to choose a level of security that people may not need once they understand that email is just a digital postcard. Any government solution would also build in a government backdoor allowing them access to any secure system. In this case I really would like the government to not get involved.
* I'll provide a brief introduction to the concept of end-to-end encryption below. Anyone not interested in how this stuff works should stop reading now.
Transactions can be made secure on an inherently unsecure system by introducing an additional protocol (set of rules) above the unsecure layer providing a "session" that encrypts information before the unsecure protocol and only decrypts that information after the data goes beyond the unsecure protocol at the other end. Hence it's an "end-to-end" system and doesn't rely upon unsecure devices in the middle of the route taken by the data.
For example, the Internet uses an unsecure protocol called TCP/IP to get information from one computer to another, let's say from your home computer to your bank. Rather than redesigning the unsecure protocol it is better to add an end-to-end encryption/decryption system "above" the unsecure protocol. When your computer talks to the computer at the bank it uses a system called Secure Sockets Layer / Transport Layer Security (SSL/TLS) to accomplish this.
The green lines represent information that can be read since it is not encrypted (plaintext) The red lines represent the encrypted information (ciphertext) that no one can read. We don't really know what is happening to the information in the blue lines, but we don't care since it's already been encrypted.
If you are not using an encrypted email client (most of the world does not) your message may still be encrypted in the same way as your bank information, but that is not end-to-end for an email message since there is a third party involved (the email recipient). Your message may be encrypted below the email client as your bank password was, but it will be decrypted before it gets to the email server where it is stored unencrypted, until the recipient asks for it from their email client. This means your email cannot be read by anyone eavesdropping somewhere in the Internet (what is called a man-in-the-middle attack), but it can be read by anyone with access to the file on the email server.
A program such as Pretty Good Privacy (PGP) can work with an email client to encrypt a message before your computer sends it to an email server. Your message will stay encrypted, even on the email server, until a similar program decrypts the message at the email client on the other side. This allows for end-to-end encryption even when messages are stored on servers awaiting delivery and the messages will stay encrypted in all locations other than at the sender's and recipient's email programs.
August 10, 2010
P≠NP (maybe)
Wow! Vinay Deolalikar, a Hewlett Packard researcher, has published his proof that P≠NP. It may not mean much to most of you, but P versus NP is the greatest unsolved problem of theoretical computer science. A complete explanation of the problem would be lengthy, but let me see if I can summarize it.
P represents a large set of computer science problems that are known to be solvable in polynomial time. This means that however large the problem gets -- expressed as n, the number of items in the problem -- the time it would take to solve it is bounded by some constant multiple of a power of n.
For example, for any given computer, sorting of items is bounded by n2. That is, we can write an expression that includes a constant multiple of n2 that will always be larger than the execution time of the solution. For example, 0.001*n2 seconds would always enough time to sort a list of n names, no matter how big the list got: A million names, a billion names, 6*1023 names, whatever.
(Sorting is actually much more efficient than n2, but it's not as efficient as n, so n2 is the closest power.)
On the other hand, there are also problems that are not known to be solvable in polynomial time. For example, there's the traveling salesman problem: Given a set of cities and the travel times between all of them, find the shortest route that visits all cities. The brute force approach of trying all possible combinations is bounded by n!, so solving it for 10 cities takes time proportional to 10*9*8*7*6*5*4*3*2*1. Smarter approaches have lowered the time to 2n. Still, there is no constant power to which n can be raised which will always be larger than 2n, so there are no known polynomial time solutions to the traveling salesman problem.
The traveling salesman problem is only one of many problems which are classified as NP-hard for which it's possible to create hypothetical algorithms that solve the problem in polynomial time by using a magic guessing step called an oracle that always chooses the correct next step. (I've always assumed the oracle character in The Matrix referred to this kind of oracle.) This oracle is a stand-in for a really smart solution that we haven't figured out yet. The NP-hard problems are related, so that if we find an algorithm that makes one of them solvable in polynomial time, all of them will be solvable in polynomial time. If that happens, then there will be no problems in the set NP that are not also in the set P. In other words, P=NP.
Most complexity theorists think that the reason we haven't found an algorithmic replacement for the oracle is that none exists. The set NP contains problems that can never be solved in polynomial time. In other words, P≠NP. However, this has never been proven.
Until now. Maybe.
I'm not nearly smart enough to analyze Vinay Deolalikar's 100-page paper in which he claims to have proven P≠NP, however the smart betting, according to Steven Landsburg, is that it is
a) not crazy (which already puts it in the top 1% of papers that have addressed this question),
b) teeming with creative ideas that are likely to have broad applications, and
c) quite likely wrong.
That last is just a guess, based on the long history of this problem. Unlike the hoard of crazy people who have announced solutions, Deolalikar's solution might be for real. But the odds are against it.
And in breaking news, while I was writing this, Deolalikar removed the paper from his website.
February 1, 2010
iPad iMpotence
Ken Lammers does a nice job of collecting up some of the shortcomings of the just-announced Apple iPad. I don't get it either. The iPad seems really limited.
My iPhone has similar limitations---no multitasking, no USB or FireWire, a closed application deployment mechanism---but it's a cell phone: Making it more flexible would come at the risk of making it less reliable. But in a general-purpose computer, I want a lot more flexibility, and I can live with the reliability problems the come with it. (Yes, I am a Windows user. How did you guess?)
If I still traveled for business, I might appreciate an iPad as an on-the-go email and surfing computer, but the touch keyboard probably isn't adequate for typing long email messages. As a photographer, I'd love to have a small computer that I could use to preview and backup my digital photos, but there's no way to attach an external camera.
I can almost hear the Apple true believers sputtering about how wrong I am: The iPad has both a keyboard and a camera connection kit available as accessories. Well, yes, but since the iPad only supports the proprietary Apple connector, you have to use Apple's keyboards. If they'd put a USB port on the iPad, it could use any of hundreds of popular keyboards.
The camera situation is no better. Instead of USB or FireWire, you have to use the iPad Camera Connection Kit, which offers you two modules for transfering images. One of them is an SD card reader, which is kind of a ripoff considering that cell phones far less powerful than the iPhone---let alone the iPad---have had built-in SD card readers for years.
The other camera connection module is even more galling: It's a USB adapter that allows you to connect the iPad to your camera's USB port. You know what else would have allowed you to connect your iPad to your camera's USB port? A USB port built into the iPad.
It seems like a really frustrating design. It might have made a nice way to accept and transport large specifications documents and image files I get when I visit clients, if only it had a filesystem to store and organize them. If I were a musician, the iPad would be an awesome tool for recording and remixing music, but there's no way to attach a digitizer or a midi keyboard. If I were a video producer, the iPad would be a nice way edit together simple videos, such as a video blog, but there's no way to pull in video from a camera.
Granted, I'm not a visionary genius like Steve Jobs, and perhaps by this time next year I'll be raving about the wonders of my cool new iPad, but I just don't see it...
July 23, 2007
Think I've Got Enough Disk Space?
2581.49 Gigabytes Usable Hard Drive Capacity
1198.79 Gigabytes Hard Drive Free Space
Yeah, me neither. I think I'm going to buy another terabyte.
January 21, 2005
Digital Immortality
Glenn Reynolds says:
Digital images are potentially immortal, so long as they get recopied from time to time onto fresh media, but reality being what it is, hardcopy in a shoebox is probably likely to outlast things that require actual human effort.
What effort? Hard drive technology improves so fast that every time I get a new computer I just copy the entire contents of my previous computer into an archive folder in one little corner of the new one and then grab the files as I need them. Everything is there, downloaded drivers, images of the install CDs for all my software, all my ripped music, and everything I ever downloaded. Of course, one of the things in the archive folder is a copy of the archive from an even older computer. It's like those Russian dolls.
I'm up to 200 Gigabytes, and I imagine that will tuck nicely into one folder on the terabyte drive that is sure to come with my next computer.
October 22, 2004
Soggy Computers
Virgina Postrel's laptop just got soaked and appears to be dead.
I'm something of a computer geek, and several friends have come to me with just this problem. I know what to do about this, but the knowledge is apparently useless: everybody first tries turning the computer on to see if it will work. This usually fries something.
So, for anybody who hasn't yet soaked their computer, here's what you do:
First, rescue the computer. If the computer is in the water, speed matters. The hard drive is sealed, but the seal is not intended to keep out water when the unit is submerged. If water gets into the housing with the disk platters, the disk is essentially ruined. If it's in water, shut off the power before touching the wet computer.
Second, disconnect all power, including the line power and the battery. Water isn't much of a problem, but water plus electricity is bad news.
Third, and this is the part that feels so wrong, you have to wash the computer. Pure water won't hurt your computer by itself. Leaky roof, spilled beverage, or dropped into the pool, it's what's mixed with the water that causes all the trouble.
Go to the local grocery store and get a few gallons of pure water. That's distilled or deionized water, not some sort of mineral water from special wells or something. You want water and nothing else.
Also get a spray bottle if you can.
Open up your computer and expose all the circuit boards. Now use the spray bottle to clean everything in sight with pure water. If the spill is something really nasty, you can hose it off with tap water first, but then wash away the tap water with distilled water.
You might want to try some contact cleaner also, but make sure the chemicals are safe to use on the materials in a computer. What works on your car's battery will not be good for your laptop.
Fourth, dry it off. A hair drier or heat lamp will also help. So might a warming tray in an oven, but make sure it doesn't get too hot for your computer's parts. Let it get thoroughly heat soaked. It has to dry a long time so that all the water trapped inside small areas evaporates.
Now put it back together and see if it works.

