Skip to main content

Caller ID Verification In Heterogeneous Telecommunication Networks
draft-hao-civ-02

Document Type Active Internet-Draft (individual)
Authors Feng Hao , Basil Thomas , Stephen Smith , Muhammad Ajmal Azad , Shen Wang
Last updated 2025-12-10
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-hao-civ-02
Internet Engineering Task Force                                   F. Hao
Internet-Draft                                     University of Warwick
Intended status: Standards Track                               B. Thomas
Expires: 13 June 2026                            Squire Technologies Ltd
                                                                S. Smith
                                                            trueCall Ltd
                                                                MA. Azad
                                              Birmingham City University
                                                                 S. Wang
                                                   University of Warwick
                                                        10 December 2025

   Caller ID Verification In Heterogeneous Telecommunication Networks
                            draft-hao-civ-02

Abstract

   This document defines an extension to the INVITE header of the
   Session Initiation Protocol (SIP) to support a Caller ID Verification
   (CIV) method.  CIV authenticates the caller ID of an incoming call
   through a challenge-and-response process across both IP and non-IP
   networks without requiring a trusted third party or a public key
   infrastructure.  When receiving a call with a claimed phone number,
   the called party holds the call and sends a quickly terminated INVITE
   request (like a flash call) to that number, carrying a short 4-digit
   challenge embedded as part of the caller ID.  A genuine caller would
   receive the challenge and respond by echoing the same digits, e.g.,
   through DTMF (Dual-Tone Multi-Frequency).  The proposed extension
   involves two changes to the INVITE header.  First, it adds a new
   option tag, "civ", in the Supported header field of the INVITE
   request.  This tag allows the calling party to indicate support for
   CIV in the initial call.  Second, it adds a special value "civ-veri-
   call" for the Purpose parameter of the Call-Info header field.  This
   value allows the called party to make a verification call, indicating
   the purpose of the call is to transmit a challenge rather than
   establish a phone conversation.  CIV uses the standard Session-ID
   header in the INVITE request to allow the calling party to explicitly
   match the verification call with the initial call.  Whilst this
   document focuses on IP networks, the same CIV protocol also works
   with non-IP networks (e.g., SS7) by including the "civ" tag, the
   "civ-veri-call" value and the session ID in the User-to-User
   Information (UUI) parameter.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

Hao, et al.               Expires 13 June 2026                  [Page 1]
Internet-Draft                     CIV                     December 2025

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 13 June 2026.

Copyright Notice

   Copyright (c) 2025 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   4
   2.  Overview of CIV . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  Implementing CIV in the Telecom Cloud . . . . . . . . . . . .   7
     3.1.  Threat Model  . . . . . . . . . . . . . . . . . . . . . .   7
     3.2.  CIV call state  . . . . . . . . . . . . . . . . . . . . .   7
     3.3.  Case 1: a legitimate caller uses the unmodified number  .   8
       3.3.1.  Call forwarding . . . . . . . . . . . . . . . . . . .   9
       3.3.2.  SIP forking . . . . . . . . . . . . . . . . . . . . .  12
     3.4.  Case 2: a legitimate caller uses a modified number they
           own . . . . . . . . . . . . . . . . . . . . . . . . . . .  14
       3.4.1.  Private branch exchange . . . . . . . . . . . . . . .  15
       3.4.2.  Distributed call centre . . . . . . . . . . . . . . .  15
     3.5.  Case 3: an illegitimate caller uses a modified number they
           don’t own . . . . . . . . . . . . . . . . . . . . . . . .  18
   4.  Compatibility modes . . . . . . . . . . . . . . . . . . . . .  19
   5.  CIV exemption . . . . . . . . . . . . . . . . . . . . . . . .  20
   6.  Working with non-IP networks  . . . . . . . . . . . . . . . .  20
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  23
     7.1.  CIV impacts on tracing  . . . . . . . . . . . . . . . . .  23

Hao, et al.               Expires 13 June 2026                  [Page 2]
Internet-Draft                     CIV                     December 2025

     7.2.  Length of the challenge . . . . . . . . . . . . . . . . .  23
     7.3.  Downgrade attack  . . . . . . . . . . . . . . . . . . . .  24
     7.4.  Reflected DoS . . . . . . . . . . . . . . . . . . . . . .  24
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  25
     8.1.  "civ" option tag for Supported header . . . . . . . . . .  25
     8.2.  "civ-veri-call" value for Call-Info header  . . . . . . .  25
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  25
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  25
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  26
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  26
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  26

1.  Introduction

   In a SIP network, it is easy to modify the caller ID using number
   spoofing.  Sometimes, there are legitimate reasons to alter the
   caller ID, e.g., showing a single outgoing number for an organisation
   or a toll-free number for the called party to dial back.  However,
   fraudsters and scammers frequently abuse number spoofing to hide
   their identity or to pretend to call from trusted sources.  This has
   become a global problem in the Telecom industry.

   This document describes a Caller ID Verification (CIV) method based
   on a peer-reviewed paper published in ACM Transactions on Privacy and
   Security (ACM TOPS) by Wang et al. in 2023 [5].  CIV authenticates
   the caller ID using a challenge-response protocol, which works with
   both IP and non-IP networks without requiring any trusted third party
   or a public key infrastructure.  While it is possible to implement
   CIV on the users' phones, this document focuses on implementing CIV
   on telecommunication switches in the Telecom cloud for best
   performance.

Hao, et al.               Expires 13 June 2026                  [Page 3]
Internet-Draft                     CIV                     December 2025

   In a telecommunication system, there are three distinct
   authentication problems: 1) the authentication of the carrier
   (typically done by verifying the possession of a private key for
   digital signature), 2) the authentication of the caller (through
   verifying a password, the possession of a token, or biometrics) and
   3) the authentication of the caller ID.  CIV specifically addresses
   the third problem through verifying whether the calling party
   possesses (or owns) the phone number that is sent as the caller ID,
   whereas the identity of the caller can be traced later if needed via
   the range holder of that number (assuming appropriate KYC checks are
   in place, or the service to number can be turned off).  Crucially,
   CIV is a decentralized method that does not require any trusted third
   party (or trusted certification authorities in a public key
   infrastructure).  Such a decentralized method is useful in many
   practical applications where proving the possession of the caller ID
   is needed to prevent spoofing attacks without involving any trusted
   third party.

   In practice, CIV can be combined with other authentication techniques
   (e.g., carrier authentication and caller authentication) to provide
   enhanced security.  As an example, some banks use a system called
   Voice ID (or "my voice is my password") to authenticate the caller
   based on analyzing their voice biometrics in telephone banking, but
   AI-generated voices pose a real threat to defeat this caller
   authentication method completely [10].  Using CIV would force the
   attacker to call from the victim's phone (or to prove the ownership
   of the phone number that is registered with the bank), hence making
   the AI spoofing attack more difficult.  Some mobile payment systems,
   such as Unified Payment Interface (UPI), use the mobile phone number
   as the unique identity to facilitate payments between users.
   Verifying the ownership of the phone number is an important step to
   prevent fraud.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [2] [3] when, and only when, they appear in all capitals, as shown
   here.

Hao, et al.               Expires 13 June 2026                  [Page 4]
Internet-Draft                     CIV                     December 2025

2.  Overview of CIV

   At a high level, CIV is inspired by a call-back verification method
   used in practice.  To verify if the caller ID of an incoming call is
   genuine, the receiver may just hang up and call back the displayed
   number [9].  This call-back method ensures that the receiver talks to
   the genuine caller who possesses (or owns) that number.  However, the
   manual call-back verification is slow and tedious.  It may also incur
   a charge to the verifying party.

   CIV follows a similar approach, but it automates the verification
   process across heterogeneous networks in a secure and efficient
   manner without incurring a charge to the verifying party.  In CIV,
   the authentication of the caller ID is defined based on checking the
   possession of that number.  Accordingly, it distinguishes legitimate
   and illegitimate modifications of the caller ID based on whether the
   caller possesses the number.  Suppose the caller uses an unmodified
   number or a legitimately modified number they own.  In both cases,
   they should receive a challenge from a call-back and hence should be
   able to respond accordingly.

   Supporting CIV in SIP [1] involves making two changes to the INVITE
   header.  First, we propose a new option tag "civ" in the Supported
   header of INVITE.  This tag indicates that the caller supports CIV.
   Second, we propose a new value "civ-veri-call" for the Purpose
   parameter in the Call-Info header of INVITE.  The "civ-veri-call"
   value, paired with a unique resource indicator (URI) that can be the
   same as the URI in the TO header, indicates that the purpose of this
   INVITE request is to verify the caller ID in the initial call based
   on CIV.

   Based on the two proposed changes, the CIV protocol in SIP works as
   follows.

   1.  The calling party initiates an INVITE request, containing an
       option tag "civ" in the Supported header to indicate support for
       CIV.

   2.  When receiving this call with the "civ" tag, the called party
       holds the call and sends an INVITE request to the displayed
       caller ID, containing the value "civ-veri-call" for the Purpose
       parameter in the Call-Info header.  This INVITE request uses a
       caller ID that contains a short challenge (4 random digits) in
       the last four digits of the caller ID.  The INVITE request is
       quickly terminated before it is answered (like a flash call).
       Subsequently, the called party unholds the call and waits for the
       response.  The purpose of the "civ-veri-call" value is to make
       this INVITE request lightweight: Telecom networks that understand

Hao, et al.               Expires 13 June 2026                  [Page 5]
Internet-Draft                     CIV                     December 2025

       this value in the call path do not need to reserve resources to
       prepare for voice conversation, hence making call routing faster.
       For networks that do not understand this value, they will route
       this INVITE request as a normal call.  CIV still works, although
       at a suboptimal speed.

   3.  If the original calling party is genuine, it should be able to
       receive the challenge and send a response (by echoing the same 4
       digits) through Dual-Tone Multi-Frequency (DTMF) in the initial
       call to complete the authentication process.  DTMF is universally
       supported in both IP and non-IP Telecom networks.

   In the second step of CIV, the called party holds the call before
   starting the challenge-response verification process.  The time it
   takes for the verification process to finish will need to be set as a
   grace period, as the user has not actually answered the call while
   the verification of the caller ID is in process.  With the current
   design of CIV, we expect the verification time to be mostly
   determined by the transmission of 4 DTMF digits (typically 0.5
   seconds).  If required, this grace period can be excluded from the
   calling party's call time in billing.

   The verification call needs to be matched with the initial call.
   This can be done explicitly based on the Session-ID header [4] in the
   INVITE request.  The session ID consists of 32 hexadecimal values.
   It uniquely identifies a communication session end-to-end, from the
   originating device to the terminating device.  Unlike the Call-ID
   header field (which may be modified by intermediate networks), the
   session ID remains the same throughout the session.  Therefore, we
   can utilize the session ID in CIV as follows.  In the initial call,
   the Session-ID header field contains a unique session ID while the
   Remote parameter is null (32 zeros).  In the verification call, the
   Session-ID header field contains a different session ID while the
   Remote parameter contains the same session ID as in the initial call.
   The receiver of the verification call can therefore explicitly match
   the verification call with the initial call based on the session ID.
   The following shows examples of the relevant headers in the INVITE
   request.

   Example of the selected headers in the initial SIP call:

   |  To: "Bob" <sip:+1234567222@example.com>
   |  From: "Alice" <sip:+1415555111@example.com>;tag=887s
   |  Supported: civ
   |  Session-ID: ab30317f1a784dc48ff824d0d3715d86;
   |  remote=00000000000000000000000000000000

Hao, et al.               Expires 13 June 2026                  [Page 6]
Internet-Draft                     CIV                     December 2025

   Example of the selected headers in the CIV verification call (note
   that the last four digits of Bob's caller ID in the From header field
   have been modified to contain a random challenge):

   |  To: "Alice" <sip:+1415555111@example.com>
   |  From: "Bob" <sip:+1234569685@example.com>; tag=a48s
   |  Call-Info: <sip:+1415555111@example.com>; purpose=civ-veri-call
   |  Session-ID: 47755a9de7794ba387653f2099600ef2;
   |  remote=ab30317f1a784dc48ff824d0d3715d86

   In the above example, CIV uses the session ID in the initial call
   ("ab30317f1a784dc48ff824d0d3715d86") for explicitly matching the
   verification call with the initial call.  The session ID in the
   verification call ("47755a9de7794ba387653f2099600ef2") is not used in
   CIV.

3.  Implementing CIV in the Telecom Cloud

   This document proposes to implement CIV in the Telecom cloud by
   performing the challenge-response authentication process between
   switches of the originating and terminating carriers (instead of
   between the users' phones).  Assume Alice is the caller, and Bob is
   the callee.  We first consider the cases where both the originating
   and the terminating carriers support CIV.  Later, we will discuss the
   compatibility modes where only one or no carrier supports CIV in
   Section 4.

3.1.  Threat Model

   In our threat model, we assume that the attacker can freely modify
   the caller ID when initiating a call.  The modified caller ID is
   permitted by the originating carrier (who may add a digital
   signature) and can pass through subsequent networks.  We assume the
   attacker is not able to intercept calls.  We note that a powerful
   adversary can intercept calls through the Law Enforcement Monitoring
   Facility (LEMF), SIM swap, and SS7 hacking [8], but this is beyond
   the capability of ordinary telephone scammers behind the number
   spoofing attacks.

3.2.  CIV call state

   When the INVITE request contains the "civ" option tag in the
   Supported header field, this indicates that the calling party is
   willing to support the CIV check of the presented caller ID.  For
   such a call, the originating carrier shall keep a CIV call state,
   containing at least the following information: {caller, callee, call
   time, session ID}, where "caller" represents the caller's number
   (which may be the caller ID or an internal number in a PBX system),

Hao, et al.               Expires 13 June 2026                  [Page 7]
Internet-Draft                     CIV                     December 2025

   "callee" represents the callee's number, "call time" indicates the
   time when the initial call is made, and "session ID" is the value
   contained in the Session-ID header field.  See Table 1 for an
   example.

   +==========+==========+============+================================+
   |Caller    |Callee    |Call time   |Session ID                      |
   +==========+==========+============+================================+
   |1234567222|1415555111|2024-02-27  |ab30317f1a784dc48ff824d0d3715d86|
   |          |          |15:35:20.311|                                |
   +----------+----------+------------+--------------------------------+

                    Table 1: Example of a CIV call state

   In this example, the call time is represented in the "yyyy-MM-dd
   HH:mm:ss.SSS" format.  Alternatively, it may be represented using a
   13-digit epoch time, i.e., the number of milliseconds since January
   1, 1970.  The use of the 16-byte session ID allows the caller to
   explicitly match the verification call with the initial call.
   Without this session ID, it is still possible to implicitly match the
   two calls based on values of the caller, the callee and call time,
   but the uniqueness of the matching cannot be guaranteed.

   The CIV call state is transient data, kept during the call setup
   phase only.  The originating carrier writes a record of the state
   when making the initial call containing the "civ" tag, and deletes
   the record immediately after the call is connected or has failed
   (e.g., after a timeout).

3.3.  Case 1: a legitimate caller uses the unmodified number

   In this case (most common), a legitimate caller (Alice) uses the
   unmodified number (Alice’s number) as the caller ID.  Figure 1
   describes the steps of operations.

   1.  Alice initiates a call to Bob and uses her unmodified number as
       the caller ID.

   2.  Alice’s carrier sends an INVITE request to Bob with Alice’s
       unmodified caller ID, including the "civ" tag in the Supported
       header.

   3.  Detecting the presence of the "civ" tag, Bob’s carrier holds the
       incoming call and sends an INVITE request to Alice’s number as a
       verification call.  The INVITE request includes the "civ-veri-
       call" value and four random digits replacing the last four digits
       of the caller ID as a challenge (the rest digits can follow the
       same as Bob’s number).  The verification call is quickly

Hao, et al.               Expires 13 June 2026                  [Page 8]
Internet-Draft                     CIV                     December 2025

       terminated before it is answered, so it does not incur a charge.
       Bob’s carrier connects Alice’s initial call and waits for a
       response through DTMF.

   4.  Alice’s carrier retrieves the 4-digit challenge from the caller
       ID of the quickly terminated verification call, and sends the
       same digits as a response through DTMF in the initial call.
       Otherwise, it quietly discards the challenge.

   5.  Bob’s carrier checks the received DTMF digits against the
       challenge.  If they match, the caller ID is "verified".  Bob’s
       phone starts ringing, showing the caller ID and the "verified"
       status of this number.  If Bob’s carrier does not receive the
       response within a time limit or the received response does not
       match the challenge, the verification has failed.  The
       terminating carrier may reject the call, connect the call to the
       user's phone with an explicit visual/audio warning about the
       invalidated caller ID, send the call directly to voicemail, or
       follow any other call handling process made available by the
       network and selected by the user.

                Alice's carrier         Bob's carrier
                    gateway                gateway
                      ┌─┐                    ┌─┐
                      │ │ 2. calls Bob from  │ │
                      │ │  Alice's number    │ │
          1. calls Bob│ │───────────────────▶│ │ 5. rings from
  ┌───────┐ as Alice  │ │ 3. sends challenge │ │ Alice's number┌───────┐
  │Alice's│──────────▶│ │  to Alice's number │ │──────────────▶│ Bob's │
  │ phone │           │ │◀───────────────────│ │(authenticated)│ phone │
  └───────┘           │ │                    │ │               └───────┘
                      │ │ 4. sends response  │ │
                      │ │──────────────────▶ │ │
                      └─┘                    └─┘

         Figure 1: authenticated caller with an unmodified number

3.3.1.  Call forwarding

   The called party, Bob, may have a call-forwarding setting.  When the
   call is forwarded to a voicemail, this is treated the same as being
   answered by a user; the CIV operation is not affected.  When the call
   is forwarded to another number, CIV works as follows.

   *  Unconditional forwarding - the terminating carrier may just
      forward the call without doing CIV, leaving the next carrier to do
      the CIV check.

Hao, et al.               Expires 13 June 2026                  [Page 9]
Internet-Draft                     CIV                     December 2025

   *  Conditional forwarding - the terminating carrier will forward the
      call only when certain conditions are satisfied (e.g., busy,
      unanswered and unreachable).  To test these conditions, the
      terminating carrier would need to ring the user's phone first.
      Without doing the CIV check, the ringing would display an
      unverified caller ID.  To guarantee that only an authentic caller
      ID is displayed, the terminating carrier can do the CIV check
      before ringing the phone.  When the call-forward conditions are
      satisfied, the carrier will forward the call.  If the forwarded
      number belongs to the same carrier, there would be no need to
      perform the CIV check again, because the status of the verified
      caller ID is transferable within the domain of the same carrier.
      However, if the forwarded number belongs to a different carrier,
      the next carrier will most likely do the CIV check again.  This
      implies that the originating carrier would need to perform the
      challenge-response process more than once.  This is feasible as
      explained below.

   In general, there are two ways to forward a call.

   1.  Redirection (client-based forwarding): the terminating carrier
       responds with a 3xx class response (commonly 302), indicating a
       new contact number.  The originating carrier will send a new
       INVITE to the new number.  Figure 2 shows an example.  In this
       example, Bob's phone is unreachable, so Bob's carrier gateway
       responds with a 302 Moved Temporarily message with a new phone
       number in the Contact header field.  Alice's carrier gateway
       sends a new INVITE with a "civ" tag to the new number, and CIV
       works normally in the new session.  RFC 3261 allows the 302
       response to contain multiple new numbers.  In that case, the
       calling party will send new INVITE requests to these numbers,
       either in sequence or in parallel.  CIV supports both.  Each
       INVITE request contains a unique session ID.  Based on the
       session ID, the originating carrier can match the verification
       call to each outgoing call.  CIV works normally in each call
       session.

   2.  Proxy (server-based forwarding): the terminating carrier directly
       forwards the INVITE request.  If the forwarded number belongs to
       the same carrier, there would be no need for the carrier to do
       the CIV check again.  But if it belongs to a different carrier,
       the next carrier can do the CIV check of the caller ID again as
       shown in Figure 3.

Hao, et al.               Expires 13 June 2026                 [Page 10]
Internet-Draft                     CIV                     December 2025

                 Alice's carrier        Bob's carrier 1       Bob's carrier 2
                     gateway                gateway               gateway
                       ┌─┐                    ┌─┐
                       │ │     2. INVITE      │ │
                       │ │───────────────────▶│ │
                       │ │                    │ │
                       │ │    3. Challenge    │ │
                       │ │◀───────────────────│ │
                       │ │                    │ │
┌───────┐ 1. calls Bob │ │    4. Response     │ │
│Alice's│   as Alice   │ │───────────────────▶│ │
│ phone │ ────────────▶│ │                    │ │    ┌───────┐
└───────┘              │ │  5. Not reachable  │ │    │ Bob's │      ┌─┐
                       │ │◀───────────────────│ │    │phone 1│      │ │
                       │ │                    └─┘    └───────┘      │ │
                       │ │                6. INVITE                 │ │
                       │ │─────────────────────────────────────────▶│ │
                       │ │                                          │ │
                       │ │               7. Challenge               │ │
                       │ │◀─────────────────────────────────────────│ │
                       │ │                                          │ │
                       │ │               8. Response                │ │
                       │ │─────────────────────────────────────────▶│ │  9. rings from   ┌───────┐
                       │ │                                          │ │  Alice's number  │ Bob's │
                       └─┘                                          │ │─────────────────▶│phone 2│
                                                                    └─┘                  └───────┘

            Figure 2: Call forwarding based on redirection

Hao, et al.               Expires 13 June 2026                 [Page 11]
Internet-Draft                     CIV                     December 2025

              Alice's carrier        Bob's carrier 1
                  gateway                gateway
                    ┌─┐                    ┌─┐
                    │ │ 2. calls Bob from  │ │
                    │ │  Alice's number    │ │
        1. calls Bob│ │───────────────────▶│ │
┌───────┐ as Alice  │ │ 3. sends challenge │ │
│Alice's│──────────▶│ │  to Alice's number │ │     ┌───────┐
│ phone │           │ │◀───────────────────│ │     │ Bob's │
└───────┘           │ │                    │ │     │phone 1│    Bob's carrier 2
                    │ │ 4. sends response  │ │     └───────┘        gateway
                    │ │──────────────────▶ │ │                       ┌─┐
                    │ │                    │ │ 5. forwards to Bob's  │ │
                    │ │                    │ │      2nd number       │ │
                    │ │                    │ │──────────────────────▶│ │
                    │ │                    │ │   6. sends challenge  │ │
                    │ │                    │ │   to Alice's number   │ │
                    │ │◀───────────────────┼─┼────────────────────── │ │
                    │ │                    │ │                       │ │
                    │ │ 7. sends response  │ │ 8. forwards response  │ │
                    │ │───────────────────▶│ │──────────────────────▶│ │
                    │ │                    │ │                       │ │ 9. rings from  ┌───────┐
                    │ │                    │ │                       │ │ Alice's number │ Bob's │
                    │ │                    │ │                       │ │ ──────────────▶│phone 2│
                    └─┘                    └─┘                       └─┘ (authenticated)└───────┘

         Figure 3: Call forwarding based on proxy forwarding

3.3.2.  SIP forking

   In proxy-based call forwarding, a single incoming SIP call may be
   simultaneously forwarded to multiple devices or extensions.  For
   example, a call to a user's number can make the user's desk phone and
   the SIP softphone on his mobile ring at the same time.  That is
   called SIP forking.  We call a phone number "local" if it belongs to
   the same terminating carrier, and "remote" if it belongs to a
   different carrier.  In general, within the same carrier, if the
   caller ID of an incoming call has been verified, the verified status
   is transferable within the trusted domain of the same carrier.  In
   that case, there is no need for the carrier to perform the CIV check
   for this call again.  However, when the call is forwarded to a remote
   number, the next carrier will want to check the caller ID (assuming
   that the previously verified status of the caller ID is not
   transferable to the next carrier).  We consider how CIV works in the
   following SIP forking scenarios (see Figure 4).

Hao, et al.               Expires 13 June 2026                 [Page 12]
Internet-Draft                     CIV                     December 2025

   1.  The call is forked to multiple local numbers: after the
       terminating carrier performs the CIV check of the caller ID, all
       the numbers ring at the same time.

   2.  The call is forked to multiple local numbers and one remote
       number: after the terminating carrier performs the CIV check, all
       local numbers ring at the same time.  Meanwhile, the call to the
       remote number is forwarded to the next carrier, which performs
       the CIV check and rings the phone accordingly.  Assuming that the
       CIV check incurs a negligible delay, it would appear that all
       phones are ringing simultaneously.

   3.  The call is forked to multiple local numbers and more than one
       remote number: after the terminating carrier performs the CIV
       check, all local numbers ring at the same time.  Meanwhile, the
       call is forwarded to each of the remote numbers sequentially, so
       the CIV check is done sequentially too.  With the current design
       of CIV, the originating carrier can process multiple challenges
       received from an outgoing call, but it can only process them
       sequentially rather than in parallel.  (From a security
       perspective, doing this sequentially helps prevent an attacker
       from using SIP forking to flood the originating carrier with
       simultaneous verification calls.)  SIP forking to multiple remote
       numbers in parallel remains possible by removing the "civ" option
       tag before forking the INVITE request.  In this case, CIV still
       adds value in security by allowing the carrier to validate the
       caller ID before forking the call in parallel to other carriers.
       This helps stop spoofing attacks in this specific forking
       scenario, although the caller ID of the forwarded call would
       appear unverified to the next carriers (due to the absence of the
       "civ" tag, the next carriers cannot do the CIV check from their
       end).

Hao, et al.               Expires 13 June 2026                 [Page 13]
Internet-Draft                     CIV                     December 2025

  Terminating                    Terminating                    Terminating
carrier gateway                carrier gateway                carrier gateway
      ┌─┐                            ┌─┐                            ┌─┐       ┌───────────┐
      │ │                            │ │                            │ │       │SIP phone 1│
      │ │                            │ │     ┌───────────┐          │ │   ┌──▶│  (local)  │
      │ │                            │ │     │SIP phone 1│          │ │   │   └───────────┘
      │ │      ┌───────────┐         │ │  ┌─▶│  (local)  │          │ │   │   ┌───────────┐
      │ │      │SIP phone 1│         │ │  │  └───────────┘          │ │   │   │SIP phone 2│
      │ │  ┌──▶│  (local)  │         │ │  │  ┌───────────┐          │ │   ├──▶│  (local)  │
      │ │  │   └───────────┘         │ │  │  │SIP phone 2│          │ │   │   └───────────┘
      │ │──┤                         │ │──┼─▶│  (local)  │          │ │───┤   ┌───────────┐
      │ │  │   ┌───────────┐         │ │  │  └───────────┘          │ │   │   │SIP phone 3│
      │ │  │   │SIP phone 2│         │ │  │  ┌───────────┐          │ │   ├──▶│ (remote)  │
      │ │  └──▶│  (local)  │         │ │  │  │SIP phone 3│          │ │   │   └───────────┘
      │ │      └───────────┘         │ │  └─▶│ (remote)  │          │ │   │   ┌───────────┐
      │ │                            │ │     └───────────┘          │ │   │   │SIP phone 4│
      │ │                            │ │                            │ │   └──▶│ (remote)  │
      └─┘                            └─┘                            └─┘       └───────────┘

                 (1)                            (2)                            (3)

    Figure 4: SIP forking: 1) multiple local numbers; 2) multiple
    local numbers and one remote number; 3) multiple local numbers
                     and multiple remote numbers

3.4.  Case 2: a legitimate caller uses a modified number they own

   In this case, the caller (Alice) modifies the caller ID to another
   number (Alice2) she owns.  CIV distinguishes legitimate and
   illegitimate spoofing of a phone number based on whether the caller
   owns that number.  Therefore, if Alice owns Alice2's number, she can
   configure the call forwarding function so that the verification call
   sent to Alice2 is forwarded to Alice.  The rest of the process is the
   same as in Case 1.  Figure 5 summarizes the steps of operations.

Hao, et al.               Expires 13 June 2026                 [Page 14]
Internet-Draft                     CIV                     December 2025

               Alice's carrier         Bob's carrier
                   gateway                gateway
                     ┌─┐                    ┌─┐
                     │ │ 2. calls Bob from  │ │
                     │ │  Alice2's number   │ │
         1. calls Bob│ │───────────────────▶│ │  6. rings from
 ┌───────┐as Alice2  │ │                    │ │ Alice2's number┌───────┐
 │Alice's│─────────▶ │ │                    │ │──────────────▶ │ Bob's │
 │ phone │           │ │ 5. sends response  │ │ (authenticated)│ phone │
 └───────┘           │ │───────────────────▶│ │                └───────┘
     ║               │ │                    │ │
     ║               │ │                    │ │
     ║ Alices owns   └─┘                    └─┘
     ║  Alice2's      ▲                      │
     ║   number       │  4. forwards the     │
     ║                │     challenge        │
     ▼               ┌─┐                     │
 ┌────────┐          │ │                     │
 │Alice2's│          │ │                     │
 │ phone  │          │ │ 3. sends challenge  │
 └────────┘          │ │ to Alice2's number  │
                     │ │◀────────────────────┘
                     │ │
                     │ │
    Alice2's carrier │ │
         gateway     │ │
                     └─┘

   Figure 5: authenticated caller with a legitimately modified number

3.4.1.  Private branch exchange

   Alice’s and Alice2’s numbers may belong to the same carrier, e.g.,
   when a private branch exchange (PBX) is used to show a single caller
   ID for all outgoing calls.  In this case, a solution is needed to
   maintain the state of outgoing calls and forward the received
   challenge to the correct caller.  This can be done by updating the
   PBX software or connecting PBX to a switch that maintains the states
   of outgoing calls and matches them with the verification calls.

3.4.2.  Distributed call centre

   Alice’s and Alice2’s numbers may belong to two different carriers.
   In this case, Alice can choose to forward only the CIV verification
   call (identified by the "civ-veri-call" value in the Call-Info
   header) sent to Alice2's number.  However, in a distributed telephone
   network, where to forward the call may not always be obvious.  The
   following is an example.

Hao, et al.               Expires 13 June 2026                 [Page 15]
Internet-Draft                     CIV                     December 2025

   A large enterprise typically has multiple call centres that are
   distributed over distant geographic locations with limited or no
   communication between them.  Calls from the enterprise commonly
   present a caller ID that reaches a main receptionist or could be
   answered by any member of a call centre.  A call-back to that number
   may not go to the same call centre that originated the call.  For CIV
   to work, the verification call will need to be forwarded to the
   system that keeps the state of outbound call setup attempts.  There
   are two solutions to support legitimate spoofing of the caller ID in
   this distributed network setting.

   1.  SIP proxy: it is a common architecture choice to connect outbound
       SIP servers to a SIP proxy for easier management of calls (e.g.,
       routing, load balancing, logging, monitoring etc).  In this case,
       the SIP proxy is the central system that can maintain the states
       for all outgoing calls.  When an inbound SIP server receives CIV
       verification calls, it forwards these calls to the SIP proxy,
       which will match them with the outgoing calls based on the
       session ID.

   2.  Encoding method: in case there is no SIP proxy linking up the
       outbound SIP servers, each outbound SIP server needs to maintain
       the state of its own outgoing calls.  The verification call will
       need to be routed back to the same server that originated the
       call.  In this case, we can use the first few bits of a session
       ID (say 10 bits) to encode the index of the outbound SIP server.
       As an example, using only 10 bits, we can encode the index for
       over 1,000 outbound SIP servers.  Given that a session ID has 128
       bits, there is still plenty of entropy remaining to guarantee the
       uniqueness of the session ID.  Once an inbound SIP server
       receives a CIV verification call, it can determine the index of
       the outbound SIP server from the first few bits of the session ID
       and forward the call to that server.  The encoding details
       (including how many bits are used) are part of the internal
       design of the enterprise call-center system.

Hao, et al.               Expires 13 June 2026                 [Page 16]
Internet-Draft                     CIV                     December 2025

           Enterprise call center
          ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
                Outbound SIP                    Inbound SIP
          │        servers                        servers       │
                ┌──────────┐                   ┌──────────┐
          │ ┌──▶│SIP server│──┐                │SIP server│◀──┐ │
            │   └──────────┘  │                └──────────┘   │
          │ │   ┌──────────┐  │                ┌──────────┐   │ │  Call back
┌───────┐   ├──▶│SIP server│──┤  ┌───────┐     │SIP server│◀──┤    ┌───────┐
│Caller │─┼─┤   └──────────┘  ├─▶│  SIP  │     └──────────┘   ├─┼──│Callee │
└───────┘   │   ┌──────────┐  │  │ proxy │     ┌──────────┐   │    └───────┘
          │ ├──▶│   ...    │──┤  └───────┘     │   ...    │◀──┤ │
            │   └──────────┘  │                └──────────┘   │
          │ │   ┌──────────┐  │                ┌──────────┐   │ │
            └──▶│SIP server│──┘                │SIP server│◀──┘
          │     └──────────┘                   └──────────┘     │
           ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─

     Figure 6: Using a SIP proxy to maintain the CIV call states

           Enterprise call center
          ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
                Outbound SIP                    Inbound SIP
          │        servers                        servers       │
                ┌──────────┐                   ┌──────────┐
          │ ┌──▶│SIP server│ index 0           │SIP server│◀──┐ │
            │   └──────────┘                   └──────────┘   │
          │ │   ┌──────────┐                   ┌──────────┐   │ │  Call back
┌───────┐   ├──▶│SIP server│ index 1           │SIP server│◀──┤    ┌───────┐
│Caller │─┼─┤   └──────────┘                   └──────────┘   ├─┼──│Callee │
└───────┘   │   ┌──────────┐                   ┌──────────┐   │    └───────┘
          │ ├──▶│   ...    │ index i           │   ...    │◀──┤ │
            │   └──────────┘                   └──────────┘   │
          │ │   ┌──────────┐                   ┌──────────┐   │ │
            └──▶│SIP server│ index n-1         │SIP server│◀──┘
          │     └──────────┘                   └──────────┘     │
           ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─

     Figure 7: Using encoding to identify the outbound SIP server

Hao, et al.               Expires 13 June 2026                 [Page 17]
Internet-Draft                     CIV                     December 2025

3.5.  Case 3: an illegitimate caller uses a modified number they don’t
      own

   In this case, a spoofing attacker (Eve) modifies the number to one
   (Alice) that he does not own.  Figure 8 summarizes the steps of
   operations.  The first three steps are the same as in Case 1 and 2.
   In Step 4, Alice's carrier receives the challenge from a quickly
   terminated verification call.  However, it finds no matching record
   for Alice’s outgoing call and no call-forwarding configuration for
   forwarding the verification call.  It quietly discards the challenge.
   In Step 5, since Bob’s carrier doesn’t receive a response after a
   time-out, it concludes that the verification has failed.  Depending
   on the carrier and the user-defined configurations, the terminating
   carrier may reject the call, connect it to the user's phone with an
   explicit visual/audio warning about the invalidated caller ID, send
   the call directly to voicemail, or take other actions.

                  Eve's carrier          Bob's carrier
                     gateway                gateway
                       ┌─┐                    ┌─┐
                       │ │ 2. calls Bob from  │ │
                       │ │  Alice's number    │ │
           1. calls Bob│ │───────────────────▶│ │
   ┌───────┐ as Alice  │ │                    │ │            ┌───────┐
   │ Eve's │─────────▶ │ │  5. Rejects call   │ │            │ Bob's │
   │ phone │           │ │    (time out)      │ │            │ phone │
   └───────┘           │ │◀───────────────────│ │            └───────┘
                       │ │                    │ │
   Eve doesn't         │ │                    │ │
   own Alice's         └─┘                    └─┘
     number                                    │
                                               │
                                               │
                       ┌─┐                     │
   ┌────────┐          │ │                     │
   │Alice's │          │ │                     │
   │ phone  │          │ │ 3. sends challenge  │
   └────────┘          │ │  to Alice's number  │
                       │ │◀────────────────────┘
                       │ │
                       │ │
       Alice's carrier │ │ 4. Discards
           gateway     │ │  challenge
                       └─┘

      Figure 8: Unauthenticated caller with an illegitimately modified
                                   number

Hao, et al.               Expires 13 June 2026                 [Page 18]
Internet-Draft                     CIV                     December 2025

4.  Compatibility modes

   Table 2 summarizes compatibility modes depending on whether the
   originating or terminating carrier supports CIV.

   1.  Both carriers support CIV: This is covered in Section 3.  After
       successful authentication, the caller ID with an explicit
       "verified" status shall be displayed on the user’s phone.
       Otherwise, the call may be rejected at the gateway or connected
       to the user's phone with an explicit visual/audio warning.

   2.  Only the terminating carrier supports CIV: The (unverified)
       caller ID is displayed on the user’s phone.  The "unverified"
       status is explicit.  The terminating carrier should explicitly
       communicate this status to the user, e.g., through visual or
       audio alerts.

   3.  Only the originating carrier supports CIV: The (unverified)
       caller ID is displayed on the user’s phone.  The "unverified"
       status is implicit.

   4.  Neither party supports CIV: The (unverified) caller ID is
       displayed on the user’s phone.  The "unverified" status is
       implicit.

    +===+=====================+=============+=========================+
    |   | Originating carrier | Terminating | Presentation to the     |
    |   |                     | carrier     | called user             |
    +===+=====================+=============+=========================+
    | 1 | Supports CIV        | Supports    | Caller ID with explicit |
    |   |                     | CIV         | "verified" status       |
    +---+---------------------+-------------+-------------------------+
    | 2 | Doesn't support CIV | Supports    | Caller ID with explicit |
    |   |                     | CIV         | "unverified" status     |
    +---+---------------------+-------------+-------------------------+
    | 3 | Supports CIV        | Doesn't     | Caller ID with implicit |
    |   |                     | support CIV | "unverified" status     |
    +---+---------------------+-------------+-------------------------+
    | 4 | Doesn't support CIV | Doesn't     | Caller ID with implicit |
    |   |                     | support CIV | "unverified" status     |
    +---+---------------------+-------------+-------------------------+

              Table 2: Summary of modes of operations for CIV

Hao, et al.               Expires 13 June 2026                 [Page 19]
Internet-Draft                     CIV                     December 2025

5.  CIV exemption

   In a normal CIV operation, the terminating carrier performs the
   challenge-response authentication process when the initial call
   contains a "civ" tag that indicates support for CIV.  However, the
   terminating carrier may define a security policy to exempt the CIV
   check and immediately connect the call to the user.  The following
   are possible scenarios.

   *  The called party is an emergency service (e.g., 999).  We
      recommend that all calls to an emergency service should be exempt
      from the CIV checks, even if the calling party supports CIV.  This
      is to minimize the call setup latency.  Furthermore, making
      spoofed calls to emergency services is not the modus operandi for
      most scammers, and these calls can be traced by law enforcement if
      required.

   *  Owners of some telephone numbers (e.g., a restaurant reservation
      line) may choose to accept the risk of receiving calls with
      spoofed numbers and use other measures to manage that risk (e.g.,
      training staff not to trust the caller ID display at all).  In
      that case, they can define a personalized security policy with
      their carrier to allow all calls to go through without performing
      any CIV check of the caller ID.

6.  Working with non-IP networks

   In this document, we assume that both the originating and the
   terminating carriers support SIP and use standard SIP trunking for
   connecting with other phone networks.  Typically, a SIP call
   traverses IP networks.  However, sometimes the call path may contain
   a non-IP segment (e.g., PSTN, SS7), which allows limited data
   transmission.  Figure 9 shows an example.  In this case, we can
   utilize user-to-user information (UUI) parameter in SS7 to preserve
   the CIV data, so CIV works across both IP and non-IP networks.

┌──────────┐      ┌────────────┐       ┌──────────┐       ┌────────────┐      ┌──────────┐
│ Alice's  │─ ─ ─ │Originating │──────▶│ TDM/SS7  │──────▶│Terminating │─ ─ ─ │  Bob's   │
│  phone   │      │SIP carrier │◀──────│ transit  │◀──────│SIP carrier │      │  phone   │
└──────────┘      └────────────┘       └──────────┘       └────────────┘      └──────────┘

                Figure 9: Working with non-IP networks

   CIV is designed to carry only the minimum amount of data required for
   caller ID authentication.  The data involved in each of the three CIV
   steps is explained below.

Hao, et al.               Expires 13 June 2026                 [Page 20]
Internet-Draft                     CIV                     December 2025

   Step 1:  The initial call contains: 1) a binary flag that indicates
            the support for "civ" (1 bit); 2) a 128-bit session ID for
            the initial call.  The total size is 129 bits (less than 17
            bytes).  To make it general, we use 17 bytes.

   Step 2:  The verification call contains: 1) a binary flag that
            indicates it is a CIV verification call (1 bit); 2) a
            128-bit session ID associated with the initial call to
            allowing explicitly mapping between the verification call
            and the initial call.  The total size is 129 bits (less than
            17 bytes).  To make it general, we use 17 bytes.  The SIP
            header of the verification call may also contain a session
            ID for the verification call, but that session ID is not
            used in CIV, and can be dropped if there is no space in UUI
            to store it.  The challenge is embedded as part of the
            caller ID, which is universally supported by both IP and
            non-IP networks.  The conversion of the caller ID between IP
            and non-IP networks (i.e., between INVITE in SIP and IAM in
            SS7) is done automatically.

   Step 3:  The originating carrier sends a 4-digit response through
            DTMF, which is universally supported by both IP and non-IP
            networks.  The conversion of DTMF between IP and non-IP
            networks is done automatically.

   When a CIV call traverses a non-IP network, we propose to utilize the
   User-to-User Information (UUI) parameter in SS7 to preserve the CIV
   data in the IP to non-IP network conversion, and restore it in the
   non-IP to IP network conversion.  Normally, the limit for the user
   data payload in UUI is 128 bytes, as specified in ITU-T Q.763 [7].
   However, some old networks may enforce a maximum limit of 32 bytes
   for UUI.  CIV only uses 17 bytes (one byte plus a standard 16-byte
   session ID), which makes it widely compatible with existing non-IP
   networks.

   Traditional circuit-switched telephony uses different signalling
   protocols at different segments of the network.  On the access side,
   ISDN (Integrated Services Digital Network) employs the Q.931
   signalling protocol [6] between the customer premises equipment and
   the local exchange.  Within the core network, call control between
   telephone exchanges for TDM voice calls is handled by SS7 ISUP (ISDN
   User Part).

Hao, et al.               Expires 13 June 2026                 [Page 21]
Internet-Draft                     CIV                     December 2025

   Because the proposed CIV solution operates at the interconnection
   point between the originating and terminating carriers, the relevant
   concern is the mapping between SIP signalling (on the IP side) and
   ISUP parameters (on the SS7 side).  In particular, the important
   field is the User-to-User Information (UUI) parameter in ISUP.
   Therefore, our focus is on how the CIV header in SIP is translated
   into the corresponding ISUP UUI field at the SIP–SS7 gateway.

   Q.931 defines the format of the UUI parameter in ISUP, comprising a
   protocol discriminator (1 byte) and user data (up to 128 bytes) [6].
   The protocol discriminator identifies the type of UUI protocol.
   Based on Q.931, the binary values of "01000000" (0x40) through
   "01001111" (0x4F) for the protocol discriminator are reserved for
   national use.  As an example for illustration, we use the last two
   values in this range as the protocol discriminators for CIV: namely,
   "01001110" (0x4E) to indicate an initial call with support for CIV,
   and "01001111" (0x4F) to indicate the CIV verification call.  Here,
   these two values are chosen as an example.  In practice, any two
   unused values can be used to represent the CIV data.

   Table 3 describes the conversion between an ISUP Initial Address
   Message (IAM) message and a SIP INVITE message to realize CIV flow
   without data loss for the CIV initial call.

      +=======================================+=====================+
      | ISUP UUI                              | SIP header          |
      +=======================================+=====================+
      | Protocol discriminator: 0x4E (1 byte) | Supported: civ      |
      +---------------------------------------+---------------------+
      | User data: initial call session ID    | Session-ID: initial |
      | (16 bytes)                            | call session ID     |
      +---------------------------------------+---------------------+

            Table 3: Conversion between ISUP and SIP for the CIV
                                initial call

   Table 4 describes the conversion for the CIV verification call.

Hao, et al.               Expires 13 June 2026                 [Page 22]
Internet-Draft                     CIV                     December 2025

         +=========================+============================+
         | ISUP UUI                | SIP header                 |
         +=========================+============================+
         | Protocol discriminator: | Call-Info: purpose=civ-    |
         | 0x4F (1 byte)           | veri-call                  |
         +-------------------------+----------------------------+
         | User data: initial call | Session-ID: remote=initial |
         | session ID (16 bytes)   | call session ID            |
         +-------------------------+----------------------------+

           Table 4: Conversion between ISUP and SIP for the CIV
                            verification call

   So far, we have only considered the most common scenario where the
   originating and terminating carriers use SIP trunking to connect with
   other networks.  In the rare case when the originating or terminating
   carrier does not use SIP trunking and only uses legacy SS7 for
   connecting with other networks, they can still support CIV at the
   switch level by carrying the CIV data in the UUI parameter.  The
   conversion of the CIV data between the UUI parameter and the SIP
   header works the same as described in Table 3 and Table 4.

7.  Security Considerations

7.1.  CIV impacts on tracing

   The telephone system only works because each phone call resolves to a
   single phone number hosted and allocated by a network operator - the
   range holder for that number.  The range holder can identify to whom
   the number is allocated (which may need to be done via number
   resellers).  It also has the power to disable the number if
   necessary.  Scammers often use spoofed phone numbers to hide their
   identity and to avoid being tracked down.  Widespread adoption of CIV
   would prevent calls using illegitimately spoofed numbers from getting
   through.  This would force telephone scammers to use phone numbers
   that are allocated to them as their caller ID.  Therefore, they would
   be traceable (via the range holder) and their service could be
   terminated quickly.

7.2.  Length of the challenge

   A spoofing attacker will not receive the challenge but may try to
   guess its value.  For a challenge of n random digits, the probability
   of guessing successfully is 1 in 10^n.  A larger value of n decreases
   the probability exponentially, but at the cost of transmitting more
   digits.  We recommend n = 4 as a suitable trade-off, which
   corresponds to a success rate of 0.01% by random guessing.
   Consecutively failed guesses can be easily detected by the

Hao, et al.               Expires 13 June 2026                 [Page 23]
Internet-Draft                     CIV                     December 2025

   terminating carrier, and could be dealt with accordingly, e.g., by
   increasing the delay between calls.

7.3.  Downgrade attack

   To bypass CIV, a spoofing attacker may use a carrier that does not
   support CIV or set up their own SIP server that does not include the
   "civ" tag in the Supported header of the INVITE request.  In this
   downgrade attack, the call will be connected to the user, but the
   caller ID remains unverified.  The terminating carrier can explicitly
   communicate the "unverified" status to the user, e.g., through
   visual/audio alerts on the phone, or a pre-recorded warning when the
   user answers the phone.  In some applications (e.g., telephone
   banking), the system may restrict the caller from performing certain
   security operations during a call if the caller ID is not verified.

7.4.  Reflected DoS

   CIV uses a quickly terminated flash call to transmit a challenge.  In
   a normal CIV operation, the verification call is transmitted between
   the two carriers, and is never shown to users.  However, a malicious
   carrier may include the "civ" tag in the INVITE request and use a
   spoofed caller ID.  One might be concerned that the verification call
   would reach a target user's phone as a "missed call" (with a caller
   ID that may or may not be dialable).  The presence of such a "missed
   call", especially when it makes the phone ring momentarily, can be a
   nuisance to the user.  This could be regarded as a Denial of Service
   (DoS) attack.  Note that the attacker can always make "missed calls"
   to the user directly, e.g., in Wangiri scams.  Unlike a Wangiri call,
   in CIV, the attacker cannot control the caller ID of the reflected
   verification call.  Hence, the impact of the attack is more limited.
   Here, instead of attacking the user directly, the attacker uses a
   carrier to launch a reflected DoS attack.

   The reflected DoS attack can be easily prevented as follows.  First,
   if the carrier that receives the verification call supports CIV, it
   will discard the call by design based on checking it against the
   state of outgoing calls.  Second, if the carrier does not support
   CIV, it can stop this attack by simply filtering incoming calls
   containing the "civ-veri-call" value.  Third, in 4G and 5G networks,
   voice services run over IMS (IP Multimedia Subsystems) and that stack
   uses SIP end-to-end, including on the user equipment.  Therefore, the
   user's device can detect the "civ-veri-call" value and block the
   verification call (which should not reach the user's phone in the
   first place), hence providing a further layer of defence on the
   phone.  This solution works with modern mobile phones (4G and
   onwards) and SIP-based desk phones, although it does not work with
   legacy GSM/3G and landline phones.

Hao, et al.               Expires 13 June 2026                 [Page 24]
Internet-Draft                     CIV                     December 2025

8.  IANA Considerations

8.1.  "civ" option tag for Supported header

   This document defines a new option tag "civ" for the Supported header
   of an INVITE request in the "Option Tags" registry as below.

      Name: civ
      Description: This option tag is used by the calling party to
      indicate support for the Caller ID Verification (CIV) protocol in
      the Supported header of an INVITE request.

8.2.  "civ-veri-call" value for Call-Info header

   This document also defines a "civ-veri-call" value for the Purpose
   parameter in the Call-Info header of an INVITE request as below.
   This value, paired with the same URI as in the TO header, indicates
   that the purpose of the current INVITE is to make a verification
   call.

      Header Field: Call-Info
      Parameter Name: purpose
      Predefined Values: yes

9.  References

9.1.  Normative References

   [1]        Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              DOI 10.17487/RFC3261, June 2002,
              <https://www.rfc-editor.org/info/rfc3261>.

   [2]        Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [3]        Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [4]        Jones, P., Salgueiro, G., Pearce, C., and P. Giralt, "End-
              to-End Session Identification in IP-Based Multimedia
              Communication Networks", RFC 7989, DOI 10.17487/RFC7989,
              October 2016, <https://www.rfc-editor.org/info/rfc7989>.

Hao, et al.               Expires 13 June 2026                 [Page 25]
Internet-Draft                     CIV                     December 2025

   [5]        Wang, W., Delavar, M., Azad, M., Nabizadeh, F., Smith, S.,
              and F. Hao, "Spoofing Against Spoofing: Towards Caller ID
              Verification In Heterogeneous Telecommunication
              Systems",  ACM Transactions on Privacy and Security,
              DOI 10.1145/3625546, December 2023,
              <https://doi.org/10.1145/3625546>.

   [6]        ITU, "Q.931 : ISDN user-network interface layer 3
              specification for basic call control", May 1998,
              <https://www.itu.int/rec/T-REC-Q.931>.

   [7]        ITU, "Q.763 : Signalling System No. 7 - ISDN User Part
              formats and codes", December 1999,
              <https://www.itu.int/rec/T-REC-Q.763>.

9.2.  Informative References

   [8]        Anderson, R., "Security engineering: a guide to building
              dependable distributed systems",  John Wiley & Sons, 2020.

   [9]        Ofcom, "Number spoofing scams", January 2023,
              <https://www.ofcom.org.uk/phones-and-broadband/scam-calls-
              and-messages/phone-spoof-scam>.

   [10]       BBC, "Cloned customer voice beats bank security checks",
              November 2024,
              <https://www.bbc.co.uk/news/articles/c1lg3ded6j9o>.

Acknowledgments

   We thank ...

Authors' Addresses

   Feng Hao
   University of Warwick
   Department of Computer Science
   Coventry
   CV4 7AL
   United Kingdom
   Email: feng.hao@warwick.ac.uk

Hao, et al.               Expires 13 June 2026                 [Page 26]
Internet-Draft                     CIV                     December 2025

   Basil Thomas
   Squire Technologies Ltd
   Prospect House, Sandford Lane
   Wareham
   BH20 4DY
   United Kingdom
   Email: BThomas@squire-technologies.com

   Steve Smith
   trueCall Ltd
   2 Old Palace Lane
   Richmond
   TW9 1PG
   United Kingdom
   Email: stevesmith@truecall.co.uk

   Muhammad Ajmal Azad
   Birmingham City University
   Department of Computer Science
   Birmingham
   B5 5JU
   United Kingdom
   Email: Muhammadajmal.azad@bcu.ac.uk

   Shen Wang
   University of Warwick
   Department of Computer Science
   Coventry
   CV4 7AL
   United Kingdom
   Email: wang.shen110@gmail.com

Hao, et al.               Expires 13 June 2026                 [Page 27]