Description
In 3GPP specifications, a redundancy check is a mechanism used to detect accidental changes to an application message. It is defined in TS 22.048 and TS 23.048, which specify security mechanisms for mobile applications, particularly for the SIM Application Toolkit (SAT) and other smart card-based services. The redundancy check is a string of bits derived from the application message and possibly additional information, such as a counter or padding, for the purpose of detecting accidental changes. Crucially, it does not use any secret information, distinguishing it from cryptographic checksums like MAC (Message Authentication Code).
The redundancy check is typically a simple checksum or cyclic redundancy check (CRC) computed over the message. It is appended to the message before transmission or storage. When the message is received or retrieved, the redundancy check is recomputed and compared with the received value. If they match, the message is considered intact; if not, an error is detected. This mechanism is designed to catch accidental errors, such as those caused by transmission noise, memory corruption, or software bugs, but it is not intended to protect against malicious tampering, as it does not involve a secret key.
In the context of 3GPP TS 23.048, the redundancy check is part of the security mechanisms for the (U)SIM Application Toolkit. It is used in conjunction with other security features like cryptographic checksums and digital signatures to provide a comprehensive security framework. The redundancy check ensures that the message has not been accidentally altered, while the cryptographic checksum (which uses a secret key) ensures that it has not been maliciously altered. Together, they provide both integrity and authenticity.
The redundancy check is particularly important in environments where messages are transmitted over unreliable channels or stored in memory that may be subject to errors. For example, when a network sends a command to a UICC to update a file, the command may include a redundancy check to ensure that the command is received correctly. If the redundancy check fails, the UICC can reject the command and request retransmission, preventing the execution of a corrupted command that could lead to incorrect behavior.
Although the redundancy check is a simple concept, it is a fundamental building block of secure communication in 3GPP systems. Its inclusion in TS 22.048 and TS 23.048 highlights its role in the overall security architecture. As 3GPP networks evolve, the redundancy check remains relevant for ensuring data integrity in various protocols, including those used for IoT and 5G.
Purpose & Motivation
The redundancy check exists to provide a lightweight, non-cryptographic method for detecting accidental errors in application messages. In the early days of smart card and mobile application security, it was recognized that messages could be corrupted during transmission or storage due to various factors, such as radio interference, memory faults, or software errors. While cryptographic checksums like MACs can detect both accidental and malicious changes, they require a secret key and are computationally more expensive. For many applications, a simple redundancy check is sufficient to catch accidental errors, and it can be used alongside cryptographic mechanisms for defense in depth.
The redundancy check was introduced in 3GPP Release 5 as part of the security mechanisms for the SIM Application Toolkit. It was motivated by the need to ensure the integrity of commands and data exchanged between the network and the UICC, especially in over-the-air (OTA) provisioning scenarios. Without a redundancy check, a corrupted message might be accepted and executed, leading to incorrect configuration or security vulnerabilities. The redundancy check provides a first line of defense against such errors.
Historically, redundancy checks have been used in many communication protocols, such as TCP/IP and storage systems, to detect errors. The 3GPP adaptation in TS 23.048 specifies how the redundancy check is computed and used in the context of UICC applications. It is designed to be simple and efficient, so it can be implemented on resource-constrained devices like smart cards. While more advanced error-detection mechanisms exist, the redundancy check remains a valuable tool for ensuring data integrity in 3GPP networks.
What changed in its specifications
The latest release-to-release comparison of specifications that define Redundancy Check. Each summary describes the whole specification, not only this term.
Rel-5 added applet management commands, minimum security level specification, and a security layer relation to Open Platform architecture.
Full comparison in TS 23.048 →Evolution Across Releases
An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.
Initial definition introduced: 'A string of bits derived from the Application Message and possible further information for the purpose of detecting accidental changes to the message, without the use of any secret information.' This established the redundancy check as a non-cryptographic integrity mechanism for UICC applications.
Defining Specifications
3GPP specifications that define or reference Redundancy Check, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TS 22.048 v500 | Security Mechanisms for SIM Toolkit | Rel-5 read |
| TS 23.048 v590 | Secured Packets Structure for SMS and UICC Management | Rel-5 read |