AI and VoIP Blog

VOIP | AI | Cloud | Kamailio | Open Source


Stir/Shaken: Understanding the SIP Identity header


In the digital age, the fight against robocalls and caller ID spoofing is a relentless one. The STIR/SHAKEN protocol has emerged as a powerful weapon in this battle, designed to ensure the integrity of caller ID information and significantly reduce the prevalence of unwanted and fraudulent calls. A key component of this protocol is the SIP (Session Initiation Protocol) Identity header. This article will delve into the intricacies of the STIR/SHAKEN protocol and the crucial role of the SIP Identity header.

What is STIR/SHAKEN?

STIR (Secure Telephone Identity Revisited) and SHAKEN (Signature-based Handling of Asserted information using toKENs) are a suite of protocols and procedures developed to combat the issue of caller ID spoofing. They employ end-to-end cryptographic authentication and verification of the telephone identity in IP-based voice calls.

The protocol uses digital certificates, based on common public key cryptography techniques, to secure the calling number of a telephone call. In essence, it’s a digital signature added to the SIP INVITE request at the start of the call.

The Role of SIP Identity Header

The SIP Identity header is a fundamental component of the STIR/SHAKEN protocol. It carries the digital signature associated with the call, which is generated by the originating service provider. This signature is then used by other entities in the call path to verify the legitimacy of the calling number.

Here is an example of a typical Identity header

Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c;info=<https://certificates.example.com/publickey.pem>;alg=ES256;ppt=shaken

In this example:

The Identity value is a JWT (JSON Web Token) that is divided into three parts: the JWT Header, the JWT Payload, and the JWT Signature. Each part is Base64Url encoded and separated by a period (.).

  1. JWT Header: This is the first part of the JWT (JSON Web Token) and it’s a Base64Url encoded JSON object. It contains metadata about the token itself, such as the type of token and the cryptographic algorithms used to secure its contents.
  2. JWT Payload: This is the second part of the JWT and it’s also a Base64Url encoded JSON object. It contains the claims or assertions about the identity of the caller.
  3. JWT Signature: This is the third part of the JWT. It’s a digital signature that’s been generated by taking the encoded header, the encoded payload, a secret, and using the algorithm specified in the header to sign it.

In addition to these three sections, the Identity header also includes additional parameters outside of the JWT given below:

info is a URL where the public key certificate of the originating service provider can be retrieved. This certificate can be used to verify the JWT signature.
alg indicates the algorithm used for the JWT signature. In this case, it’s ES256 (Elliptic Curve Digital Signature Algorithm with SHA-256).
ppt indicates the type of passport being used. Here, it’s shaken, which is part of the STIR/SHAKEN protocol.

Conclusion

STIR/SHAKEN and the SIP Identity header are powerful tools in the fight against caller ID spoofing and robocalls. By providing a means to authenticate and verify caller ID information, they help to restore trust in the caller ID system and reduce the impact of unwanted and fraudulent calls.

Join 753 other subscribers

Leave a comment

Akash Gupta
Senior VoIP Engineer and AI Enthusiast



Discover more from AI and VoIP Blog

Subscribe to get the latest posts sent to your email.



Leave a comment