Electronic Door Lock Security
by in Error'd on 2007-06-29What better way to keep out the riffraff at an office gym than one of those newfangled electronic locks? Of course, getting legitimate users to remember the key code can be a bit of a challenge, so it’s probably best to put a sign on the door that tells them what the key code is. But of course, that presents a security problem with the aforementioned riffraff, so it’s probably best not do that. Or, one could just do both …
Rrrrrriiiinnngggg. Ahh, yes. The 2:00AM support call. There’s nothing else quite – rrrrrriiiinnngggg – like it to remind us that no place, not even Happy Dreamland, is – rrrrrriiiinnngggg – a sanctuary from work. “Hun,” Michael’s wife grumbled, “Aren’t you going to get – rrrrrriiiinnngggg – that?!” Michael rolled out of bed and answered the support phone. There was apparently a pretty serious problem with one of the dedicated communication servers.
“So, let me guess, ahhhhxxxCCxxshheeecczzzahhhhem,” started Mr. Thompson, Ed B’s prospective boss, pausing to make the most vile power-snorting, throat-clearing, wet-cough noise ever heard. “You’re Edward – cxxxxshxxx cxxxxcaaaheem – and you’re here for a job interview? A harr harr harr!”
The First Day of a new job is almost always slow and uneventful. A bit of paperwork in the morning, a quick walkthrough of the system, and possibly a trivial First Assignment. Nick’s First Day at the International Shipping Company (as I’ll call it) was no exception. In fact, it was so slow that it seemed like the First Day would last all week. That is, until a frantic coworker burst into his cubicle.
Virtualization was not an uncommon theme among several of the OMGWTF entries. It only makes sense: why stop at abstracting layers of software when the entire hardware platform might need to be changed later on? Sure, some might argue that the “operating system” or “compiler” can handle all those changes, but why risk it? Entry #100336 (Randolpho St. John’s VICE, Virtual Integrated Circuit Engine) sure didn’t: it took the concept of a virtual machine way too far.
Before even hearing the problem description, “certain” developers already know what the solution will be: something with a Client-Server model. It could be .NET Remoting, Java RMI, or some homegrown protocol, but whatever it is, it should use network communication to interface between layers just in case it has to scale up for multiple computers. The Client-Server model was not an uncommon approach to the OMGWTF contest, but Entry #100099 – Keith Lucas’s estimator – did it in the most unconventional manner.
As Jake, Intern Boyd, and I sat around the conference table and scrolled through codefile after codefile, solution after solution, Entry #1000043 – Stephen Oberholtzer’s “Buggy 4-Function Calculator” – sucked us in. It didn’t feel like we were looking at a purposely contrived contest entry, it felt like a real, live, rotting codebase. The kind of codebase that plagues so many organizations: fragile, old, bug-ridden, and passed through the hands of several developers.