Description
The Card Application Toolkit (CAT) Runtime Environment is a standardized framework defined by 3GPP that provides an execution environment for applications residing on the UICC (Universal Integrated Circuit Card), which includes the USIM (Universal Subscriber Identity Module). This environment is essentially a virtual machine or interpreter that runs on the UICC's limited-resource microcontroller, enabling the card to host and execute secure, portable applications independent of the mobile equipment (ME). The architecture is based on a command-response model where the ME acts as a terminal that displays information and captures user input, while the UICC hosts the application logic and manages secure data.
At its core, CAT defines a set of proactive commands that allow applications on the UICC to initiate actions on the ME, such as displaying menus, sending SMS, setting up calls, or providing local information like cell ID. The ME, in turn, sends terminal responses and events (like menu selection or call disconnection) back to the UICC application. This communication occurs over the standardized interface between the UICC and ME, typically using APDU (Application Protocol Data Unit) commands. Key components include the CAT interpreter on the UICC, the proactive UICC handler in the ME, and a set of standardized profiles and procedures for different service types.
The runtime environment manages application lifecycle, resource allocation, and security domains. Applications are typically implemented as applets (e.g., using Java Card technology) that are securely loaded onto the UICC. CAT provides mechanisms for application selection, activation, and inter-application communication where supported. It includes features for managing volatile and non-volatile memory, handling timers, and processing user interface events. Security is fundamental: applications run in isolated security domains, cryptographic operations are performed within the secure element of the UICC, and sensitive data never leaves the card's protected environment.
CAT's role in the network extends beyond basic subscriber authentication. It enables operator-controlled services like SIM-based menus for balance checking, top-up, and service activation. It is crucial for machine-to-machine (M2M) applications where remote management and provisioning of devices are required. In later releases, it forms the basis for more advanced secure services like NFC mobile payments (through contactless interfaces), device management, and authentication for network applications. The environment ensures these services are portable across different handset models and operating systems, as long as the ME supports the required CAT capabilities.
Purpose & Motivation
CAT was created to address the limitation of earlier SIM cards being purely passive components used only for network authentication and subscriber identification. As mobile networks evolved, operators needed a way to deploy value-added services directly controlled from the network side, without depending on handset manufacturers or requiring users to install software. The traditional SIM had no standardized way to run applications or interact proactively with the handset. CAT provided a standardized, secure execution environment on the SIM card itself, turning it from a simple authentication module into a service delivery platform.
Historically, before CAT, any SIM-based service was proprietary and non-portable, locking operators into specific card vendors and limiting service innovation. The creation of CAT in 3GPP Release 8 (building upon earlier ETSI/3GPP specifications for SIM Application Toolkit) established a unified framework that ensured interoperability across different UICC vendors and mobile equipment. This allowed operators to develop and deploy services like SIM menus, over-the-air (OTA) updating, and secure transaction applications that would work consistently on any compliant device. It solved the problem of service portability and created a trusted execution environment within the already secure SIM card.
Furthermore, CAT addressed the growing need for secure services beyond voice and SMS. As mobile devices began to be used for banking, payments, and identity, the SIM card's secure element provided an ideal hardware-rooted trust anchor. CAT enabled this by providing a runtime where sensitive applications could execute in isolation, perform cryptographic operations, and manage secure storage. This purpose expanded significantly with the advent of NFC and mobile wallets, where CAT-based applications became the secure element for contactless transactions. It also enabled remote management of M2M devices, where the UICC could host applications for device configuration, diagnostics, and service provisioning without physical access.
Key Features
- Standardized proactive UICC commands for initiating actions on the mobile equipment
- Secure execution environment for applets within the UICC's hardware security
- Portable application framework independent of handset operating system
- Support for multiple simultaneous applications with isolated security domains
- Mechanisms for application selection, activation, and event handling
- Capabilities for user interface interaction, data download, and local information access
Evolution Across Releases
Introduced the standardized Card Application Toolkit Runtime Environment framework for 3GPP networks, defining the basic architecture for UICC application execution. Established proactive command set, terminal profile negotiation, and basic application management. Provided foundation for SIM ToolKit (STK) services and secure application hosting on USIM cards in UMTS/LTE contexts.
Defining Specifications
| Specification | Title |
|---|---|
| TS 22.173 | 3GPP TS 22.173 |
| TS 22.182 | 3GPP TS 22.182 |
| TS 22.810 | 3GPP TS 22.810 |
| TS 22.878 | 3GPP TS 22.878 |
| TS 22.982 | 3GPP TS 22.982 |
| TS 24.008 | 3GPP TS 24.008 |
| TS 24.182 | 3GPP TS 24.182 |
| TS 24.186 | 3GPP TS 24.186 |
| TS 24.615 | 3GPP TS 24.615 |
| TS 26.917 | 3GPP TS 26.917 |
| TS 29.163 | 3GPP TS 29.163 |
| TS 29.165 | 3GPP TS 29.165 |
| TS 29.364 | 3GPP TS 29.364 |
| TS 29.827 | 3GPP TS 29.827 |
| TS 29.864 | 3GPP TS 29.864 |
| TS 31.131 | 3GPP TR 31.131 |
| TS 31.213 | 3GPP TR 31.213 |
| TS 32.275 | 3GPP TR 32.275 |
| TS 32.850 | 3GPP TR 32.850 |
| TS 33.106 | 3GPP TR 33.106 |
| TS 33.126 | 3GPP TR 33.126 |
| TS 34.131 | 3GPP TR 34.131 |