BlogUpdate-Location-Request / Update-Location-Answer (ULR/ULA) - PART 2
Bố cục bài viết
Trang này
Ngày tạo
27/07/2026
Cập nhật
Lượt xem
13
Đọc
14m
ULR/ULA — Chi tiết các Diameter AVP (đặc biệt Subscription-Data)
Nguồn: 3GPP TS 29.272 R15 (29272-fa0), §7.3.x — bổ sung cho tài liệu ULR/ULA phần 1
Quy ước ABNF trong 3GPP: { } = Mandatory bên trong AVP nhóm cha (nếu AVP cha có mặt), [ ] = Optional, *[ ] = 0..n lần, 1*{ } = ≥1 lần bắt buộc. Diameter không định nghĩa cột Cat. C/O/M riêng bên trong grouped AVP như ở bảng message-level — cột “Cat.” dưới đây phản ánh đúng ký hiệu {}/[] này.
1. Terminal-Information (grouped, trong ULR)
AVP 1401 — thông tin thiết bị đầu cuối.
Terminal-Information ::= [ IMEI ]
[ 3GPP2-MEID ]
[ Software-Version ]
*[ AVP ]
| AVP con | Cat. | Ý nghĩa |
|---|---|---|
| IMEI | O | International Mobile Equipment Identity — 14 số (8-digit TAC + 6-digit SNR), có thể kèm digit thứ 15. |
| 3GPP2-MEID | O | Mobile Equipment Identifier cho thiết bị 3GPP2 (CDMA). |
| Software-Version | O | 2-digit SVN (Software Version Number) của IMEI. |
Trên S6a/S6d chỉ dùng IMEI và Software-Version — 3GPP2-MEID không dùng ở interface này dù có trong định nghĩa chung.
2. Subscription-Data (grouped, trong ULA) — AVP quan trọng nhất
AVP 1400 — chứa toàn bộ hồ sơ thuê bao (subscriber profile) cho EPS và GERAN/UTRAN. Đây là payload trung tâm cho các kịch bản tampering AMBR/APN của bạn.
Subscription-Data ::= [ Subscriber-Status ]
[ MSISDN ]
[ A-MSISDN ]
[ STN-SR ]
[ ICS-Indicator ]
[ Network-Access-Mode ]
[ Operator-Determined-Barring ]
[ HPLMN-ODB ]
*10[ Regional-Subscription-Zone-Code ]
[ Access-Restriction-Data ]
[ APN-OI-Replacement ]
[ LCS-Info ]
[ Teleservice-List ]
*[ Call-Barring-Info ]
[ 3GPP-Charging-Characteristics ]
[ AMBR ] <-- UE-AMBR
[ APN-Configuration-Profile ] <-- danh sách APN
[ RAT-Frequency-Selection-Priority-ID ]
[ Trace-Data ]
[ GPRS-Subscription-Data ]
*[ CSG-Subscription-Data ]
[ Roaming-Restricted-Due-To-Unsupported-Feature ]
[ Subscribed-Periodic-RAU-TAU-Timer ]
[ MPS-Priority ]
[ VPLMN-LIPA-Allowed ]
[ Relay-Node-Indicator ]
[ MDT-User-Consent ]
[ Subscribed-VSRVCC ]
[ ProSe-Subscription-Data ]
[ Subscription-Data-Flags ]
*[ Adjacent-Access-Restriction-Data ]
[ DL-Buffering-Suggested-Packet-Count ]
*[ IMSI-Group-Id ]
[ UE-Usage-Type ]
*[ AESE-Communication-Pattern ]
*[ Monitoring-Event-Configuration ]
[ Emergency-Info ]
[ V2X-Subscription-Data ]
*[ eDRX-Cycle-Length ]
[ External-Identifier ]
[ Active-Time ]
[ Service-Gap-Time ]
[ Broadcast-Location-Assistance-Data-Types ]
[ Aerial-UE-Subscription-Information ]
[ Core-Network-Restrictions ]
*[ Paging-Time-Window ]
*[ AVP ]
Quan trọng: trong toàn bộ Subscription-Data, không có trường nào bắt buộc (M) — mọi thứ đều [ ] optional. Đây chính là điểm yếu cấu trúc: một DRA/Proxy Agent có thể thêm, xoá, hoặc sửa bất kỳ AVP con nào mà vẫn hợp lệ về ABNF, vì không có ràng buộc “phải tồn tại” nào để phát hiện thiếu sót.
2.1 Bảng giải thích từng trường chính trong Subscription-Data
| Trường | Kiểu | Ý nghĩa | Ghi chú bảo mật |
|---|---|---|---|
| Subscriber-Status | Enumerated | SERVICE_GRANTED (0) / OPERATOR_DETERMINED_BARRING (1) — thuê bao có bị cấm dịch vụ không. | Đảo giá trị này = bật/tắt toàn bộ dịch vụ của thuê bao. |
| MSISDN | OctetString | Số điện thoại chính của thuê bao (TBCD). | |
| A-MSISDN | OctetString | MSISDN phụ (Additional MSISDN), dùng khi thiết bị có nhiều số. | |
| STN-SR | OctetString | Session Transfer Number cho SRVCC (định tuyến khi chuyển giao thoại sang CS). | Sửa đổi có thể gây SRVCC redirect. |
| ICS-Indicator | Enumerated | Chỉ báo IMS Centralized Services. | |
| Network-Access-Mode | Enumerated | PACKET_AND_CIRCUIT (0) / Reserved (1) / ONLY_PACKET (2) — loại truy cập mạng được phép. | |
| Operator-Determined-Barring (ODB) | Unsigned32 bitmask | Các dịch vụ bị nhà mạng cấm (barring). Bit 0 = cấm mọi dịch vụ packet-oriented; bit 1/2 = cấm roaming truy cập HPLMN-AP/VPLMN-AP; bit 3-8 = cấm các loại cuộc gọi ra (quốc tế, liên vùng…). | Vector tấn công chính: xoá/clear bitmask này để bỏ qua toàn bộ hạn chế roaming/dịch vụ do nhà mạng đặt ra — liên quan trực tiếp “Roaming Not Allowed” error trong ULA. |
| HPLMN-ODB | Unsigned32 bitmask | Barring đặc thù HPLMN (4 bit, ý nghĩa do HPLMN tự định nghĩa), thường áp dụng cho SMS gửi đi. | |
| Regional-Subscription-Zone-Code | OctetString (≤10 lần) | Mã vùng địa lý mà thuê bao được phép truy cập. | Có thể dùng để giả mạo vùng phủ sóng cho phép. |
| Access-Restriction-Data | Unsigned32 bitmask | Hạn chế truy cập theo RAT: bit0=UTRAN, bit1=GERAN, bit2=GAN, bit3=I-HSPA-Evo, bit4=WB-E-UTRAN, bit5=HO-to-Non-3GPP, bit6=NB-IoT, bit7=Enhanced Coverage, bit8=NR-as-secondary-RAT, bit9=Unlicensed-spectrum-secondary-RAT, bit10=NR-in-5GS. Tất cả “Not Allowed” khi bit=1. | Tương tự ODB — đây là AVP kiểm soát RAT nào UE được dùng; sửa để mở khoá RAT bị cấm hoặc ép downgrade RAT. |
| APN-OI-Replacement | UTF8String | Domain thay thế Operator Identifier trong APN FQDN khi resolve DNS (mức UE, áp dụng cho non-roaming và home-routed roaming). | Sửa đổi có thể redirect DNS resolution của APN sang domain khác → tiền đề cho GTP redirect. |
| LCS-Info | Grouped | Thông tin Location Services (GMLC list, danh sách class truy cập LCS…). | |
| Teleservice-List | Grouped | Danh sách teleservice được phép (SMS MO/MT, fax…). | |
| Call-Barring-Info | Grouped (0..n) | Thông tin cấm cuộc gọi chi tiết theo SS-Code. | |
| 3GPP-Charging-Characteristics | OctetString | Đặc tính tính cước áp dụng mức UE. | |
| AMBR (mức UE) | Grouped | UE-AMBR — băng thông tối đa tổng hợp cho toàn UE (không phải theo từng APN). Xem chi tiết §4. | Đây chính là “Kịch bản B” của bạn — AMBR tampering silent QoS ceiling. |
| APN-Configuration-Profile | Grouped | Danh sách toàn bộ cấu hình APN của thuê bao. Xem chi tiết §3. | Trung tâm “Kịch bản A” — APN-Configuration spoofing / session redirect. |
| RAT-Frequency-Selection-Priority-ID | Unsigned32 | Ưu tiên chọn tần số theo RAT (RFSP ID), dùng cho idle-mode camping. | |
| Trace-Data | Grouped | Cấu hình trace/giám sát cho thuê bao (Trace Reference, Trace Depth, NE type list…). | Nếu bị chèn/sửa có thể kích hoạt trace trái phép trên thuê bao khác — liên quan LI/surveillance abuse. |
| GPRS-Subscription-Data | Grouped | Dữ liệu subscription cho GPRS/2G-3G (PDP-Context list) — dùng khi ULR đến từ SGSN hoặc combined MME/SGSN. | |
| CSG-Subscription-Data | Grouped (0..n) | Dữ liệu Closed Subscriber Group (femtocell) theo từng CSG-Id. | |
| Roaming-Restricted-Due-To-Unsupported-Feature | Enumerated | Đánh dấu roaming bị hạn chế do VPLMN thiếu tính năng. | |
| Subscribed-Periodic-RAU-TAU-Timer | Unsigned32 | Giá trị timer RAU/TAU định kỳ theo thuê bao. | |
| MPS-Priority | Grouped | Ưu tiên dịch vụ khẩn cấp/multimedia priority service. | |
| VPLMN-LIPA-Allowed | Enumerated | UE có được dùng Local IP Access khi roaming không. | |
| Relay-Node-Indicator | Enumerated | Đánh dấu UE là relay node (IoT/eNB relay). | |
| MDT-User-Consent | Enumerated | Người dùng có đồng ý Minimization of Drive Tests không. | |
| Subscribed-VSRVCC | Enumerated | Video SRVCC được subscribe hay không. | |
| ProSe-Subscription-Data | Grouped | Dữ liệu Proximity Services (D2D). | |
| Subscription-Data-Flags | Unsigned32 bitmask | Cờ điều khiển bổ sung (ví dụ NR-Restriction). | |
| Adjacent-Access-Restriction-Data | Grouped (0..n) | Hạn chế truy cập cho từng PLMN lân cận cụ thể. | |
| DL-Buffering-Suggested-Packet-Count | Unsigned32 | Gợi ý số gói tin buffer downlink (cho eDRX/PSM). | |
| IMSI-Group-Id | Grouped (0..n) | Nhóm IMSI (dùng cho NB-IoT congestion control). | |
| UE-Usage-Type | Unsigned32 | Loại sử dụng UE (dùng cho Dedicated Core Network selection). | |
| AESE-Communication-Pattern | Grouped (0..n) | Mẫu giao tiếp dự kiến của thiết bị IoT (Application Enablement). | |
| Monitoring-Event-Configuration | Grouped (0..n) | Cấu hình giám sát sự kiện SCEF (IoT monitoring). | |
| Emergency-Info | Grouped | Thông tin PDN khẩn cấp. | |
| V2X-Subscription-Data | Grouped | Dữ liệu subscription cho V2X. | |
| eDRX-Cycle-Length | Grouped (0..n) | Chu kỳ eDRX theo từng RAT. | |
| External-Identifier | UTF8String | Định danh ngoài (dùng bởi SCS/AS cho IoT), thay thế/đi kèm IMSI. | |
| Active-Time | Unsigned32 | Thời gian active trong PSM (Power Saving Mode). | |
| Service-Gap-Time | Unsigned32 | Thời gian tối thiểu giữa các lần dịch vụ (throttling). | |
| Broadcast-Location-Assistance-Data-Types | Unsigned32 | Loại dữ liệu hỗ trợ định vị được broadcast. | |
| Aerial-UE-Subscription-Information | Enumerated | UE có được subscribe cho aerial (UAV) không. | |
| Core-Network-Restrictions | OctetString | Hạn chế core network cụ thể (bitmap theo loại CN). | |
| Paging-Time-Window | Grouped (0..n) | Cửa sổ thời gian paging theo RAT (eDRX). |
Ghi chú bổ sung trong spec:
- AMBR trong Subscription-Data phải là UE-AMBR (không được cả UL và DL cùng bằng 0).
- APN-OI-Replacement trong Subscription-Data là mức UE; nếu APN-Configuration cũng có APN-OI-Replacement riêng thì giá trị mức APN có ưu tiên cao hơn.
- Khi có nhiều External-Identifier, giá trị trong Subscription-Data là External-Identifier mặc định do HSS chọn.
3. APN-Configuration-Profile & APN-Configuration (chuỗi lồng nhau)
3.1 APN-Configuration-Profile (AVP 1429)
APN-Configuration-Profile ::= { Context-Identifier }
[ Additional-Context-Identifier ]
{ All-APN-Configurations-Included-Indicator }
1*{ APN-Configuration }
*[ AVP ]
| Trường | Cat. | Ý nghĩa |
|---|---|---|
| Context-Identifier | M | Xác định APN mặc định (default) của thuê bao. |
| Additional-Context-Identifier | O | APN mặc định thứ 2, chỉ dùng khi thuê bao có cả APN loại IP-based và Non-IP PDN type (mỗi loại một default riêng). |
| All-APN-Configurations-Included-Indicator | M | Enum: All_APN_CONFIGURATIONS_INCLUDED (0) — ULA chứa toàn bộ danh sách APN; hoặc MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED (1) — chỉ chứa các APN mới/sửa đổi (delta update). |
| APN-Configuration | M, ≥1 lần | Danh sách cấu hình từng APN — xem §3.2. Quan hệ IMSI–APN là 1-nhiều. |
Ghi chú thiết kế quan trọng cho phân tích an ninh: All-APN-Configurations-Included-Indicator = 1 (delta/incremental update) là cơ chế hợp lệ để HSS chỉ gửi các APN thay đổi. Đây là điểm cần lưu ý: một kẻ tấn công tampering AVP có thể lợi dụng giá trị “1” để chèn một APN-Configuration giả mà MME/SGSN sẽ hiểu là “cập nhật thêm” thay vì thay thế toàn bộ — khó bị phát hiện hơn so với việc thay full-list.
3.2 APN-Configuration (AVP 1430) — cấu hình từng APN
APN-Configuration ::= { Context-Identifier }
*2[ Served-Party-IP-Address ]
{ PDN-Type }
{ Service-Selection }
[ EPS-Subscribed-QoS-Profile ]
[ VPLMN-Dynamic-Address-Allowed ]
[ MIP6-Agent-Info ]
[ Visited-Network-Identifier ]
[ PDN-GW-Allocation-Type ]
[ 3GPP-Charging-Characteristics ]
[ AMBR ] <-- APN-AMBR (khác UE-AMBR)
*[ Specific-APN-Info ]
[ APN-OI-Replacement ]
[ SIPTO-Permission ]
[ LIPA-Permission ]
[ Restoration-Priority ]
[ SIPTO-Local-Network-Permission ]
[ WLAN-offloadability ]
[ Non-IP-PDN-Type-Indicator ]
[ Non-IP-Data-Delivery-Mechanism ]
[ SCEF-ID ]
[ SCEF-Realm ]
[ Preferred-Data-Mode ]
[ PDN-Connection-Continuity ]
[ RDS-Indicator ]
[ Interworking-5GS-Indicator ]
*[ AVP ]
| Trường | Cat. | Ý nghĩa | Ghi chú |
|---|---|---|---|
| Context-Identifier | M | ID duy nhất của APN này trong phạm vi thuê bao (≠0). | Nếu tương tác với MAP, giá trị nằm trong khoảng 1–50. |
| Served-Party-IP-Address | O (0-2 lần) | Địa chỉ IP tĩnh của UE (nếu dùng static IP allocation) — IPv4, IPv6/prefix, hoặc cả hai. | |
| PDN-Type | M | Loại PDN: IPv4 / IPv6 / IPv4v6 / Non-IP. | |
| Service-Selection | M | Tên APN (APN Network Identifier, không kèm Operator Identifier) hoặc giá trị wildcard. | Trường then chốt của “Kịch bản A” (session redirect) — sửa giá trị này = định tuyến UE sang APN/PGW khác hoàn toàn. |
| EPS-Subscribed-QoS-Profile | O | QCI + ARP mức bearer mặc định cho APN này. Xem §3.3. | |
| VPLMN-Dynamic-Address-Allowed | O | Enum NOTALLOWED(0)/ALLOWED(1) — UE roaming có được dùng PGW ở VPLMN (thay vì chỉ HPLMN) không. Vắng mặt = NOTALLOWED. | Liên quan trực tiếp phân tích S8 Home-Routed roaming của bạn — sửa bit này ép Local Breakout hoặc chặn Home-Routed. |
| MIP6-Agent-Info | O | Thông tin Home Agent (PGW) cho Mobile IPv6 — gồm địa chỉ hoặc FQDN PGW. | AVP trung tâm để redirect PGW. |
| Visited-Network-Identifier | O | PLMN nơi PGW được cấp phát động (dynamic PGW assignment). | |
| PDN-GW-Allocation-Type | O | Static/Dynamic — chỉ có mặt khi MIP6-Agent-Info có mặt. | |
| 3GPP-Charging-Characteristics | O | Đặc tính tính cước mức APN. | |
| AMBR (mức APN) | O | APN-AMBR — băng thông tối đa cho riêng APN này (khác UE-AMBR mức Subscription-Data). Cấu trúc giống §4. | Đây là AVP chính xác trong “Kịch bản B” AMBR tampering của bạn — enforced tại PGW/UPF qua GTPv2-C/PFCP QER. |
| Specific-APN-Info | O (0..n) | Thông tin APN cụ thể khi Service-Selection là wildcard (APN-in-use + PGW tương ứng). | |
| APN-OI-Replacement | O | Ghi đè APN-OI-Replacement mức UE, ưu tiên cao hơn. | |
| SIPTO-Permission / LIPA-Permission | O | Cho phép Selected IP Traffic Offload / Local IP Access theo từng APN. | |
| Restoration-Priority | O | Độ ưu tiên khôi phục PDN connection sau sự cố. | |
| WLAN-offloadability | O | Cho phép offload sang WLAN hay không (bị Access-Restriction-Data “HO-To-Non-3GPP” ghi đè nếu có). | |
| Non-IP-PDN-Type-Indicator / Non-IP-Data-Delivery-Mechanism / SCEF-ID / SCEF-Realm | O | Cấu hình cho PDN Non-IP qua SCEF (IoT). SCEF-ID/Realm chỉ có khi cơ chế là SCEF-based. | |
| Preferred-Data-Mode / PDN-Connection-Continuity / RDS-Indicator / Interworking-5GS-Indicator | O | Các cờ hành vi bổ sung (Rel-14/15) cho IoT và interworking 4G↔5G. |
3.3 EPS-Subscribed-QoS-Profile (AVP 1431)
EPS-Subscribed-QoS-Profile ::= { QoS-Class-Identifier }
{ Allocation-Retention-Priority }
*[ AVP ]
| Trường | Cat. | Ý nghĩa |
|---|---|---|
| QoS-Class-Identifier (QCI) | M | Định danh lớp QoS cho bearer mặc định. Chỉ được dùng giá trị non-GBR trên S6a/S6d (QCI_1–4, vốn là GBR, bị cấm gửi qua interface này). |
| Allocation-Retention-Priority (ARP) | M | Grouped: {Priority-Level} [Pre-emption-Capability] [Pre-emption-Vulnerability]. Mặc định nếu vắng: Pre-emption-Capability = DISABLED(1), Pre-emption-Vulnerability = ENABLED(0). |
4. AMBR (AVP 1435) — dùng ở cả 2 nơi (UE-AMBR trong Subscription-Data, APN-AMBR trong APN-Configuration)
AMBR ::= { Max-Requested-Bandwidth-UL }
{ Max-Requested-Bandwidth-DL }
[ Extended-Max-Requested-BW-UL ]
[ Extended-Max-Requested-BW-DL ]
*[ AVP ]
| Trường | Cat. | Ý nghĩa |
|---|---|---|
| Max-Requested-Bandwidth-UL/DL | M | Băng thông tối đa (bit/s), giới hạn 4,294,967,295 bps (~4.29 Gbps). Không được cả UL và DL cùng = 0 (khi là UE-AMBR trong Subscription-Data). |
| Extended-Max-Requested-BW-UL/DL | O | Dùng khi băng thông vượt quá giới hạn 32-bit của trường trên; đơn vị kbps, cũng giới hạn 4,294,967,295 kbps. Khi có mặt, trường Max-Requested-Bandwidth tương ứng phải được set = giá trị trần (4294967295). |
Hai vị trí AMBR khác nhau về ý nghĩa:
- UE-AMBR (trong Subscription-Data, mức thuê bao): tổng băng thông cho toàn UE, enforced tại eNB qua S1AP.
- APN-AMBR (trong APN-Configuration, mức từng APN): enforced tại PGW/UPF qua GTPv2-C/PFCP QER.
→ Đây chính xác là 2 điểm chèn của “Kịch bản B” bạn đã ghi nhận: tampering UE-AMBR ảnh hưởng toàn bộ thuê bao ở mọi APN; tampering APN-AMBR chỉ ảnh hưởng một APN cụ thể — cả hai đều không có cơ chế toàn vẹn (không chữ ký, không MAC) bảo vệ giá trị AVP khi đi qua DRA.
5. Tóm tắt phân cấp lồng nhau (nesting)
ULA
└─ Subscription-Data (grouped, tất cả field đều O)
├─ AMBR (UE-AMBR — mức thuê bao)
├─ Operator-Determined-Barring (bitmask)
├─ Access-Restriction-Data (bitmask RAT)
└─ APN-Configuration-Profile { Context-ID (M), Indicator (M), APN-Configuration 1*{M} }
└─ APN-Configuration (≥1, mỗi APN) { Context-ID (M), PDN-Type (M), Service-Selection (M) }
├─ AMBR (APN-AMBR — mức APN)
├─ EPS-Subscribed-QoS-Profile { QCI (M), ARP (M) }
│ └─ Allocation-Retention-Priority { Priority-Level (M), [Pre-emption-Cap], [Pre-emption-Vuln] }
├─ MIP6-Agent-Info (PGW identity)
└─ VPLMN-Dynamic-Address-Allowed (Home-Routed vs Local-Breakout)
Điểm mấu chốt cho phân tích FS.19: mọi AVP có khả năng gây tác động session-redirect (Service-Selection, MIP6-Agent-Info) hoặc QoS-tampering (AMBR ở 2 cấp) đều nằm sâu trong grouped AVP tuỳ chọn, không có trường nào trong toàn chuỗi Subscription-Data → APN-Configuration-Profile → APN-Configuration là bắt buộc phải khớp với một baseline nào ở phía nhận — hoàn toàn phụ thuộc vào tính toàn vẹn của đường truyền Diameter/DRA.
Nguồn: 3GPP TS 29.272 R15 (29272-fa0), §7.3.2–§7.3.3, §7.3.29–§7.3.41