Slashdot Log In
Buffer Overflow Found in RFID Passport Readers
Posted by
CowboyNeal
on Sat Aug 11, 2007 09:20 AM
from the never-too-careful dept.
from the never-too-careful dept.
epee1221 writes "Wired ran a story describing Lukas Grunwald's Defcon talk on an attack on airport passport readers. After extracting data from the (read-only) chip in a legitimate passport, he placed a version of the data with an altered passport photo (JPEG2000 is used in these chips) into a writable chip. The altered photo created a buffer overflow in two RFID readers he tested, causing both to crash. Grunwald suggests that vendors are typically using off-the-shelf JPEG2000 libraries, which would make the vulnerability common."
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Of course they are vulnerable (Score:3, Insightful)
The only thing the manufacturers of these systems can do is thoroughly test their software, and make the attack possibilities as small as possible. For instance, they should check the signature under the data before passing the data on to the next layers. Of course, for this you need the certificate of the issuing state. You should also test if the underlying libraries that do this initial check are not vulnerable.
Explain to me how... (Score:3, Funny)
Passport is scanned
Reader goes casters up
Reader is power cycled
Passport is scanned again
Reader goes casters up
Owner of said passport is hauled off to some secret room where all of their orifices are checked by an ex-prison guard with large hands.
This does show the lack of testing and hardening, but it seems a buffer overflow situation like this would be relatively easy to patch.
Re: (Score:2, Funny)
Re:Explain to me how... (Score:5, Insightful)
Passport is scanned
Reader goes casters up
Reader is power cycled
Passport is scanned again
Reader goes casters up
Security Goon say "Shit, that's wierd. But the paper passport looks fine. Go on through."
Owner of said passport traipses past security, making the E-passport no better than a regular one.
Parent
Re: (Score:2)
Security Goon say "Shit, that's wierd. But the paper passport looks fine. Go on through."
"Insightful," eh?
A show of hands, please, from anyone willing to test this theory out.
"Weird" is not a word I want to hear from the airport security guard when I am trying to board a plane for New York.
Re: (Score:2)
Hand card to cashier.
Scan card. Won't scan.
Scan card again. Won't scan.
"That's wierd. It won't scan. Sign here instead."
I then walk out with the goods. No valid security check was made. This has happened multiple times at multiple shops.
Re:Explain to me how... (Score:5, Informative)
Parent
Re: (Score:2, Interesting)
*passport is scanned*
*reader does something weird [because it's being hijacked by buffer overflow exploit code], gives error message*
*passport is re-scanned*
*reader says, "Joe C. Terrorist is OK. His name does not appear in no-fly list. SSN# 666-69-6969 is valid."*
-os
Re: (Score:2)
Owner of said passport traipses past security, making the E-passport no better than a regular one.
Nonsense. What would actually happen is exactly what would happen if you just broke the contactless smart card chip in your passport -- since your passport isn't fully functional, you get routed out of the expedited "normal" flow, and into the "exceptional case" flow, which results in greater scrutiny of you and your passport. Assuming the alterations you made to the paper passport are undetectable, and assuming you manage to keep your cool and not give yourself away, and assuming the immigration agents
Re:Explain to me how... (Score:5, Insightful)
Hacker crafts jpeg with exploit code
Passport is scanned
Exploit code is injected
Reader silently executes exploit code
Reader continues operation with nobody any the wiser
A compromised reader lets you bypass the biometrics.
Parent
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Funny)
Blackhat? No sir! I've just got an unfortunate face!"
Re: (Score:3, Insightful)
It might be possible for an attacker to exploit the buffer overflow in order to cause the reader to execute software chosen by the attacker. For example, the attacker might insert code that recognizes his forged passport as valid, or that recognizes somebody else's passport (who may have flew in on the same flight) as invalid.
Re: (Score:2)
Or other forged passports as valid.
or that recognizes somebody else's passport (who may have flew in on the same flight) as invalid.
They need not be on the same flight. Possibly not even on the same day, depending how the system might be hackable.
If their intention were disru
Re:Explain to me how... (Score:5, Informative)
A buffer overflow is a serious vulnerability, in that finding one is the biggest step towards cracking a system open.
Parent
Re: (Score:2)
Better yet, modify the passports of people you don't like to delay their passages through security and get them arrested. There are
Re: (Score:2)
Re: (Score:2, Funny)
Amsterdam, here we go!
hardly a profitable business ... (Score:2)
Honestly... (Score:2, Insightful)
#1: the guard will humanly read your inside cover photo with extra vigilance...the chip is not the only method of ID
#2: you'll probably be detained for a bit while they re-test your passport; if it fails again, they'll tell you to get a new passport
(#2a: or be placed on a no-fly list, because you're a terrorist)
Plus, how exactly would a code-injection exploit work unless it's something like the GDI+ vulnerability that
Computers help voters not vote counters. (Score:2)
When it comes to counting voter-verified paper ballots, I would agree with you that this task should not be done electronically. Humans can (and do in many elections around the world) manually count voter-verified paper ballots.
But when it comes to preparing the voter-verified paper ballot, I don't see the harm with electronic assistance: electronic preparation
30 more years of buffer overflows? (Score:2)
Doesn't everyone check all inputs before using? (Score:2)
Re: (Score:2)
Re: (Score:2)
The company that I work for has mainframes that disallow the execution of data, and this is, or has been, prevented by hardware. It just isn't possible to execute data. Oh... it has been this way ever since I've worked at this company, over 25 years.
Even Microsoft now has, in XP and I'm guessing later OSes, Data Execution Prevention (DEP). Most people don't turn it on because it does have a slight effect on performance. You can find the option by going to My Computer, Properties, Advanced Tab; Click "Se
"..the Windows-based border-screening computer.." (Score:3, Funny)
FTFA: "If a reader could be compromised using Grunwald's technique, it might be reprogrammed to misreport an expired passport as a valid one, or even -- theoretically -- to attempt a compromise of the Windows-based border-screening computer to which it is connected."
That does it. From now on I'm only travelling to countries which use OpenBSD to operate their border gateway protocols.
And: "Additionally, the International Civil Aviation Organization recommends that issuing countries protect biometric data on the e-passport with an optional feature known as Extended Access Control, which protects the biometric data on the chip by making readers obtain a digital certificate from the country that issued the passport before the equipment can access the information."
Sounds like in the future, the only people who'll be able to traveler with any degree of success will be those who can forge their passports...
Re: (Score:3, Funny)
Lost faith on RFID security long ago? (Score:3, Insightful)
the usual (Score:2, Insightful)
There is no reason why any modern programming language should permit accidental buffer overflows; they are easily preventable without pushing the burden onto the programmer even in programming languages with the same power as C and C++.
Re:the usual (Score:4, Insightful)
Now if you're saying that there's no need to develop the vast majority of today's computer software in assembly, C, or C++, then I agree with you wholeheartedly -- but we're not talking about a computer, we're talking about an RFID reader. You know, a small device that doesn't have the latest gaming processor from AMD and Intel and 2 gigs of RAM. It has enough memory for what it needs to do and that's it; and, to be low power, it has a small, simple embedded processor.
You can't run a JVM on this thing, and even if you wanted to, it would be a bad idea.
Parent
Re: (Score:3, Informative)
Your argumentation suggests that a type-safe language will necessarily lead to more cpu-intensive code. This is simply not the case. For the most part, type-safety can be enforced at compile time. The result is a program that is type-safe by construction, without requiring any run-time checks
Re: (Score:2)
As for type-safety, I actually know what you mean -- I do most of my programming is in Haskell these days, which has a very powerful type system. Runtime errors are relatively infrequent as a result, but when they do occur, it's often because I'm trying to take the head of an empty list, or something similar, a proble
Re: (Score:2)
The reader simply passes the data to the PC, which is powerful enough to use a 'safe' language (with bounds checking, garbage collection, VM-sandboxing etc. etc.). Data obtained from the card is untrusted and should be treated as such until proven otherwise.
The problem here is not the reader, but the JPEG library running on the host.
Re: (Score:2)
I will admit that I assumed that an RFID reader would not be as powerful as they appear to be. I guess we have hardware bloat these days, huh? Well, in light of the evidence, I withdraw my critique. I don't see why we'
Re: (Score:2)
Programs in Java are more secure than programs in native code, but only as long as they don't rely on native libraries
Re: (Score:2)
Hint: most cell phones run their software almost exclusively on a JVM.
Hum, no. Many cell phones can run Midlets, but the main firmware (user interface, call handling, SMS, picture processor...) is programmed in native code. On Symbian and Windows Mobile cell phones, you can actually install additional native appliations. Midlets are only used for user-downloaded applications programmed in Java, which is a really small market. Blackberries are the only cell phones that run every program in Java, including the user interface, but even them rely on significant portions of nativ
Re: (Score:2)
It most certainly is not the fault of C tha
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I'm also learning SVG
Security Through Obscurity (Score:2)
Because everybody knows that, had they written their own code, it would have been much more secure. Just like magic.
Re: (Score:2, Funny)
Re: (Score:2, Funny)
Yes.
Re: (Score:2)
You never know, under those burkas...
Re: (Score:2)
Re: (Score:2)
RFID passports were a stupid idea in the first place. I do not want the id in my pocket broadcasting to the world "I'm an American Passport! Kidnap the holder!" (and kidnapping is an issue in places of the world I need to go, like where my in-laws and children are).
Re: (Score:2, Insightful)
Re: (Score:2)