USB Breathalyzer Project — An End to DrunkBlogging?
So as a blogger who likes to tipple, and who's written more than one email that's been regretted the next morning, I joked that to a friend that a 'USB Breathalyzer' would be a handy prophalactic in the event of maudlin moments reminiscing about an ex, angry moments thinking about your boss, and private moments that somehow end up indexed by Google after being posted to your blog. But how would such a thing really work? In a sober moment, this is what I came up with.
First, we're going to need access to the system and the browser in some way. My idea was that in setting up your personal DrunkBlogging Defense Network, you'd want to restrict particular applications and sites when the automatic drunkeness test fails. Default settings might include your email client, web email, blogging clients (such as Ecto) as well as blog sites (such as Blogger.com). But the list could go on and on — add Skype to the banned list to keep from DrunkVOIPing, or Adium/Trillian/Meebo to avoid DrunkChatting. While I'm no fan of filtering software, you could even toggle 'adult filters' on or off (heck, for drunk lonelyhearts, maybe bringing up some favorite porn immediately if you fail the test, to further deter questionable bootycalls and stalkerish emails).
Now how do we control the point of entry? Well, there seem to be three points we need to defend from, and they'd all be the standard points at which you'd password protect a machine. Startup, login, and resuming after sleep or screensaver mode. And like advanced security systems which require biometric scans to access the system, I'm thinking that a two-pronged hardware/software approach is most secure. Also, the system could be set up on a timer, so that protection only kicks in after, say, 8pm (long enough to drink six beers after leaving the office early).
The hardware component would be a USB dongle inserted in the keyboard's USB path. The dongle itself would house the necessary breathalyzer hardware as well as a simple USB controller to interpret the breathalyzer output for the serial bus. Upon initiation, the software would ping the bus to make sure that the dongle was connected properly and functional. If the device is removed from the keyboard path (or placed on another path in the bus), it would immediately render the blocked applications and sites useless. Assuming the device is connected, the user would be prompted to blow into the device before they'd be allowed to proceed with access to the system.
But breathalyzer readings are notoriously innaccurate, and can be gamed to a certain extent by learning certain breathing patterns (or by having the toddler you're probably scarring for life breathe into it). So another layer of protection kicks in after the breathalyzer reading is complete. These could involve anywhere from speech recognition (to test your speech against speech recorded sober during configuration), visual accuity tests ("Ooooh my eyes, I've got double vision…"), reflex tests, spelling tests or, most likely, some combination of all the above.
I think that between the input from the breathalyzer, combined with the results of the above tests, a score could be computed and a threshhold set above or below which the user is either allowed or denied access to their chosen tools. The scoring system and threshhold would have to be set based on a pool of testing data in real-world situations, although the data could be refined over time by user feedback and automated data that's analyzed by a central service.
Now, of course, there will never be a fool-proof way from keeping drunks from getting into trouble. And certainly even a relatively impaired hacker could probably figure out seven ways to subvert this. But if the system is stable and reliably built, the idea would be to at least delay and engage the user long enough for their better judgement to kick in. For instance, by the time you booted from disk, formatted the drive and re-installed the system, you'd probably be either sobered up or passed out in your chair.
Unfortunately, it's all a pipe dream at this point. While the hardware isn't terribly expensive (keychain breathalyzers from China run about $9 on eBay, and usb controller interfaces are a dime a dozen), the technical skills necessary to prototype the device and design the software is beyond me. So are there any hardware modders and software hackers out there who've woken up with a bad hangover and an angry reply to an email you don't remember sending? Because I'm gonna need your help.