A Lawsuit Waiting To Happen

There’s an interesting, if depressing, post over at hover.com about how feedback had fueled new features. One of these new features seems particularly ill-advised. Apparently some of their users weren’t able to remember their passwords so Hover Would send them a special link to reset it, a common and reasonably secure method of handling lost passwords. Unfortunately, the delicate flowers in their user base found this “confusing” and too hard to use. Hover responded by changing the process so that users would be emailed their passwords.

Consider what this means. First, the passwords are being sent in the clear so that there are several opportunities for compromise. Worse, it means that those passwords are not hashed at Hover. Indeed, they explicitly say that the passwords are stored in the clear. There is, I think, a very good chance that the Hover site will be attacked and those passwords and other information exposed. Right after that, the lawsuits will start. Does this make any sense?

Hover provides domain registry and related services so there is something of value to protect. Their Web site makes a point of stressing that they provide Whois privacy to keep contact information private so any lawsuits will surely point to an implied contract to keep this information safe. I just don’t understand what the folks at Hover are thinking. Sure, you want to make things easy for your customers—that’s one of their selling points—but sometimes you need to explain to them why the seemingly complex procedures you use are necessary for their protection. I don’t see how this ends well for Hover.

Posted in General | Tagged | Leave a comment

More Dropbox Silliness

I’ve written about Dropbox a couple of times before in a generally positive way. In this post, I’m coming to their defense again so I should state for the record that I’m neither a Dropbox user nor associated with them in any way. The latest silliness involving Dropbox is concern over their new Terms of Service. A number of people have pointed to the section entitled Your Stuff & Your Privacy. Here’s how the story on Slashdot reported the new language:

By submitting your stuff to the Services, you grant us (and those we
work with to provide the Services) worldwide, non-exclusive,
royalty-free, sublicenseable rights to use, copy, distribute, prepare
derivative works (such as translations or format conversions) of,
perform, or publicly display that stuff to the extent we think it
necessary for the Service.

That sounds pretty bad, doesn’t it? Dropbox appears to be saying that they can do anything they want with any data you store on the system. But when you add a little context

By using our Services you may give us access to your information,
files, and folders (together, “your stuff”). You retain ownership to
your stuff. You are also solely responsible for your conduct, the
content of your files and folders, and your communications with others
while using the Services.

We sometimes need your permission to do what you ask us to do with
your stuff (for example, hosting, making public, or sharing your
files). By submitting your stuff to the Services, you grant us (and
those we work with to provide the Services) worldwide, non-exclusive,
royalty-free, sublicenseable rights to use, copy, distribute, prepare
derivative works (such as translations or format conversions) of,
perform, or publicly display that stuff to the extent reasonably
necessary for the Service. This license is solely to enable us to
technically administer, display, and operate the Services. You must
ensure you have the rights you need to grant us that permission.

you see that what the terms really say is that if you want Dropbox to provide certain services, such as sharing your data, you have to give them the right to do it. No All your data are belong to us, merely protection from lawsuits for using your data in some way that you asked them to.

As a result of the brouhaha over the Terms of Service, Dropbox added an update on their blog in which they explicitly say that they don’t own your data and that the license allows them to provide the service that you are requesting and nothing else. As the folks over at the Agile Blog (the makers of 1password) say “Read the policy, not the tweets.”

It’s bad enough when the kids over at Slashdot hyperventilate over a faux issue like this but others who might be expected to take a more measured view are also upset. Even Michael Krigsman over at ZDNet is jumping in recommending that Enterprises “…discontinue use of the product for applications where privacy and confidentiality are mission critical.”

Let me say it again: If you are storing sensitive information in the cloud and you don’t encrypt it then you, not the cloud provider, are guilty of negligence if that data is compromised. Krigsman is right; You shouldn’t be storing unencrypted mission critical data in the cloud but that has nothing to do with the Dropbox Terms of Service; it’s a matter of common sense and due diligence.

Update: Dropbox has once again updated their Terms of Service in an attempt to assure everyone that they have no interest in owning or using your data in any way that doesn’t involve providing the services that you ask for. It should put this silliness to rest once and for all but it probably won’t.

Posted in General | 1 Comment

Git Cheat Sheet

The folks over at fournova, maker of Tower, a Git client for the Mac, have a really nice Git Cheat Sheet available for download. There are plenty of Git cheat sheets around, of course, but this one is only two pages and one of those pages concerns Version Control Best Practices. That leaves you with one page full of Git commands that tell you how to do most things in Git from the command line.

This is a handy resource that you can bookmark or print. And it comes in three colors so no matter where you stand on the proper editor color themes, you should find a version that satisfies you.

Posted in General | Tagged | Leave a comment

Better Passwords

Over at the AgileBits Blog (the makers of 1Password) Jeff has a nice discussion of picking secure passwords. His discussion is in the context of picking a master password for 1Password but it applies more generally. Much of the really interesting discussion happens in the comments so be sure to read them too.

He emphasizes avoiding predictability while generating long easy to remember passwords. I’m not sure I agree with everything he has to say but there are a lot of good ideas in the post. If you’re looking for ways to generate some high security passwords, this post is a good resource. As I said, there is much wisdom in the comments too.

Posted in General | Tagged | Leave a comment

A Parable About Git

A Couple of days ago I wrote about Tom Preston-Werner‘s talk on Git and how he approached the subject matter in a particularly effective way. Today, I was trawling through his Web site and found a longish post entitle The Git Parable that serves as a nice companion piece to the talk.

In the post he helps us understand the concepts behind Git by asking us to imagine that we are a developer with no VCS of any kind on our system. Because we are conscientious developers, we realize that we need to implement some method of keeping track of the versions of a large program that we are developing. The rest of the post is a parable about how we build a Git-like system from the ground up.

We start by realizing that what we want is to be able to take snapshots of our code as we implement each feature and save these snapshots so that we can recreate the software as it was at the time of any snapshot. Our first solution is to copy the working directory into another directory and name it snapshot-0. We do this for each snapshot but change the name so that we have a series of directories named snapshot-0, snapshot-1, snapshot-2 and so on. With each snapshot we add an extra file that contains a summary of the changes in the snapshot. We call it the description file.

Everything is fine until the first release. As we start on the next release we suddenly start getting bug reports so we fix those starting from the snapshot of the first release. But now we lose the implicit ordering of the snapshots because the bug fix is the child of the release snapshot, not the latest snapshot that we are currently working on. This introduces the idea of branches and causes us to explicitly record the parent of each snapshot in the description file.

The parable goes on to describe how new situations cause us to add new features to our system. For example, we take on a co-developer and now we suddenly have two different snapshots with the same name. We solve that by replacing snapshot-n with the SHA1 of the snapshot’s contents. By the end of the parable, we have built a system that looks pretty much like Git.

This is an excellent way of introducing Git because

  • It shows the simplicity of the ideas behind Git.
  • We can see how each feature is there to solve a real world problem.
  • Understanding the concepts behind Git’s internals makes it much easier to learn the system and feel confident in using it.

Unless you are a Git expert, I urge you to read this post. If you have colleagues that are new to Git, this parable will be a real help for them in understanding and learning the system.

Posted in General | Tagged | Leave a comment

The Security Hall of Shame

Two more inductees into the Security Hall of Shame. Honestly, I could devote a whole blog to this sort of thing. Perhaps we should start a Security Hall of Shame blog similar to Steve Friedl’s No Dashes or Spaces Hall of Shame.

The most annoying part of this sorry spectacle is that when these sites are inevitably compromised they will whine about the evil, but brilliant, “hackers” who somehow overcame their defenses when the truth is that they got owned by a bunch of script kiddies. Security is devilishly hard to get right but that’s no excuse for just being stupid about it.

Posted in General | Tagged | Leave a comment

An Interesting Talk On Git

Over at Ontwik, Tom Preston-Werner has a nice (video) talk on Git. I like it because instead of focusing on the mechanics of using Git, Preston-Werner shows you what Git is doing internally at each stage of the process. I wish that I’d seen this when I was learning Git; it would have made the process of coming up to speed easier.

There are a couple of problems with the presentation, neither of which are Preston-Werner’s fault. It was often hard to see what he was typing because the camera was set a little low on the screen and the top line was half cut off. That’s not too big an issue because his narrative was clear and it was fairly easy to fill in the chopped off text.

The bigger problem was that there were a lot of questions from the audience that were not really that important and caused Preston-Werner to run out of time. That’s a shame because the talk was very interesting and informative. He did promise to clean things up and post the whole talk a little later so we can hope to see it all shortly.

Problems aside, this is a great talk and worth watching even if you are pretty familiar with Git already.

Update: your → you

Posted in General | Tagged | Leave a comment

Using Org Modes’s Date Routines In Any Buffer

I really like Org Mode’s method for inserting time/date stamps into an Org file. Org Mode has two types of dates, active and inactive, that differ in how Org Mode treats them but we needn’t worry about that here. In either case when you ask to insert a date, Org Mode presents you with a three month window of calendars centered at the current month and a default of the current day’s date. You can just press return to accept that, add a time or change the date to something else. You can enter an absolute date or you can say +5 to indicate 5 days from today or +1w for a week from today and so on. You can also click on the calendars to pick a date and, of course, you can scroll the calendar window. There are lots of options for entering the dates and times as described here in the Org Mode Manual.

Unless I’m writing code, I’m usually in Org Mode so the date routines are available most of the time. Sometimes I want to enter a date in a comment in a program or I am in some other sort of buffer where the Org Mode key bindings aren’t available. Therefore, I wrote a quick piece of Emacs Lisp to call the Org function directly and bound it to 【F5】:

(defun jcs-insert-date (and-time)
  "Prompt for and insert date at point into the current buffer using the
org-read-date routines."
  (interactive "P")
  (org-time-stamp and-time t))

(global-set-key (kbd "<f5>") 'jcs-insert-date)

Now when I want to insert a date stamp I just type 【F5】 or 【Ctrl+u F5】 if I want the add the current time.

Posted in General | Tagged | Leave a comment

Lessons From Dropbox

I’ve written before about Dropbox and their supposed scandal regarding the perfectly obvious fact that they could, in fact, read users’ files stored on the site. Despite the lamentations of the aggrieved and even the filing of a complaint with the FTC, I continue to think that those complaining are just being silly or clueless.

Now, sadly, there is a real problem at Dropbox. Earlier this week, Dropbox pushed an update that inadvertently allowed access to any Dropbox account for which the user’s email address was known. This was discovered very rapidly and was fixed within four hours. Nonetheless, the Dropbox logs showed that there was account activity on a small number of the accounts. Yesterday, Dropbox announced that although less than 100 accounts were affected, someone had logged into some accounts and were able to view file and folder names but that no files or account settings were modified and the files did not appear to have been downloaded or viewed.

Obviously Dropbox has egg on their face and, unlike the previous brouhaha, this was a serious failure on their part. There are a couple of obvious lessons that we can take away from this. First, it really is unacceptable for Dropbox to have pushed an insufficiently tested patch to the operational system. To their credit, Dropbox admits this and is not making any excuses.

The second take away is, to my mind, more important. Things like this happen even to the most careful people and users should be asking themselves, “What would it mean to me if it did.” In this case, users should have asked themselves, “What confidential data would I lose if the account were compromised? How devastating would the loss be?” If you’re using Dropbox to sync your college term papers between a laptop and a desktop, then you might be annoyed but you wouldn’t really care. If you’re syncing confidential company plans or sales figures between a laptop and desktop then you might care a lot. Perhaps your company stands to lose substantial amounts of money. Perhaps you’ll get fired.

The point is, each user should make a rudimentary calculation about what a compromise would mean to them and if the answer is other than “Meh” they had better take steps to protect themselves. No one—no one—should feel sorry for the user who whines that he thought Dropbox (or whoever) was going to protect them. If it’s important and you’re going to store it in the cloud, you had better encrypt it yourself.

Fortunately, in the case of Dropbox this is particularly easy to do so there’s no excuse for anyone to have suffered any real harm. But, of course, many people have not protected themselves and they will be mad at Dropbox. Many of them will likely sue; they had better hope that I’m not on the jury.

Update: That didn’t take long.

Posted in General | Tagged | Leave a comment

Hackers Redux

Yesterday I wrote about Steven Levy’s Hackers. Today, serendipitously, I happened across a Wired article from last year that I’d filed away intending to read and then forgotten. In it Levy revisits Hackers and catches us up on what his heroes are doing today.

Some, like Bill Gates and Paul Graham, have achieved great financial and commercial success. Others, like Richard Greenblatt and Richard Stallman have eschewed all that and remained true to the hacker ideals that they grew up with. Levy also takes a look at the newcomers, like Mark Zuckerberg, who are carrying on the hacker tradition, at least as they see it.

If you’ve read Hackers and enjoyed it, you’re sure to enjoy this article.

Posted in General | Leave a comment