Qantas and chipped FF cards

QF Platinum card with "Intelligent Q"It seems Qantas are finally getting around to introducing frequent flyer membership cards with a chip embedded in them, in a technology marketing maneuver they’re calling “Intelligent Q”. A fluffy e-mail arrived in my inbox this morning telling me how wonderful it would be – I’d touch my card to a reader at the airport and be automagically checked in for my flight.

2010 and this is leading edge tech? Anyway, Air New Zealand have had this running for some time now, so it’s not quite the feat that Qantas would have everyone believe.

The e-mail goes on to say that the rollout begins at PER domestic on the 28th of July, with other domestic ports to be rolled out later in the year.

Free bag tags from KLM

KLM have an offer for free custom baggage tags going at the moment … I’m usually skeptical about anything that’s “free”, but it seems that the only real cost is being on a mailing list. Not too bad!

You can choose one of a number of standard pictures for the tags, or you can upload your own. There’s some fairly obvious restrictions (no porn, no illegal material, must own the picture), but otherwise you can have whatever you want. I ran in to problems when uploading a photo using either Safari or Firefox, but it worked out just fine in Internet Explorer – something to be aware of if you normally use a decent web browser.. ;)

http://baggagelabel.klm.com/

A few thoughts..

So, I figured it might be neat to do something interesting with this blog. With stuff like Facebook (moar like Crackbook, amirite?) and whatever else becoming more prevalent, I don’t really see the point in keeping a personal blog any more. I’m not especially keen to put the energy in it, and the server logs tell me no one else is reading it anyway.

Rather than deleting it altogether, I’m going to experiment with using it as repository for stuff I’m interested in .. mostly travel or tech related material. Based on the Google hits that I’ve been getting — mostly to do with my howto’s for Apache and client authentication — it seems that the Internets agrees that this is a Much Better Idea™ than posting random personal crap.

Will be fun to see whether it works or not.

Travel geekery: updates to Velocity

A nice little update to Velocity was spotted over on the AFF forums today; Velocity members now earn status credits when flying with EK and MH on qualifying fares.

Of course — finding fares that qualify is a right pain in the ass. The online booking tools for both EK and MH don’t show fare codes for a selected fare, so there’s no easy way of telling whether a given fare will earn Velocity anything. Both Expedia and Zuji are similarly useless, so would definitely need to see a travel agent to be sure.

Fingers crossed that this will expand to offering premium check-in and lounge access on both of these carriers .. EK in particular, as I quite enjoyed flying with them last time. Looks like the status match I got myself is starting to become useful!

- zac.

Apache 2 Client Auth Redux (or how to fix what OpenSSL broke)

Taking a quick look again at setting up client authentication in Apache 2 – my previous post on the topic was fine, right up until an OpenSSL vuln was discovered where renegotiation handshakes were not properly associated with existing connections – thus potentially allowing for a Man-in-the-Middle attack. Loads of additional reading on the CVE advisory if you really want to know more.

OpenSSL 0.9.8m was released to fix the bug – the fix was to switch to a newer and more poorly supported method of allowing renegotiations. Practical outcome: client auth in many web apps using Apache and mod_ssl simply stopped working. I found out the hard way when a service I had set up to use client auth to keep non-work-people out broke after OpenSSL was updated on that box. Helpfully, Apple still haven’t seen fit to update the version of Apache in OS X Server, so client auth is still down for the count on Apple servers (add that to the laundry list of reasons I dislike Apple server OS’en..)

At any rate – the above is all ancient history. After Googling for an answer, giving up for a while and finally getting a tip-off in a comment on this blog, it would seem that you can switch the old method of SSL renegotiation back on with an Apache directive. Here’s how:

WARNING: this workaround is definitely not recommended if it can be avoided, because you’re intentionally switching a known security vulnerability back on. The “proper” fix is to set your website up such that renegotiation isn’t required – i.e., placing all the content that needs to be locked down with client auth in its’ own subdomain / VirtualHost.

Right, now my ass is covered – you need to start out with the following:

  • Apache 2.2.15 or newer
  • OpenSSL (mod_ssl) 0.9.8m or newer

If you haven’t got the above two items, you need to fix that first.

I’m going to assume that you’ve already got SSL set up and working – there are at least 9000 howto’s on the Internets, so little point in me covering that. Once your SSL is working without error, you’ll need to add this to your VirtualHost configuration:


SSLEngine On
SSLCertificateFile /path/to/ssl.crt
SSLCertificateKeyFile /path/to/private.key
SSLCADNRequestFile /path/to/client-cert-issuing-ca.crt
SSLInsecureRenegotiation on

The first three lines you should already have, and possibly also a SSLCertificateChainFile entry if you have a chained SSL cert.

The fourth line tells the client what CAs the server will accept a certificate for, and thus should point to a file containing the Issuing CA (in PEM format) for your client certs. This command is particularly important if you use an Intermediate CA to issue certificates (rather than just the Root CA). It’s optional — and doesn’t get used to validate client certs — but it’s respected by at least Internet Explorer, so not a bad idea to include it.

The fifth line does exactly what it says; it’s what actually fixes things here. Do note that both the fourth and fifth lines are only valid within a Server or Virtual Host context; you can’t use them in a Directory or Location section.

You will then need the following at the Directory level:


SSLRequireSSL
SSLVerifyClient require
SSLCACertificateFile /path/to/file-with-full-ca-path.crt
SSLVerifyDepth x
<FilesMatch “.(cgi|pl)$”>
  SSLOptions +StdEnvVars
</FilesMatch>

Obviously this is in addition to whatever else you have configured for the Directory section. First line requires SSL on the server, second line requires a certificate from the client.

The third line tells the server what CAs to trust for client auth; if you have a chained hierarchy for issuing client certificates, this file should contain all of the Intermediate CAs up to and including the Root CA (concatenated together in PEM format). Including the full chain is new to me; I don’t know what version of Apache started requiring this, but you’ll get non-obvious errors in your log files if you don’t have all of the CAs required here.

Fourth line tells the server how far down it can traverse a chain to verify a certificate before giving up – 1 if the certificate is directly signed by a Root CA, 2 if there’s one Intermediate CA and so on.

The FilesMatch section and SSLOptions statement aren’t absolutely required, but if you want to log any of the information from the client cert or make said information available in the environment variables — you’ll need it. Grabbing all this information comes at a performance penalty, so it makes good sense to restrict what types of files the server extracts it for.

Another item worth researching and including in your config is the SSLRequire directive – it’s reasonably complicated, but allows you to control what client certs are allowed based on things like Subject DN and Issuer DN. Which leads me to my last recommendation..:

Make a point of reading the mod_ssl documentation. You’ll be glad you did!

- zac.

Yarra Trams SNAFU

On the way home on the tram, minding my own business when we come to a standstill between stops. Tram in front of us == teh borken. Ut oh!

To the drivers credit, he kept everyone updated on what was going on – when it became clear that the tram in front of us was not going anywhere in a hurry, he opened the doors to allow those who wanted off to walk up to the next station. Not really keen on the idea of sitting on a tram for an indeterminate period of time, I got off and used the awesome tramTRACKER app to find another way home.

Broken Trams

This story is only mildly entertaining, however I was impressed at how quickly the problem was dealt with .. something you don’t expect from any public transit operator, anywhere, ever.

Fun times.

Neglect!

Been … just a few months since I posted anything here. Didn’t really have much to say I guess!

Summing the last six months up in as few words as possible:

  • Went to CHC on a whim to catch up with a friend
  • Went to HKG to get old and drunk in style
  • Bought my first proper suit while I was there. MM tailored clothing! :D
  • Received a promotion at work – now a trainer/auditor

The last bit is the biggest bit of news – finally have a job with no external customers and generally nice internal ones, so I’m happy about that. Just today I’ve finally been able to move desks .. slightly smaller, but heaps quieter and I even get a bit of window thrown in to the bargain.

Also, I’ve just had a nice little win with American Express – I wanted to “upgrade” my card with them, and expected I would have a bit of a fight on my hands to get what I wanted. Turned out to be v simple; new card should be arriving soon! :)

Hopefully the rest of the week plays out as well as it’s started.

- zac.

OS X Server Security Update 2010-001 and Apache client authentication

So, it seems that Apple have disabled SSL renegotiation (CVE ID: CVE-2009-3555) in the latest security patch thanks to a man-in-the-middle vulnerability. All well and good.

Client authentication with Apache relies on renegotiating a connection (secure connection starts when the server presents the server certificate and is renegotiated when the client presents the client certificate) – which is now broken. My virtual host error logs were filling up with all sorts of completely useless and uninformative errors, such as:

[Mon Jan 25 16:01:57 2010] [info] [client <ip-address>] Connection to child 1 established (server <server-address>:443)
[Mon Jan 25 16:01:57 2010] [info] Seeding PRNG with 144 bytes of entropy
[Mon Jan 25 16:01:57 2010] [info] Initial (No.1) HTTPS request received for child 1 (server <server-address>:443)
[Mon Jan 25 16:01:57 2010] [info] [client <ip-address>] Requesting connection re-negotiation
[Mon Jan 25 16:01:57 2010] [info] [client <ip-address>] Awaiting re-negotiation handshake
[Mon Jan 25 16:01:57 2010] [error] [client <ip-address>] Re-negotiation handshake failed: Not accepted by client!?
[Mon Jan 25 16:01:57 2010] [info] [client <ip-address>] Requesting connection re-negotiation
[Mon Jan 25 16:01:57 2010] [error] [client <ip-address>] Re-negotiation request failed

..and so on. Looks like a problem with the client end – but it’s actually on the server end. The fix? Er.. there isn’t one as yet. I’ll update this post if I work out how to fix it.

:(

- zac.

Birthday drink

Another weekend, another party to bartend at! :)

This time around I had some fruit to work with – raspberries and blueberries. I didn’t touch the blueberries, but after a shaky start I’ve got the rough workings of a very tasty raspberry and orange drink:

  • 80-90 ml. vodka
  • 60 ml. Cointreau
  • 2 handfuls fresh raspberries
  • 1 cup ice
  • Orange juice
  • Lemonade

Blend the vodka, Cointreau, raspberries and ice until smooth. Half fill a tulip glass, then top with orange juice and a little lemonade and garnish with a twist of orange rind.

It’s not a complete drink yet – my measurements were rough and the flavour is missing some of the tartness I was aiming for. Maybe needs some lemon juice? A project for another weekend! :D

- zac.

Travel ahoy!

All flights for my November/December trip are finally locked and loaded. It goes something like..:

MEL-SYD-LAX//ONT-DFW-MIA-MEX-HAV-CUN-MEX-LHR-AMS-LCY-ZRH-LHR-MXP-LHR-AMS-LHR-MEX-MIA-DFW-ONT//LAX-SFO-SEA-SFO-LAX-SYD-MEL

I also really wanted to head to northern England and across to Ireland, but it wasn’t to be. Something for the next trip! :D

- zac.