Description
The GBA Function is a critical component of the Generic Bootstrapping Architecture (GBA), a 3GPP-defined framework that enables authentication and key agreement between a mobile terminal and application servers without requiring pre-shared secrets. It resides on the Mobile Equipment (ME) and acts as the intermediary between the Bootstrapping Server Function (BSF) in the network and various Ua applications (e.g., HTTP-based services) running on the device. The GBA Function is responsible for executing the bootstrapping procedure over the Ub reference point, which involves mutual authentication between the ME and the BSF using the AKA (Authentication and Key Agreement) protocol, and subsequently deriving a shared secret key, Ks. This key is then used to generate application-specific keys for secure communication.
The architecture of GBA consists of three main entities: the ME (containing the GBA Function), the BSF, and the Network Application Function (NAF). The GBA Function communicates with the BSF via the Ub interface, which is based on HTTP Digest AKA. During bootstrapping, the ME and BSF authenticate each other using the subscriber's credentials stored in the ISIM/USIM. After successful authentication, both parties derive the Ks key and a Bootstrapping Transaction Identifier (B-TID). The BSF also provides a lifetime for the Ks. The GBA Function stores the Ks and B-TID and makes them available to Ua applications upon request. When a Ua application needs to access a NAF, it invokes the GBA Function, which then performs the bootstrapping usage procedure over the Ua interface. This procedure typically involves the application requesting a security association, and the GBA Function deriving a NAF-specific key (Ks_NAF) from Ks and providing it to the application along with the B-TID. The application can then use these credentials to authenticate to the NAF.
The GBA Function is essential for enabling secure and seamless authentication for a wide range of services, including IMS, M2M, and web-based applications, without requiring users to manually enter credentials. It abstracts the complexity of key management and authentication from the applications, providing a standardized interface. The function is specified in 3GPP TS 33.220 (Generic Authentication Architecture) and TS 29.309 (GBA Management Object), among others. It supports multiple bootstrapping variants, such as GBA_ME (Mobile Equipment based), GBA_U (UICC based), and GBA_Digest, each with different security characteristics and use cases.
In terms of operation, the GBA Function is triggered when a Ua application requests a security association. It first checks if a valid Ks exists; if not, it initiates the bootstrapping procedure with the BSF. Once Ks is established, the GBA Function derives the required Ks_NAF using the KDF (Key Derivation Function) specified in 3GPP TS 33.220, which takes as input the Ks, the NAF_ID, and other parameters. The derived key and B-TID are then returned to the application. The GBA Function also manages the lifetime of the keys and ensures that expired keys are not used. Security is paramount: the GBA Function must protect the Ks and derived keys from unauthorized access, and it relies on the secure environment of the ME (and optionally the UICC) to store sensitive material.
The GBA Function has evolved over releases, but its core definition has remained stable since Rel-8, indicating a mature and well-established specification. It continues to be relevant in 5G and beyond, where it is used for authentication in various IoT and service scenarios. Its integration with other 3GPP security features, such as TLS and OAuth, further extends its applicability.
Purpose & Motivation
The GBA Function exists to solve the problem of secure authentication and key establishment between mobile devices and application servers without requiring pre-shared secrets or manual credential entry. Before GBA, applications often relied on proprietary authentication mechanisms or username/password schemes, which were vulnerable to phishing and replay attacks. GBA leverages the strong authentication provided by the cellular network (AKA) to bootstrap application-layer security, providing a scalable and standardized solution.
It was created to enable a generic, reusable security framework that could support multiple applications and services, reducing the need for separate authentication infrastructures. By centralizing the bootstrapping process in the ME, it allows applications to obtain security associations on demand, simplifying development and improving user experience. The GBA Function specifically addresses the need for a client-side entity that can manage the bootstrapping state and provide keys to applications in a secure manner.
Historically, GBA was introduced in 3GPP Release 6, but the GBA Function definition as we know it today was refined in Release 8. It built upon earlier work on Generic Authentication Architecture (GAA) and aimed to provide a unified approach for authentication in IP-based services. The GBA Function's design ensures that even if an application is compromised, the long-term secrets in the UICC remain protected, as the Ks is derived per bootstrapping session and application-specific keys are further derived.
What changed in its specifications
The latest release-to-release comparison of specifications that define GBA Function. Each summary describes the whole specification, not only this term.
IETF OSCORE protocol profiles for GBA and AKMA, affecting generic sections and UE requirements; IETF DTLS protocol profile for AKMA and GBA, adding a normative annex and updating UDM discovery.
Full comparison in TS 33.220 →Release Timeline
Evolution Across Releases
An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.
Defining Specifications
3GPP specifications that define or reference GBA Function, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TS 29.309 vk00 | Nbsp Service Based Interface for GBA BSF | Rel-20 read |
| TS 33.220 vj10 | Generic Authentication Architecture (GAA) Security | Rel-19 read |
| TR 33.980 vj00 | GAA & Liberty Alliance Interworking Guidelines | Rel-19 read |