diff --git a/5g-core/images/nr-frame-structure/image-1.png b/5g-core/images/nr-frame-structure/image-1.png new file mode 100644 index 0000000..6b6f1d7 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-1.png differ diff --git a/5g-core/images/nr-frame-structure/image-10.png b/5g-core/images/nr-frame-structure/image-10.png new file mode 100644 index 0000000..3460ff2 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-10.png differ diff --git a/5g-core/images/nr-frame-structure/image-11.png b/5g-core/images/nr-frame-structure/image-11.png new file mode 100644 index 0000000..d6920bf Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-11.png differ diff --git a/5g-core/images/nr-frame-structure/image-12.png b/5g-core/images/nr-frame-structure/image-12.png new file mode 100644 index 0000000..a3c66a0 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-12.png differ diff --git a/5g-core/images/nr-frame-structure/image-2.png b/5g-core/images/nr-frame-structure/image-2.png new file mode 100644 index 0000000..247b4c8 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-2.png differ diff --git a/5g-core/images/nr-frame-structure/image-3.png b/5g-core/images/nr-frame-structure/image-3.png new file mode 100644 index 0000000..5d734c2 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-3.png differ diff --git a/5g-core/images/nr-frame-structure/image-4.png b/5g-core/images/nr-frame-structure/image-4.png new file mode 100644 index 0000000..d64ad8b Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-4.png differ diff --git a/5g-core/images/nr-frame-structure/image-5.png b/5g-core/images/nr-frame-structure/image-5.png new file mode 100644 index 0000000..73c12e6 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-5.png differ diff --git a/5g-core/images/nr-frame-structure/image-6.png b/5g-core/images/nr-frame-structure/image-6.png new file mode 100644 index 0000000..b3172d2 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-6.png differ diff --git a/5g-core/images/nr-frame-structure/image-7.png b/5g-core/images/nr-frame-structure/image-7.png new file mode 100644 index 0000000..ba6be4b Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-7.png differ diff --git a/5g-core/images/nr-frame-structure/image-8.png b/5g-core/images/nr-frame-structure/image-8.png new file mode 100644 index 0000000..46fc7ad Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-8.png differ diff --git a/5g-core/images/nr-frame-structure/image-9.png b/5g-core/images/nr-frame-structure/image-9.png new file mode 100644 index 0000000..9bd1750 Binary files /dev/null and b/5g-core/images/nr-frame-structure/image-9.png differ diff --git a/5g-core/images/nr-reference-signals/image-1.png b/5g-core/images/nr-reference-signals/image-1.png new file mode 100644 index 0000000..a2a58c8 Binary files /dev/null and b/5g-core/images/nr-reference-signals/image-1.png differ diff --git a/5g-core/images/nr-reference-signals/image-2.png b/5g-core/images/nr-reference-signals/image-2.png new file mode 100644 index 0000000..68ed503 Binary files /dev/null and b/5g-core/images/nr-reference-signals/image-2.png differ diff --git a/5g-core/images/nr-reference-signals/image-3.png b/5g-core/images/nr-reference-signals/image-3.png new file mode 100644 index 0000000..6b7d35e Binary files /dev/null and b/5g-core/images/nr-reference-signals/image-3.png differ diff --git a/5g-core/images/nr-reference-signals/image-4.png b/5g-core/images/nr-reference-signals/image-4.png new file mode 100644 index 0000000..0bebb75 Binary files /dev/null and b/5g-core/images/nr-reference-signals/image-4.png differ diff --git a/5g-core/images/nr-reference-signals/image-5.png b/5g-core/images/nr-reference-signals/image-5.png new file mode 100644 index 0000000..f60e464 Binary files /dev/null and b/5g-core/images/nr-reference-signals/image-5.png differ diff --git a/5g-core/images/nr-reference-signals/image-6.png b/5g-core/images/nr-reference-signals/image-6.png new file mode 100644 index 0000000..357ae39 Binary files /dev/null and b/5g-core/images/nr-reference-signals/image-6.png differ diff --git a/5g-core/index.md b/5g-core/index.md index d5748fb..2f64ffb 100644 --- a/5g-core/index.md +++ b/5g-core/index.md @@ -7,10 +7,14 @@ pqc/index hexaebpf/index ebpf/index security/index +standards/index ``` ```{toctree} :maxdepth: 1 + +nr-reference-signals +nr-frame-structure 5g-upf-architecture 5gc-operator os-5gc-compare diff --git a/5g-core/nr-frame-structure.md b/5g-core/nr-frame-structure.md new file mode 100644 index 0000000..d8f446a --- /dev/null +++ b/5g-core/nr-frame-structure.md @@ -0,0 +1,89 @@ +# NR Frame Structure + +**Author:** [Shubham Kumar](https://www.linkedin.com/in/chmodshubham/) + +**Published:** July 10, 2022 + +![NR frame structure overview](images/nr-frame-structure/image-1.png) + +Data(UL/DL) is transmitted in the form of radio frames in the air. **Radio Frames** are of a duration of **10ms** which consists of **10** **subframes** each having a duration of **1ms**. Subframes inside a radio frame are serialized as SF0, SF1, SF2, SF3, …., and SF9. A subframe is made up of a **Resource Grid** which is a (m x n) matrix of Resource Elements where 'm' defines the number of Sub-carriers and 'n' defines the number of OFDM Symbols. + +This arrangement of frames and subframes is similar to what is present in the LTE frame structure. + +Subframes are further divided into slots. LTE has fixed 2 slots per subframe as per numerology, 15KHz. But in NR, the number of slots varies, depending on the **SCS**(*SubCarrier Spacing*). Slot length gets shorter as Subcarrier Spacing gets wider. + +> Note: SCS is equivalent to numerology, mu(μ). + +![NR subframe and slot structure](images/nr-frame-structure/image-2.png) + +LTE supports **numerology** of 15KHz only but in 5G, the supported numerologies are 15KHz, 30KHz, 60KHz, 120KHz, and 240KHz. Multiple Subcarrier Spacing provides flexibility for multiple services on the same carrier frequency but it also introduces interference with other services having different numerology. + +Formula to calculate, **SCS = 15 x 2μ kHz**(where μ = 0, 1, 2, 3, 4). + +A **Slot** is another matrix of 12 subcarriers along with a variable number of symbols in the time domain or simply a **Resource Block**. It can further be classified based on the number of OFDM symbols. The number of OFDM Symbols varies with **slot configuration**, and the type of **Cyclic Prefix** used. + +There are 2 types of slot configuration: + +- **Slot Configuration 0** – This configuration is newly introduced in the NR System. The number of symbols in a slot is always 14 for Normal Cyclic Prefix and 12 for Extended Cyclic Prefix. + +- **Slot Configuration 1** – In this configuration, the number of symbols in a slot is always 7 for Normal Cyclic Prefix and 6 for Extended Cyclic Prefix. This is the old Slot configuration mechanism used in the 4G System for resource allocation. + +![Slot configuration](images/nr-frame-structure/image-3.png) + +**OFDM**(*Orthogonal Frequency Division Multiplexing*) is an efficient **modulation technique** in which a wide frequency band is split into many small frequencies, known as subcarriers, and transmit in such a way that they overlap each other but do not influence other subcarriers. These subcarriers are **orthogonal** to each other which means the peak point of a sub-carrier occurs at the NULL point of others such that the resources can be used with maximum efficiency. + +On a technical basis, it is the combination of **QAM**(*Quadrature Amplitude Modulation*) and **FDM**(*Frequency Division Modulation*) techniques to increase the channel efficiency and reduce bandwidth consumption, ultimately producing a high data rate communication system. OFDM symbols can be classified as **D**(*Downlink*), **U**(*Uplink*), and **X**(*Flexible*) based on the **slot format**. + +Propagation of signals takes multiple diversions before reaching their destination due to which signals get distorted by fading and the doppler effect. At the frame structure level, if one symbol gets delayed a bit, then it coincides with the next symbol and causes interference between them called **ISI**(*Inter Symbol Interference*) which ultimately affects the transmission quality of digital signals. + +So, to overcome this problem, a **time gap** is introduced between every 2 symbols. But leaving the space empty like turning off the transmission, would cause problems for the amplifier. So, to encounter this, a **CP**(Cyclic Prefix) is introduced in the space. + +![Cyclic prefix](images/nr-frame-structure/image-4.png) + +The **Cyclic Prefix** in OFDM refers to copying the end part of the signal and adding it at the beginning of it. This Cyclic Prefix is discarded at the receiver end. + +Cyclic Prefix is of 2 types: + +- **Normal CP** – In Normal CP, the slot is divided into **14/7 symbols** based on slot configuration. The normal CP length is designed to support propagation conditions with a delay spread up to 4.7 μs. + +- **Extended CP** – The slot is divided into **12/6 OFDM symbols** based on slot configuration in the case of extended CP. This is intended to support deployments where the delay spread is up to 16.7 μs. This is only supported for the μ value 2 i.e. 60KHz SCS. + +With the **increase** in the value of **μ**, the **OFDM symbols** occupying space in the **time domain** start to **decrease** with a simultaneous **increase** in the size of the **frequency domain**. + +## Different Numerologies + +1. For **μ = 0**, that means **15 kHz Subcarrier Spacing**. In this, a subframe contains only 1 slot which means a radio frame contains **10 slots** in it. For slot configuration 0, the number of OFDM symbols within each slot is 14. This configuration is for OFDM symbols having **Normal Cyclic Prefix**. + +![μ=0 numerology](images/nr-frame-structure/image-5.png) + +For **μ = 1**, that means **30 kHz Subcarrier Spacing**. In this, a subframe is divided into 2 slots which means a radio frame contains **20 slots** in it. For slot configuration 0, the number of OFDM symbols is 14 within each slot. This configuration is for OFDM symbols having **Normal Cyclic Prefix**. + +![μ=1 numerology](images/nr-frame-structure/image-6.png) + +3. For **μ = 2**, that means **60 kHz Subcarrier Spacing**. In this, a subframe is divided into 4 slots which means a radio frame contains **40 slots** in it. This is further **categorized** based on the **type of Cyclic Prefix**. + +- For OFDM symbols having **Normal Cyclic Prefix**, the number of OFDM symbols is **14** within each slot for slot configuration 0. + +![μ=2 Normal CP](images/nr-frame-structure/image-7.png) + +- For OFDM symbols having **Extended** **Cyclic** **Prefix**, the number of OFDM symbols is **12** within each slot configuration 0. + +![μ=2 Extended CP](images/nr-frame-structure/image-8.png) + +4. For **μ = 3**, that means **120 kHz Subcarrier Spacing**. In this, a subframe is divided into 8 slots which means a radio frame contains **80 slots** in it. For slot configuration 0, the number of OFDM symbols is 14 within each slot. This configuration is for OFDM symbols having **Normal Cyclic Prefix**. + +![μ=3 numerology](images/nr-frame-structure/image-9.png) + +5. For **μ = 4**, that means **240 kHz Subcarrier Spacing**. In this, a subframe is divided into 16 slots which means a radio frame contains **160 slots** in it. For slot configuration 0, the number of OFDM symbols is 14 within each slot. This configuration is for OFDM symbols having **Normal Cyclic Prefix**. + +![μ=4 numerology](images/nr-frame-structure/image-10.png) + +**Resource Element** is the **smallest physical time-frequency resource** consisting of **1 subcarrier** in **1 OFDM symbol**. **Subcarrier** is defined in the **frequency domain** and **OFDM Symbol** is defined in the time domain. To **identify the position** of each resource element, 2 parameters **(k,l)** are used where **'k'** and **'l'** are the indexes in the **frequency** and **time domain** respectively. + +![Resource element](images/nr-frame-structure/image-11.png) + +In **LTE**, a **Resource Block** is defined in the **time domain** of **0.5 ms** and **12 subcarriers** in the **frequency domain** but in **NR**, a **resource block** is **only defined** in the **frequency domain**. Unlike LTE, 5G has more flexibility in the time duration for different transmissions. The time domain can be altered based on the need. **E.g.** if a particular activity needs high throughput, it can be scheduled for multiple symbols and if it requires low latency, only fewer symbols will be allocated. + +The number of **Resource Blocks** **varies** with **numerology**. **Resource Block** is defined as **12 consecutive subcarriers** in the **frequency domain**. + +![Resource blocks and numerology](images/nr-frame-structure/image-12.png) diff --git a/5g-core/nr-reference-signals.md b/5g-core/nr-reference-signals.md new file mode 100644 index 0000000..1318758 --- /dev/null +++ b/5g-core/nr-reference-signals.md @@ -0,0 +1,96 @@ +# NR Reference Signals + +**Author:** [Shubham Kumar](https://www.linkedin.com/in/chmodshubham/) + +**Published:** July 19, 2022 + +**Reference signals** are unique signals only **present** in **Physical channels** and are used to deliver a **reference point** for **resource scheduling** during **Uplink** and **downlink** **transmission**. It occupies specific resource elements within the grid. + +NR constitutes 4 reference signals: + +- **DMRS**(*Demodulation Reference Signal*) +- **PTRS**(*Phase Tracking Reference Signal*) +- **CSI-RS**(*Channel State Information Reference Signal*) +- **SRS**(*Sounding Reference Signal*) + +![NR reference signals overview](images/nr-reference-signals/image-1.png) + +## NR RF vs LTE RF + +![NR RF vs LTE RF comparison](images/nr-reference-signals/image-2.png) + +- In LTE, there is a reference signal called **C-RS**(*Cell-specific Reference Signal*) which is mainly used for **downlink purposes** such as **demodulation**, and **channel quality estimation**. But in NR, this reference signal is **removed** and instead, uses different downlink signals for different purposes. + +- A **new reference signal**, **PTRS**, is **introduced** which tracks the phase of a local oscillator at the transmitter and receiver end. This is used to counter phase noise at higher frequencies. + +- In LTE, DMRS is introduced only in Downlink transmission, but this limitation is no more available in NR. **NR** introduces **DMRS** for **both downlink** and **uplink channels**. + +- In LTE, reference signals are always enabled for maintaining the link between the device and the network but in NR, **reference signals are transmitted only when they are required** which ultimately optimizes their performance. + +## Types of Reference Signals + +### DMRS + +![DMRS](images/nr-reference-signals/image-3.png) + +- **DMRS**(*Demodulation Reference Signal*) is the reference signal which is used for **demodulation** i.e. extracting the original signals from the received one(*modulated*) by altering its frequency and amplitude. + +- DMRS is designed **specifically** for **each UE**, i.e. no 2 UE's use the same DMRS for the physical channels demodulation. + +- As DMRS is used particularly for demodulation and **RRM**(*Radio Resource Management*) **measurement**, so this is transmitted only when it is needed. + +- DMRS is **mapped** to different physical channels for both **Downlink** and **Uplink**. The physical channels that are associated with DMRS are **PDSCH, PDCCH PUSCH,** and **PUCCH**. + +Apart from this, it is also found in **association with PBCH** inside the **SSB**(**Synchronization Signal Block**). **PBCH DMRS** occupies **25%** of **REs**(*Resource Elements*) allocated to PBCH. The **REs occupied** by the **PBCH** **DMRS** are **dependent** on the **PCI**(*Physical Cell Id*) value and its **location** is determined by the formula '**PCI mod4'**. + +- Multiple **orthogonal** DMRSs i.e. *isolated from each other's effects*, can be allocated to **support** **MIMO**(*Multiple Input and Multiple Output*) transmission for higher throughput. It supports up to about 12 orthogonal layers. + +- The network controls the rate of transmission of DMRS signals based on rate change. In high mobility scenarios, tracking fast changes in the channel increases the rate of transmission of DMRS signal whereas, in low-speed scenarios where the channel shows little change, it sends this information occasionally. + +- **DMRS** is also found in **association** with **PTRS** only **once** **per** **transmission**. DMRS can also be **beamformed**. + +### PTRS + +![PTRS](images/nr-reference-signals/image-4.png) + +- **PTRS**(*Phase Tracking Reference Signal*) is used to **track** the **phase** of the local **oscillator** present at the transmission and receiver end. + +- The initial angle made by a sinusoidal function of a waveform generated by an oscillator is known as a **phase**. Any kind of **fluctuations** that occur in the phase of a **waveform** is called **phase noise**. The **orthogonality** of the **subcarriers** gets **destroyed** due to **ICI**(*Inter-Carrier Interference*) and this phase noise causes a **common phase rotation** to all the **subcarriers** known as **CPE**(*Common Phase Error*). + +PTRS is responsible for **minimizing** the effect of the oscillator **phase noise** on system performance, especially at **mmWave frequencies**. The **phase noise increases** with an **increase** in the **frequency** of waves. + +- PTRS has a **low density** in the **frequency domain** and **high density** in the **time domain** as phase noise tends to change across time but remains the same across the frequency domain. Or in other words, there are **low correlation** characteristics among the **consecutive OFDM symbols**. + +- PTRS **occurs** **only** in **combination** with **DMRS** in physical channels. It is present in both uplink and downlink with **PUSCH** and **PDSCH** channels respectively. + +- PTRS allocation within subcarriers is carried out depending on the quality of the oscillators, carrier frequency, subcarrier spacing, modulation, and coding schemes that are used. + +### SRS + +![SRS](images/nr-reference-signals/image-5.png) + +- **SRS**(*Sound Reference Signal*) is an **uplink reference signal** **transmitted** by **UE** which is used by the gNodeB to **estimate** the **uplink channel quality** over a wider bandwidth. + +- Unlike DMRS and PTRS, **SRS** is **not associated** with any **uplink physical channels** but **supports** uplink **resource scheduling** and link adaption(*selecting an appropriate modulation and coding scheme to maximize the transmission of user bit rate*). + +- SRS resources **span** over **1, 2, or 4 consecutive symbols** in the **time domain**. It is always **transmitted** in the **last 6 symbols** of the **slot**. + +- SRS **provides information** about the **combined effect** of **multipath fading**, **scattering**, **Doppler**, and **power loss** of the transmitted signal. This information is used by the base station for **beam management** and **power control** of the signal. + +- Max of 12 UEs can transmit SRS simultaneously using 1 antenna port. + +### CSI-RS + +![CSI-RS](images/nr-reference-signals/image-6.png) + +- **CSI-RS**(*Channel State Information Reference Signal*) is a **downlink reference signal** used by UE to **measure** the **quality** of the **downlink** **channels** and **report** this to the base station through the **CQI**(*Channel Quality Indicator*) report. This information is used by gNodeB to implement appropriate modulation schemes, code rates, beamforming, etc. + +- It is **used** for the **calculation** of **RSRP**(*Reference Signal Received Power*), **RSRQ**(*Reference Signal RecivedQuality*), and **SINR**(*Signal Interference + Noise Ratio*) during **mobility** and **beam management** in connected mode. + +- It is also used in **frequency and time tracking**, and **UL reciprocity-based precoding**(*channel estimation in uplink so that it can be directly used for link adaption in the downlink*). For time and frequency tracking, CSI-RS transmission can either be **periodic** or **aperiodic**. + +- 5GS(*5G System*) allows a **high** level of **flexibility** in **CSI-RS** **configurations**, its resources can be configured up to 32 ports. + +- CSI-RS resources can be scheduled on any OFDM symbols within the slot but it **usually occupies 1, 2, or 4 OFDM symbols** based on configured number of ports. + +- CSI-RS is uniquely configured for each UE but multiple UEs can share the same resources as they all are served by the same gNB. diff --git a/5g-core/security/aka-procedure.md b/5g-core/security/aka-procedure.md new file mode 100644 index 0000000..ae462ee --- /dev/null +++ b/5g-core/security/aka-procedure.md @@ -0,0 +1,48 @@ +# AKA Procedure + +**Author:** [Shubham Kumar](https://www.linkedin.com/in/chmodshubham/) + +**Published:** October 14, 2022 + +![AKA Procedure key derivation](images/aka-procedure/image-1.png) + +If the UE(*User Equipment*) is previously registered with the network, it will have a **temporary identifier**, **5G-GUTI**(*5G- Global Unique Temporary Identifier*) stored in it. The UE will use this identifier for the Identification procedure. + +The 5G-GUTI is sent to the SEAF(*Security Anchor Function*) in the logical N1 interface where SUPI(*Subscription Permanent Identifier*) is derived from it and further sent to the AUSF(*Authentication Server Function*) for the generation of authentication vectors. + +> The N1 interface is called the logical interface because the signaling messages between the AMF(Access and Mobility Management) and UE are transferred through gNodeB but are shown as an independent interface in the architecture.* + +But if the UE is not registered with the network earlier, it will use a **permanent identifier**, **SUPI** for UE authentication. But SUPI cannot be sent over the air interface in a plain-text message for privacy reasons. So, a **concealed version of SUPI** i.e. **SUCI**(*Subscription Concealed Identifier*) is used for transmission. + +SUCI is created by UE using Public Key Cryptography Technique. UE encrypts the SUPI with the help of the **HN**(*Home Network*) **Public Key** so that it can only be decrypted by the SIDF(*Subscription Identifier De-concealing Function*) using its Private Key. After decoding the SUCI, it compares the subscriber SUPI with the stored SUPI in ARPF(*Authentication credential Repository and Processing Function*) to confirm that the request is from a genuine user. + +Based on the SUPI received, ARPF decides which procedure should be implemented either 5G-AKA(*Authentication and Key Agreement*) Procedure(*for 3GPP supporting devices*) or EAP-AKA(*Extensible Authentication Protocol-Authentication and Key Agreement*) Procedure(*for non-3GPP supporting devices*). + +For the 3GPP scenario, the 5G AKA procedure is used. ARPF derives 5G HE AV(*Home Environment Authentication Vectors*). HE AV contains 4 different authentication parameters i.e. **AUTN**(Authentication Token), **RAND**(*Random Number*), **XRES\***(*Expected Response*), and **Kausf**(*AUSF Key*). These parameters are generated by the ARPF with the use of Milenage and HMAC-SHA-256 KDF algorithms along with some other inputs. + +> The Authentication Vector is sent as Home Environment because the AUSF is located in the Home Network.* + +ARPF sends these authentication vectors to AUSF. AUSF derives the Kseaf(*SEAF key*) using the KDF algorithm and stores it. Once the UE authentication is completed, it sends this key to the SEAF. + +AUSF calculates the HXRES*(Hash Expected Response)* from XRES by using the SHA-256 hash algorithm and sends it to the SEAF. AUSF also stores XRES\* to compare it with the response coming from the UE. + +Now the AUSF sends the SE AV(*Serving Environment Authentication Vector*) which consists of AUTN, RAND, and HXRES\*. + +> The Authentication Vector is sent as Serving Environment because the AMF is located in the Serving Network of the UE.* + +SEAF will store the HXRES\* to compare it with the UE authentication response and sends the RAND, and AUTN to the UE. + +The USIM(*Universal Subscriber Identity Module*) part of the UE verifies that the AUTN is from a genuine mobile Core Network by comparing the XMAC(*Expected Message Authentication Code*) with the MAC which it derives from the AUTN along with the RES(*Response*), CK(*Ciphering Key*), and IK(*Integrity Key*) using the Milenage algorithm. + +![AKA Procedure flow](images/aka-procedure/image-2.png) + +Then USIM sends it to the ME(*Mobile Equipment*) another part of the UE(*without SIM*) where RES\* is calculated and, Kausf(*AUSF Key*) is derived using the HMAC-SHA-256 KDF algorithm. Then with the use of Kausf, Kseaf(*SEAF Key*) is derived and with the help of Kseaf, Kamf(*AMF Key*) is derived. UE then derives the low-level keys using Kamf for ciphering and integrity protection on the user side. + +From the ME, RES is sent back to the SEAF in the authentication response. + +SEAF derives the HRES\* from RES\* using the SHA-256 hash algorithm to compare it with the stored HXRES\*. If it matches, then the authentication procedure gets a green signal from the AMF side and forwards the response to the AUSF for its successful completion. + +AUSF compares the RES\* with the XRES\* and sends the Kseaf to the SEAF if it completely matches, to let SEAF derive the Kamf which is further used to derive low-level keys that help in integrity and ciphering protection on the network side. After this, a secure connection is set up between the network and the UE. + +[Download AKA Procedure PDF](./images/aka-procedure/aka-procedure.pdf) + diff --git a/5g-core/security/ecies-in-5g-core-supi-to-suci-conversion.md b/5g-core/security/ecies-in-5g-core-supi-to-suci-conversion.md new file mode 100644 index 0000000..39596fe --- /dev/null +++ b/5g-core/security/ecies-in-5g-core-supi-to-suci-conversion.md @@ -0,0 +1,314 @@ +# ECIES in 5G Core: SUPI to SUCI Conversion + +**Author:** [Aditya Koranga](https://www.linkedin.com/in/aditya-koranga/) + +**Published:** July 26, 2023 + +SUPI stands for Subscription Permanent Identifier, a permanent unique identifier assigned to each sim card for the identity of a subscriber. In 4G it was called IMSI(International Mobile Subscriber Identity). + +SUPI is a 15 or 16 digits string that contains MCC(Mobile Country Code), MNC(Mobile Network Code), and **MSIN**(Mobile Subscriber Identification Number). SUPI can also be written in NAI format. + +![SUPI structure](images/ecies-in-5g-core-supi-to-suci-conversion/image-1.png) + +In 4G, this identifier was sent to the home network as plain text which was the cause of a problem called the '**Man In the Middle Attack**' in which an external third party can clearly watch the IMSI and intentionally change its value which may cause some problems in the network or use it for their own profit. This is how an **IMSI Catcher** violates network security. + +So, in 5G there was a need to send the SUPI in a protected way and that is why we need to first Encrypt the SUPI and then send it to the home network. The Encrypted SUPI is called SUCI(Subscription Concealed Identifier). In SUPI we just need to Encrypt the MSIN part and the MCC & MNC parts are not required to be encrypted. + +## ECIES Implementation + +5G uses symmetric-key encryption and various ciphering algorithms but the SUPI to SUCI conversion mechanism is performed with the help of **Asymmetric-Key Encryption**, also known as **Public-Key Cryptography**. The scheme that is used in this whole encryption and decryption process is **ECIES**(Elliptic Curve Integrated Encryption Scheme). + +Implementation of ECIES in 5G Core is mentioned in the [**3GPP TS 33.501 #Section C.3**](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) **[Section C.3].** You can also check [**this**](https://www.secg.org/sec1-v2.pdf) page for detailed implementation. + +Right now, the ECIES scheme is quite safe and robust but in the future to make it safe from quantum attack we will have to implement Post-Quantum Cryptographic algorithms like lattice-based Crystals-Kyber key encapsulation mechanism. + +According to the [3GPP Standard](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf), for the ECIES scheme, two profiles: **Profile A** & **Profile B** are supported: + +![ECIES Profile A](images/ecies-in-5g-core-supi-to-suci-conversion/image-2.png) +![ECIES Profile B](images/ecies-in-5g-core-supi-to-suci-conversion/image-3.png) + +**Magma** currently uses [3GPP TS 33.501 version 15.4.0 Release 15 #Section C.3](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) for the implementation of the ECIES scheme. + +**This is how it is done in MAGMA Core:** + +![ECIES flow in Magma](images/ecies-in-5g-core-supi-to-suci-conversion/image-4.png) + +**Let's understand the flow diagram** + +- First of all, we generate a Home Network Key pair using Elliptic Curve. These keys are the pre-provisioned keys that need to be saved against any physical attacks. +- The Home Network public key(**hn\_pub\_key**) is saved in USIM and the home network private key(**hn\_priv\_key**) is saved in UDM(SIDF)[Subscription identifier de-concealing function]. +- Now at the UE side, we generate a new ephemeral key pair using **Curve25519** or **secp256r1**(according to the profile selected). Ephemeral **priv\_key** and **pub\_key** will be generated. Ephemeral keys are the keys that are used for a very short period of time, usually for just one transaction. +- Then we perform the **EVP Key Agreement** using the home network public key(**hn\_priv\_key**) & the ephemeral private key(**priv\_key**) and this forms a **Shared Key.** +- The Shared Key & the ephemeral public key(pub\_key) are then passed through **ANSI-X9.63 KDF**(Key Derivation Function) to generate **AES Key**(which is our **encrypting key**) and **MAC key**(used for the Message Authentication process). Along with these keys, some more minor elements are generated such as AES cnt and AES nonce which are also used in AES encryption. +- Then using the AES Key we perform **AES(CTR) encryption** in the **MSIN**(SUPI) which then creates a cipher text called **SUCI.** +- Then using **MAC Key** & **HMAC-SHA\_256** function on cipher text, we generate message digest **UE\_MAC.** +- After this, the ephemeral public key, SUCI(cipher text) & UE\_MAC are shared with the home Network(UDM). And the Encryption part is done. +- At the UDM/SIDF side, again the **EVP Key agreement** is done but this time it is done using the ephemeral public key(**pub\_key**, which was shared in the above step) & home network private key(**hn\_private\_key**) and this again forms the same **Shared Key** as it was generated at the UE side. +- Then again, we will pass the **Shared Key** and the ephemeral public key(**pub\_key**) to the same **ANSI-X9.63 KDF** which will then create the same **AES Key**(**decrypting key**) and the same **MAC Key.** +- Then using the **AES key**(**decrypting key**) we will decrypt the **SUCI**(which is our cipher text) and convert it back into plain text **MSIN(SUPi)**. +- Then again perform Message authentication using the **MAC key** and **HMAC-SHA\_256,** which gives a message digest **HN\_MAC** as output. We will then compare the UE\_MAC and HN\_MAC: if both are the same then the Authentication is verified and if fails, the plain text will not appear. +- And finally, the ECIES process is completed. + +You can read the files of this procedure in different cores: + +**Magma** — [File1](https://github.com/magma/magma/blob/master/lte/gateway/python/magma/subscriberdb/crypto/ECIES.py), [File2](https://github.com/magma/magma/blob/master/lte/gateway/python/magma/subscriberdb/crypto/EC.py), [File3](https://github.com/magma/magma/blob/master/lte/gateway/python/scripts/test_supi_decrypt_imsi_cli.py) + +**Free5GC** — [File](https://github.com/free5gc/udm/blob/68f208f8544112ab891bede8fe1c195183e24059/pkg/suci/suci.go) + +**You can also understand the complete flow with the help of the code explanation below:** + +![Code flow](images/ecies-in-5g-core-supi-to-suci-conversion/image-5.png) + +Source: + +![Code snippet](images/ecies-in-5g-core-supi-to-suci-conversion/image-6.png) + +### For Private Key Generation + +1. Using X25519/CURVE25519 + +The Private Key is handled as a simple bytes buffer. + +Source: + +![Private key X25519](images/ecies-in-5g-core-supi-to-suci-conversion/image-7.png) + +Source: + +![X25519 cryptography library](images/ecies-in-5g-core-supi-to-suci-conversion/image-8.png) + +Source: + +![OpenSSL backend](images/ecies-in-5g-core-supi-to-suci-conversion/image-9.png) + +1. Using ECDH SECP256R1 + +The Private Key is handled within a DER-encoded PKCS8 structure. + +Source: + +![Private key SECP256R1](images/ecies-in-5g-core-supi-to-suci-conversion/image-10.png) + +Source: + +![EC key generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-11.png) + +Source: + +![Backend key loading](images/ecies-in-5g-core-supi-to-suci-conversion/image-12.png) + +### For Public Key Generation + +1. Using X25519/CURVE25519 + +The Public Key is handled as a simple bytes buffer. + +Source: + +![Public key X25519](images/ecies-in-5g-core-supi-to-suci-conversion/image-13.png) + +1. Using ECDH SECP256R1 + +The Public Key is handled as a compressed point bytes buffer according to ANSI X9.62. + +Source: + +![Public key SECP256R1](images/ecies-in-5g-core-supi-to-suci-conversion/image-14.png) + +### UE Key Pair Generation + +Source: + +![Ephemeral key pair](images/ecies-in-5g-core-supi-to-suci-conversion/image-15.png) + +Source: + +Section: C.3.2 + +![ETSI TS 33.501 C.3.2](images/ecies-in-5g-core-supi-to-suci-conversion/image-16.png) + +Source: + +![Test SUPI decrypt](images/ecies-in-5g-core-supi-to-suci-conversion/image-17.png) + +Source: + +![ECIES key pair generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-18.png) + +The HN and UE Public Key are shared publicly so that both UE and HN can fetch it. + +### UE Shared Key Generation + +The shared key is generated using the generate\_sharedkey() function which acts as a Shared Secret between UE and HN as a part of the Key Agreement Process. The EVP Key Agreement is used for this process. + +UE Shared Key is generated using UE Private Key and HN Public Key. + +Source: + +![EVP key agreement](images/ecies-in-5g-core-supi-to-suci-conversion/image-19.png) + +Source: + +![UE shared key generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-20.png) + +1. Using X25519 + +Source: + +![X25519 shared key](images/ecies-in-5g-core-supi-to-suci-conversion/image-21.png) + +Source: + +![X25519 exchange](images/ecies-in-5g-core-supi-to-suci-conversion/image-22.png) + +Source: + +![OpenSSL utils](images/ecies-in-5g-core-supi-to-suci-conversion/image-23.png) + +1. Using SECP256R1 + +Source: + +![SECP256R1 shared key](images/ecies-in-5g-core-supi-to-suci-conversion/image-24.png) + +Source: + +![EC exchange](images/ecies-in-5g-core-supi-to-suci-conversion/image-25.png) + +Source: + +![OpenSSL utils result](images/ecies-in-5g-core-supi-to-suci-conversion/image-26.png) + +The Shared key cannot be used as an encryption key directly. + +Source: + +![EVP key agreement reference](images/ecies-in-5g-core-supi-to-suci-conversion/image-27.png) + +### HN Shared Key Generation + +The HN Shared Key is generated in the same way as UE Shared Key is generated but this time, UE Public Key and HN Private Key will be used. + +Source: + +![HN shared key generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-28.png) + +### UE AES Key and MAC Key Generation + +UE AES key along with MAC key, AES Count and AES Nonce are generated through passing UE ephemeral public key and Shared Key through ANSI-X9.63 KDF. + +Source: + +![AES and MAC key generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-29.png) + +Source: + +![KDF function](images/ecies-in-5g-core-supi-to-suci-conversion/image-30.png) + +Source: + +![X9.63 KDF](images/ecies-in-5g-core-supi-to-suci-conversion/image-31.png) + +### HN Decrypting Key and MAC Key Generation + +HN Decrypting key and MAC key are also obtained through passing UE ephemeral public key and Shared Key through ANSI-X9.63 KDF**.** + +Source: + +![HN decrypting key generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-32.png) + +### SUPI Encryption at UE Side + +Now, the MSIN(Mobile Subscriber Identification Number) part of the SUPI needs to be protected before sending it over to the Public Area. + +Source: + +![SUPI encryption](images/ecies-in-5g-core-supi-to-suci-conversion/image-33.png) + +#### AES Encryption Key Generation + +AES Key, AES Nonce, and AES Count are used to generate AES Encryption Key using AES in CTR(Counter) Mode cryptography to encrypt the plain text(MSIN). + +Note: AES Encryption Algorithm is used for both encryption and decryption of a block of a message. + +Source: + +![AES encryption key](images/ecies-in-5g-core-supi-to-suci-conversion/image-34.png) + +#### Encryption of Plaintext + +Source: + +![Plaintext encryption](images/ecies-in-5g-core-supi-to-suci-conversion/image-35.png) + +Source: + +![Encryption output](images/ecies-in-5g-core-supi-to-suci-conversion/image-36.png) + +#### UE MAC Value Generation + +Along with this, a new UE MAC Value is generated using a hashing algorithm(a kind of signature also called digest sometimes, unique to a message)(HMAC SHA-256), extracted MAC key, and add a ciphertext(SUCI) to it. + +Source: + +![MAC value generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-37.png) + +Source: + +![ECIES MAC generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-38.png) + +Source: + +![HMAC library](images/ecies-in-5g-core-supi-to-suci-conversion/image-39.png) + +Now, the UE Public Key, Ciphertext message(SUCI), and UE MAC Value are made public. + +### SUCI Decryption at HN Side + +HN fetches UE Public Key, Ciphertext, and UE MAC Value. Now, HN tries to decrypt the ciphertext using AES Decryption Key, but before that, it first calculates its MAC Value and compares it with the UE MAC Value to verify that the message is from an intended user and it is not tempered. + +Source: + +![SUCI decryption start](images/ecies-in-5g-core-supi-to-suci-conversion/image-40.png) +![SUCI decryption continued](images/ecies-in-5g-core-supi-to-suci-conversion/image-41.png) + +Source: + +![Decryption verification](images/ecies-in-5g-core-supi-to-suci-conversion/image-42.png) + +Source: + +![Auth servicer](images/ecies-in-5g-core-supi-to-suci-conversion/image-43.png) +![Auth servicer continued](images/ecies-in-5g-core-supi-to-suci-conversion/image-44.png) + +#### HN MAC Value Generation and Comparison with the UE MAC Value + +Then HN MAC Value is created using MAC Key and the same hash algorithm(HMAC SHA-256) used by UE to generate the UE MAC Value and also added ciphertext obtained from the UE. + +Source: + +![HN MAC generation](images/ecies-in-5g-core-supi-to-suci-conversion/image-45.png) + +Source: + +![HMAC comparison](images/ecies-in-5g-core-supi-to-suci-conversion/image-46.png) + +The HN MAC Value is compared with the obtained UE MAC Value and if it matches, HN confirms that the message is from a genuine user and starts the decryption process. But if it doesn't match it has been proven that the message is not the original one. + +#### AES Decryption Key Generation + +After the MAC Value verifies, HN generates the AES Decryption Key from the AES key, AES Count, and AES Nonce using AES in CTR Mode cryptography to decrypt the ciphertext containing the encrypted MSIN. + +Source: + +![AES decryption key](images/ecies-in-5g-core-supi-to-suci-conversion/image-47.png) + +#### Decryption of Ciphertext + +Source: + +![Ciphertext decryption](images/ecies-in-5g-core-supi-to-suci-conversion/image-48.png) + +Source: + +![Final decryption output](images/ecies-in-5g-core-supi-to-suci-conversion/image-49.png) diff --git a/5g-core/security/images/aka-procedure/aka-procedure.pdf b/5g-core/security/images/aka-procedure/aka-procedure.pdf new file mode 100644 index 0000000..79a7e15 Binary files /dev/null and b/5g-core/security/images/aka-procedure/aka-procedure.pdf differ diff --git a/5g-core/security/images/aka-procedure/image-1.png b/5g-core/security/images/aka-procedure/image-1.png new file mode 100644 index 0000000..39c0102 Binary files /dev/null and b/5g-core/security/images/aka-procedure/image-1.png differ diff --git a/5g-core/security/images/aka-procedure/image-2.png b/5g-core/security/images/aka-procedure/image-2.png new file mode 100644 index 0000000..04faa35 Binary files /dev/null and b/5g-core/security/images/aka-procedure/image-2.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-1.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-1.png new file mode 100644 index 0000000..1da907f Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-1.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-10.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-10.png new file mode 100644 index 0000000..2abc3bf Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-10.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-11.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-11.png new file mode 100644 index 0000000..fbad564 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-11.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-12.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-12.png new file mode 100644 index 0000000..fd6226c Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-12.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-13.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-13.png new file mode 100644 index 0000000..e62c253 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-13.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-14.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-14.png new file mode 100644 index 0000000..19f24c1 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-14.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-15.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-15.png new file mode 100644 index 0000000..53114bd Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-15.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-16.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-16.png new file mode 100644 index 0000000..facc52e Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-16.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-17.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-17.png new file mode 100644 index 0000000..00d0c38 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-17.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-18.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-18.png new file mode 100644 index 0000000..4e8eaa7 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-18.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-19.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-19.png new file mode 100644 index 0000000..ed44a73 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-19.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-2.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-2.png new file mode 100644 index 0000000..84421bf Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-2.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-20.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-20.png new file mode 100644 index 0000000..37042df Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-20.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-21.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-21.png new file mode 100644 index 0000000..85b86e6 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-21.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-22.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-22.png new file mode 100644 index 0000000..29121a2 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-22.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-23.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-23.png new file mode 100644 index 0000000..e6f39df Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-23.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-24.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-24.png new file mode 100644 index 0000000..d4e4e51 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-24.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-25.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-25.png new file mode 100644 index 0000000..a87f59c Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-25.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-26.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-26.png new file mode 100644 index 0000000..d8eaf40 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-26.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-27.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-27.png new file mode 100644 index 0000000..eb09ff8 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-27.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-28.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-28.png new file mode 100644 index 0000000..065868e Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-28.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-29.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-29.png new file mode 100644 index 0000000..3a58a1b Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-29.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-3.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-3.png new file mode 100644 index 0000000..39d5857 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-3.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-30.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-30.png new file mode 100644 index 0000000..cd56005 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-30.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-31.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-31.png new file mode 100644 index 0000000..9e6c5ba Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-31.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-32.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-32.png new file mode 100644 index 0000000..8526945 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-32.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-33.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-33.png new file mode 100644 index 0000000..23cf791 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-33.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-34.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-34.png new file mode 100644 index 0000000..61699c6 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-34.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-35.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-35.png new file mode 100644 index 0000000..717471d Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-35.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-36.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-36.png new file mode 100644 index 0000000..0ef2fd9 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-36.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-37.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-37.png new file mode 100644 index 0000000..c7af81e Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-37.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-38.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-38.png new file mode 100644 index 0000000..caa2503 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-38.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-39.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-39.png new file mode 100644 index 0000000..37f9732 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-39.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-4.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-4.png new file mode 100644 index 0000000..b556c16 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-4.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-40.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-40.png new file mode 100644 index 0000000..2b9143b Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-40.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-41.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-41.png new file mode 100644 index 0000000..cc73031 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-41.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-42.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-42.png new file mode 100644 index 0000000..3ce658d Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-42.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-43.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-43.png new file mode 100644 index 0000000..2f66c1b Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-43.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-44.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-44.png new file mode 100644 index 0000000..d3449c0 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-44.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-45.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-45.png new file mode 100644 index 0000000..19ed324 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-45.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-46.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-46.png new file mode 100644 index 0000000..37f9732 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-46.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-47.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-47.png new file mode 100644 index 0000000..0440b35 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-47.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-48.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-48.png new file mode 100644 index 0000000..0c8cd39 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-48.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-49.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-49.png new file mode 100644 index 0000000..43be0af Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-49.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-5.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-5.png new file mode 100644 index 0000000..f6d1215 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-5.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-6.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-6.png new file mode 100644 index 0000000..4af239c Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-6.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-7.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-7.png new file mode 100644 index 0000000..aff3812 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-7.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-8.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-8.png new file mode 100644 index 0000000..e2b341c Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-8.png differ diff --git a/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-9.png b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-9.png new file mode 100644 index 0000000..3ec5c41 Binary files /dev/null and b/5g-core/security/images/ecies-in-5g-core-supi-to-suci-conversion/image-9.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-1.png b/5g-core/security/images/magma-hn-milenage/image-1.png new file mode 100644 index 0000000..2ed75e8 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-1.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-10.png b/5g-core/security/images/magma-hn-milenage/image-10.png new file mode 100644 index 0000000..7dddde0 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-10.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-11.png b/5g-core/security/images/magma-hn-milenage/image-11.png new file mode 100644 index 0000000..4a1b954 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-11.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-12.png b/5g-core/security/images/magma-hn-milenage/image-12.png new file mode 100644 index 0000000..f1167f5 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-12.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-13.png b/5g-core/security/images/magma-hn-milenage/image-13.png new file mode 100644 index 0000000..811c5aa Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-13.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-14.png b/5g-core/security/images/magma-hn-milenage/image-14.png new file mode 100644 index 0000000..8ab472b Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-14.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-15.png b/5g-core/security/images/magma-hn-milenage/image-15.png new file mode 100644 index 0000000..f2f650b Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-15.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-16.png b/5g-core/security/images/magma-hn-milenage/image-16.png new file mode 100644 index 0000000..72cad2c Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-16.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-17.png b/5g-core/security/images/magma-hn-milenage/image-17.png new file mode 100644 index 0000000..b884744 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-17.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-18.png b/5g-core/security/images/magma-hn-milenage/image-18.png new file mode 100644 index 0000000..f0db209 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-18.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-19.png b/5g-core/security/images/magma-hn-milenage/image-19.png new file mode 100644 index 0000000..0e1f54e Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-19.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-2.png b/5g-core/security/images/magma-hn-milenage/image-2.png new file mode 100644 index 0000000..fe8ff0b Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-2.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-20.png b/5g-core/security/images/magma-hn-milenage/image-20.png new file mode 100644 index 0000000..dbd9846 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-20.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-21.png b/5g-core/security/images/magma-hn-milenage/image-21.png new file mode 100644 index 0000000..47afbea Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-21.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-22.png b/5g-core/security/images/magma-hn-milenage/image-22.png new file mode 100644 index 0000000..ac84585 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-22.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-23.png b/5g-core/security/images/magma-hn-milenage/image-23.png new file mode 100644 index 0000000..12762a4 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-23.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-24.png b/5g-core/security/images/magma-hn-milenage/image-24.png new file mode 100644 index 0000000..c190af0 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-24.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-25.png b/5g-core/security/images/magma-hn-milenage/image-25.png new file mode 100644 index 0000000..79fbbc1 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-25.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-26.png b/5g-core/security/images/magma-hn-milenage/image-26.png new file mode 100644 index 0000000..811c5aa Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-26.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-27.png b/5g-core/security/images/magma-hn-milenage/image-27.png new file mode 100644 index 0000000..c5c13f0 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-27.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-28.png b/5g-core/security/images/magma-hn-milenage/image-28.png new file mode 100644 index 0000000..5eb83af Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-28.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-29.png b/5g-core/security/images/magma-hn-milenage/image-29.png new file mode 100644 index 0000000..dff86ee Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-29.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-3.png b/5g-core/security/images/magma-hn-milenage/image-3.png new file mode 100644 index 0000000..703ad9f Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-3.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-30.png b/5g-core/security/images/magma-hn-milenage/image-30.png new file mode 100644 index 0000000..1efd884 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-30.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-31.png b/5g-core/security/images/magma-hn-milenage/image-31.png new file mode 100644 index 0000000..2f86867 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-31.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-32.png b/5g-core/security/images/magma-hn-milenage/image-32.png new file mode 100644 index 0000000..9da2f68 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-32.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-33.png b/5g-core/security/images/magma-hn-milenage/image-33.png new file mode 100644 index 0000000..4fd5384 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-33.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-34.png b/5g-core/security/images/magma-hn-milenage/image-34.png new file mode 100644 index 0000000..97e7a64 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-34.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-35.png b/5g-core/security/images/magma-hn-milenage/image-35.png new file mode 100644 index 0000000..6d965dc Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-35.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-36.png b/5g-core/security/images/magma-hn-milenage/image-36.png new file mode 100644 index 0000000..2f86867 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-36.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-37.png b/5g-core/security/images/magma-hn-milenage/image-37.png new file mode 100644 index 0000000..9da2f68 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-37.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-38.png b/5g-core/security/images/magma-hn-milenage/image-38.png new file mode 100644 index 0000000..4356497 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-38.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-39.png b/5g-core/security/images/magma-hn-milenage/image-39.png new file mode 100644 index 0000000..9625020 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-39.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-4.png b/5g-core/security/images/magma-hn-milenage/image-4.png new file mode 100644 index 0000000..04e2f82 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-4.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-40.png b/5g-core/security/images/magma-hn-milenage/image-40.png new file mode 100644 index 0000000..2c8993b Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-40.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-41.png b/5g-core/security/images/magma-hn-milenage/image-41.png new file mode 100644 index 0000000..2f86867 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-41.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-42.png b/5g-core/security/images/magma-hn-milenage/image-42.png new file mode 100644 index 0000000..9da2f68 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-42.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-5.png b/5g-core/security/images/magma-hn-milenage/image-5.png new file mode 100644 index 0000000..d517e62 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-5.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-6.png b/5g-core/security/images/magma-hn-milenage/image-6.png new file mode 100644 index 0000000..836ee15 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-6.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-7.png b/5g-core/security/images/magma-hn-milenage/image-7.png new file mode 100644 index 0000000..8bb2be2 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-7.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-8.png b/5g-core/security/images/magma-hn-milenage/image-8.png new file mode 100644 index 0000000..122100e Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-8.png differ diff --git a/5g-core/security/images/magma-hn-milenage/image-9.png b/5g-core/security/images/magma-hn-milenage/image-9.png new file mode 100644 index 0000000..a4c5f17 Binary files /dev/null and b/5g-core/security/images/magma-hn-milenage/image-9.png differ diff --git a/5g-core/security/index.md b/5g-core/security/index.md index 1c6afd9..b98b26a 100644 --- a/5g-core/security/index.md +++ b/5g-core/security/index.md @@ -3,5 +3,8 @@ ```{toctree} :maxdepth: 1 +aka-procedure can-supi-concealment-ensure-pfs +ecies-in-5g-core-supi-to-suci-conversion +magma-hn-milenage ``` diff --git a/5g-core/security/magma-hn-milenage.md b/5g-core/security/magma-hn-milenage.md new file mode 100644 index 0000000..4749a95 --- /dev/null +++ b/5g-core/security/magma-hn-milenage.md @@ -0,0 +1,228 @@ +# Magma HN Milenage + +**Author:** [Shubham Kumar](https://www.linkedin.com/in/chmodshubham/) + +**Published:** July 26, 2023 + +![Milenage overview](images/magma-hn-milenage/image-1.png) + +Source: + +Section 3.2 + +![ETSI TS 33.102 Section 3.2](images/magma-hn-milenage/image-2.png) + +## Generating 5G Authentication Vectors + +Source: + +![5G authentication vector generation](images/magma-hn-milenage/image-3.png) + +### Generating SQN + +Source: + +Section: C.3.2, C.1.1.2 C.1.1.1 + +![SQN generation 1](images/magma-hn-milenage/image-4.png) +![SQN generation 2](images/magma-hn-milenage/image-5.png) +![SQN generation 3](images/magma-hn-milenage/image-6.png) +![SQN generation 4](images/magma-hn-milenage/image-7.png) + +Source: + +![SQN processor](images/magma-hn-milenage/image-8.png) + +### Generating RAND + +Source: + +![RAND generation](images/magma-hn-milenage/image-9.png) + +### Generating OPc + +OPc(Derived operator code unique for each SIM) is derived from OP(Operator Code) and K(Secret Key). OP and K are first encrypted using AES-128 Encryption Algorithm in CBC(Cipher block Chaining) Mode and then the output(opc) and the OP are taken as input into the XOR function to derive OPc. + +Source: + +Section 2.3 + +![OPc derivation](images/magma-hn-milenage/image-10.png) + +Source: + +![OPc milenage](images/magma-hn-milenage/image-11.png) + +Source: + +![OPc computation](images/magma-hn-milenage/image-12.png) + +Source: + +![OPc result](images/magma-hn-milenage/image-13.png) + +### Generating MAC-A and MAC-S + +MAC-A(Network Authentication Code) and MAC-S(Resynchronisation Authentication Code) are generated from Secret Key, SQN, RAND, OPc, and AMF using f1 and f1\* cryptographic implementations through a single f1 function. + +Source: + +Section 2.3 + +![MAC-A and MAC-S derivation](images/magma-hn-milenage/image-14.png) + +Source: + +![f1 function](images/magma-hn-milenage/image-15.png) + +Source: + +![f1 implementation](images/magma-hn-milenage/image-16.png) + +### Generating XRES and AK + +The XRES(Expected Response), and AK(Anonymity Key) are derived from RAND, OPc, and K using f2 and f5(or f5\*) cryptography functions respectively. As the same inputs are used for deriving both parameters, a single operation is constructed for their implementation. + +Source: + +Section 2.3 + +![XRES and AK derivation](images/magma-hn-milenage/image-17.png) + +Source: + +![f2 and f5 functions](images/magma-hn-milenage/image-18.png) + +Source: + +![XRES computation](images/magma-hn-milenage/image-19.png) + +### Generating CK + +CK(Ciphering Key) is derived from the Secret Key(K), RAND, and OPc using the f3 cryptography function. + +Source: + +![CK derivation](images/magma-hn-milenage/image-20.png) + +Source: + +![f3 function](images/magma-hn-milenage/image-21.png) + +### Generating IK + +IK(Integrity Key) is derived from the Secret Key(K), RAND, and OPc using the f4 cryptography function. + +Source: + +![IK derivation](images/magma-hn-milenage/image-22.png) + +Source: + +![f4 function](images/magma-hn-milenage/image-23.png) + +### Generating AUTN + +An authentication Token(AUTN) is generated from the SQN, AK, MAC-A, and AMF. SQN and AK are inserted into the XOR function and the output is combined with the AMF and MAC-A. + +Source: + +![AUTN generation](images/magma-hn-milenage/image-24.png) + +Source: + +![AUTN construction](images/magma-hn-milenage/image-25.png) + +Source: + +![AUTN result](images/magma-hn-milenage/image-26.png) + +### Generating XRES\* + +XRES\* is generated from CK, IK, SNNi(Serving Network Name Identity), RAND, and XRES. First, a key is obtained by combining CK and IK then SNNi, RAND, and XRES length are converted into an array of bytes of size 2 with the first element stored as MSB(Most Significant Bit). Outputs from these operations are stored independently in different variables which are further combined with FC(it contains a byte object which is obtained from converting a hexadecimal string 6B) to form another new variable 'S'. + +Then, S and key are inserted as input into the HMAC-SHA-256 algorithm to obtain XRES\*. + +Source: + +Section A.4 + +![XRES* derivation spec](images/magma-hn-milenage/image-27.png) + +Source: + +Section B.2.0 + +![KDF reference](images/magma-hn-milenage/image-28.png) + +Source: + +![XRES* function call](images/magma-hn-milenage/image-29.png) + +Source: + +![XRES* computation](images/magma-hn-milenage/image-30.png) + +Source: + +![HMAC-SHA-256 input](images/magma-hn-milenage/image-31.png) + +Source: + +![HMAC library](images/magma-hn-milenage/image-32.png) + +### Generating Kausf + +CK, IK, SNNi, and AUTN are encrypted in such a way as to form Kausf(AUSF Key). Alike XRES\*, a key obtained from combining CK and Ik and stored into a variable k. Then, SNNi and RAND lengths are stored in an array of bytes using a Python library. Then, these outputs are combined with FC(it contains a byte object which is obtained from converting a hexadecimal string 6A) to form another temporary string variable 'S'. + +S and k are hashed using KDF hashing algorithm HMAC-SHA-256 to form Kausf. + +Source: + +Section A.2 + +![Kausf derivation spec](images/magma-hn-milenage/image-33.png) + +Source: + +![Kausf function call](images/magma-hn-milenage/image-34.png) + +Source: + +![Kausf computation](images/magma-hn-milenage/image-35.png) + +Source: + +![HMAC-SHA-256 input](images/magma-hn-milenage/image-36.png) + +Source: + +![HMAC library](images/magma-hn-milenage/image-37.png) + +### Generating Kseaf + +Kseaf(SEAF Key) is obtained by integrating Kausf and SNNi through a hashing algorithm. In this derivation, Kausf acts as key(k) whereas SNNi is still disintegrated into 2 forms, one stores the value, and the other stores the length of the SNNi in an array of bytes of size 2. The resultant output is assembled with the FC(it contains a byte object which is obtained from converting a hexadecimal string 6C) and stored in the variable 'S'. + +Then, S and key(Kausf) undergo the HMAC-SHA-256 hashing algorithm to generate Kseaf. + +Source: + +Section A.6 + +![Kseaf derivation spec](images/magma-hn-milenage/image-38.png) + +Source: + +![Kseaf function call](images/magma-hn-milenage/image-39.png) + +Source: + +![Kseaf computation](images/magma-hn-milenage/image-40.png) + +Source: + +![HMAC-SHA-256 input](images/magma-hn-milenage/image-41.png) + +Source: + +![HMAC library](images/magma-hn-milenage/image-42.png) diff --git a/5g-core/standards/index.md b/5g-core/standards/index.md new file mode 100644 index 0000000..a28d0d6 --- /dev/null +++ b/5g-core/standards/index.md @@ -0,0 +1,9 @@ +# Standards + +```{toctree} +:maxdepth: 1 + +oai-free5gc-open5gs-magma-5g-core-standards-for-amf +oai-free5gc-open5gs-and-magma-5g-core-standards-for-smf +oai-free5gc-open-5gs-5g-core-standards-for-upf +``` diff --git a/5g-core/standards/oai-free5gc-open-5gs-5g-core-standards-for-upf.md b/5g-core/standards/oai-free5gc-open-5gs-5g-core-standards-for-upf.md new file mode 100644 index 0000000..7c52c1b --- /dev/null +++ b/5g-core/standards/oai-free5gc-open-5gs-5g-core-standards-for-upf.md @@ -0,0 +1,18 @@ +# OAI, Free5GC, Open5GS 5G Core Standards for UPF + +**Author:** [Shubham Kumar](https://www.linkedin.com/in/chmodshubham/) + +**Published:** September 23, 2022 + +The table shows different Technical Specifications used in OAI, OPEN5GS, and FREE5GC for the 5G Core UPF NF. + +| | | | | +| --- | --- | --- | --- | +| **Basis** | **OAI** | **FREE5GC** | **OPEN5GS** | +| **PFCP Node Management** | [ETSI TS 129 244 – V16.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.05.00_60/ts_129244v160500p.pdf) – 7.4 [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2 | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2 [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.4.3 [3GPP TS 23.502 4.4.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_t.html#e-4-4-3) | [ETSI TS 129 244 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2 – 7.4 [3GPP TS 29.244 6.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2) | +| **PFCP Session Management** | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.3 [3GPP TS 29.244 6.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-3) [ETSI TS 129 244 – V16.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.05.00_60/ts_129244v160500p.pdf) – 7.5 [3GPP TS 29.244 7.5](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_e.html#e-7-5) | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.3 [3GPP TS 29.244 6.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-3) [ETSI TS 129 244 V15.8.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.08.00_60/ts_129244v150800p.pdf) – 5.6 [3GPP TS 29.244 5.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-6) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.4.1 – 4.4.2 [3GPP TS 23.502 4.4.1](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_t.html#e-4-4-1) | [ETSI TS 129 244 V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.04.00_60/ts_129244v160400p.pdf) – 5.6 – 6.2.6 – 6.3 – 8.2.41 [3GPP TS 29.244 5.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-6) [ETSI TS 123 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.8.2.11 – 5.8.2.11.3 – 8.2.3.2 [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) | +| **TFT/SDF** | [ETSI TS 123 060 – V10.3.0](https://www.etsi.org/deliver/etsi_ts/123000_123099/123060/10.03.00_60/ts_123060v100300p.pdf) – 14.6 – 15.3 [3GPP TS 23.060 14.6](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-060_zx.html#e-14-6) [3GPP TS 23.060 15.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-060_zz.html#e-15-3) [ETSI TS 124 008 – V13.7.0](https://www.etsi.org/deliver/etsi_ts/124000_124099/124008/13.07.00_60/ts_124008v130700p.pdf) – 9.5.4.1 | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 5.2 – 8.2.5 | [ETSI TS 129 244 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 5.2 – 8.2.5 [3GPP TS 29.244 5.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-2-1) [ETSI TS 123 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.8.2.11 [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) | +| **Packet routing and other session-related parameters** | [ETSI TS 123 401 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/123400_123499/123401/15.04.00_60/ts_123401v150400p.pdf) – 4.3.3 [3GPP TS 23.401 4.3.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-401_d.html#e-4-3-3) [ETSI TS 123 060 – V10.3.0](https://www.etsi.org/deliver/etsi_ts/123000_123099/123060/10.03.00_60/ts_123060v100300p.pdf) – 14.6 [3GPP TS 23.060 14.6](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-060_zx.html#e-14-6) | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 5.3 – 8.2.3 – 8.2.26 | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 5.3 – 8.2.3 – 8.2.26 [3GPP TS 29.244 5.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-3) | +| **GTP-U** | [ETSI TS 129 281 – V15.7.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129281/15.07.00_60/ts_129281v150700p.pdf) – 4 – 5 – 7 – 8 – 9 – 12 | [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 9.3.2.5 | [ETSI TS 129 281 V16.0.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129281/16.00.00_60/ts_129281v160000p.pdf) – 5 – 5.2 [3GPP TS 29.281 5](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-281_b.html#e-5) | +| **Heartbeat Procedure** | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2.2 [3GPP TS 29.244 6.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) | [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2.2 [3GPP TS 29.244 6.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) | [ETSI TS 129 244 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.04.00_60/ts_129244v160400p.pdf) – 6.2.2 [3GPP TS 29.244 6.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) | +| **Addition of additional PSA and BP or UL CL** | Unavailable | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.3.5.4 – 4.3.5.7 [3GPP TS 23.502 4.3.5.4](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_q.html#e-4-3-5-4) [3GPP TS 23.502 4.3.5.7](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_r.html#e-4-3-5-7) | Unavailable | diff --git a/5g-core/standards/oai-free5gc-open5gs-and-magma-5g-core-standards-for-smf.md b/5g-core/standards/oai-free5gc-open5gs-and-magma-5g-core-standards-for-smf.md new file mode 100644 index 0000000..43b431f --- /dev/null +++ b/5g-core/standards/oai-free5gc-open5gs-and-magma-5g-core-standards-for-smf.md @@ -0,0 +1,22 @@ +# OAI, Free5GC, Open5GS and Magma 5G Core Standards for SMF + +**Author:** [Aditya Koranga](https://www.linkedin.com/in/aditya-koranga/) + +**Published:** September 19, 2022 + +The table shows different Technical Specifications used in OAI, OPEN5GS, FREE5GC and Magma for 5G Core SMF Function. + +| | | | | | +| --- | --- | --- | --- | --- | +| **Basis** | **OAI 5G Core** | **FREE5GC 5G Core** | **OPEN5GS 5G Core** | **MAGMA 5G CORE** | +| **Language** | **C++** | **Golang** | **C** | **C++** | +| **SM Context Management** | [ETSI TS 123 502 V16.7.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/16.07.00_60/ts_123502v160700p.pdf) – 5.2.8.2 [3GPP TS 23.502 5.2.8.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzm.html#e-5-2-8-2) | [ETSI TS 123 502 V15.2.0](http://etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 5.2.8.2 [3GPP TS 23.502 5.2.8.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzm.html#e-5-2-8-2) [ETSI TS 129 502 V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/15.06.00_60/ts_129502v150600p.pdf) – 5.2.2.2 – 5.2.2.3 – 5.2.2.4 [3GPP TS 29.502 5.2.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-2) | [ETSI TS 129 502 V16.8.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.08.00_60/ts_129502v160800p.pdf) – 5.2.2.2 – 5.2.2.4 – 5.2.2.6 – 6.1.3.2 – 6.1.6.2.2 [3GPP TS 29.502 5.2.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-2) [ETSI TS 123 502 V16.7.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/16.07.00_60/ts_123502v160700p.pdf) – 5.2.8.2.1 | [ETSI TS 129 502 V15.8.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/15.08.00_60/ts_129502v150800p.pdf) – 5.2.2.2 – 5.2.2.3 – 5.2.2.4 [3GPP TS 29.502 5.2.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-2) | +| **N4 Session Management** | [ETSI TS 123 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.8.2.11 [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2.6 – 6.2.7 – 6.2.8 – 6.2.9 – 6.3 [3GPP TS 29.244 6.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-3) | [ETSI TS 129 244 V15.8.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.08.00_60/ts_129244v150800p.pdf) – 5.6 – 5.8 [3GPP TS 29.244 5.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-6) [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 6.2.6 – 6.2.7 – 6.2.8 – 6.2.9 – 6.3 [3GPP TS 29.244 6.2.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-6) [3GPP TS 29.244 6.2.8](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-8) [3GPP TS 29.244 6.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-3) | [ETSI TS 129 244 V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.04.00_60/ts_129244v160400p.pdf) – 5.6 – 6.2.6 – 6.3 – 8.2.41 [3GPP TS 29.244 5.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-6) [3GPP TS 29.244 8.2.41](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_f.html#e-8-2-41) [ETSI TS 123 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.8.2.11 – 5.8.2.11.3 – 8.2.3.2 [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) | [ETSI TS 123 501 V15.8.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/15.08.00_60/ts_123501v150800p.pdf) – 5.8.2.11 – 5.8.2.11.3 [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) | +| **PDU Session Management** | [ETSI TS 123 501 – V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.6 – 5.8.2.7 [ETSI TS 124 501 – V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) – 6.2.3 [3GPP TS 24.501 6.2.3](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zi.html#e-6-2-3) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.3 [3GPP TS 23.502 4.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_j.html#e-4-3) | [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 6.2.3 [3GPP TS 24.501 6.2.3](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zi.html#e-6-2-3) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.3 [3GPP TS 23.502 4.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_j.html#e-4-3) | [ETSI TS 123 502 V16.7.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/16.07.00_60/ts_123502v160700p.pdf) – 4.3.2 – 4.3.2.2.3 – 4.3.3 – 4.3.4 [3GPP TS 23.502 4.3.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_j.html#e-4-3-2) [ETSI TS 123 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.29.3 – 6.3.3.3 [3GPP TS 23.501 5.29.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_zr.html#e-5-29-3) [ETSI TS 129 502 V16.8.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.08.00_60/ts_129502v160800p.pdf) 5.2.2.8 [3GPP TS 29.502 5.2.2.8](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-8) | [ETSI TS 129 502 V15.8.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/15.08.00_60/ts_129502v150800p.pdf) [3GPP TS 29.502](https://www.tech-invite.com/3m29/tinv-3gpp-29-502.html) [ETSI TS 138 413 V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 9.2.1 [3GPP TS 38.413 9.2.1](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-1) [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 9.11.4 – 10.3 [3GPP TS 24.501 10.3](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zzq.html#e-10-3) [ETSI TS 123 501 V15.8.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/15.08.00_60/ts_123501v150800p.pdf) – 5.6 – 5.8.2.7 [3GPP TS 23.501 5.6](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_w.html#e-5-6) | +| **PDU Session Authentication and Authorization** | Unavailable | Unavailable | Unavailable | Not Released in v1.8 | +| **Provisioning and Enforcement of Policy Decisions** | [ETSI TS 123 501 – V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.7.1.8 – 5.8.2.8 – 5.8.2.11 [3GPP TS 23.501 5.7.1.8](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_y.html#e-5-7-1-8) [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) | [ETSI TS 123 501 – V15.11.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/15.11.00_60/ts_123501v151100p.pdf) – 5.8.2.7 – 5.8.2.8 – 5.8.2.11 [3GPP TS 23.501 5.8.2.7](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_zd.html#e-5-8-2-7) [3GPP TS 23.501 5.8.2.11](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_ze.html#e-5-8-2-11) [ETSI TS 129 244 – V15.5.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.05.00_60/ts_129244v150500p.pdf) – 5.2 [3GPP TS 29.244 5.2.1](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_c.html#e-5-2-1) | [ETSI TS 129 512 V16.5.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129512/16.05.00_60/ts_129512v160500p.pdf) – 4.2.6 – 4.2.6.2 – 4.2.6.3 [3GPP TS 29.512 4.2.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-512_b.html#e-4-2-6) | [ETSI TS 129 512 V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129512/15.06.00_60/ts_129512v150600p.pdf) – 4.1.4.2 – 4.2.6 – 4.2.6.2 – 4.2.6.2.3 [3GPP TS 29.512 4.2.6](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-512_b.html#e-4-2-6) | +| **N1N2 Message Transfer** | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 5.2.2.2.7 [3GPP TS 23.502 5.2.2.2.7](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzh.html#e-5-2-2-2-7) [ETSI TS 129 518 V16.4.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/16.04.00_60/ts_129518v160400p.pdf) – 5.2.2.3.1 [3GPP TS 29.518 5.2.2.3.1](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-1) | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 5.2.2.2.7 [3GPP TS 23.502 5.2.2.2.7](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzh.html#e-5-2-2-2-7) | [ETSI TS 123 502 V16.7.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/16.07.00_60/ts_123502v160700p.pdf) – 5.2.2.2.7 [3GPP TS 23.502 5.2.2.2.7](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzh.html#e-5-2-2-2-7) [ETSI TS 129 518 V16.4.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/16.04.00_60/ts_129518v160400p.pdf) – 5.2.2.3.1 [3GPP TS 29.518 5.2.2.3.1](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-1) | According to our prior knowledge, [3GPP TS 23.502](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzh.html#e-5-2-2-2-7) or [3GPP TS 29.518](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-1) should be used here. But it is not mentioned in the code or the comment of magma core. | +| **Heartbeat Procedure** | [ETSI TS 129 244 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.04.00_60/ts_129244v160400p.pdf) – 6.2.2 [3GPP TS 29.244 6.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) [ETSI TS 128 537 – V16.0.0](https://www.etsi.org/deliver/etsi_ts/128500_128599/128537/16.00.00_60/ts_128537v160000p.pdf) – 4 [3GPP TS 28.537 4](https://www.tech-invite.com/3m28/toc/tinv-3gpp-28-537_b.html#e-4) | [ETSI TS 129 244 V15.8.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/15.08.00_60/ts_129244v150800p.pdf) – 6.2.2 [3GPP TS 29.244 6.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) | [ETSI TS 129 244 V16.4.0](https://www.etsi.org/deliver/etsi_ts/129200_129299/129244/16.04.00_60/ts_129244v160400p.pdf) – 6.2.2 [3GPP TS 29.244 6.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) | According to our prior knowledge, [3GPP TS 29.244](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-244_d.html#e-6-2-2) should be used here. But it is not mentioned in the code or the comment of magma core. | +| **Addition of additional PSA and BP or UL CL** | Unavailable | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.3.5.4 – 4.3.5.7 [3GPP TS 23.502 4.3.5.4](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_q.html#e-4-3-5-4) [3GPP TS 23.502 4.3.5.7](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_r.html#e-4-3-5-7) | Unavailable | Not Released in v1.8 | +| **SMF's role in Xn-based Inter NG-RAN Handover** | [ETSI TS 129 502 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.04.00_60/ts_129502v160400p.pdf) – 5.2.2.3.3 [3GPP TS 29.502 5.2.2.3.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-3-3) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.9.1.2 [3GPP TS 23.502 4.9.1.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_v.html#e-4-9-1-2) | [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.4.4 [3GPP TS 38.413 8.4.4](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_i.html#e-8-4-4) [ETSI TS 133 501 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.7.3.1 [3GPP TS 33.501 6.7.3.1](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_k.html#e-6-7-3-1) | [ETSI TS 129 502 V16.8.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.08.00_60/ts_129502v160800p.pdf) – 5.2.2.3.3 [3GPP TS 29.502 5.2.2.3.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-3-3) [ETSI TS 123 502 V16.7.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/16.07.00_60/ts_123502v160700p.pdf) – 4.9.1.2 [3GPP TS 23.502 4.9.1.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_v.html#e-4-9-1-2) | Not Released in v1.8 | +| **SMF's role in Inter NG RAN Node N2 Based Handover** | Unavailable | [ETSI TS 133 501 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.7.3.2 [3GPP TS 33.501 6.7.3.2](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_k.html#e-6-7-3-2) [ETSI TS 129 502 V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/15.06.00_60/ts_129502v150600p.pdf) – 5.2.2.3.4 [3GPP TS 29.502 5.2.2.3.4](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-3-4) | [ETSI TS 129 502 V16.8.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.08.00_60/ts_129502v160800p.pdf) – 5.2.2.3.4 [3GPP TS 29.502 5.2.2.3.4](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-3-4) [ETSI TS 123 502 V16.7.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/16.07.00_60/ts_123502v160700p.pdf) – 4.9.1.3 [3GPP TS 23.502 4.9.1.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_w.html#e-4-9-1-3) | Not Released in v1.8 | diff --git a/5g-core/standards/oai-free5gc-open5gs-magma-5g-core-standards-for-amf.md b/5g-core/standards/oai-free5gc-open5gs-magma-5g-core-standards-for-amf.md new file mode 100644 index 0000000..0572128 --- /dev/null +++ b/5g-core/standards/oai-free5gc-open5gs-magma-5g-core-standards-for-amf.md @@ -0,0 +1,28 @@ +# OAI, Free5GC, Open5GS and Magma 5G Core Standards for AMF + +**Author:** [Shubham Kumar](https://www.linkedin.com/in/chmodshubham/) + +**Published:** September 16, 2022 + +The table shows different 3GPP Technical Specifications used in OAI, OPEN5GS, FREE5GC, and MAGMA for the 5G Core AMF NF. + +| | | | | | +| --- | --- | --- | --- | --- | +| **Basis** | **OAI 5G Core** **AMF** | **FREE5GC 5G Core** **AMF** | **OPEN5GS 5G Core** **AMF** | **Magma 5G Core** **Accessd** | +| **Language** | C++ | Golang | C | C++ | +| **Registration Management** | [ETSI TS 123 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.3.2 [3GPP TS 23.501 5.3.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_s.html#e-5-3-2) [3GPP TS 23.501 V15.5.0](https://www.ramonmillan.com/documentos/bibliografia/3GPPTS23.5015GSystemArchitectureR15.5.pdf) – 5.5.1 [3GPP TS 23.501 5.5.1](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_v.html#e-5-5-1) | [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 5.5.1 [3GPP TS 24.501 5.5.1](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_x.html#e-5-5-1) [ETSI TS 123 502 V15.2.0](http://etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.2.2.2 [3GPP TS 23.502 4.2.2.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_a.html#e-4-2-2-2) | [ETSI TS 123 501](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.3 [3GPP TS 23.501](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_s.html#e-5-3) | [ETSI TS 124 501 – V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) – 5.5.1.2 – 8.2.6 – 8.2.7 – 8.2.8 – 8.2.9 [3GPP TS 24.501](https://www.3gpp.org/ftp/Specs/archive/24_series/24.501/) | +| **Mobility Management** | [ETSI TS 123 501 – V16.6.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123501/16.06.00_60/ts_123501v160600p.pdf) – 5.3.4 [3GPP TS 23.501 5.3.4](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_t.html#e-5-3-4) [ETSI TS 124 501 V16.9.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.09.00_60/ts_124501v160900p.pdf) – 7.5.2 [3GPP TS 24.501 7.5.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zq.html#e-7-5-2) | [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 7.5.2 [3GPP TS 24.501 7.5.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zq.html#e-7-5-2) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) –4..2 -4.11.1.2.3 – 4.11.2.2 – 4.11.2.3 – 4.14.1 [3GPP TS 23.502 4.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_a.html#e-4-2) [ETSI TS 138 413 – V15.0.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.00.00_60/ts_138413v150000p.pdf) – 8.4 | [ETSI TS 124 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) [3GPP TS 24.501](https://www.tech-invite.com/3m24/tinv-3gpp-24-501.html) [3GPP TS 24.501 4.6.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_h.html#e-4-6-2) [ETSI TS 138 413](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.4 [3GPP TS 38.413 8.4](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_h.html#e-8-4) | [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 8.2 – 10.2 [3GPP TS 24.501 8.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zr.html#e-8-2) | +| **NAS Message Procedure** | [ETSI TS 138 413 – V15.0.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.00.00_60/ts_138413v150000p.pdf) – 8.6 [3GPP TS 38.413 8.6](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_j.html#e-8-6) | [ETSI TS 138 413 – V15.0.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.00.00_60/ts_138413v150000p.pdf) – 8.6 [3GPP TS 38.413 8.6](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_j.html#e-8-6) [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 4.4 – 5.4.5 [3GPP TS 24.501 4.4](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_d.html#e-4-4) [3GPP TS 24.501 5.4.5](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_v.html#e-5-4-5) | [ETSI TS 124 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) [3GPP TS 24.501](https://www.tech-invite.com/3m24/tinv-3gpp-24-501.html) | [ETSI TS 124 301 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/124300_124399/124301/15.04.00_60/ts_124301v150400p.pdf) – 4.4.3 – 4.4.4 [3GPP TS 24.301](https://www.3gpp.org/ftp/Specs/archive/24_series/24.301/) | +| **UE Context Management** | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.3 [3GPP TS 38.413 8.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_f.html#e-8-3) | [ETSI TS 129 518 – V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/15.06.00_60/ts_129518v150600p.pdf) – 5.2.2.2 [3GPP TS 29.518 5.2.2.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-2) [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.3 [3GPP TS 38.413 8.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_f.html#e-8-3) | [ETSI TS 129 518 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/16.04.00_60/ts_129518v160400p.pdf) – 5.2.2.2 [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.3 [3GPP TS 38.413 8.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_f.html#e-8-3) | [ETSI TS 138 413 V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 9.2.2 – 8.3 [3GPP TS 38.413 9.2.2](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-2) | +| **UE Radio Capability Check** | Unavailable | [ETSI TS 138 306 V15.3.0](https://www.etsi.org/deliver/etsi_ts/138300_138399/138306/15.03.00_60/ts_138306v150300p.pdf) – 4 [3GPP TS 38.306 4](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-306_b.html#e-4) [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.14 [3GPP TS 38.413 8.14](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_n.html#e-8-14) | Unavailable | Not Released in v1.8 | +| **Deregistration Management** | [ETSI TS 124 501 V16.9.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.09.00_60/ts_124501v160900p.pdf) – 5.5.2 [3GPP TS 24.501 5.5.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zd.html#e-5-5-2) | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.2.2.3 [3GPP TS 23.502 4.2.2.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_c.html#e-4-2-2-3) [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 5.5.2 [3GPP TS 24.501 5.5.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zd.html#e-5-5-2) | [ETSI TS 124 501](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) – 5.5.2 [3GPP TS 24.501 5.5.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zd.html#e-5-5-2) | [ETSI TS 124 501 – V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) – 5.5.2.2 – 8.2.12 – 8.2.13 [3GPP TS 24.501](https://www.3gpp.org/ftp/Specs/archive/24_series/24.501/) | +| **PDU Session Management** | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.2 [3GPP TS 38.413 8.2](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_d.html#e-8-2) [ETSI TS 129 502 – V16.5.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.05.00_60/ts_129502v160500p.pdf) – 5 [3GPP TS 29.502 5](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5) | [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.2 [3GPP TS 38.413 8.2](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_d.html#e-8-2) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.3 [3GPP TS 23.502 4.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_j.html#e-4-3) [ETSI TS 124 501 V15.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.06.00_60/ts_124501v150600p.pdf) – 8.3 [3GPP TS 24.501 8.3](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zt.html#e-8-3) | [ETSI TS 138 413 V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.2 [3GPP TS 38.413 version 16.2.0 8.2](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_d.html#e-8-2) [ETSI TS 124 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) – 6.2.3 – 8.3 [3GPP TS 24.501 8.3](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_zt.html#e-8-3) | [ETSI TS 124 501 – V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) Session Establishment – 6.4.1 – 8.3.1 – 8.3.2 – 8.3.3 Session modification – 6.4.2 – 8.3.7 – 8.3.8 – 8.3.9 – 8.3.10 – 8.3.11 Session Release – 6.4.3 – 8.3.12 – 8.3.13 – 8.3.14 – 8.3.15 [3GPP TS 24.501](https://www.3gpp.org/ftp/Specs/archive/24_series/24.501/) | +| **N1N2 Message** | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 5.2.2.2.7 | [ETSI TS 129 518 – V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/15.06.00_60/ts_129518v150600p.pdf) – 5.2.2.3 [3GPP TS 29.518 5.2.2.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 5.2.2.2.7 | [ETSI TS 129 518 V16.4.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/16.04.00_60/ts_129518v160400p.pdf) – 5.2.2.3.1 [3GPP TS 29.518 5.2.2.3.1](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-1) | According to our prior knowledge, [3GPP TS 23.502](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_zzh.html#e-5-2-2-2-7) or [3GPP TS 29.518](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-1) should be used here. But it is not mentioned in the code or the comment of magma core. | +| **Identification** | [3GPP TS 23.501 V15.5.0](https://www.ramonmillan.com/documentos/bibliografia/3GPPTS23.5015GSystemArchitectureR15.5.pdf) – 5.2.3 [3GPP TS 23.501 5.2.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_r.html#e-5-2-3) | [3GPP TS 23.501 V15.5.0](https://www.ramonmillan.com/documentos/bibliografia/3GPPTS23.5015GSystemArchitectureR15.5.pdf) – 5.2.3 [3GPP TS 23.501 5.2.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_r.html#e-5-2-3) [ETSI TS 124 501 – V15.2.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/15.02.01_60/ts_124501v150201p.pdf) – 5.4.3 [3GPP TS 24.501 5.4.3](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_t.html#e-5-4-3) | [ETSI TS 124 501](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) – 5.3.2 [3GPP TS 24.501 5.3.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_o.html#e-5-3-2) [ETSI TS 133 501](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.12 [3GPP TS 33.501 6.12](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_o.html#e-6-12) | [ETSI TS 124 501 – V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) – 5.4.3 – 8.2.21 – 8.2.22 [3GPP TS 24.501](https://www.3gpp.org/ftp/Specs/archive/24_series/24.501/) [ETSI TS 123 003 – V16.3.0](http://etsi.org/deliver/etsi_ts/123000_123099/123003/16.03.00_60/ts_123003v160300p.pdf) – 2 – 2.10 [3GPP TS 23.003](https://www.3gpp.org/ftp/Specs/archive/23_series/23.003/) | +| **Authentication and Authorization** | [3GPP TS 23.501 V15.5.0](https://www.ramonmillan.com/documentos/bibliografia/3GPPTS23.5015GSystemArchitectureR15.5.pdf) – 5.2.3 – 5.2.4 [3GPP TS 23.501 5.2.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_r.html#e-5-2-3) [3GPP TS 23.501 5.2.4](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_r.html#e-5-2-4) | [3GPP TS 23.501 V15.5.0](https://www.ramonmillan.com/documentos/bibliografia/3GPPTS23.5015GSystemArchitectureR15.5.pdf) – 5.2.3 – 5.2.4 [3GPP TS 23.501 5.2.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_r.html#e-5-2-3) [3GPP TS 23.501 5.2.4](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-501_r.html#e-5-2-4) [ETSI TS 133 501 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf) – 6.1.3 [3GPP TS 33.501 6.1.3](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_e.html#e-6-1-3) | [ETSI TS 129 509 V16.7.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129509/16.07.00_60/ts_129509v160700p.pdf) [ETSI TS 133 501 V15.4.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.1.2 [3GPP TS 33.501 version 15.4.0 6.1.2](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_d.html#e-6-1-2) [ETSI TS 124 501](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) – 5.4.1 [3GPP TS 24.501 version 16.6.0 5.4.1](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_r.html#e-5-4-1) | [ETSI TS 124 501 V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) – 5.4.1.3 – 8.2.1 – 8.2.2 – 8.2.3 – 8.2.4 – 8.2.5 [3GPP TS 24.501](https://www.3gpp.org/ftp/Specs/archive/24_series/24.501/) | +| **SMC Procedure** | [ETSI TS 133 501 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf) – 6.7.2 [3GPP TS 33.501 6.7.2](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_k.html#e-6-7-2) [ETSI TS 133 501 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.7.2 | [ETSI TS 133 501 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf) – 6.7.2 [3GPP TS 33.501 6.7.2](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_k.html#e-6-7-2) [ETSI TS 133 501 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.7.2 | [ETSI TS 133 501 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf) – 6.7.2 [3GPP TS 33.501 6.7.2](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_k.html#e-6-7-2) [ETSI TS 124 501 V16.6.0](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.06.00_60/ts_124501v160600p.pdf) – 5.4.2 [3GPP TS 24.501 5.4.2](https://www.tech-invite.com/3m24/toc/tinv-3gpp-24-501_t.html#e-5-4-2) | [ETSI TS 124 501 – V16.5.1](https://www.etsi.org/deliver/etsi_ts/124500_124599/124501/16.05.01_60/ts_124501v160501p.pdf) – 5.4.2 – 8.2.25 – 8.2.26 – 8.2.27 – 8.2.28 [3GPP TS 24.501](https://www.3gpp.org/ftp/Specs/archive/24_series/24.501/) [ETSI TS 133 501 – V15.4.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.04.00_60/ts_133501v150400p.pdf) – 6.7.2 – 6.7.4 [3GPP TS 33.501](https://www.3gpp.org/ftp/Specs/archive/33_series/33.501/) | +| **Registration with AMF Re-allocation** | Unavailable | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.2.2.2.3 [3GPP TS 23.502 4.2.2.2.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_c.html#e-4-2-2-2-3) [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.3.7 [3GPP TS 38.413 8.3.7](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_g.html#e-8-3-7) [ETSI TS 129 518 – V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/15.06.00_60/ts_129518v150600p.pdf) – 5.2.2.3.5.2 [3GPP TS 29.518 5.2.2.3.5.2](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-5-2) | Unavailable | Not Released in v1.8 | +| **Xn-based Inter NG-RAN Handover** | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 9.2.3 [3GPP TS 38.413 9.2.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-3) [ETSI TS 129 502 – V16.5.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.05.00_60/ts_129502v160500p.pdf) – 5.2.2.3.3 [3GPP TS 29.502 5.2.2.3.3](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-3-3) | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.9.1.2 [ETSI TS 123 502 – V15.4.1](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.04.01_60/ts_123502v150401p.pdf) – 4.9.1.2 [ETSI TS 133 501 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf) – 6.7.3.1 [3GPP TS 33.501 6.7.3.1](https://www.tech-invite.com/3m33/toc/tinv-3gpp-33-501_k.html#e-6-7-3-1) [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 9.2.3 [3GPP TS 38.413 9.2.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-3) | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 9.2.3 [3GPP TS 38.413 9.2.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-3) [ETSI TS 123 502 – V15.4.1](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.04.01_60/ts_123502v150401p.pdf) – 4.9.1.2 [3GPP TS 23.502 4.9.1.2](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_v.html#e-4-9-1-2) | Not Released in v1.8 | +| **Inter NG RAN Node N2 Based Handover** | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 9.2.3 [3GPP TS 38.413 9.2.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-3) [ETSI TS 129 502 – V16.5.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129502/16.05.00_60/ts_129502v160500p.pdf) – 5.2.2.3.4 [3GPP TS 29.502 5.2.2.3.4](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-502_b.html#e-5-2-2-3-4) | [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.9.1.3 [ETSI TS 133 501 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf) – 6.7.3.2 [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 9.2.3 [3GPP TS 38.413 9.2.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-3) | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 9.2.3 [3GPP TS 38.413 9.2.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_p.html#e-9-2-3) [ETSI TS 123 502 – V15.2.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/15.02.00_60/ts_123502v150200p.pdf) – 4.9.1.3 [3GPP TS 23.502 4.9.1.3](https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-502_w.html#e-4-9-1-3) | Not Released in v1.8 | +| **Configuration Update** | Unavailable | [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.7.2 – 8.7.3 [3GPP TS 38.413 8.7.2](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-2) [3GPP TS 38.413 8.7.3](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-3) [ETSI TS 129 518 – V15.6.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/15.06.00_60/ts_129518v150600p.pdf) – 5.2.2.3.5.4 [3GPP TS 29.518 5.2.2.3.5.4](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-5-4) | [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.7.2 [3GPP TS 38.413 8.7.2](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-2) [ETSI TS 129 518 – V16.4.0](https://www.etsi.org/deliver/etsi_ts/129500_129599/129518/16.04.00_60/ts_129518v160400p.pdf) – 5.2.2.3.5.4 [3GPP TS 29.518 5.2.2.3.5.4](https://www.tech-invite.com/3m29/toc/tinv-3gpp-29-518_b.html#e-5-2-2-3-5-4) | Not Released in v1.8 | +| **NG Reset** | [ETSI TS 138 413 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.01.00_60/ts_138413v150100p.pdf) – 8.7.4 [3GPP TS 38.413 8.7.4](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-4) [ETSI TS 138 413 – V16.2.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/16.02.00_60/ts_138413v160200p.pdf) – 8.7.4 | [ETSI TS 138 413 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.01.00_60/ts_138413v150100p.pdf) – 8.7.4 [3GPP TS 38.413 8.7.4](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-4) [ETSI TS 138 413 – V15.3.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.03.00_60/ts_138413v150300p.pdf) – 8.7.4 | [ETSI TS 138 413 – V15.1.0](https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/15.01.00_60/ts_138413v150100p.pdf) – 8.7.4.2.1 [3GPP TS 38.413 8.7.4.2.1](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-4-2-1) | According to our prior knowledge, [3GPP TS 38.413](https://www.tech-invite.com/3m38/toc/tinv-3gpp-38-413_k.html#e-8-7-4-2-1) should be used here. But it is not mentioned in the code or the comment of magma core. |