Description
Object Security for Constrained RESTful Environments (OSCORE) is an application-layer security protocol standardized by the IETF and adopted by 3GPP for securing IoT communications, particularly those using the Constrained Application Protocol (CoAP). Unlike transport-layer security (TLS/DTLS), which secures an entire channel, OSCORE applies protection directly to the CoAP message, transforming it into a secure 'OSCORE message' that encapsulates the original CoAP options and payload. This process is known as 'object security' because the security is bound to the message object itself. The core of OSCORE's operation is the use of the COSE (CBOR Object Signing and Encryption) format for cryptographic operations, specifically employing the AES-CCM algorithm for providing confidentiality, integrity, and authentication of the protected message fields.
OSCORE works by establishing a shared security context between two endpoints (e.g., an IoT device and an application server). This context includes a Master Secret, a Sender ID, and a Recipient ID. From the Master Secret, deriving keys and an Initialization Vector (IV) for each message are generated. Each message is assigned a unique Sequence Number (Sender Sequence Number) by the sender, which is used in the IV derivation to prevent replay attacks. The sender encrypts and integrity-protects the CoAP payload and certain sensitive CoAP options (like Uri-Path), while leaving other options (like those needed for proxy routing) unprotected. The resulting OSCORE message includes the Sender ID, a partial IV (derived from the Sequence Number), and the ciphertext. The recipient uses its security context, the received Sender ID, and the partial IV to reconstruct the full IV, decrypt the payload, and verify integrity.
In a 3GPP network, OSCORE's role is crucial for securing end-to-end communication in IoT scenarios, especially within the Service Capability Exposure Function (SCEF) or Network Exposure Function (NEF) interfaces for Non-IP Data Delivery (NIDD) and other constrained device services. Its key architectural advantage is that it allows messages to remain secure while traversing intermediaries like CoAP proxies or network gateways, which may need to read or modify unprotected CoAP options (e.g., for caching or routing) but cannot access the protected application data. This makes it ideal for low-power, lossy networks (LLNs) where transport-layer security sessions can be expensive to maintain and where hop-by-hop security is insufficient for ensuring data confidentiality all the way to the application server.
Purpose & Motivation
OSCORE was created to solve the specific security challenges inherent in the Internet of Things (IoT), where devices are often severely constrained in terms of processing power, memory, and energy. Traditional security protocols like TLS/DTLS, while robust, can be too heavy for such devices, requiring significant resources for session establishment, maintenance, and per-packet overhead. Furthermore, in IoT deployments, communications frequently pass through intermediaries (proxies, gateways) for protocol translation or network optimization. TLS provides only hop-by-hop security, meaning the intermediary becomes a trusted entity that can see plaintext data, which is undesirable for end-to-end security and privacy.
The primary problem OSCORE addresses is how to provide efficient, end-to-end security for the payload and critical metadata of CoAP messages without imposing the overhead of maintaining a stateful transport-layer security tunnel. It was motivated by the need for a security solution that works in constrained environments, supports the RESTful paradigm of CoAP, and allows for the legitimate operation of intermediaries without breaking security. By securing the 'object' (the CoAP message) itself, OSCORE decouples security from the underlying transport, enabling secure communication over unreliable transports and through untrusted nodes.
3GPP adopted OSCORE to enhance the security of IoT services in its architecture, particularly for services exposed via the NEF/SCEF. It addresses limitations of previous approaches where IoT device data might only be protected between the device and the mobile network, but not all the way to the application server in the cloud. By mandating OSCORE for certain interfaces, 3GPP ensures that sensitive IoT data, such as sensor readings or control commands, remains confidential and integral from the constrained device to its final destination, even when traversing the 3GPP network infrastructure and external IP networks.
Detected Changes Across Releases
from 3GPP Change RequestsSpecific changes extracted from the „Change history“ tables of 3GPP specifications (5 CRs across 2 releases). Complements the general historical overview above with the evidence-based evolution of this function.
In Release 17, the OSCORE (Object Security for Constrained RESTful Environments) function was newly introduced as a supported Ua security protocol for application security bootstrapping within the Generic Bootstrapping Architecture (GBA). This addition provides a mechanism for securing constrained RESTful environments, such as those using CoAP, by enabling the bootstrapping of keys for use with the OSCORE protocol as defined in IETF RFC 8613. The specification was updated to include the corresponding Ua security protocol identifier for OSCORE within the NAF_Id parameter.
In Release 18, OSCORE was newly specified as a supported Ua security protocol for both the Generic Bootstrapping Architecture (GBA) and the Authentication and Key Management for Applications (AKMA) framework. This integration allows the bootstrapped shared secret, established between the UE and the network, to be used for securing application-layer communication via the IETF-defined OSCORE protocol. Specifically, the enhancements enable OSCORE to be utilized over the Ua reference point, leveraging the existing GBA and AKMA bootstrapping procedures for key derivation.
Explore further
Broader topics and technologies where OSCORE plays a role.
Defining Specifications
3GPP specifications that define or reference OSCORE, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TS 33.220 vj00 | Generic Authentication Architecture (GAA); Generic Bootstrapping Architecture (GBA) | Rel-19 |
| TS 33.535 vj00 | 5G AKMA: Authentication and Key Management for Apps | Rel-19 |
| TR 33.938 vj10 | 3GPP Cryptographic Inventory for 5G | Rel-19 |