Ask Slashdot: Is TSA's PreCheck System Easy To Game?
OverTheGeicoE writes "TSA has had a preferred traveler program, PreCheck, for a while now. Frequent fliers and other individuals with prior approval from DHS can avoid some minor annoyances of airport security, like removing shoes and light jackets, but not all of the time. TSA likes to be random and unpredictable, so PreCheck participants don't always get the full benefits of PreCheck. Apparently the decision about PreCheck is made when the boarding pass is printed, and a traveler's PreCheck authorization is encoded, unencrypted, on the boarding pass barcode. In theory, one could use a barcode-reading Web site (like this one, perhaps) to translate a barcode into text to determine your screening level before a flight. One might even be able to modify the boarding pass using PhotoShop or the GIMP to, for example, get the screening level of your choice. I haven't been able to verify this information, but I bet Slashdot can. Is TSA's PreCheck system really that easy to game? If you have an old boarding pass lying around, can you read the barcode and verify that the information in TFA is correct?"
Yes it is.
"Flyin' in just a sweet place,
Never been known to fail..."
If I were designing a security system for TSA, I would definitely consider printing a (possibly fake) screening status in the barcode in plain text. If you keep a database of what status you assigned to which boarding ticket, then you can more thoroughly screen (or arrest and jail indefinitely) anyone who changes the easily hackable obvious screening status on their boarding pass. This is much like a honeypot that folks sometimes use in network security. (For those who don't know, a honeypot is an easily hackable machine that serves no purpose except to be hacked so that an observer can find folks who are trying to break in.)
There is a very good DefCon talk on youtube about barcodes and how easy they are to scam. It's so trivial to encrypt the data in a barcode but of course TSA has spared every expense in the defence of america.
Here's the DefCon talk: http://www.youtube.com/watch?v=qT_gwl1drhc
Dear aunt, let's set so double the killer delete select all
These people are lazy. They're annoying, and they're a blight to society. However, for the time being we're all stuck with them until the rest of the general population rises up and says "We've had enough, out you go!".
So I ask you this- even if the system is "easy to game", why the hell would you want to risk it? Maybe you get past their security once, twice, a dozen times, etc. Maybe it is easy to game. That's nice and all.
The question you should be asking yourself is: "What are the consequences of being caught?". These people will happily label you as a terrorist and put you on a no-fly list FOR THE REST OF YOUR LIFE. You think you have legal rights, that they can't do that? They have and they will. Have fun spending the next 5 years of your life debating the finer details of the law in court so you can continue to fly down to Hawaii with the family on occasion for vacation.
It doesn't matter that their system is broken, or that the whole thing is a security theatre and a complete and utter farce. It matters what they're going to do to you when they find out you've been tampering with the system. If you make them look like idiots, their reaction will be to label you as a nefarious terrorist or hacker who was out to get the TSA and thank god they eventually stopped you because who knows what you would have done if they hadn't.
So are you **really** willing to live with the consequences of tampering with the system? Or are you just talking big because someone said the TSA was hackable and now it's all cool and hip to point that out to other people and pretend like you're actually gonna go ahead and do it?
Look the code to determine pre-check is in the clear and easy to read. What's not obvious is if it's also easy to change. There is a base-64 message below all the normal data that seems to decode to a hash. I would expect that this hash is protecting the integrity of the data above. No one I have seen has modified their barcode and presented it to the TSA. So while there is speculation that it is easy to change, there is no proof and some mild evidence that says this may not be so.
> What century is this?
It's the 21st century. You know, that century where not every Slashdot reader has a smartphone, and the majority of smartphones don't come with a built-in barcode reader, and reading barcodes is mostly pointless enough that the majority of users haven't installed a barcode reader.
Copying and/or modifying is fairly safe, trying to pass it off as the original is when it gets dangerous.
As usual, a good thread on the topic from Schneier-ville: https://www.schneier.com/blog/archives/2012/10/hacking_tsa_pre.html
Forward! -- Emperor Norton, 2012
Actually, if they have any common sense, they'd verify the barcode read from the ticket to the barcode stored in the airline DB when the ticket was printed. Modifying it would be a huge red flag.
But as we all know, the TSA has no common sense. I've considered it mind numbingly stupid that every time I've gone through an airport since 9/11, the super-duper-secure TSA checkpoint (ha!) doesn't check that my boarding pass actually corresponds to a real ticket issued. We're not talking about anything amazingly high tech, except a barcode reader, and network connection to verify against the airline(s) systems.
The only place that it's cross referenced is boarding, and even that is only most of the airlines I fly. I've been on a few that still just tear the paper boarding pass, and let you on. No verification or anything. At least not before the plane departs. I've been early (just like they ask you to), so I've watched them scanning used boarding passes minutes to hours after the flight leaves. I'm sure we're not suppose to observe procedure, even though it's done right in front of us.
Serious? Seriousness is well above my pay grade.
You can always get a legit boarding pass with no extra screening, change it to extra screening, and see what happens. They can't say you tried to bypass any security measures that way :)
A successful API design takes a mixture of software design and pedagogy.