Attacking RFID Systems - index-of.co.ukindex-of.co.uk/Etc/Attacking RFID System [Lukas...
Transcript of Attacking RFID Systems - index-of.co.ukindex-of.co.uk/Etc/Attacking RFID System [Lukas...
Attacking RFID Systems
Exploiting ID and ticketing applications
Lukas GrunwaldDN-Systems GmbH Germany
Power of Community 2006Korea
Agenda
What is RFID?How to exploit and attack RFID systemsAttacks against the middlewareReader-emulation, soft-tagsUnexpected risk middlewareNew ways to exploit the systemEncrypted RFID Tags (14443, MRTD)
What is RFID?Radio Frequency Identification (RFID)
Wireless transmission of information between transponder and reader without visibilityBidirectional transfer (read and write)Transponder (tag) can be attached, embedded or implantedAutomatic correlation between object and saved data
Generic TermsRFID is often used as generic term for complete infrastructures.
A transponder (aka RFID-chip, -tag, -label, wireless label or simply chip)A reader (in fact most of them can write to the tag too)Some middleware, which connects the reader to a serverSome communication infrastructureIntegration with server farms, data warehouses, services and supporting systems
VariantsDifferent types of RFID transponders
EM-fieldEM-fieldE-field, magnetic field
860-956 MHz (UHF)2.4 GHz (Microwave)5.8 GHz (Microwave)
13.56 MHz, 125-135kHz
13.56 MHz, 125-134.2kHz
ISO 18000-xxISO 15693ISO 14443 A+B
Up to 500 meter<= 5meter<= 15 centimeter
Long rangeMid rangeShort range
Transponders
There are different kinds of transponders:Only transmitting a unique ID (serial-number)
Only passiveIdentificationTracking (Fast-track)Only clear text communication
Transponders
There are different types of transponders:Storage of Data / Metadata R/W WORM
Most passive, some activeEPCSmart LabelsMost use clear text communication, some are with encrypted communication
Transponders
There are different types of transponders:Act as Smart Card Interface
Most active, some passiveBiometric Passport (ICAO - MRTD)Access Control System (Mifare DESFire)Encryption, authentication, encrypted communication
Generic Attacks
Sniffing of the communication between transponder and reader
Counterfeiting of the communicationObtaining UID, user data and meta dataBasic attack on structures and tagsReplay attack to fool the access control systems
Generic Attacks
Counterfeiting the identity of the reader and unauthorized writing to the tag
Change of UID via manipulation of the administrative blockDeclare false identityUID must be readable in clear textManipulation of product groups and prices
Generic Attacks
Manipulation of data stored on the transponder
Manipulation of dataManipulation of metadataSwap of objectsLogical duplication of objects
Generic Attacks
Deactivation of the transponderDisable the traceability of objectsDisable the visibility of objects
Generic AttacksAttack the structures in the middleware and backends, manipulation of data structures.
Injection of malware into the backend and middleware systemsE.g. database wormsManipulation of backend systemsDenial of Service attack against the infrastructure
Generic Attacks
Jamming of the RFID frequenciesUse of “out-of-the-box” police jammer (broadband jamming transmitter)Attack against anti-collision (RSA attack)Prevent reading of the tagSimple denial of service attack against the RFID SystemShut down production, sales or access
Encrypted RFID
MIFARE are the most used RFID transponders featuring encryption
Technology is owned by Philips Austria GmbH Technology is based on
ISO 1444313.56 MHz Frequency
MIFARE Tags
MIFARE Standard Proprietary high-level protocolPhilips proprietary security protocol for authentication and ciphering MIFARE UltraLight: same tags without encryption
MIFARE Tags
MIFARE Pro, ProX, and SmartMX Fully comply to ISO 14443-4 standardThe different types of tags offer memory protected by two different keys (A and B)Each sector could be protected with one of these keys.
Brute Force the Tag2^6^8 bit for the keyspace25 ms per try with a brute force perl script using Linux and a self written driverUsing one RFID reader
( )Years
ss
22623 Days 814453053600
025.0682
≈≈•
Brute Force the Tag2^6^8 bit for the keyspace25 ms per try with a brute force perl script using Linux and a self written driverUsing 1.000 RFID readers
( )Years
ss
226 Days 8144510003600025.06
82
≈≈•
•
MIFARE Sector KeysPhilips puts all information under NDAWe are not interested to sign an NDAExtract information from RFID software via „UNIX strings“Google helps a lot, Google desktop search is very popular among smartcard developers´ PCs ;-)Look at the results
Default Keys
Found the following default keys:Key A A0 A1 A2 A3 A4 A5 Key A FF FF FF FF FF FFKey B B0 B1 B2 B3 B4 B5Key B FF FF FF FF FF FFAbout 60 keys from example applicationsNo protection 00 00 00 00 00 00
MAD
Additional found the Mifare Application Directory.This PDF that shows how MIFARE are specifying the type of use of one of the transponders, each applications should have an entry to show the Type of Service.
Example Layouts
In the datasheets and „googled“ documentation are a lot of examples.These examples include different keys and tag / memory layout and data structure for:
TicketingAccess ControlOnline Payment
Software developers are lazy
Checking a couple of cards shows that more than 75% use one of these default keys!It compiles let's ship it !The programmers not only use the example layouts, they also use the example keys !
Attack the Tag
Directory attacks are possible with found default and example keys
Variations of the directory are always possible„Smart“ brute-force attack to the tag are possible
never seen a lockout or false login countera delay for a false key does not exist
Attacks to the Backend
The memory of a ISO 15693 tag acts like a normal storageRFDump (Black Hat 2004) could help to manipulate data like with a hex-editorSQL-Injection and other attacks are possible
Preventing security functions
If the tag is „read only“ read it with RFDump and write the manipulated data to an empty oneChecksum, some implementations use the UID (Unique ID) as mirror block in the UD, both must be changedIf the block is encrypted, the Sector Key must be broken
The RFID Supply chain
Lifecycle Management
Point of Sales
Customer CareDistribution
Production
Data Warehouse
Customer
Break into the Systems
Event ManagerReader control
InformationServer
(Middleware)
ERP
....
CRP
EDGE BACKEND
Problem Memory SizeAdr Memory
0x1 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x2 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x3 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x4 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x5 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x6 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x7 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x9 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xa 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xb 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xc 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xd 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xe 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xf 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Page 0x76Byte 6
Representation to the Backend
Looks like unlimited space on the tagE.g. RFDump uses a tag database to avoid reading over the boundary
Normally reading is event-drivenReading up to the EOFInput is unchecked in all implementations we have seen
Tag DoS with C-Strings
Adr Memory
0x1 68547369 69202073 6e616520 6178706d 656c6f20 20662061 616d696e 75706100
0x2 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x3 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x4 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x5 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x6 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x7 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x8 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0x9 FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0xa FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0xb FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0xc FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0xd FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0xe FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
0xf FFFFFFF FFFFFFF FFFFFFF FFFFFFF FFFFFFFF FFFFFFF FFFFFFF FFFFFFF
End of String
Tag DoS with XML
Addr Memory in ASCII
0x1 <rfiduid:ID>urn:epc:1:4.16.36</rfuid:ID>
0x2 <rfidcore:Observation><rfidcore:DateTime>
0x3 <rfidcore:DateTime>2002-11-06T13:04:34-06:00
0x4 </pmlcore:DateTime>
0x50x6
Mass reading
Addr Memory in ASCII
0x1 <rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID>
0x2 <rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID>
0x3 <rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID>
0x4 <rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID>
0x5 <rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID>
0x6 <rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID><rfiduid:ID>
Inf. Items in one Tag
Soft-Tags
Emulation of RFID-Tag and/or readerSerial-Emulation of any ISO 15693 tagUseful for testing backend and middlewareReads „backup“ from real tagsManipulation of any UID, User Data or administrative block.
ePassports
This image is a work of a United States Department of Homeland Security employee, taken or made during the course of an employee's official duties.
As a work of the U.S. federal government, the image is in the public domain.
MRTDMachine Readable Travel Document aka Electronic Passports (ePassports)Specifications by ICAO
(International Civil Aviation Organization)
Enrollment on a global basis
ePass from Germany
RFID tag embedded into the coverProduced by the Bundesdruckerei GmbH
MRTD
Store passport data and biometric information on an RFID transponder
Alternative storage methods like 2D barcodes also coveredCommon standard for interoperabilitySome features are mandatory, others are optional
2D Code and MRZ
Passport with 2D barcode and MRZ (machine readable zone)
MRTD Data-LayoutLDS (Logical Data Structure)
Data is stored in DG (Data Groups)DG1: MRZ information (mandatory)DG2: Portrait Image + Biometric template (mandatory)DG3-4: fingerprints, iris image (optional)EF.SOD: Security Object Data (cryptographic signatures)EF.COM: Lists with Data Groups Exist
Data is stored in BER-encoded ASN.1DG2-DG4 uses CBEFF for encoding
common biometric file format, ISO 19785
MRTD Security FeaturesRandom UID for each activation
Normally all ISO 14443 transponders have a fixed unique serial numberThe UID is used for the anti collisionPrevent tracking of owner without access controlProblem: ICAO MRTD specs don't require unique serial numberOnly some countries will generate random serial numbers
Passive AuthenticationThis method is mandatory for all passportsMethod of proof that the passport files are signed by issuing countryInspection system to verify the hash of DG's
EF.SOD contains individual signatures for each DGEF.SOD itself is signedDocument Signer Public Key from PKD / bilateral channelsDocument Signer Public Key can be stored on the passportUseful only if Country Root CA public key known
Signed Data
EF.DG2 EF.DG3EF.COM EF.DG1
HASH overData
HASH overData
HASH over HASHHASH Signed by
Country CAEF.SOD
Basic Access ControlPermits access to the data after the inspection systems are authorizedAuthorization through the Machine Readable Zone (MRZ)
Nine digit document numberIn many countries: issuing authority + incrementing numberSix digit date of birth
Can be guessed or assumed to be a valid dateSix digit expiry date16 most significant bytes of SHA1-hash over MRZ_info are 3DES key used for S/M (ISO7816 secure messaging)
Extended Access Control
Optional methodShould prevent the unauthorized access to biometric data
Not internationally standardizedImplemented by individual issuersOnly shared with those countries that are allowed access
PKI Integration
X.509 CertificatesEvery issuer operates a self controlled CASigner keys are derived from CA rootPublic keys are distributed via ICAO PKDEveryone can verifyCertificate revocation list (CRL) not planned yet
Cloning of passportsDual Interface Tags could act as MRTD TagData could be retrieved from an issued passportPersonalization is possible via Smartcard Shell or other tools.Cloned tag behaves like an „Official“ ePassport
Chaos of StandartsTLV and ASN.1 not correctly implementedRedundant meta formats for biometric dataIf sign-key gets lost, the whole country is doomedFirst the data must be parsed, then it can be verifiedDesign was made by politics and not by IT Security expertsIt is possible to manipulate data
Security Issues
UID could be changed from the tagPassport-tag could act as Access-Control tag, if only UID is used, this tag could act as any access tagManipulated DGs could crash the reader / terminal
Thank You
Questions ?