It’s Official

Posted in Link Spam by Thomas Themel on June 27, 2005.

Via AK: Take the MIT Weblog Survey

Security Theatre, Austrian Edition

Posted in Personal, Technology by Thomas Themel on June 26, 2005.

Some time during early April 2004, I tried to use the wireless network in my apartment after neglecting it for a few months. It didn’t work immediately, and so I fired up Kismet to find out what was wrong. To my surprise, one of the networks I picked up was called POLWLAN and seemed to be sending snippets of HTTP traffic around, WEP-less, of course.

I was intrigued. After roaming the house for a place with a better signal than my desk, I picked up a complete HTTP transaction for the first time and recovered the contained JPEG. To my mild surprise, it was an image showing Lederergasse, a nearby street. I guess that makes the POL in POLWLAN mean police. Video surveillance for this street had been under discussion at one time, but I had lost track of the progress of that initiative. Obviously, it had been implemented, and by some real rocket scientists, too (I found this press release claiming that video surveillance would be extended even more, but the initial setup seems to have gone pretty quietly).

There was an RFC1918 network with two cameras and a Windows PC, with the PC polling the Axis camera’s web interfaces every second. One of the cameras was mounted in a fixed position overlooking the entrance to the street, the other one was adjustable and rotated through different positions regularly, driven by the PC.

Villach Video Surveillance Map

It was pretty trivial to extract the captured images from the HTTP data (yes, the basic auth data too) with Ethereal, yielding these lovely samples:

Surveillance Camera 1 Example
Surveillance Camera 2 Example

After I spent some time hacking driftnet to handle the dump files produced from my Prism card in monitor mode, I was even able to watch live video on my laptop.

While I find it rather interesting that they’re not even using WEP to protect the whole enterprise, I’m positively appalled by the bad security of it all – the cameras’ web interface is accessible via the damn WLAN, so if I plan on mugging a person in the area under surveillance, I can simply turn the camera the other way. Without being an expert and without thinking really hard about it, I can come up with a handful of ways to simply shut down the system if I wanted to.

I thought a bit about doing something funny with this information (like warchalking a giant "open network" symbol right in the middle of the camera’s view), but then I moved to Vienna and pretty much forgot about the whole thing.

Now, for some reflection. Video surveillance is a pretty controversial topic. The controversy as I know it unfolds mainly among two axes: "Is video surveillance good or evil?" and "Is video surveillance highly effective or useless?". In this post, I’m going to skip the first part of the issue to present some circumstantial evidence on the second.

When I came back from Vienna this June, I checked whether the whole setup was still in existence. I quickly found out it was, and I made a new set of driftnet dumps to show my friends. Surprisingly, I noticed a significant difference: the roving camera had stopped moving, plus the picture had become quite unfocused:

Surveillance Camera 1, Blurry

I wondered a bit. Two weeks later, I wanted to check back and see if they had fixed their crime-fighting super weapon. The results were even more disappointing: now, there’s no more HTTP traffic on the network. The cameras seem to be there alright, but the PC only broadcasts UDDI requests using an RFC 3330 designated 169.254.x.x address. This has been going on for about a week now.

Now, from the realm of fact, back to some conjecturing. My guess: if this system has been half-broken for at least a month, and completely broken for some time afterwards, it’s probably not a very important part of police work. Depending on the level of cynicism that you employ personally, there are explanations ranging from the deterrence effect that causes the system to reduce crime, even if it doesn’t work, to the interpretation that it was never actually used for anything and it was just installed to provide the illusion of doing something against the petty crime riddling the area. The deterrence theory, however, is rather badly thought out – if deterrence was a decisive factor in the use of this system, it would have made much more sense to post lots of signs reminding people that they’re being watched. Indeed, there is no information at all that you’re entering an area that’s under surveillance.

I conclude that this is a typical instance of security theatre – politicians spending money and holding grandiose press conferences to calm irrational fears of their subjects. I’d really enjoy having some more information about how the system was actually used, but I haven’t figured out a good way how to obtain it yet, and so all I can do is guess. What remains to be done is keeping an eye on the system – if it remains in this dysfunctional state for much longer, my current guesses will harden into something pretty closely resembling convictions.

Update 2005-07-07: I just got around to checking again, it’s back in the state that we had at the beginning of June.

Civilization IV

Posted in Technology by Thomas Themel on June 25, 2005.

I’m not much of a computer gamer these days. I used to spend a lot of time playing games when I grew up, but nowadays there’s only some rare games of StarCraft, the occasional Bioware RPG or, more recently, drunken bouts of Jump’n Bump with my room mates.

The other thing that occasionally gets me is Civilizaton III, and when it does, I inevitably end up playing all night because there’s always another thing I want to do before quitting. I’ve played with all the incarnations of the Civilizatoin franchise so far, but this is the first one I really played in earnest (ie without cheating). I learnt some strategies from the Civilization Fanatics’ Center (though it’s sometimes a bit scary to see how seriously people take this game), and on my last visit there, I found that Civilization IV is almost ready! Hooray, more waste of time ahead!

Interesting tidbit:

The game will be written entirely from scratch using flexible XML data files, as well as the Python scripting language. Boost.Python
(this allows for seamless interoperability between C++ and the Python
programming language) will be used as the interface layer between the
C++ game code and Python. Python is used in the game for map
generation, interface screens, game events, tools, tutorials, etc. If
you want to see how this will affect customization of the game (or any
other aspect relating to customization), look under Customization Flexibility.

Perhaps I’ll finally have a reason to learn Python…

I also really liked this presentation by Civ IV’s lead designer Soren Johnson, giving a lot of context for Civ IV’s design decisions and some good insights into the (recent) history of game development.

NFS to the death

Posted in Personal, Technology by Thomas Themel on June 21, 2005.

Last week, I was in Vienna, and I tried to copy part of my MP3 collection to
my laptop. The first idea was to do it using href="http://www.samba.org/">Samba, but I quickly dropped that when I found
out that Samba doesn’t support colons in names, so a lot of my MP3 names were
garbled to some weird 8.3 syntax.

Since both endpoints were running Linux, I thougt I might just as well use
NFS. I installed nfs-kernel-server on the source machine, exported the
directory and mounted it on the destination machine. Unlucky bastard that I am,
I didn’t specify any mount options. Now, it’s three days later, and I’m back
in Villach. My laptop was sent to href="http://www.suspend2.net/">hibernation, and when it awoke, it still
had the NFS export mounted.

Now, I know that a broken NFS hard mount is a bad thing to have, but
I didn’t realize just how bad it is. For example, it seems to break the
semantics of alarm(2):

themel@sokrates:~$ cat foo.c
#include<fcntl.h>
#include<unistd.h>

int main()
{
        alarm(2) ;
        open("/mnt/foo", O_RDONLY) ;
        return -1 ;
}
themel@sokrates:~$ gcc -o foo foo.c
themel@sokrates:~$ strace ./foo
execve("./foo", ["./foo"], [/* 26 vars */]) = 0
uname({sys="Linux", node="sokrates", ...}) = 0
brk(0)                                  = 0x804a000
[...]
alarm(2)                                = 0
open("/mnt/foo", O_RDONLY

I’m not sure how long it’ll hang there, but I’ve watched it for over 30
minutes now and there’s no sign of change. Is it supposed to do that? I don’t
really think so. The same issue keeps lsof’s option -S option from working -
it’s supposed to keep lsof from being blocked by kernel calls, but the power of
NFS is just unbeatable – not even a SIGALRM after you block on that, baby. I
can understand that this made it easier to implement NFS thirty years ago, but
is there any sane reason that I can’t get signals delivered to a process in
2005?

I’ve already assigned the adddress of the NFS server to my own host in the
hopes of making it see the error of its ways when it gets its connections
refused. No use. The next thing I wanted to try was to install the NFS server
on my machine to provide “more failure”. But I only really noticed the problem
when my dist-upgrade failed because the upgrade of base-files started hanging
on the broken NFS mount, so at the moment I’m fighting my half-crazed dpkg
(because without a set-up base-files, I can’t install new packages). The dorky
way out would be to reboot, but I’m not yet convinced that this is really
necessary. However, the more I look, the more indications I find that a lost
hard mount is really entirely unrecoverable. If so, why the hell would anybody
make that the default setting? I’m still not quite convinced that I’ll reboot,
but even if I get the NFS server installed somehow, I’ll have to convince it
that I’m exporting /mnt/local/mp3, which, unfortunately, is below the broken
NFS mount at /mnt. Let’s see.

Well, I guess that’s what I get for playing with NFS even though I know it’s
crap. In the mean time, can anyone suggest a better distributed file system
that’s not CIFS/SMB?

Big in Japan

Posted in Link Spam by Thomas Themel on June 16, 2005.

In the first major policy decision based solely on urging by Wannabe Everything, the Japanese vow to loosen up dress codes.

Crazy Carinthia

Posted in Personal by Thomas Themel on June 15, 2005.

I’m still alive, and I still care about this blog – however, I don’t spend as much time pondering grandiose ideas and toying with technology at the moment. Two reasons contribute mainly to that. First, I spend most of my days doing paid work that actually uses some of my mental capacity. I’ve settled into a pretty productive mode where I take the first bus to work in the morning, put in the headphones and code to some iterations of the Messiah until I run out of energy. Because I keep time on my emacs-wiki, I manage to keep the breaks under control quite well and actually get work done pretty regularly – I guess all the time I spent worrying about productivity last year is really starting to pay off – or perhaps it’s just the fact that I’m burning to actually do something interesting after a year of compulsory idiot work.

The second thing, however, is that my living situation is rather more irregular than I had planned. It all started quite innocently last year, when I made plans with our Canadian intern Joel to move to the old place on Hauptplatz for the summer. In February, I confirmed with Stefan, the guy who took over the apartment after I left for Vienna, that he’d have two rooms free for the summer. Then, at the end of April, Joel came back from Canada, and it was time for him to move in. However, at that time, I found out that Stefan’s phone number had changed, so Joel ended up going to Villach without any detailed idea of how to set up his place. After some more confusion and some minor miscommunication (trouble with work, I had promised to organize things for Joel, and the company apparently had to guarantee the authorities that they’d take care of their foreigners) it turns out that there’s actually NO room free at the flat because there’s already three people living there.

Joel got to sleep on a couch in the living room. I half-heartedly started looking for alternatives, but didn’t find anything that fit my requirements (cheap, kitchen, Internet), so at the end of May I dropped by and checked the situation myself. I found out that, in addition to the five of us now living in the place, Stefan had promised his cousin that he could live there for the summer. At that point I was pretty convinced that this was not going to work out.

I still moved in on June 1st and got to sleep on the other couch in the living room. Things worked out surprisingly well – I get along great with all the people, and the chaos that rules the place reminds me of the carefree days when I went to school from here. Even the space problem is about to get better – Stefan’s cousin already moved out because he didn’t take well to the chaotic situation, and next week Fotis and Joel are leaving for Greece for some time, so I’ll even get to have my own room.

However, living with so many people has meant that my traditional evening activities of reading and toying with computers have taken a back seat to having beers and sharing stories with everybody who lives here or comes to visit. Lots of fun, but not very blogworthy most of the time. Well, I guess that’s what the summer is for, no?

Carinthia

Posted in Personal by Thomas Themel on June 3, 2005.

I’m back in Carinthia, where I’m spending the summer. Because I’m immersed in lots of paid work and rather cut off from my personal projects, blogging may be even more spurious than it normally is.