Table Of Contents
Secure Media and SRTP Passthrough
Contents
Prerequisites for Secure Media and SRTP Passthrough
Restrictions for Secure Media
Information About Secure Media
Information About SRTP Passthrough
Configuring Secure Media
Configuring SRTP Passthrough
Example of Configuring Secure Media
Example of Configuring SRTP Passthrough
Secure Media and SRTP Passthrough
Cisco Unified Border Element (SP Edition) supports two methods of encrypted data streams—Secure Real-Time Protocol (SRTP) Passthrough and Secure Media. The preferred method is to use SRTP Passthrough because it allows the end points themselves to signal their encryption capabilities. The secure media method assumes that all end points are going to use encrypted data streams regardless of the actual end point capabilities.
Regardless of the method used to configure the Cisco Unified Border Element (SP Edition) to accept encrypted media packets, the Cisco Unified Border Element (SP Edition) reserves additional bandwidth to ensure these packets pass through. Typically, the bandwidth of a media stream is determined by the codecs that the endpoints use. However, the use of the encryption in the media streams increases the packet size. As a rule of thumb, the bandwidth requirements are 10% more than the unencrypted codec. However, this increase is not reflected in the media flow statistics.
The Secure Media feature is enabled on the global level for all calls and is disabled by default. SRTP Passthrough can be configured on a granular basis using Call Admission Control (CAC) policy.
Cisco Unified Border Element (SP Edition) was formerly known as Integrated Session Border Controller and may be commonly referred to in this document as the session border controller (SBC).
For a complete description of commands used in this chapter, refer to the Cisco Unified Border Element (SP Edition) Command Reference: Unified Model at http://www.cisco.com/en/US/docs/ios/sbc/command/reference/sbcu_book.html.
For information about all Cisco IOS commands, use the Command Lookup Tool at http://tools.cisco.com/Support/CLILookup or a Cisco IOS master commands list.
Feature History for Secure Media and SRTP Passthrough
Release
|
Modification
|
Cisco IOS XE Release 2.4
|
These features were introduced on the Cisco ASR 1000 Series Aggregation Services Routers for the unified model.
|
Contents
This module contains the following sections:
•
Prerequisites for Secure Media and SRTP Passthrough
•
Restrictions for Secure Media
•
Information About Secure Media
•
Information About SRTP Passthrough
•
Configuring Secure Media
•
Configuring SRTP Passthrough
•
Example of Configuring Secure Media
•
Example of Configuring SRTP Passthrough
Prerequisites for Secure Media and SRTP Passthrough
The following prerequisites are required to implement both features:
•
Before implementing the Secure Media and SRTP Passthrough features, Cisco Unified Border Element (SP Edition) must already be configured. See the procedures described in Chapter 2, "Configuring Cisco Unified Border Element (SP Edition)".
Restrictions for Secure Media
The following is a restriction for Secure Media:
•
With this feature enabled, RTCP related statistics displayed in the show sbc dbe media-flow-stats command are displayed as unknown.
Information About Secure Media
Typically, an endpoint will indicate that the media traffic is encrypted through the SIP signaling. The encryption keys are either exchanged through Session Description Protocol or using Datagram Transport Layer Security (DTLS) mechanism. The Cisco Unified Border Element (SP Edition) can interwork with end points that use encrypted media (Datagram Transport Layer Security (DTLS) or SRTP), but do not indicate this in the SIP signaling. A global configuration under the SBE submode indicates that the endpoints are using encrypted media, but they will not be using SIP signaling to communicate and negotiate as such. The consequence of this configuration being applied at a Global level is that even for flows that are not encrypted, additional bandwidth is reserved and RTP and RTCP checking and validations are disabled.
Information About SRTP Passthrough
Cisco Unified Border Element (SP Edition) supports SIP calls between endpoints using Transport Layer Security (TLS) for SIP signaling encryption and Secure Real-Time Protocol (SRTP) to provide RTP media encryption. However, these two encryption mechanisms may not be deployed simultaneously, depending on the required call flow invoked on the associated configuration.
Before delving further into SRTP passthrough configuration, it would be useful to understand the two concepts—the trusted vs. untrusted and encrypted vs. unencrypted.
The "trusted" implies that an associated adjacency is trusted to allow secure calls. Calls to a standard SIP: URI will be accepted. Calls to a secure SIPS: URI will be accepted and routed over a trusted adjacency (encrypted or unencrypted). The "untrusted" indicates that an associated adjacency is not trusted to carry secure calls. The calls to standard SIP: URI will be accepted. Calls to a secure SIPS: URI will be rejected immediately.
The "encrypted" implies that an associated adjacency uses TLS for SIP signaling and the "unencrypted" implies that an associated adjacency does not use TLS for SIP signaling.
The trusted/untrusted are configured in conjunction with encrypted/unencrypted as outlined in the following four (4) combinations. This is invoked using the security command:
untrusted-unencrypted: The adjacency is untrusted and unencrypted. The adjacency is not trusted to carry secure SIP calls (calls with SIPS URI) and it does not use TLS encryption for SIP signaling.
untrusted-encrypted: The adjacency is untrusted and encrypted. The adjacency is not trusted to carry secure SIP calls (calls with SIPS URI) and it does use TLS encryption for SIP signaling.
trusted-unencrypted: The adjacency is trusted and unencrypted. The adjacency is trusted to carry secure SIP calls (calls with SIPS URI) and it does not use TLS encryption for SIP signaling.
trusted-encrypted: The adjacency is trusted and encrypted. The adjacency is trusted to carry secure SIP calls (calls with SIPS URI) and it does use TLS encryption for SIP signaling.
When Cisco Unified Border Element (SP Edition) comes up, the default is to allow SRTP calls to pass through on the trusted interfaces.
The following are conditions of the SRTP Passthrough feature:
•
SRTP Passthrough must be configured on both legs of the call. If the target adjacency does not support SRTP Passthrough, then the call is rejected by error message 415 (Unsupported Media Type).
•
"m= .. RTP/SAVP .." and a="crypto:..." fields coming in on an Invite from one adjacency are passed on in an Invite to the target adjacency.
•
"m= ...RTP/SAVP..." is a required field in the Invite to trigger SRTP Passthrough behavior in the SBC.
The following shows a sample SRTP Invite and Response call flow from endpoints, as described in RFC-4568.
Offerer sends:
o=sam 2890844526 2890842807 IN IP4 10.47.16.5
i=A discussion of Secure RTP
u=http://www.example.com/seminars/srtp.pdf
e=marge@example.com (Marge Simpson)
a=crypto:1 AES_CM_128_HMAC_SHA1_80
inline:WVNfX19zZW1jdGwgKCkgewkyMjA7fQp9CnVubGVz|2^20|1:4
a=crypto:2 F8_128_HMAC_SHA1_80
inline:MTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5QUJjZGVm|2^20|1:4;
inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|2^20|2:4
Answerer replies:
o=jill 25690844 8070842634 IN IP4 10.47.16.5
i=A discussion of Secure RTP
u=http://www.example.com/seminars/srtp.pdf
e=homer@example.com (Homer Simpson)
a=crypto:1 AES_CM_128_HMAC_SHA1_80
inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4
The following diagram illustrates an SRTP Passthrough Call Flow.
Figure 14-1
SRTP Passthrough Call Flow
The SRTP Passthrough feature defines a new Call Admission Control (CAC) entry variable, called "srtp transport," in the admission control table. If you configure the "srtp transport" variable, then CAC policy has the option to set the policy for the adjacency to either "allowed," "disallowed," or "trust only."
Calls using SRTP Passthrough are allowed on the adjacencies specified by the policy. Where there are conflicting policies, "disallowed" overrides "allowed" which overrides "trusted-only." If you configure the CAC policy, but you do not define the "srtp transport" variable, then the CAC policy takes the default value of "trusted-only" and restricts the SRTP calls between trusted endpoints.
See the transport srtp command which sets the adjacency CAC policy for more information. The no form of the command sets the "transport srtp" variable to "trusted-only." The show sbc sbe cac-policy-set table entry command is modified to display a "SRTP Transport" field and whether the policy for the adjacency is to allow, disallow, or trust only for SRTP Transport.
You can set the CAC policy to allow SRTP passthrough and allow configuration of certain security policing, such as the following:
•
preventing secure calls on a given adjacency
•
ensuring that all media sent over a given adjacency is secure
•
ensuring that secure streams are signaled over secure SIP adjacencies.
Configuring Secure Media
SUMMARY STEPS
1.
configure
2.
sbc sbc-name
3.
sbe
4.
secure-media
5.
end
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
Router# configure
|
Enables global configuration mode.
|
Step 2
|
sbc sbc-name
Example:
Router(config)# sbc mysbc
|
Creates the SBC service on Cisco Unified Border Element (SP Edition) and enters into SBC configuration mode.
|
Step 3
|
sbe
Example:
Router(config-sbc)# sbe
|
Enters the mode of the signaling border element (SBE) function of the SBC.
|
Step 4
|
secure-media
Example:
Router(config-sbc-sbe)# secure-media
|
Configures the SBC to treat every media flow as an encrypted media flow. This allows media packets, such as DTLS and SRTP packets, to pass through the SBC.
|
Step 5
|
end
Example:
Router(config-sbc-sbe)# end
|
Exits SBE mode and returns to Privileged EXEC mode.
|
Configuring SRTP Passthrough
These steps show how to configure the CAC policy set to allow SRTP Passthrough.
SUMMARY STEPS
1.
configure
2.
sbc sbc-name
3.
sbe
4.
cac-policy-set policy-set-id
5.
first-cac-scope scope-name
6.
first-cac-table table-name
7.
cac-table table-name
8.
table-type limit list of limit tables
9.
entry entry-id
10.
match-value key
11.
transport srtp [allowed | disallowed | trusted-only]
12.
action [cac-complete | next-table | goto-table-name ]
13.
exit
14.
exit
15.
complete
16.
exit
17.
active-cac-policy-set policy-set-id
18.
end
19.
show sbc sbc-name sbe cac-policy-set id table name entry entry
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
Router# configure
|
Enables global configuration mode.
|
Step 2
|
sbc sbc-name
Example:
Router(config)# sbc mysbc
|
Creates the SBC service on Cisco Unified Border Element (SP Edition) and enters into SBC configuration mode.
|
Step 3
|
sbe
Example:
Router(config-sbc)# sbe
|
Enters the mode of the signaling border element (SBE) function of the SBC.
|
Step 4
|
cac-policy-set policy-set-id
Example:
Router(config-sbc-sbe)# cac-policy-set 1
|
Enters the mode of CAC policy set configuration within an SBE entity, creating a new policy set if necessary.
policy-set-id—Integer chosen by the user to identify the policy set. The range is 1 - 2147483647.
|
Step 5
|
first-cac-scope scope-name
Example:
Router(config-sbc-sbe-cacpolicy)#
first-cac-scope call
|
Configures scope at which limits should be initially defined when performing the admission control stage of the policy. Each CAC policy has a scope that is applied to it. This CAC policy applies on a per call basis.
scope-name has one of the following values:
• adj-group—Limits for events from members of the same adjacency group.
• call—Limits are per single call.
• category—Limits per category.
• dst-account—Limits for events sent to the same account.
• dst-adj-group—Limits for events sent to the same adjacency group.
• dst-adjacency—Limits for events sent to the same adjacency.
• dst-number—Limits for events that have the same adjacency number.
• global—Limits are global (May not be combined with any other option).
• src-account—Limits for events from the same account.
• src-adj-group—Limits for events from the same adjacency group.
• arc-adjacency—Limits for events from the same adjacency.
• src-number—Limits for events that have the same source number.
|
Step 6
|
first-cac-table table-name
Example:
Router(config-sbc-sbe-cacpolicy)#
first-cac-table testSecure
|
Configures the name of the first policy table to process. A CAC policy may have many tables configured. To start the application of the CAC policy, the first table that is used needs to be defined.
table-name—The admission control table that should be processed first.
|
Step 7
|
cac-table table-name
Example:
Router(config-sbc-sbe-cacpolicy)# cac-table
testSecure
|
Enters the mode for configuration of an admission control table (creating one if necessary) within the context of an SBE policy set.
table-name—Name of the admission control table.
|
Step 8
|
table-type limit list of limit tables
Example:
Router(config-sbc-sbe-cacpolicy-cactable)#
table-type limit all
|
Configures a new CAC Limit table type where you enter the criteria that is used to match the entries.
list of limit tables has one of the following string values:
• account—Compare the name of the account.
• adj-group—Compare the name of the adjacency group.
• adjacency—Compare the name of the adjacency.
• all—No comparison type. All events match this type.
• call-priority—Compare with call priority.
• category—Compare the number analysis assigned category.
• dst-account—Compare the name of the destination account.
• dst-adj-group—Compare the name of the destination adjacency group.
• dst-adjacency—Compare the name of the destination adjacency.
• dst-prefix—Compare the beginning of the dialed digit string.
• event-type—Compare with CAC policy event types.
• src-account—Compare the name of the source account.
• src-adj-group—Compare the name of the source adjacency group.
• src-adjacency—Compare the name of the source adjacency.
• src-prefix—Compare the beginning of the calling number string.
|
Step 9
|
entry entry-id
Example:
Router(config-sbc-sbe-cacpolicy-cactable)#
entry 1
|
Enters the mode to modify an entry in an admission control table.
entry-id—Specifies the table entry.
|
Step 10
|
match-value key
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# match-value call-update
|
Configures the match-value of an entry in a CAC Limit table type.
|
Step 11
|
transport srtp [allowed | disallowed |
trusted-only]
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# transport srtp allowed
|
Configures the transport srtp variable in the CAC table to allow or disallow SRTP Passthrough of secure media on the adjacency where the policy is applied.
allowed—allows SRTP Transport when an event matches this CAC policy.
disallowed—do not allow SRTP Transport when an event matches this CAC policy.
trusted-only—allows SRTP Transport on a trusted adjacency (default) when an event matches this CAC policy.
Calls using SRTP Passthrough are allowed on the adjacencies specified by the policy. Where there are conflicting policies, "disallowed" overrides "allowed" which overrides "trusted-only."
|
Step 12
|
action [cac-complete | next-table
goto-table-name]
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# action cac-complete
|
Configures the action to perform after this entry in an admission control table. Each entry requires a match criteria and an action. The action is to accept the transport.
action is one of the following:
cac-complete—When an event matches, this CAC policy is complete.
next-table—Specifies the name of the next cac table.
goto-table-name—Specifies the table name identifying the next CAC table to process (or cac-complete, if processing should stop).
|
Step 13
|
exit
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# exit
|
Exits CAC table entry submode and enters into cacpolicy cactable mode
|
Step 14
|
exit
Example:
Router(config-sbc-sbe-cacpolicy-cactable)# exit
|
Exits cacpolicy cactable submode and enters into cacpolicy mode.
|
Step 15
|
complete
Example:
Router(config-sbc-sbe-cacpolicy)# complete
|
Completes the CAC policy after all the entries within the CAC tables have been configured.
|
Step 16
|
exit
Example:
Router(config-sbc-sbe-cacpolicy)# exit
|
Exits the cacpolicy submode and enters into SBE mode.
|
Step 17
|
active-cac-policy-set policy-set-id
Example:
Router(config-sbc-sbe)# active-cac-policy-set 1
|
Sets the newly created CAC policy to be active. When the policy is active, it can no longer be modified.
policy-set-id—Identifies the policy set that is made active. Range is 1 to 2147483647.
|
Step 18
|
end
Example:
Router(config-sbc-sbe)# end
|
Exits the SBE mode and returns to Privileged EXEC mode.
|
Step 19
|
show sbc sbc-name sbe cac-policy-set id table
name entry entry
Example:
Router# show sbc mysbc sbe cac-policy-set 1
table testSecure entry 1
|
Displays detailed output, including a "SRTP Transport" field and whether the policy for the adjacency is to allow, disallow, or trust only for SRTP Transport.
|
Example of Configuring Secure Media
This section provides a sample configuration for the Secure Media Passthrough feature.
To configure Secure Media Passthrough, use the following commands:
Router(config)# sbc mysbc
Router(config-sbc-sbe)# secure-media
Router(config-sbc-sbe)# end
Example of Configuring SRTP Passthrough
The following shows a configuration where the "srtp transport" variable is set in the CAC policy set 1 table for an adjacency to allow SRTP Passthrough:
first-cac-table STANDARD-LIST-BY-ACCOUNT
cac-table STANDARD-LIST-BY-ACCOUNT table-type limit dst-account
match-value SIP-CUSTOMER-1
max-bandwidth 1000000 bps
match-value SIP-CUSTOMER-2
max-bandwidth 1000000 bps
The following example displays entries in table CAC1 for CAC policy set 100 and shows that the SRTP Transport variable has been set to allow SRTP Passthrough on whichever adjacency the policy is applied:
Router# show sbc SBC1 sbe cac-policy-set 100 table CAC1 entry 1000
Policy set 100 table CAC1 entry 1000
Match value src-adjacency
Action CAC policy complete
Max registrations Unlimited
Caller privacy setting Never hide
Callee privacy setting Never hide
Early media direction Both
Restrict codecs to list default
Number of calls rejected by this entry 0