A few weeks ago I wrote a blog post about a 3GPP SA3 proposal to leverage Digital Certificates in cellular networks. Despite some aspects in the proposal being far from ideal (as I discussed in the blog post), that proposal was and is very good news. It is the first time I have seen an actual proposal to leverage PKI to address inherent security issues in cellular networks on both LTE and 5G.

Today, a new revision of that proposal has been published, and I am now one of the co-authors (under my Softhandover affiliation). The new revision of 3GPP SA3 S3-202630 can be found here.


This is a proposal for Non-Public Networks (NPN), which are essentially “private” 5G deployments commonly used for critical applications such as first responders, tactical networks, utilities and industrial plants, etc. As such, this proposal is not aimed at commercial 5G deployments. However, the technology proposed could fairly easily be applied to commercial 5G networks by expanding the Certificate Authority network. For example, a TelCo operator could sign certificates for foreign operators with which it has trusted roaming agreements, such that devices roaming could verify the certificate chain that a roaming base station presents to the UE.

One of my main concerns with the previous revision was that it proposed to encrypt broadcast messages as opposed to sign them.

The newest revision proposes to actually sign broadcast messages along with a digest that includes a time stamp and, potentially, some form of geo-location in order to prevent for those messages to be replayed. Along with the message, each base station passes to the UE a certificate signed by the core network which attests the base station’s public key.

By leveraging digital certificates and a root of trust pre-loaded on the UEs (in the case of private 5G networks, the core network as Certificate Authority) both broadcast messages (SIBx) and signaling messages (RRC, NAS, etc) can present a certificate to the UE. Then, the UE can cryptographically verify that they originated at a real and trusted base station.

I am not too familiar yet on how 3GPP procedures work when it comes to such proposals, so I am not sure why the introduction of the document still alludes to encrypting broadcast messages, tough. But the body of the proposal is updated with the aforementioned improvements.

I have been advocating for years for leveraging PKI-like technology in cellular as a solution to the many vulnerabilities that leverage pre-authentication messages. Back in February, during my talk at ShmooCon, I made the case once more. I am glad to see that things are finally starting to move in that direction. And I am a coauthor!

If this proposal is approved, it will be part of the actual 5G standard. Exciting to know that I might be able to contribute to the global standard for cellular communications to improve its security. Hopefully we can bring such a proposal to commercial 5G deployments as well.

A few months ago, before the world as we knew it changed entirely into this “new normal” we live in, I rode the Acela to DC for a couple of days to give a talk in 5G security at SchmooCon. During the talk, given the obvious time limitations, I was not able to go in depth in the security analysis of 5G traffic.

I am done reading a book I was reading and I am out of things I want to watch on Netflix, so on nights I do not run or exercise, I started doing a bit of writing as part of my (pandemic+fatherhood)-induced Revenge Bedtime Procrastination. My plan is to eventually publish a paper with the full security analysis of 5G traffic but, meanwhile, I thought I would post some further analysis and ramblings here. Also, I was able to get some new traffic captures to analyze.


All captures analyzed here are from actual 5G devices (Release 15 compliant) communicating over 5G standalone mode (5G-SA). The traffic was captured with the Sanjole Wavejudge tool. The analysis has been done with the Sanjole Wavejudge v5.3.1 software analyzer. In the figure above we can see this particular capture is for a Release 15.4.0-compliant device.


This is a pretty good capture that contains the expected broadcast messages (MIB and SIB1) plus the attach handshake for a given UE. If we filter out everything and focus strictly on the messages between the UE and the gNodeB, we have the following:


This particular capture contains the PRACH handshake (without contention resolution) and the RRC handshake. However, we can notice that the DL MAC-RAR message is missing as well as the UL RRCSetupRequest. And the information transfer messages appear to have been retransmitted a few times, indicating perhaps issues at decoding those messages at the UE or the gNodeB. In a follow up post I will analyze another interesting capture of a UE initially connected to LTE that transitions to 5G via an RCCConnectionReconfiguration message sent by the NodeB. That capture is much cleaner and with all messages.

Note that 5G captures are massive and, unlike LTE captures that can be dumped in real time onto a pcap file, very short in duration. This particular capture is just 1.6 seconds long. This is why there is so few user messages in it.

One of the main things I argued in LTE and, as I discussed during my talk, is still an issue in 5G, is the potential for user tracking leveraging the RNTI. The T-RNTI derived during the RACH handshake, which is eventually upgraded to CRNTI, stays constant for long duration of times and allows to tell apart traffic between multiple users regardless of encryption. It is not that interesting in this capture as there is only one UE communicating. Plus in this capture there is no MAC-RAR message, which is the packet that allows to map an RNTI to a target user by triggering the target’s device to connect to the network at a known time. This can be achieved in many ways and the only requirement is to trigger a paging message for the target.


In the capture I analyzed for my ShmooCon talk, however, I was capable of dissecting the DL MAC-RAR message. As shown on the figure above, the T-CRNTI field in this message indicates the id to “track” to be able to tell apart traffic from a given target from the traffic of all other users. This is, for example, one of the setup steps of the aLTEr attack in order to identify DNS requests for a given UE. As I always highlight, this trick has been one of the stepping stones for a number of exploits demonstrated by academic teams over the last 3 years, however it was initially deemed not a security risk by 3GPP a few years ago after I introduced this issue.


Similarly to LTE, the 5G SIB1 broadcast message, shown directly above, discloses certain information, such as the identity of the operator of the tower. This has been identified as a potential issue in tactical or ad-hoc cellular deployments for critical applications, such as first responders. However, it is not really doable or feasible to encrypt this information in the broadcast messages, so this should be part of the overall threat model and attack surface evaluation of the 5G protocol. These messages should be signed using a digital certificate, though, as I argued in my ShmooCon talk.

Something interesting in cellular protocols is the amount of padding bits left in most messages in order to make room for potential new additions to the protocol. The SIB1 message, for example, has 13 bytes of padding always set to 0x00. When running fuzzing tests, I always like to add garbage in there to see how the cellular modem treats that. In some private deployments, it is not rare to see opportunistic usage of padding bytes for certain applications and, if the custom firmware does not properly treat those extra bytes, things get interesting.

These extra bytes have also been used recently to demonstrate the implementation of X.509 digital certificates in cellular in what was, in my humble opinion, the greatest and most promising paper in cellular security of the last few years.

Although the software does not allow me to decode some of the payloads embedded in certain RRC packets in this capture because the MAC layer appears to have been in developer mode in the UE+gNodeB, there is many things we can analyze. The raw bytes of the NAS payload can easily be decoded manually, though. I will work on that when I have some time.

Among the many pre-authentication messages that are exchanged in the 5G attach process, the devices exchange their capabilities reports in the clear (which this talk from BlackHat 2019 leverages to fingerprint devices). The message below, obfuscated, lists the capabilities of the UE in the ue-CapabilityRAT-Container payload.


Then the devices finally settle the cipher and integrity protection algorithms to be used in the SecurityModeCommand message.


In the context of LTE, in the event that UE is connecting for the first time, or in any event in which the serving network does not have the TMSI/GUTI of the UE, this one will transmit its IMSI in the clear. In the case of 5G, when the optional feature of protecting the SUPI is enabled (which I suspect will rarely be the case), the UE will disclose its SUCI (encrypted version of the SUPI). The capture above of an RRCSetupComplete message indeed contains a SUCI (obfuscated), indicating that this feature is enabled in this test network.


The SUPI encryption process, which is an optional feature, is well designed and does prevent identity tracking of devices, with a different SUCI being generated each time the SUPI is encrypted. Therefore, being able to capture SUCIs should not lead to fingerprinting a given user or device.

As I discussed during my talk, despite interesting new security features such as SUPI encryption, 5G protocols still leverage a number of handshakes that are not encrypted, not authenticated and not integrity protected. And, by means of abusing these messages, an attacker could launch similar attacks to the ones I started implementing 10 years ago, with a small subset of them being what I was able to demonstrate during my 2015 ShmooCon talk.

If you are interested in this type of security research, feel free to reach out. I know a few of groups in academia (UC Irvine, VATech, Mississippi State University, etc) that are looking for students to work in 5G protocol security. Also, the folks at the CCI 5G Security Initiative are also actively searching for security researchers (PhD grads and postdocs) and engineers to work in running and leveraging their security research 5G testbed.

When I have time I will post a follow up to this with an analysis of a capture of a UE initially camped in an LTE cell moving into a 5G cell. As part of this analysis, I will revisit a number of security issues that are present in LTE protocols.

Time to go to bed now. I’ll schedule this to publish tomorrow around lunch time so bon appetit!


I finally had some time, once I finished reading Do What You Want (highly recommended! Especially if you are a fan of the band like myself), to write a few notes on the first proposal I have ever seen in 3GPP to leverage digital certificates in cellular communications.

S3-202161 was among the many proposals discussed during the August 2020 meeting of 3GPP SA3. As I mentioned a few days ago, this proposal is beyond great news as it is the first proposal to leverage digital certificates in cellular that I have ever seen.

It is important to note that this proposal is strictly aimed at private 5G deployments, which has very different implications than commercial networks. The threat model is similar, though the solution can be slightly simple as there is no need for a full-fledged PKI infrastructure with CAs and sub-CAs and the need to validate certificate chains. As I mention below, if this proposal was for commercial 5G networks, it would be very incomplete and far from optimal or secure.

In general, anything that leverages digital certificates in 5G is a good idea compared to the current security specifications, period. However, there was a few items I wanted to discuss about this proposal that I summarize in this post.

  • Encryption: This proposal appears to be hyper-focused in leveraging PKI to encrypt (as opposed to sign) pre-authentication messages. This is interesting. In general, assuming that the feature to encrypt the SUPI is always enabled (wishful thinking, I know…), encrypting pre-authentication messages does not address much of the threat model in cellular networks. After all, there is not much that an attacker can do by eavesdropping signaling messages as long as they cannot be spoofed or modified. Things like the RNTI are in the header of the outermost packet/payload, so that would likely never be encrypted. Otherwise each UE would have to (attempt to) decrypt every single packet it receives in the DL and run crypto on it. This way the radio would never be able to shut down to save battery. In general, aiming to encrypt the pre-authentication messages sounds like a sub-optimal strategy.
  • Encryption with asymmetric keys???: It is interesting that the proposal aims at encrypting pre-authentication messages (referred to as unicast messages throughout the document) using asymmetric keys. Given the compute power of a smartphone and current basebands, this might be ok. But, in general, encryption/decryption using secret/public asymmetric keys is not a good idea. Keys are very large (current standards dictate 1024bits if not 2048bits) and encryption is computationally expensive and slow. Asymmetric keys are normally leveraged to secure an initial handshake to establish a secure channel and derive a session symmetric key, using thereafter AES or a similar symmetric cipher to encrypt traffic.
  • Why not signing pre-authentication messages?: The majority of vulnerabilities identified in the LTE protocol over the last 4 years leverage spoofing pre-authentication messages. Although encrypting these messages is, perhaps, achieving a similar outcome to just signing them, it is surprising that the proposal does not aim at signing the messages. Ideally, those messages would be signed – but not necessarily encrypted – using an HMAC (if the UE and gNodeB have derived a symmetric “session” key already) or a digital signature that factors in a hash. The hash component is critical to prevent, among other threats, replay attacks. Note that just signing, for example, SIB1 messages and many RRC messages would not prevent replaying those messages later. In general, one should hash a timestamp and other metrics such that a message cannot be replayed or reused. Many years ago I worked on a project that PoCed something similar to this to protect SIBx messages. Some other items we proposed to hash were a fingerprint of the physical location of the tower and a timestamp.
  • Threats that are not mitigated by this proposal?: Possibly the most interesting aspect of this proposal is section “6.2X.3.3 – Threats that are not mitigated by encrypting unicast signaling messages“, which explicitly mentions preventing UEs from camping on false base stations. I think that this should be the main goal of such a proposal. Even if encrypting signaling messages instead of signing them, I believe this proposal does prevent UEs from camping on malicious base stations, which would not be able to produce signaling messages that the UE can cryptographically verify as legitimate.

Regardless of the above, it is very good news that digital certificates are finally being considered for cellular communication systems as a way to prevent attacks that abuse unprotected pre-authentication messages.

However, such a solution would not suffice for 5G commercial deployments. In such a scenario, in order to support many of today’s use cases, such as roaming, a full-fledged PKI system would be necessary, with multiple CAs and each operator/country deciding what CAs to trust and which ones not to trust. Moreover, logistics such as certificate rotation and, especially, revocation would be very complex. I shared some thoughts on that in a previous blog post.

Done for tonight. Now I need to find myself another book to read. If only all my favorite bands wrote a book about their history… Again, I highly recommend Do What You Want.


For over 10 years I have been identifying and testing a number of exploits in cellular protocols that leverage what I refer to as “pre-authentication message”. In parallel, I have been witnessing the rise of a number of excellent academic teams doing outstanding research in this area and identifying further security issues in cellular protocols, mst of which are root-caused by pre-authentication messages.

This never-ending challenge spawns from the fact that (as I highlighted back in January 2016 during my ShmooCon talk) any mobile device will exchange a number of messages in both directions with any base station, malicious or not, that advertises itself with the right broadcast information. A mobile device has no means to verify cryptographically the legitimacy of a base station until it has gone through a number of insecure (in plain text, no integrity protection, no authentication) message handshakes that occur prior to the establishment of an authenticated and secured connection.

For years I have advocated for the use of a PKI-like system in cellular, leveraging digital certificates to substantially raise the security bar against the threat of rogue base stations in both LTE and 5G.

After all, when I browse Gmail and I am asked to type in my credentials, my browser and, by extension myself, knows that it is indeed “Gmail” who it is speaking with before sending any “messages” to it. This is technology that has been deployed and matured for over 15 years and have made possible things such as eCommerce. However, when my smartphone sees a base station it has no way of verifying its legitimacy prior to exchanging a number of messages that have been proven to be exploitable for Denial of Service, silent downgrade to GSM, IMSI catching, etc.


A couple of years ago, the best thing in years in cellular security research happened. Syed Rafiul and his team at Purdue University published a paper detailing neat and really promising results of their application of digital certificates to LTE. In a nutshell, they did a PoC embedding X.509 certificates in the broadcast LTE messages, using srsLTE for it.


From that moment I have been waiting for the day someone would propose using digital certificates in cellular. And it seems that day has finally come. In this month’s 3GPP SA3 meeting, a number of proposals were presented. Among them, two that discuss leveraging Digital Certificates to substantially raise the bar against rogue base station attacks. This is a goal clearly stated from the get-go, with one of the documents entitled “Study on 5G security enhancement against false base stations“. These documents can be found in this link, by searching (ctrl+f) for “Mitre”.

  • Study on 5G security enhancement against false base stations:

Interestingly, this first proposal discusses encrypting messages, not signing them, which is not exactly what I was expecting. Nevertheless, this proposal is mainly geared towards Non-Public Networks, eg. private cellular deployments, so that might be why its a proposal slightly different than what I have been advocating and recommending for years. The proposal goes on stating that X.509 certificates will be pre-loaded for the gNBs a given UE is allowed to connect, which would obviously never scale in a commercial network.

  • Study on authentication enhancements in 5GS:

This second proposal is very similar to the previous one, both in its scope and in that it seems to place most highlight in encryption as opposed to authentication. Interestingly, this proposal covers certificates in both directions, in the sense that both the network (gNBs) and the UEs provide certificates to distribute their public keys.


In general, this is very good news as it is the very first time such a proposal ends up in the standards. These two documents are mostly geared for non-public cellular networks and do not scale too well over commercial deployments, but it is a great step in the right direction.


As I discussed in my ShmooCon talk in February, pre-authentication messages still exist in 5G and they can be exploited in similar ways as in LTE to launch DoS attacks, silently downgrade the connection to legacy protocols, etc.

In deploying digital certificates in cellular, one could leverage the existing trust relationships between global operators (eg. roaming agreements) to build and architect the certificate chain and corresponding roots of trust each operator chooses to pre-load on their devices or USIM cards. For example (in very high-level detail):

  • Each mobile operator is a sub-CA and trusts/signs certificates for their own base stations.
  • Each mobile operator has a list of trusted partners/peers (eg. via roaming agreements) and, as such, it signs and certifies the certificates for each of those operators, which can then act as a further sub-CA.
    • Alternatively, the mobile devices of USIM cards could come pre-loaded with the certificates for the national operators a given operator “trusts”.
    • However, it is always best to trust no-one but your own operator and let the chain of certificates, which can be adjusted any time, do the rest.
  • Each country could have a trusted 3rd party be the national trusted CA, which could in turn decide what other countries to “trust” and, thus, sign the certificates for the national CA of these countries.

Looking forward to seeing where do these two new proposals end up.

Edit (08/25/2020):

One of the main challenges in leveraging Digital Certificates in cellular is, as I discussed as well during my ShmooCon talk, certificate revocation. If there has been an update in the certificate revocation list, a UE is not able to get that update until it has successfully connected to the network by, potentially, trusting a network and corresponding certificate that is perhaps in the last certificate revocation list update.


As a result of this, there is a small risk even if leveraging digital certificates. For example, let’s say that while you were on a long-haul flight with your phone off, there was a massive conflict escalating between the US and country X. Because you work in, for example, XYZ government agency, the certificate chain is updated in a way that your phone will not trust anymore certificates signed by the subCA of, for example, country X or any of the operators in that country. Otherwise, it would be a security risk and you could be the target of a malicious gNB at the arrival airport.

At that point, your phone has no means of downloading a certificate revocation list because, by definition, it has not connected to the Internet yet. And, as a result, your phone, upon landing, will still trust the “old” certificate chain and the base stations of any operator in country X.

One potential solution to this would be the following:

  • If your phone has been “off” for a few hours and sees an MCC-MNC combination for, for example, another country the phone enters a “let’s be careful mode” (limited security exposure to a potential rogue base station).
  • Connect to the network normally and attempt to establish a secure channel (mutually authenticated and encrypted) with your home operator.
  • Check whether there is any updates in the certificate revocation list, download any update.
  • Disconnect from the tower/network and start over in “normal” mode with an updated certificate list.

In the event that, upon landing at the airport in country X, my phone connects to a rogue base station, this will be within this “minimal security exposure mode”. In that case, establishing the secure channel with the home operator will fail. Only if the base station I am connecting to is legitimate and operating normally, the UE will be able to download the updated certificate revocation list.

A few days ago I read about NCC Group’s Sniffle tool, a BLE sniffer for Bluetooth 4.X and 5. Given my interest and previous track record at looking into the security of BLE devices, I could not stop myself from testing it.

The tool is available on NCC Group’s Github, along with quite good documentation. It was not hard to install all the prerequisites and set up everything following their documentation. My environment is pretty well set up for this type of experimentation and devices, so from Python to PySerial, I did not have to do much. All the TI-specific tools should be installed in their default folders suggested upon install (when running the .run files) and one will not have any major issues.

So far, I have been able to run the sniffer on the TI CC26x2R Launchpad Board. The firmware loads without issue and the board is ready to use. Note that, as I will describe below, I have been having a bit of stability/buggyness issues with the sniffer. Whenever something acts up a bit, the best thing to do is to reload the firmware. That seems to get things fixed for me most of the times.


Once the firmware is loaded, it is easy to start running captures. Given the simplicity of the radio it’s running on, the sniffer can only scan one channel at a time, so you are either scanning ADV channels (37, 38 and 39) or following a connection. Therefore, unless you happen to catch an actual connection establishment, you should expect to only see ADV-related messages on your first captures.


Once you are all set up, it is highly recommended to dump the traffic being captured to a pcap file using sniffle’s -o option. Looking at one of the captures I took, I see the expected advertising traffic. A whole bunch of Apple devices (in my experience, always very “loud” at sending ADV-related traffic) from my neighbors, some smart TVs (including mine; it’s been the subject of my research before and I know like the back of my hand the characteristics of its ADV packets) and some interesting devices that I will explore when I have more time.


Now that I am all set up, I will start taking actual captures of devices connecting and will test how reliable Sniffle’s ability to follow connections is. By the way, once you capture a full initial pairing and connection establishment, you should be able to process the pcap with Crackle to bruteforce the LTK session key and decrypt traffic. This is possible unless the pairing is being done with the Out of Band method. In my experience, the only device that I have observed in the wild using OOB pairing is the Apple Watch, though.

While using Sniffle I have noticed some instability. Every now and then I get weird errors raised by sniffle when having trouble parsing certain packets. See example above for a crash when it parses a packet that, allegedly, has an incorrect length field. I have observed similar parsing errors happening from time to time. When this happens, sniffle seems to get stuck when you try running it again. The quickest fix is to reload the firmware.


Once I have some time I will continue playing with sniffle. With two kids now, time is a very scarce resource! 🙂

EDIT (10/04/2019): Correction to myself. Bluetooth 5 *should* be using Diffie-Hellman for the handshake to derive STK which encrypts the handshake to exchange LTK. If that is the case, even when sniffing a full initial pairing+connection, one could not be able to brute force anything. I have to find myself a Bluetooth 5 device and capture that traffic. I’ll update when I have some time.

(Originally published as a LinkedIn article – Reposted on this blog)

About 10 years ago, I started working on mobile and cellular security research. While most of my work in the early days leveraged costly network testing equipment and a neat lab set-up, I also experimented with a number of open-source implementations of the LTE (Long Term Evolution) PHY layer, which were critical for the work on protocol-aware jamming back in 2011. Everything changed in 2012, though. On December 31st 2011 the first commit for openLTE had been uploaded and for the very first time, there was an open-source implementation of the LTE stack aiming to go beyond the PHY layer. Just a couple of years later, by 2013/2014, after outstanding progress in the development of openLTE, I was in the lab able to test LTE IMSI-catching, taking advantage of unprotected AttachReject messages and tracking devices via mapping MSISDN (i.e. phone numbers) to TMSI to C-RNTI.

During those years, other implementations of the LTE stack became available, though I stuck with openLTE until srsLTE reached a significant level of maturity. Currently srsLTE is by far the best and most widely used – both in academia and industry – tool for LTE security research. srsLTE has been my tool of choice since my career change in Fall 2015, after which I used it to rewrite my IMSI catchers, protocol exploits, and RNTI-based techniques for my January 2016 ShmooCon talk.

Around that time, I wrote an article predicting that the combination of a) low-cost software-radios, b) mature and very stable open-source implementations of the LTE protocol stack, and c) an army of bright, smart and talented grad students, could only have one possible outcome. I predicted – not taking much credit for that prediction, as it was quite clear that it would happen anyways – that within the following few years there would be a number of new academic research labs working in cellular network security projects, and a large number of new exploits identified in cellular networks released in papers at top security conferences.

It has been 3 years since I published that article and, indeed, researchers have found numerous flaws in the LTE protocol by applying formal verification techniques to the LTE standards, hijacked DNS requests and responses at LTE’s layer 2, exploited flaws in the Self Organizing Network protocols of LTE, and tracked devices via their GUTI, to name just a few.

Most of the vulnerabilities identified by researchers so far primarily affect subscribers and mobile devices. However, the latest addition to the srsLTE toolset, srsUE, is already changing the cellular security research landscape. srsUE is an open-source implementation of the UE (User Equipment) LTE stack. As such, it facilitates the same type of security research against the network infrastructure, as opposed to just mobile devices. In other words, it is now possible to fuzz cellular protocols in the uplink against the network infrastructure and, for example, send arbitrary messages to an MME (Mobility Management Entity, one of the core parts of an LTE network).

It is worth noting that some teams in academia have already started experimenting with uplink LTE protocol fuzzing. Recent results indicate the feasibility of crashing network equipment. In addition, an academic research team published an excellent paper identifying a number of previously unknown protocol exploits in LTE that are being assigned CVEs and addressed by the OEMs and operators.

In parallel, the industry is in the midst of the 5G marketing frenzy. 5G is introduced as a panacea to everything that needed to be addressed in previous mobile generations: a revolutionary technology that will empower exciting new applications such as smart vehicles, critical control of remote devices, virtual reality, etc. In that context, the industry has been raving about the security of 5G and its resilience to cyber-attacks. However, a number of recent studies and publications indicate that the marketing statements about 5G security are actually inaccurate and things are not much different than in LTE.

The security research landscape has changed drastically when it comes to cellular network security. The GSM (Global Standard for Mobile communications) standards were drafted in the late 80s and no major vulnerabilities were publicly released until the Barkan attacks against A5/1 and Karsten Nohl’s presentation at the Chaos Communication Congress in 2010. It took over 10 years from GSM to be standardized and deployed to the first security issues being identified. Similarly, the LTE standards were finalized sometime between 2007 and 2008, and operators started deploying LTE networks sometime around 2011. It only took a few years, though, for security researchers to identify and release exploits in late 2015, including the excellent work from an academic team in TU Berlin and the results I myself released at ShmooCon.

This trend of identifying protocol vulnerabilities sooner and sooner after the inception of a new mobile generation also applies for 5G. The first release of the 5G specifications was published in March 2018. Just a bit over a year later, the research community has identified protocol vulnerabilities in the 5G-AKA (Authentication and Key Agreement) and privacy breaches in 5G. It is worth highlighting here that 5G mobile networks are not even deployed commercially yet, though over the last year there has been half a dozen papers published highlighting critical vulnerabilities in the technology that is supposed to drive mobile systems and innovation for the next 10 years. More importantly, a recent study highlights the fact that 5G protocols are still vulnerable to the great majority of exploits existing in LTE as they carry over the main root cause of threats against LTE.

The greatest common divisor of most vulnerabilities identified in LTE over the last 5 years is what the research world refers to as pre-authentication messages. Unlike other layer 2 protocols, cellular networks rely on an implicit reciprocal trust between Alice and Bob prior to executing the authentication cryptographic handshake. In other words, a UE blindly trusts any base station that appears to be legitimate and the base station blindly trusts anything that looks like a commercial UE even before they have mutually authenticated. Needless to say, it is trivial to configure a rogue base station or rogue UE to look like a real one.

Security threats spawn from the fact that, by spoofing or intercepting such pre-authentication messages, an adversary can turn a smartphone or mobile IoT device into a connectionless brick or silently downgrade any UE to an insecure connection over GSM. IMSI catchers, commonly referred to as Stingrays or cell site simulators, are actually possible in LTE because of the exact same reason. The message that instructs a UE to disclose its IMSI in the clear is a pre-authentication message that can be trivially spoofed and directed to all UEs in a geographical region. Note that this is possible by literally just adding a couple extra lines of code to srsLTE. Spoofing presidential emergency alert messages is also possible because many messages in LTE cannot be properly identified and attributed.

Stingrays have been for years the security threat in cellular networks that attracts the most attention from the media, especially since the discovery last year of evidence of numerous Stingrays in the Washington DC area. This might be the motivation behind the proposal in 5G for a solution to prevent IMSI catchers. This specific solution, if implemented, would indeed prevent certain IMSI catcher style attacks in 5G. As such, it has been the cornerstone of the industry’s elevator pitch praising 5G security. Unfortunately, this security feature in 5G appears to be defined, as many others, as optional, leaving it up to the operator whether to implement it or not. The history of previous generations indicates that optional features rarely get fully implemented. This is one of the reasons why the implementations of the same cellular protocols end up being dramatically different from operator to operator.

After years of cellular security research, many scientific publications at top security conferences, and numerous exploits and vulnerabilities, all with one single clear root cause, it is interesting that the industry and standardization bodies have not yet tackled the pre-authentication message challenge. After all, there are mature and widely deployed technologies in the Internet that allow endpoints to validate the identity of a server before needing to perform a cryptographic handshake. TLS (Transport Layer Security) and its deprecated predecessor, SSL (Secure Sockets Layer), are perhaps the best-known examples. These technologies have made possible the rise of eCommerce and other modern applications, providing the necessary tools to authenticate communication endpoints prior to any handshake by means of digital certificates.

A number of security researchers, myself included, have been advocating for the application of digital certificates or related technologies to cellular networks for years. An excellent recent paper implements a proof of concept of the application of X.509 certificates in cellular networks, presenting very promising results. This is the first time, to the best of my knowledge, that such a study is published.

Leveraging digital certificates in cellular networks would require architectural changes from the ground up at a very large scale and, unfortunately, this is unlikely to occur. There is little incentive in the industry to make large changes to a security architecture that has remained rather unchanged for many years.

The cellular industry and the technology behind it are tightly driven and regulated by the 3GPP (3rd Generation Partnership Project) standards, which could and should be the driving force behind such a paradigm change in how security and trust are established in cellular networks. However, the strongest forces sitting around the table at standardization meetings are the cellular industry itself, both telcos and OEMs, which seems like a clear conflict of interest. As a result, the outlook of the state of affairs in mobile network security is not likely to change in the short term.

It took over 10 years for researchers to find security flaws in the GSM protocol, just a few years for the first protocol exploits to be identified in LTE and, in the case of 5G, researchers are already highlighting vulnerabilities before the technology is deployed and available for consumers. Despite the challenges and lack of incentives for the industry, this might finally be the time to start addressing security weaknesses inherent to cellular protocols since their very inception. Until that happens, though, I look forward to excellent cellular security research from bright grad students and hackers alike, and to reading future papers they publish.

The first version of the LTE specifications (3GPP Release 8) was published in 2007. For obvious reasons, I am unaware of the state of R&D in LTE security in 3-letter agencies. In the research community, though, the first public disclosure of protocol exploits against LTE did not occur until early 2016 with the work of the team of Prof. Jean-Pierre Seifert at TU Berlin [1] and myself [2].

Back in May of that same year I wrote an article discussing the main reasons why it took 9 years for us security researchers to start finding vulnerabilities in LTE protocols and testing them. The lack of maturity of software-defined radio hardware and, mostly, the lack of open-source low-cost software implementations of the LTE protocol stack. However, as I stated in that article, when the first commit of openLTE was pushed in 2012 things started to change. And then, a couple of years later, srsLTE was available as well. Back in 2016 I anticipated to see a wave of excellent security research in LTE, which would uncover all sorts of vulnerabilities.

As I expected, over the last 3 years, some academic research teams have crafted excellent research and published groundbreaking papers disclosing new vulnerabilities of the LTE protocols (e.g. [3,4,5]). And now, with the availability of srsUE, the possibilities are endless in terms of exploring the security of LTE against the operator’s infrastructure. I am myself collaborating with two teams in academia in what I call LTE protocol fuzzing using srsUE, and there has been already some very interesting findings of potential exploits in the uplink [6].

How do things look like in 5G? Quite different, actually. The first release of the 5G specifications (3GPP Release 15) was published in December 2017, and the first security specifications document was published in March 2018 [7]. However, this time the research community is not waiting to start working and identifying potential protocol vulnerabilities. Despite the lack of open-source implementations of the 5G protocols and tools to facilitate this work, security researchers are not giving any headstart to 3GPP this time. In fact, ever since the publication of the 5G security specifications, these very interesting papers have been published:

It is interesting to note that the first paper above was released in February 2018, before the actual 5G security specifications. Those researchers did their work with the drafts that 3GPP often releases before an official specification release is closed. It is pretty clear that this time the research community is ready and prepared to analyze the proposed security specifications of 5G and an insecure protocol will not slip again and end up being deployed in the field (hopefully). Note that, by the time [1] and [2] identified the first known protocol exploits on LTE, LTE networks were widely deployed already and being used by hundreds of millions of people all over the world.

The current 5G specifications are not optimal yet. Despite a technique to tackle IMSI catchers, it is yet to be seen if a rogue base station of malicious application could easily trigger a mobile device to perform one of the few things that would result in a device disclosing its IMSI in the clear (transmit its SUPI not concealed, using 5G jargon). Also, there is yet no clear way in 5G to tackle the challenge of pre-authentication messages, which are the root cause of most protocol exploits in LTE. Moreover, some of the aforementioned papers and research reports have identified potential vulnerabilities in the Authentication and Key Agreement protocol in 5G. And the media is already picking up on these papers and making noise about them.

There is still work to be done and things to polish in 5G security, but this time it will not take years to identify security problems and start fixing them. The research community, academia, industry and standardization bodies will hopefully start working together with the goal of designing a 5G security architecture that will substantially raise the bar with respect to previous generations.

By the way, I recently found out of an actual software implementation of the 5G core based on 3GPP Release 15. This s great news and will fuel so much more research in this field. The two university teams I collaborate with and myself will start using this tool for our research. Looking forward to it.

Ps. By the way, students with a strong background in math, signal processing, communication systems, Python and C++, both academic groups are looking for PhD students and postdocs. Ping me if you are interested!

[1] A. Shaik, R. Borgaonkar, N. Asokan, V. Niemi, and J.-P. Seifert, “Practical attacks against privacy and availability in 4G/LTE mobile communication systems,” in Proceedings of the 23rd Annual Network and Distributed System Security Symposium (NDSS 2016), 2016.

[2] Jover, R.P., 2016. LTE security and protocol exploits. Shmoocon 2016.

[3] Hussain, S.R., Chowdhury, O., Mehnaz, S. and Bertino, E., 2018, February. LTEInspector: A Systematic Approach for Adversarial Testing of 4G LTE. In Symposium on Network and Distributed Systems Security (NDSS) (pp. 18-21).

[4] Shaik, A., Borgaonkar, R., Park, S. and Seifert, J.P., 2018, June. On the Impact of Rogue Base Stations in 4G/LTE Self Organizing Networks. In Proceedings of the 11th ACM Conference on Security & Privacy in Wireless and Mobile Networks (pp. 75-86). ACM.

[5] Rupprecht, D., Kohls, K., Holz, T. and Pöpper, C., Breaking LTE on Layer Two. In Breaking LTE on Layer Two (p. 0). IEEE.

[6] Raza, Muhammad Taqi, Fatima Muhammad Anwar, and Songwu Lu. “Exposing LTE Security Weaknesses at Protocol Inter-Layer, and Inter-Radio Interactions.” In International Conference on Security and Privacy in Communication Systems, pp. 312-338. Springer, Cham, 2017.

[7] 3GPP TS 33.501 V15.0.0 (2018-03).


Edited on 12/26/2018: Adding yet more papers and studies finding issues in the 5G security specifications.

We recently released a pre-print of our paper analyzing the 5G security specifications. The idea of releasing the pre-print while the paper is under submission was to get it out there soon and start collecting feedback in parallel to the actual review. There are a couple of things we want to clarify in the published version. The editorial process for this paper is taking longer than anticipated, so I thought I could make a quick update as sneak peak.

A few folks have pinged us with some questions and really good constructive feedback about the paper. Some questions were related to the main two concepts we will be clarifying in the final version.

  1.  The IMSI (SUPI in the context of 5G – I have been working in LTE security for many years and I am too used to saying IMSI, so I might wrongly refer to the IMSI here when I mean SUPI…) will be concealed using the public key of the home network, which does indeed imply that a SIM card only requires to have one single public key stored in order to conceal the SUPI into the SUCI.The SUPI will still be transmitted in the clear if there is no public key for the home network provisioned or in the case of an unauthenticated emergency call. It is not clear yet whether a rogue 5G base station could trick a device to issue such an unauthenticated call. Also, similarly to a recovery from a network outage in LTE, 5G might (should?) support a similar procedure for 5G. It is not clear yet either how the operator will indicate a UE/USIM that it needs to rotate the secret key (maybe it has been compromised, maybe it is time to rotate it… because they plan to rotate them, right???). In that scenario, implicitly, the operator will need to require the UE to authenticate in a manner that will not allow the SUPI to be concealed. To make things more complex, key management and rotation and what to do in these cases is left outside of the specifications.
  2. The 5G security specifications never explicitly state that a USIM will require to have a public key for every operator from every country. That is, however, an implicit requirement for the secure implementation of the protocol and to tackle the known LTE exploits (e.g. Attach Reject to DoS the device or downgrade it to GSM). Most of the protocol exploits discovered in LTE exploit one or multiple pre-authentication PHY, RRC or NAS messages before the handshake. An IMSI catcher returns an Attach Reject “I don’t know your TMSI/GUTI, send me your IMSI” message, a DoS-device replies with an AttachReject EMM Cause Code (for example) 0x03 Illegal UE and the device stops trying to connect until the timer T3245 expires (24h to 48h). A sophisticated Stingray replies with AttachReject EMM Cause Code 0x07 EPS Services Not Allowed and downgrades the UE to GSM to Man in the Middle the connection.Note that, in the case of IMSI/SUPI catching, 5G is *not* preventing the pre-authentication message to be exploited. In 5G, when an adversary sends an AttachReject “I don’t know your TMSI/GUTI send me your SUPI”, the UE replies with the SUPI, but this identifier is concealed. So the adversary catches the identifier, tough she/he cannot decrypt it. All the other exploits that leverage pre-authentication messages, and any other one that has not been identified yet, could still potentially be possible in 5G unless pre-authentication messages can be cryptographically authenticated by the UE. If mobile users never roamed to other networks or countries, having the public key of the home network would suffice. But, factoring roaming into the equation, the only way a UE could possibly cryptographically authenticate PHY, RRC and NAS pre-authentication messages is if the UE had a public key for every single operator from every single country. Otherwise, if I am missing a public key from an operator from say, Spain, I just need to set up my rogue 5G base station to broadcast, for example, MCC=214 MNC=07 (for Movistar) and the UE will implicitly trust every single PHY, RRC and NAS message that comes before the NAS authentication process.

    An alternative could be to have NAS messages from roaming UEs always routed back to/from the home operator in the home country. This would likely be an overload nightmare for Diameter networks and the mobile core networks. And, actually, probably this is something that could be exploited as a DDoS attack against mobile operators by having an army of fake software-radio based UEs initiating connections from different locations claiming to be USIM’s from all over the world. There might be other potential solutions to this problem, and I know of a couple research groups in academia doing excellent work to tackle this challenge.

Long story short, IMSI catching trickier in 5G but still not clear if fully prevented, and the requirement for a public key from all operators and countries is not an explicit requirement in the specifications but an implicit requirement if 5G is to tackle protocol exploits leveraging pre-authentication messages.

We will update the document on arXiv soon with these clarifications. Thank you very much again to everyone who has sent us feedback on the paper. We really appreciate it!

Ps. Good game by Barcelona last night despite having Messi out! 😀

EDIT: Just to clarify further. The public key of the home network at the USIM is intended only to conceal the SUPI. We are not trying to imply that this key is intended to apply to pre-authentication PHY/RRC/NAS messages. If this public/private key scheme was to be used to protect pre-authentication messages, though, then there would be an implicit requirement of having public keys for all operators.

Today everyone will be talking about the newest variant of Spectre: NetSpectre. Leaking arbitrary memory remotely over the network without having to execute code on the machine that is being compromised does sound scary, regardless of whether the maximum throughput to leak memory is 60 bits per hour.

Ever since the paper was released at 6pm yesterday, the world has gone crazy and if you goolge “NetSpectre” everyone has a story about it.

But this is not what I wanted to discuss today. Today I wanted to talk about Bluetooth, one of my favorite topics. A few years ago I did a lot of work on Bluetooth and BLE and witnessed with my own eyes the highly insecure connectivity these technologies offer. If it was up to me, I would not use Bluetooth for connectivity of anything that has security requirements, unless you build yourself a solid extra layer of security yourself and literally turn off all Bluetooth and BLE security features.

Back then, I read a lot about Bluetooth 4.2, back then the “newest” (introduced in December 2014) Bluetooth standard. The disparity between standards world and the real world always fascinates me, and Bluetooth is another example. While the latest “IoT” gadgets announcemhow they are Bluetooth 4.2, with all their great features, Bluetooth 4.2 is actually a “legacy” specification as per the Bluetooth SIG Working Group.

Bluetooth 4.2 introduced LE Secure Connections, an enhanced security framework for BLE to prevent the well known weaknesses of BLE. Among other things, Diffie-Hellman key exchange was to be used to provide a secure pairing process.

Back when I was working on Bluetooth, that sounded so exciting, except that all manufacturers of SoC for Bluetooth and BLE claiming to implement Bluetooth 4.2, did not really implement the entire specification, but only the “mandatory specifications”. I never read in the specifications themselves that LE Secure Connections was optional, but according to the industry, it was.

It was recently discovered how, evven if LE Secure Connections is implemented, the hopes of Bluetooth and, particularly, BLE finally being secure are still just that, hopes. Researchers discovered a bug in most Bluetooth 4.2 implementations, with many devices not sufficiently validating encryption parameters during the secure key exchange, making that key exchange anything but secure. The pairing devices do not sufficiently validate elliptic curve parameters used to generate public keys during a Diffie-Hellman key exchange. The bug affects multiple vendors.

Long story short, once it finally looked like I could perhaps even remotely consider BLE as connectivity option for devices with high security requirements, a bug in the software implementation of the specifications makes LE Secure Connections useless. For now, if you are building a device with high security requirements, do not use BLE. I mean, who would even consider BLE for, for example, a smart credit card?

Happy Friday!

Yesterday Google Scholar sent me another alert about a new paper. I must say that Google Scholar is becoming my number 1 source to stay up to date about research in mobile security.

The paper, “Formal analysis of 5G authentication“, is a pre-print released by  a team from ETH Zurich, University of Lorraine and University of Dundee. Similarly to a recent paper on LTE security (LTEInspector: A Systematic Approach for Adversarial Testing of 4G LTE), the authors translate the 3GPP protocol specifications into pseudo-code that can be formally verified and analyzed. In this case, the authors analyze the recently released 5G 3GPP specifications, with special focus on the authentication protocols. To do so, the authors use Tamarin, a protocol verification tool.

I strongly recommend reading the paper. As I expected, the authors found a few weaknesses on the protocol. The 5G AKA protocol appears to fail to meet several security goals that are explicitly required by the 3GPP specifications, as well as other critical security properties. The paper highlights weaknesses in the standard and suggests improvements and refinements. Such an interesting work and an excellent paper.

It is worth noting that a couple months ago I was invited to write an opinion article on 5G security and I got some criticism from 3GPP folks on it, claiming that 5G is secure and things have been improved very much. As I stated in my article (Are we there yet? The long path to securing 5G mobile communication networks), I still see a long way to go to fully secure mobile communication networks. And the new sophisticated security architecture and PKI infrastructure are very interesting, but based on the unrealistic assumption that each SIM will have a public key or certificate for all operators from all countries. I always acknowledge that it is very hard to achieve a secure mobile communications system and the only reason I work in proactively identifying security weaknesses is to keep raising awareness on this problem.

It makes me happy to see so much excellent work coming from academia in the area of mobile security. Excellent research topic for talented PhD students to work on. And it makes me even happier that, just a couple of months after being publicly released, there is security research analyzing the 5G specifications. I am myself currently involved in a research project on 5G security with a team from VATech under Prof. Jeffrey Reed and Prof. Vuk Marojevic. We are working on a new paper on 5G security that should be out sometime later this summer or early Fall. Stay tuned! For the ones of you who saw me speak at UC Irvine last May or at Hushcon East in NY in June, you already got a bit of a sneak peak.

About me:

Born in Barcelona, moved to Los Angeles, and ended in NYC, where I enjoy life, tweet about music and work as a geek in security for wireless networks.
All the opinions expressed in this blog are my own and are not related to my employer.
About me:

Blog Stats

  • 150,344 hits

Twitter feed

Enter your email address to follow this blog and receive notifications of new posts by email.