Reflections on trusting trust in virtual worlds

It transpires that Emerald, the preferred open source viewer for the virtual world Second Life is now blocked from accessing the world of the giant talking lobster[1]. Always curious I read through a couple of message streams and observed the following:

  • Linden Labs are not the custodians of a democracy. They are the legal owners of fact and law to a mass of digital content hosted on servers owned and managed by them. If you think that’s not the case, you’re wrong
  • Open Source does not equal security. Most people couldn’t analyse a source code tree for vulnerabilities if their lives depended upon it[2] Open Source doesn’t automatically equal “good”, “secure” or “free”. More bells and whistles[4] just means “more stuff that fewer people will understand”. Ken Ritchie first wrote about this in Reflections on Trusting Trust.
  • When programmers walk off a project saying “Guess what I found in this library!” then look. Do not assume just because the suspicious output is now a apparently random data (instead of nicely formatted username:password pairs, for example) that the problem has gone away. Chances are that the “Fox in the henhouse” will have just implemented a copy of the AES cryptography.
  • Never believe your own PR[5]
  • Code matters. Breaking trust by inserting spyware will end up with you not getting invited to picnics. People care about their privacy[6]. 
  • People are stupid enough to cling to beliefs in the face of overwhelming evidence. Bright people are just as likely to be stupid. You are the most likely to be stupid out of everyone you know. [7]
  • Linden Labs are the virtual equivalent of Disney. The mouse has no heart.
  • Background checks are a good, good idea even for free projects. 

[1] Trust me, you want those things to be lobsters. Freudian nightmares aren’t in it.
[2] Why else do you think systems have so many holes. Of course, there are some lazy programmers, but most of them just don’t know how to code securely. I once reversed a very popular browser that used system(“/bin/rm -f %s”); When asked why, the programmer replied that that was the most portable way[3]!
[3]  ANSI Standard unlink() Tell your friends.
[4] Or in the case of emerald, virtual jiggling boobs. I kid you not. (and it makes the lobsters look tame)
[5] And by corollary, never believe anyone else’s!
[6] Not enough. 
[7] And you don’t believe that.