Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Security in DECT

Security in DECT

Marc Seeger

April 06, 2012
Tweet

More Decks by Marc Seeger

Other Decks in Technology

Transcript

  1. Usage My personal security concerns Babyphones ¯\(º_o)/¯ Wireless ISDN O_o

    Telephones Ò_ó Emergency Call Systems :-/ Door opening systems :-O Wireless EC-Cardreaders X-/ Traffic control systems X-O
  2.  Before (analog): CT1(+), CT2  ETSI Standard: 1992 

    Audio codec: G.726  Net bit rate: 32 kbit/s  GFSK  Frequency: ◦ 1880 MHz–1900 MHz in Europe ◦ 1900 MHz-1920 MHz in China ◦ 1910 MHz-1930 MHz in Latin America ◦ 1920 MHz–1930 MHz in the US  Average transmission power: ◦ 10 mW (250 mW peak) in Europe ◦ 4 mW (100 mW peak) in the US
  3. PP (portable part) FP (fixed part) RFP (radio fixed part)

    A DECT system: • 1 DECT Fixed Part (FP) • 1+ radio fixed part (RFPs) • 1+ DECT Portable Parts (PPs)
  4. PP FP (Local network) HDB PP = Portable Part FP

    = Fixed Part RFP = Radio Fixed Part HDB = Home Database RFP
  5. PP RFP FP (Local network) VDB HDB RFP Global network

    FP (Local network) PP = Portable Part FP = Fixed Part RFP = Radio Fixed Part VDB = Visitor Database HDB = Home Database
  6.  Frequency division multiple access (FDMA)  Time division multiple

    access (TDMA)  Time division duplex (TDD) User 1 User 2 User 3 Channel 2 User 1 Down User 2 Down User 3 Down User 1 Up User 2 Up User 3 Up Channel 2 Channel 1 Channel 2 Channel 3 Channel 4 Frequency Range 10 (1,728 kHz spacing) in Europe 5 (1,728 kHz spacing) in the US Time slots: 2 x 12 (up and down stream)
  7.  Generic Access (GAP) ◦ mandatory minimum requirement for all

    DECT voice telephony equipment as from October 1997  Radio in the Local Loop applications (RAP) ◦ the “last mile”  ISDN and GSM interworking (GIP).  …
  8. PP (phone)  Radio: Passive in idle mode  Scanning

    for pages  Scanning and making a list of channels avg. RSSI < every 30 seconds  Synchronizing with base station  Selecting best carrier/slot-combination for communication and opening a connection  Initiating encryption
  9.  When authenticating with an FP, the PP receives a

    unique 20 Bit identifier called TPUI (Temporary User Identity).  This TPUI is used when the FP uses paging because of incoming calls
  10.  digital radio access technology ◦ Eavesdropping ◦ Third party

    accesses equipment ◦ Man-in-the middle attack
  11.  „DSAA“ = DECT Standard Authentication Algorithm  Subscriber and

    base station share an authentication key after first „pairing“ challenge + response
  12.  DSC = DECT Standard Cipher  During authentication, both

    sides also calculate a cipher key.  This key is used to de/encrypt data sent over the air.  The ciphering process is part of the DECT standard (but not mandatory).
  13.  Initial pairing of the FP with the PP 

    Special „pairing mode“  User has to enter PIN on FP and PP => shared secret for DSAA  Key allocation results in a 128 bit secret key „UAK“ = User Authentication Key
  14. A11, A12, A21, A22  A11 + A12 ◦ Authentication

    of PP ◦ Generation of UAK: User Authentication Key (GAP) ◦ Key generation for DSC  A21 + A22 ◦ Authentication of FP And:  Algorithms were a secret
  15. PP FP Auth request RS and RAND_F (both 64 bit)

    A11(UAK,RS) KS (128 bit) A12(KS,RAND_F) SRES (32 bit) DCK (64 bit) SRES A11(UAK,RS) UAK (128bit) KS (128 bit) A12(KS,RAND_F) XRES (32 bit) DCK (64 bit) ? SRES == XRES ? UAK (128bit)
  16. FP PP Auth request RS and RAND_P (both 64 bit)

    A21(UAK,RS) KS (128 bit) A22(KS,RAND_P) SRES (32 bit) DCK (64 bit) SRES A21(UAK,RS) UAK (128bit) KS (128 bit) A22(KS,RAND_P) XRES (32 bit) DCK (64 bit) ? SRES == XRES ? UAK (128bit)
  17.  If encryption is enabled, signaling and data will be

    XOR„ed with the output of the DSC Streamcipher DATA ⊕ encrypred data ⊕ DSC DATA DSC Sender Receiver
  18. At this moment, members of the the project are people

    of the following entities:  Chaos Computer Club (Munich, Trier)  TU-Darmstadt Germany  University of Luxembourg  Bauhaus-Universität Weimar Germany and some individuals:  krater Andreas Schuler  mazzoo Matthias Wenzel  Erik Tews  Ralf-Philipp Weinmann (University of Luxembourg)  kaner Christian Fromme  H. Gregor Molter  Harald Welte
  19.  Problems: ◦ Stations not synced ◦ No Source/Dest Fields

    in Packets ◦ No Information when PP opens connection ◦ Descrambling requires Framenumber
  20.  Can capture all packets on a channel  CPU

    requirements are high (2 GHz+ CPU required)  Time multiplexing is difficult to handle  Sending frames is not supported  Costs : 1000 EUR
  21.  Can capture all packets on a channel  Can

    scan for stations or active calls  Can sync on stations and dump active calls  CPU requirements low  Sending frames supported soon  Costs : 23 EUR
  22.  Solution: reverse engineer: ◦ Removing case ◦ Searching datasheets

    ◦ Reversing Windows driver ◦ Find firmware image ◦ Try to activate hardware ◦ Upload firmware to chip ◦ Wait for interrupts
  23.  If there is no ciphering  capture and record

    audio data  Userspace utility scans for an active call and tracks the first one found  Packets are recorded to a pcap file  The file can later be played with an audio player  Total costs for the attack: 23 EUR.
  24.  Even when a phone supports encryption, most phones will

    not abort connection if base station does not  Calls can be rerouted (and recorded)  Implementation requires attacker to enter RFPI of base station to impersonate and IPUI of phone to accept  Total costs for this attack: 23 EUR.
  25.  A12, A21, and A22 are just simple wrappers around

    A11 ◦ A11 just returns the whole output of DSAA, without any further modification. ◦ A21 behaves similar to A11, but here, every second bit of the output is inverted, starting with the first bit of the output. ◦ A22 just returns the last 4 bytes of output of DSAA as RES. ◦ A12 is similar to A22, except here, the middle 8 bytes of DSAA are returned too, as DCK.  A11 takes a 128 bit key and a 64 bit random number to generate a 128 bit output  A11 uses four different block ciphers we call cassable to generate the output
  26. Other things we learned:  cassable is a substitution permutation

    type network  input is 64 bit  key is 64 bit  output is 64 bit  internal state also has 64 bit  for key scheduling, a bit permutation is used  each variant of cassable only differs in this bit permutation  to add the round key, ⊕ is used  a single cassable invocation does 6 rounds in total  each round consists of ◦ a key addition (⊕) ◦ S-box application ◦ one of three different mixing functions ◦ No final key addition ( only 5 relevant rounds)
  27.  No final key addition at the end, reduces strength

    to five effective rounds  At first look, full diffusion after three rounds  However, full diffusion only after four rounds  Attacks: ◦ S-Box allows linear cryptanalysis for 2-3 rounds versions ◦ Practical algebraic attacks possible up to 3 rounds version of cassable ◦ A differential attack possible on the full cipher with about 16 chosen input-output pairs and computational effort compareable to 2^37 invocations of cassable (before: 2^65)  However, this has no direct impact on DSAA so far
  28.  From the ETSI non-disclosure agreement for the DSC: ◦

    Not to register, or attempt to register, any IPR (patents or the like rights) relating to the DSC and containing all or part of the INFORMATION."  U.S. Patent 5,608,802, registered by Alcatel, originally registered in Spain in 1993: ◦ A data ciphering device that has special application in implementing Digital European Cordless Telephone (DECT) standard data ciphering algorithm [...]"
  29.  3 irregularly clocked LFSRs (2 or 3) of length

    17,19,21  1 regularly clocked LFSR (3) of length 23  key setup: load key, then 40 blank steps (irregularly clocked)  check whether register is zero after 11 steps, load 1 into every zero register LFSR:
  30.  NSC/SiTel SC144xx CPUs have commands to save internal state

    in DIP memory (11 bytes)  DIP memory can be read from host  Can load/save state after and before pre- ciphering (D LDS; D WRS)  Single-step through key loading to determine feedback taps  Isolate subset of bits determining clocking differentially in pre-ciphering  Interpolate clocking function (it's linear actually, could've seen that with bare eyes)  Output combiner is still missing at the moment
  31.  Looks like A5  Attacks not directly transferable 

    Not attack available yet, looking pretty good though
  32.  Reminder: ◦ UAK = initial shared secret exchanged while

    pairing  Impact: ◦ impersonate handsets ◦ decrypt encrypted calls ◦ etc.
  33. uint16_t counter ; uint8_t xorvalue ; void next_rand ( uint8_t

    *rand ) { int i; for (i = 0; i < 8; i ++) { rand [i] = ( counter >>i) ^ xorvalue ; } xorvalue += 13; } „Randomness“
  34.  Grab two challenge-response „pairs“ (RS,RAND_F,RES)  Iterate over all

    4-digit PINs: 3 * 2^35 DSAA operations  Assume 0000 PIN: 2^24 DSAA operations (50 secs on an Intel C2D 2.4GHz)
  35. BAD: Jabra: “DECT provides high protection against unauthorized access” Whitepapaer

    OK: dect.org Good: dedected.org „Attacks on the DECT authentication mechanisms“ Stefan Lucks, Andreas Schuler, Erik Tews, Ralf-Philipp Weinmann, and Matthias Wenzel Chaosradio Express Folge 102 : Der DECT Hack: http://chaosradio.ccc.de/cre102.html 25C3 Talk :https://dedected.org/trac/wiki/25C3 BSI: Drahtlose lokale Kommunikationssysteme und ihre Sicherheitsaspekte