More than a year ago people done serious research on the topic of the DECT security and found significant flaws but since then nothing changed dramatically in the way the industry implements DECT. I guess most people are probably not fully aware of that DECTs insecurity could affect them. In April 2010 experts are now able to recover the DECT standard Cipher key [1,8,9]. Please note that I have done my analysis when the topic was just raised and it’s quite likely that some of the OS specific issues have changed in the meantime.
What’s it all about:
Remember the good old days when people made their calls from a traditional landline and had their tripping hazard all inclusive:
These days people usually got cordless phones which are more convenient but unfortunatelly insecure in utilizing the DECT (Digital Enhanced Cordless Telecommunications) protocol standard as demonstrated , by members of the CCC-Chaos Computer Club at the 25C3 Chaos Communication Congress . The hack (The Register reported) is not limited to DECT based phone call eavesdropping, see listed DECT implementations but a strong warning that listening to phonecalls without prior permission is illegal, e.g in Germany even the attempt is punishable up to five years .
- Cordless phones
- Wireless ISDN access
- Emergency calls
- Remotely controllable door openers
- Cordless Credit card terminals (Will probably become less popular in near future)
- Traffic lights control (Germany) and traffic control systems (UK)
- Situation in Germany, currently ~ 30.000.000 cordless DECT based phone base stations in use, I do not have UK and US specific stats but there should be also a fairly high number of deployments similar as worldwide to be expected.
This post describes only basics of the “deDECTed” hack  and more details can be found in the Appendix.
DECT implementations do vary on the vendor and DECT “secret key” (UAK) has been made available to vendors which are implementing DECT under a Nondisclosure Agreement. However it appears that encryption in DECT based phones is often not implemented/enabled and even the latest generation of DECT phones which are supposed to use encryption can be intercepted by forwarding traffic to a Voice over Internet Protocol (VOIP) system (e.g. Asterisk Pbx ) which is not supporting the encryption and so DECT is falling back to an insecure communication.
If encryption is not implemented someone only needs a PC, software and a DECT Controller to penetrate the own DECT phone.
The German hacker group initially used a hardware device utilizing Gnu Radio to sniff to the DECT traffic on 1.88 – 1.9 GHz (in comparison Wifi 802.11 b/g is on the 2.4 GHz band and Wifi 802.11a on 5 GHz) but then decided later on to make their “life easier” and wrote a Linux kernel driver and obviously some user space utilities for the “Com-on-Air” PCMCIA based Dect Controller by “Dosch/Ammand” (D/A).
When I looked into getting the card the current prices on Ebay for the Type II cards (ironically D/A is bankrupt since years) have been appx. 10 x more than the card was before the DECT weaknesses report made it to the public and the card main purpose at that time was using it as an IP-DECT solution where the backhaul from the base station is VoIP (H323 or SIP) while the handset loop is still DECT or in other words people just used the Com-On-Air card to extend their VOIP networks through the DECT Controller forwarding calls to their convenient (DECT based) cordless phones.
Com-On-Air Linux Kernel driver:
To get the PCMCIA Type II card working the students wrote their own driver for the card. The code compilation is straight forward, just make sure you got the latest kernel sources and headers in place. The DECT analysis tools are also in the code framework included and they compile as easy as the driver does. After a successful module load (insmod, modprobe etc.) you will see (lsmod) “com_on_air_cs” kernel module loaded and it will dealing with the DECT controller card under Linux.
|[ 339.588207] >>> loading com_on_air_cs
[ 339.588875] com_on_air_cs: >>>>>>>>>>>>>>>>>>>>>>>>
[ 339.588879] com_on_air_cs: card in slot com_on_air_cs
[ 339.588882] com_on_air_cs: prod_id DECTDataDevice
[ 339.588885] com_on_air_cs: prod_id PCMCIA F22
[ 339.590638] com_on_air_cs: ioremap()’d baseaddr 9ab34000
[ 339.590664] com_on_air_cs: registered IRQ 3
[ 339.630471] com_on_air_cs: valid client.
[ 339.630474] com_on_air_cs: type 0×118
[ 339.630476] com_on_air_cs: function 0×0
[ 339.630478] com_on_air_cs: Attributes 1
[ 339.630480] com_on_air_cs: IntType 2
[ 339.630483] com_on_air_cs: ConfigBase 0×1020
[ 339.630485] com_on_air_cs: Status 0, Pin 0, Copy 0, ExtStatus 0
[ 339.630488] com_on_air_cs: Present 1
[ 339.630490] com_on_air_cs: AssignedIRQ 0×3
[ 339.630492] com_on_air_cs: IRQAttributes 0×12
[ 339.630494] com_on_air_cs: BasePort1 0×0
[ 339.630496] com_on_air_cs: NumPorts1 0×10
[ 339.630498] com_on_air_cs: Attributes1 0×10
[ 339.630500] com_on_air_cs: BasePort2 0×0
[ 339.630502] com_on_air_cs: NumPorts2 0×0
[ 339.630504] com_on_air_cs: Attributes2 0×0
[ 339.630506] com_on_air_cs: IOAddrLines 0×0
[ 339.630508] com_on_air_cs: has function_config
[ 339.630512] com_on_air_cs: get_card_id() = 0
[ 339.630514] com_on_air_cs: ———————–
DECT Kismet integration with Kismet plugin in kismet-newcore:
Kismet is a network detector, packet sniffer, and intrusion detection system for 802.11 wireless LANs. The authors of Kismet made it possible to extend the portfolio of the application to understand DECT detection which is quite neat for someone who is frequently using Kismet anyway. Please note that you need to compile Kismet from scratch if you want to use the plugin support as it is only available in the latest kismet-newcore through subversion (svn).
Some DECT specific acronyms:
RFPI = Radio fixed part identity, phone base station id (note that a Ethernet MAC address is 6 and not 5 bytes)
RSSI = Received Signal Strength Indication
FP = Fixed part (e.g. telephone base station)
PP = Portable part (e.g. phone handset itself)
B-FIELD = Actual payload, e.g voice codec
C-CHANNEL = Contains all DECT higher layer control
CH = Channel
Kismet Dect plugin:
The help menu of the Kismet (Newcore) DECT plugin shows the basic scan options for phones, basestations and the plugin ability to sort the findings in the order of the users choice. The DECT integration also allows to change channel hop settings and sync on a call and dump it to a local system for example.
Dect Scan Example:
Dect Analysis tool:
The most featurecomplete tool is dect_cli. it can dump pcap formatted captures and is shown in
There are also other tools available:
coa_syncsniff dumps pcap files on a given channel and RFPI
pcap2cchan dumps C-channel informa
tion from pcap files:
station: addr:8e ctrl:4c len:c0 crc:9ab2 -> reserved cc 05 dc 82 64 de 9b 7a ca b8 01 6a 9e c2 11 04 74 d7 fb d4 f9 f6 f0 54 39 73 fc 8c f7 11 10 19 d5 1b 9b 8a ac 12 9d d5 76 55 2e a2 f5 79 aa 4d
pcapstein dumps all B-Fields found in a pcap file
Dect command line interface menu:
|DECT command line interface
type “help” if you’re lost
help – this help
Example of Base station- and call dump with DECT command line interface:
00 7e 94 dd a8 ch 7 RSSI 18.53 count 76 first 1234794847 last 1234795069
00 7e 94 dd a8 ch 7 RSSI 19.20 count 5 first 1234795128 last 1234795129
Example of a call dump processing:
This is the resulting information by extracting from the .pcap capture the raw G.726/G.721 (.ima codecs – ADPCM 4bit per sample) 32 kbps dumps and finally decode them using Sound eXchange into Waveform audio format (.wav).
(.wav file(s) can be listened to in using the favourite audio player)
DECT support in Wireshark:
No support for dissecting DECT was present in the main Wireshark repository however captured DECT data can be analysed further in loading the relevant .pcap files into Wireshark Development unstable version compiled from scratch or by applying the wireshark-1.0.5_dect.patch to wireshark version 1.0.5.
This is a list of software packages you need to have installed prior wireshark compilation to get a succesful build under Linux Ubuntu 8.04 LTS/ 8.10:
- bison – A parser generator which is compatible with YACC
- flex – A fast lexical analyzer generator
- gtk2-engines – theme engines for GTK+ 2.x 9!)
- libgtk2.0-dev – Development files for the GTK+ library
- libpcre3-dev – Perl5 compatible regular expression
- libkrb5-dev – Header and Development Files for MIT Kerberos
- library – development files
- libc-ares-dev – library for asyncronous name resolves
- libsmi2 – A library to access MIB information
- libsmi2-dev – A library to access MIB information (development files)
- libgcrypt – LGPL Crypto library – development files
- libcap-bin – basic utility programs for using capabilities
- libcap-dev – development libraries and header files for libcap
- libgeoip-dev – Development files for the GeoIP library
- libgnutls-dev – the GNU TLS library – development files
- libssl0.9.8-dbg – Symbol tables for libssl and libcrypto
External antenna connector hardware:
Some people claim operating DECT within the European 1.88 – 1.9 GHz range (similar frequency window as used by Global System for Mobile communications (GSM) in the 1900 MHz band) does allow to receive a reasonable signal from up to 300 meters ( appx. 980 feet) distance. More EIRP will significantly improve the signalling and hence less noise.
The photo illustration below is for a Wifi card extension but the DECT controller should have a similar circuit board layout so the SMA connector soldering can be easily adapted with use of a standard GSM 1900 antenna or best a custom made DECT frequency antenna.
- “Conversations relayed through cordless household phones are far easier to snoop upon than previously suspected.”
- DECT based phones are a bad choice for using in business.
- VOIP Security can be eliminated by implementing VOIP->DECT gateways
- DECT is cracked  .