Feature Description
Server Name Indication (SNI) is an extension of the Transport Layer Security (TLS) protocol that allows multiple secure (HTTPS) websites (or any other service over TLS) to be served from the same IP address without requiring all those sites to use the same certificate. SNI provides a mechanism for the client to tell the server which hostname it is trying to connect to.
ADC detects encrypted traffic using the SNI field (signatures) of TLS/SSL (Secure Sockets Layer) traffic. These signatures are added along with other detection mechanisms and delivered as a plugin. If there are new SNI fields either in the already detected applications or new applications, then these new fields are added to the plugin and a new version of the plugin is released. This results in frequent releases of plugin versions causing delay in upgrading the new plugin in the network and leading to revenue leak to the operator. Due to increased number of applications moving towards TLS/SSL, an option is provided to configure the SNI in ruledef and classify traffic based on the configured SNI with this release.
Important |
The SNI Detection feature requires a valid Application Detection and Control license. Contact your Cisco Account representative for more information. The SNI field in the TLS/SSL handshake is used to determine the type of TLS/SSL flow being setup. SNI rule variable is added as an optional field in EDRs for detection of TLS/SSL flows. When the “tls sni” rule variable is configured and a valid SNI name is detected in the flow, the SNI field is populated in the EDR. |
QUIC SNI Detection
The SNI Detection feature is enhanced to support QUIC SNI configuration and classify traffic based on the configured SNI. The CLI commands added to configure the SNI are generic such that other application-identifiers added in the future are taken care of with the Plugin changes only.
Important |
This feature requires the latest ADC Plugin to be loaded from the adc_v2.x stream along with StarOS changes. The default plugin does not support this feature. Contact your Cisco account representative for more information. |
When a QUIC flow is analyzed, the P2P rule match takes place on this flow with the configured SNI. If the flow/packet matches the rule, the custom-defined-protocol (CDP) name specified in the ruledef is taken and the flow is marked as CDP. If no CDP is configured in the rule, then the flow is treated as QUIC flow.
Within the P2P plugin, when a QUIC flow arrives with SNI that is already hardcoded and the same SNI is also configured in ruledef, the ruledef with higher priority takes precedence. Based on rule priority, rule matching is done and CDP statistics get incremented. When the new QUIC flow comes with SNI that is not hardcoded, the flow will be marked as a QUIC flow.
-
The p2p app-identifier and p2p set-app-proto commands are added in the ACS Ruledef Configuration mode to configure QUIC-SNI and TLS-SNI that are dynamically populated from the P2P plugin and match the traffic against it.
-
EDR attributes are added to support app-identifiers supplied from plugin. EDR logs the matched CDP in the "p2p-protocol" field for the flow. If QUIC-SNI is configured in the EDR field, then QUIC-SNI string will be populated.
-
Analyzer statistics, ruledef statistics, and bulk statistics are updated for newly identified protocols
- Backward compatibility for the TLS-SNI feature is maintained such that this feature works seamlessly with new CLI commands added in this release.
Limitations
The limitations with this feature are listed in this section:
-
The quic-sni identifier is configured in the EDR with the new plugin. When rolled back to old plugins, the EDR headers will print p2p-unknown since the old plugin does not support the configured app-identifier. When upgraded to a new plugin that supports QUIC-SNI identifier, p2p-unknown will be updated to display p2p-quic-sni in the EDR.
-
The help strings related to the new CLI keywords will be updated in a later release.
Support for QUIC IETF Implementation
In the current framework, Deep Packet Inspection (DPI) is done for every packet in a flow when it reaches the plugin. The DPI is done by analyzing the packets and extracting deterministic patterns. The DPI is done in-order to detect the application and to classify its subtype. Plugin excludes the flow after the DPI. The flow is offloaded after the detection.
As part of QUIC IETF, the initial QUIC handshake packets (Client/Server Hello) are encrypted over the network. Hence, there are no deterministic patterns available for detection of the application. Support is added in p2p plugin to decrypt and obtain the SNI (Server Name Indication) for detection.
Relationships to Other Features
This section describes how the SNI Detection feature relates to other ADC features.
-
Analyzer Interworking: In support of SNI Detection, HTTPS protocol support is added for ECS analysis of all SSL flows as part of the Analyzer Interworking feature. This feature is enabled by default for all analyzers including HTTPS if P2P detection/protocol is enabled.
The different behaviors when Analyzer Interworking is enabled or disabled is listed in the table below. Condition HTTPS Routing Enabled HTTPS Routing Disabled With SNI feature in 17.5 and later releases:
If SSL protocol is enabled, SNI/EDR features will work if any routing rule is configured
-
Analyzer Interworking enabled for HTTPS:
App-proto = HTTPS(6) and p2p protocol = SSL
-
Analyzer Interworking disabled for HTTPS:
App-proto = P2P(29) and p2p protocol = SSL
App-proto = P2P(29) and p2p protocol = SSL
If SSL protocol is disabled, SNI/EDR features will not work.
App-proto = HTTPS(6) and p2p protocol = Unknown
App-proto = Unknown(0) and p2p protocol = Unknown
Without SNI feature in releases prior to 17.5:
SNI/EDR features will not work and SSL will not be exposed to ASR 5500. App-proto = HTTPS(6) and p2p protocol = Unknown
App-proto = Unknown(0) and p2p protocol = Unknown
-
-
SSL Renegotiation Tracking: With the SNI Detection feature, the ADC plugin must be able to store Session ID in SSL renegotiated table, map the renegotiated flow to stored Session ID, and map the corresponding CDP name to the flow in the same way as it is done for SSL Renegotiation feature.
For more information on these features, refer to the ADC Administration Guide.