The SBC is enhanced in this release to support registration relay support in IBCF environment consisting of the following parts:
- SBC processing/forwarding REGISTER requests without creating any RCB (registration control block).
- Passing of Path and Service-Route headers (included in REGISTER request and response messages) end to end with support for encryption for topology hiding purpose. "Via" headers are handled in a B2BUA role (i.e SBC stores the incoming Via and inserts its URI in outgoing messages).
- Decryption of Route headers in non-REGISTER requests (in an IMS deployment, Route headers are formed based on Path and Service Route headers included in REGISTER request and response message. SBC must decrypt them for routing purpose).
- IBCF continues to act as a B2BUA with respect to non-REGISTER message processing, so topology revealing headers encryption is NOT applicable to non-REGISTER messages.
- Registration rate limit CAC related enhancements in the context of registration relay support on IBCF.
Overview
At a high-level, the following steps are needed for SBC to act as a registration relay:
- Transparently pass the received headers
- Insert itself on top of the received headers
- Perform encryption
SBC as IBCF supports relay of registration messages using the flag sipRegRelay
which is configurable per Zone level and associated with ingress Zone with respect to message direction.
When registration relay functionality is enabled, the following behavior applies:
- SBC relays REGISTER using the routes from PSX.
- When “Require registration” flag is also enabled, relay functionality takes higher precedence and provisioned value of the “Require registration” flag is ignored.
- Registration message relayed by SBC are NOT subject to any throttling.
- SBC ignores provisioned registration “expires” and “insideExpiresMinimum” values (typically used for registration message throttling for UE behind NAT scenarios).
- SBC passes the registration expiry value received in the ingress registration message transparently to the egress message. This is applicable to both REGSITER request and 200 OK response messages.
- SBC as IBCF does NOT add the Path and Service-Route headers included in the emergency registration requests and responses if
noServiceRouteHdrForEmergencyRegistration
is enabled, even if createServiceRouteHeader
flag is enabled. - SBC ignores provisioned “storePathHeader” and “serviceRouteHeader” values (typically provisioned on SBC to act as B2BUA with respect to Path and Service-Route header processing).
- SBC as IBCF supports transparency of the following headers in REGISTER requests and responses if registration relay functionality is enabled.
Enabling registration relay functionality supersedes any of provisioned values for existing transparency flags, and always passes these headers transparently.
SBC as IBCF can route non-REGISTER requests based on the received route set.
- SBC can route the message based on PSX username/standard routing provisioning if NO route headers are received in the incoming message. SBC inserts the next-hop as the top-most Route header based on (existing) configuration.
- SBC can route the message based on PSX username/standard routing provisioning if there is one Route header and that points to IBCF. SBC inserts the next-hop as the top-most Route header based on (existing) configuration. SBC copies any parameters present in the received ingress Route header (pointing to itself) in the egress Route header (pointing to next-hop).
SBC as IBCF can prevent the addition of Service-Routes pointing to IBCF (both internal and external interface IP addresses) in 200 OK response.
- This behavior is controlled by provisioning flag associated with egress TG with respect to message direction.
- If this flag is enabled then provisioned values of “createServiceRouteHeader” and “addPathServiceRoute” is ignored.
Service-Route is not inserted in default deployment as IBCF.
Network Topology Hiding Support
The SBC supports network topology hiding, including following behavior:
- The SBC as IBCF performs encryption for network topology hiding purposes upon receiving an outgoing request/response from the trusted/hiding network.
- The SBC as IBCF performs decryption for network topology hiding purposes upon receiving and incoming requests/response towards the trusted/hiding network.
Header transparency is controlled using the dynamic header Transparency Profile (Note that contact and expires headers are transparently passed by default).
The SBC adds itself to the appropriate headers so as to remain in the path. In other words, the step of transparently passing and inserting itself to the header-list is different than performing encryption.
- When the request/response traverses from trusted network to untrusted network, encryption is performed.
- When the request/response traverses from untrusted network to trusted network, encryption is not performed.
Emergency Registration
The flag noServiceRouteHdrForEmergencyRegistration
controls whether SBC as IBCF adds itself to Service-Route headers in the 200 OK to emergency registration requests.
Encryption/Decryption Enhancements
SBC as IBCF supports following encryption/decryption functionality using IP Signaling Profile's headerEncryptionFlags encryptPathHeader/encryptServiceRouteHeader
:
- Encryption of Path headers included in REGISTER requests.
- Encryption of Path and Service-Route headers included in the 200 OK to REGISTER message.
- Decryption of Path headers included in the 200 OK to REGISTER message.
- Decryption of Route headers included in the non-REGISTER requests such as dialog creating INVITE and OOD non-INVITE messages such as SUBSCRIBE, OOD MESSAGE, OPTIONS, REFER etc.
SBC as IBCF encrypts the topology revealing headers in the request and response messages before forwarding.
While the ability to encrypt is configurable, no configuration is required to decrypt messages. When receiving messages from an untrusted network and there is no need to encrypt the messages, by default the corresponding headers that were earlier encrypted are automatically decrypted.
SBC as IBCF supports the encryption of the topology revealing headers as per the following logic:
- SBC copies all headers considered for encryption from ingress SIP message towards the egress SIP message. This behavior is controlled by transparency flag pertaining to the header to be encrypted.
- SBC inserts its own URI(s) before the headers entries to be considered for encryption.
- SBC encrypts the headers based on encryption logic discussed in subsequent requirements.
The Global command generateSipHeaderEncryptionKeys
generates header encryption keys for AES encryption. The SBC stores up to two sets of keys at any given time, with each key having a specific key ID. The user can issue the generateSipHeaderEncryptionKeys
command at any time. There is no specific time delay before reissuing the command. The SBC adds the key-Id to each encrypted header based on which key is selected as the correct key for decryption.
Generating new keys too frequently may lead to a situation where the SBC receives a request with an expired key-id (i.e. the current header encryption key is over-written due to the new key generation) causing unsuccessful decryption of headers. This may lead to call failures any calls caught in the transition to the new key-id.
CAC Control on Register Relay Messages
Since the SBC as IBCF relays registration messages without creating any RCB, Registration Limit CAC functionality is not applicable and must not be enabled at IBCF. The SBC only applies Registration Rate and Registration Burst Rate CAC on register relay messages. Only new Register messages are subjected to CAC in case of Register Relay. If the Authorization header has an integrity-protected parameter with value “no” or if there is no integrity-protected parameter, SBC identifies it as a fresh Register Message. If the integrity-protected parameter has other values like “yes”, “tls-yes”, “tls-pending”, “ip-assoc-pending”, “ip-assoc-yes”, SBC identifies it as a refresh Register Message.