Internet Engineering Task Force Internet Draft H. Tschofenig, H. Schulzrinne Siemens/Columbia U. draft-tschofenig-nsis-casp-midcom-00.txt 23 October 2002 Expires: January 2003 A Firewall/NAT Traversal Client for CASP STATUS OF THIS MEMO This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. 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". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt To view the list Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. Abstract This document describes a CASP client protocol that allows nodes to signal information to firewalls mainly in an in-path fashion. The protocol furthermore allows the signaling initiator to establish and/or learn a NAT binding. This information can then be used within other protocols such as SIP. H. Tschofenig et. al. [Page 1] Internet Draft CASP Midcom 23 October 2002 1 Introduction CASP-Midcom is a client protocol for the Cross-Application Signaling Protocol (CASP) [1]. It is one of a family of CASP client protocols and allows the signaling of firewall information along the data path (in- path) in a topology independent manner. CASP-Midcom aims to address issues raised in the MIDCOM working group [2] and uses ideas for in-path signaling using RSVP as described in [3] and in [4]. CASP-Midcom aims to provide a long-term solution to the MIDCOM problem with the following properties: Routing of Signaling Messages: CASP with its scout discovery mechanisms allows signaling messages to follow the path of the data traffic towards a destination. This assumes that standard routing is used. CASP, however, operates independent of the underlying routing mechanism. Route changes can be detected by the scout protocol and signaling message transmission is adopted accordingly. Other mechanisms for detecting route changes can also be used such as routing protocols. Security Protection: Creating holes into a firewall is a sensitive task that requires trust and an appropriate security protection of the signaling messages in order to be successful. Trust assumptions between the participating entities thereby determine whether the task of installing packet filters at a firewall is possible at all. CASP-Midcom thereby reuses the security mechanisms introduced by CASP. Still some additional security mechanisms described in this document have to be used to provide secure protocol operation. Sender/Receiver Initiated: CASP signaling can be executed in sender- and receiver initiated mode. Establishment of firewall packet filter information is usually done in a asymmetric manner e.g. establishment of unidirectional Traffic Selectors at firewalls. Flexibility in Message Delivery: Signaling messages can be triggered by any node along the path. In most cases, however, it is the responsibility of the signaling message initiator (typically the end host) to provide the necessary information which policy rules to install. CASP messages might terminate at any CASP peer along the path. Hence it is not necessary to forward the messages to the final destination. The decision whether to furthermore forward the signaling message toward the destination can be caused by the initiator (by including CASP specific information) or the decision could also be forced for example by a non CASP-aware firewall. Such a device might not forward CASP message. Another example is an H. Tschofenig et. al. [Page 2] Internet Draft CASP Midcom 23 October 2002 authorization failure generated because of lacking trust (and proper credentials by the signaling initator). Error Resilience: CASP was designed based on the soft-state principle to allow orphan states to time-out automatically. End Host Topology Unawareness: Routing signaling messages along the data path allows CASP aware nodes to reflect topology information into the processing of CASP signaling messages. Processing of Traffic Selectors is an example where local topology and protocol information need to be available to ensure proper behavior. Traffic Selector handling is already defined in CASP [1]. Defining them at the CASP M-Layer is necessary since this object is used by more than one client layer protocol. The Traffic Selector used in CASP-QoS [5] messages might be also require modification by a NAT along the path. Mid-path modification of the Traffic Selector allows the end host to be topology unaware. If topology information needs to be incorporated into the signaling message processing then it should be done at the locations where the corresponding information is easily available (for example at the individual CASP-Midcom aware nodes along the path). 2 Definitions Trust Relationship: The term trust relationship and the subcategories is used at various places in this document. Since its meaning might confuse some readers a short description is given in this section. CASP is a protocol for establishing state information within a possibly large number of network elements. Unlike to typical end-to-end communication protocols there is more than one mean to establish trust: end-to-end, end-to-middle, between neighboring peers and between non-neighboring peers. Figure 1 describes these options graphically: The existence of a security association (statically or dynamically created) requires some degree of trust. However, it does not necessarily lead to the necessary degree of trust to allow certain operations to be executed (authorization). Hence in this case the term trust is not equal to the existence of a security association. With the creation of policy rules at firewalls additional trust might be required in addition to a chain-of-trust where only neighboring peers trust each other. The principle of chain-of-trust is a frequently used concept in the area of QoS signaling protocols. In Section 2 of [6] the concept is described in H. Tschofenig et. al. [Page 3] Internet Draft CASP Midcom 23 October 2002 **************************************** * * * * +----+-----+ +----------+ +----+-----+ +-----+ Firewall +-------+ Firewall +--------+ Firewall +-----+ | | 1 | | 2 | | 3 | | | +----------+ +----+-----+ +----------+ | | ~ | | ~ | | ~ | | ~ | | ~ | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | ~ | | ~ | +--+--++ +--+---+ | Host +//////////////////////////////////////////////////////+ Host | | A | | B | +------+ +------+ Legend: -----: Peer-to-Peer Trust Relationship /////: End-to-End Trust Relationship *****: Middle-to-Middle Trust Relationship ~~~~~: End-to-Middle Trust Relationship Figure 1: Possible Trust Relationships more detail. Policy Rule: The term policy rule is used as defined in [7]. Other frequently used terms are packet filters, filter rules or firewall rules. In addition to the Traffic Selector attributes an action has to be specified. Since it was agreed not to allow deny rules there are only two possible actions: allow without logging and allow with logging. Per-default no logging is defined - the Traffic Selector attribute is used without any modification. If logging is desired then it has to be specified as described in Section 8. As stated in [7] it was agreed not to specify a deny action for policy rule. Hence there is no such deny action defined in this document. Policy Groups: The term policy group is not used in this document since its meaning is partially captured by the Traffic H. Tschofenig et. al. [Page 4] Internet Draft CASP Midcom 23 October 2002 Selector functionality introduced in CASP. CASP allows various Traffic Selector attributes (even lists and ranges of certain attributes) to be specified. In case of in-path discovery only one IP destination address can be specified inside the Traffic Selector in the generic case since it is used routing (and hence also used by the scout in-path discovery protocol). For off-path signaling this rule must not hold. Lifetime of Policy Rules: It is worth mentioning that the lifetime specified for policy rules is equal to the established state at the C-layer. For the lifetime the following rule applies: lifetime(C-Layer) less-or-equal lifetime(M-Layer) less-or- equal lifetime(T-Layer). Since the Transport-Layer (T-Layer) is shared by many M-Layer session its lifetime is not explicitly specified. The lifetime of the T-Layer might depend on the local policy but usually it is removed as soon as all M-Layer states expired. Traffic Selector (TS): The term Traffic Selector refers to attributes describing subsets of a data traffic for which a specific behavior should be assigned. In case of firewall traversal the term Traffic Selector refers to policy rules (or policy groups in case that it is more generalized). The term flow identifier is also often used in the area of QoS signaling protocols. For a NAT traversal a Traffic Selector refers to the NAT binding. There is furthermore a one-to-one relationship between a M- layer and a C-layer (state defined in this document including policy rules and other parameters) state. If a particular M- layer state is removed then also the corresponding C-layer state has to be removed. The identification of the both states (M-layer and C-layer) is done based on the 128-bit session identifier. 3 Trust Relationships It is unusual to start a protocol description with trust relationships to explain the basic protocol behavior. A protocol for firewall traversal is somewhat different since trust relationships are very important for the protocol design and for its internal mechanisms. It is worth noting that NAT traversal does not cause problems to the same degree. 3.1 Peer-to-Peer Trust Relationship The following scenarios can be considered as the simplest since peer-to- peer trust relationship exist between the participating entities. These H. Tschofenig et. al. [Page 5] Internet Draft CASP Midcom 23 October 2002 trust relationships are either pre-existing or can be dynamically established (for example between Host A and the local middlebox i.e. Middlebox 1 within Network A) as part of the execution of a security protocol. Authentication and authorization of the request to the middlebox device is thereby required for successful protocol completion. Important in this context is the trust relationship between the two networks (i.e. between Middlebox 1 and Middlebox 2). In this scenario it is assumed that no firewall is present within the core network. In case that Middlebox requires authentication of the Host A (or from the user located at Host A) then an "Authentication Required" RESPONSE message with an error code is returned to the initiator. In case of a sender- initiated signaling message transmitted by Host A the requested filter entries at the first middlebox are already installed when the request at the subsequent middlebox fails. Since end hosts usually do not have (and should not have) topology information of the networks along the path it is not possible to transmit Traffic Selectors for both directions (if data traffic later flows in both directions). Hence it is required that both nodes transmit separate signaling messages for each direction containing separate Traffic Selectors for each traffic flow (if the data traffic is later sent in both directions). These signaling messages are transmitted by the end hosts and they do not need to travel along the same path. Therefore the signaling message in both directions do not necessarily install state at the same firewall. Policy rules installation is based on the information transmitted with the Traffic Selector object. Traffic Selectors can change mid-path (for example when passing a NAT) and are allowed to change mid-session (for example because of mobility). For those cases where the information transported within a Traffic Selector object cannot be interpreted an error message is returned indicating the inadequate information. Traffic Selector processing failures are possible when for example a Virtual Private Network Identifier such as (Extended) Tunnel ID is transmitted to an IP firewall. 3.2 Intra-domain Trust Relationship In larger corporations often more than one firewall is used to protect different departments. In many cases the entire enterprise is controlled by a security department which gives instructions to the department administrators. In such a scenario a peer-to-peer trust- relationship might be prevalent. Sometimes, however, it might be necessary to preserve authentication and authorization information within the network. In this case an interaction between the individual middleboxes and a central entity (for example a policy decision point - PDP) might be required. Each middlebox can either communicate with the H. Tschofenig et. al. [Page 6] Internet Draft CASP Midcom 23 October 2002 +--------------------------+ +--------------------------+ | | | | | Network A | | Network B | | | | | | +---------+ +---------+ | | +-///-+ Middle- +---///////----+ Middle- +-///-+ | | | | box 1 | Trust | box 2 | | | | | +---------+ Relationship +---------+ | | | | | | | | | | | | | | | | | | | | | | Trust | | Trust | | | | Relationship | | Relationship | | | | | | | | | | | | | | | | | | | | | +--+---+ | | +--+---+ | | | Host | | | | Host | | | | A | | | | B | | | +------+ | | +------+ | +--------------------------+ +--------------------------+ Figure 2: Peer-to-Peer Trust Relationship PDP or the PDP issues an authorization token which allows the middleboxes to react independently. Figure 3 refers to this structure. To avoid complex protocol interactions individual middleboxes within an administrative domain should make use of their trust relationship instead of challenging the signaling message originator. 3.3 Required End-to-Middle Trust Relationship In some scenarios a simple peer-to-peer trust relationship between participating nodes is not sufficient. Network B might require some proof of identity of the signaling message originator. If such a proof is not included in the signaling message arriving at Middlebox 2 then a RESPONSE message with an error code "Authentication Required" is returned. However, in many cases the user initiating the signaling message exchange is already aware of such a constraint and received credentials before the message exchange was started. These credentials might be based either on symmetric (shared secret) or based on asymmetric (public key) cryptography. In order to avoid a challenge/response type of message exchange and to reuse the CASP H. Tschofenig et. al. [Page 7] Internet Draft CASP Midcom 23 October 2002 +---------------------------------------------------------------+ | | | Network A | | | | | | +---------+ +---------+ | +----///--------+ Middle- +------///------++ Middle- +--- | | | box 2 | | box 2 | | | +----+----+ +----+----+ | | | | | | +----+----+ | | | | | Middle- +--------+ +---------+ | | | | box 1 | | | | | | +----+----+ | | | | | | | | | | | - | | | | | - | +----+-----+ | | | | | | Policy | | | | +--+---+ +-----------+ Decision +----------+ | | | Host | | Point | | | | A | +----------+ | | +------+ | +---------------------------------------------------------------+ Figure 3: Intra-domain Trust Relationship security mechanisms the initiating node (Host A in this case) already includes a CMS object to the outgoing signaling message. The CMS object contains the identity of the signaling initiator, the identity of the network, the destination address of Host B, a timestamp for replay protection and possibly some other application specific information like an application identifier. CMS allows to use both symmetric and asymmetric credentials. Figure 4 shows the slightly more complex trust relationships in this scenario. 3.4 Missing Network-to-Network Trust Relationship Peer-to-peer trust relationship as shown in Figure 2 is a very convenient assumption that allows simplified signaling message processing. However, it is obvious that such an assumption does not always hold. Especially the trust relationship between two arbitrary H. Tschofenig et. al. [Page 8] Internet Draft CASP Midcom 23 October 2002 +--------------------------+ +--------------------------+ | | | | | Network A | | Network B | | | | | | | Trust | | | | Relationship | | | +---------+ +---------+ | | +-///-+ Middle- +---///////----+ Middle- +-///-+ | | | | box 1 | +-------+ box 2 | | | | | +---------+ | +---------+ | | | | | | | | | | |Trust | | | | | | |Relationship | | | | | | | | | | Trust | | | | | | | Relationship| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +--+---+ | | | +--+---+ | | | Host +----///----+------+ | | Host | | | | A | |Trust | | B | | | +------+ |Relationship | +------+ | +--------------------------+ +--------------------------+ Figure 4: End-to-Middle Trust Relationship non-adjacent access networks is likely non-existent because of the large number of networks and the unwillingness of administrators to have other network operators to create holes in their firewalls. Hence in the following scenario we assume a somewhat different message processing and show three possible approaches. None of these three approaches is without drawbacks or constraining assumptions. We identified three possible approaches of tackling the problem described in Figure 5. Receiver-Initiated Signaling The first approach makes use of receiver-based signaling message exchange. If Host A sends a signaling message toward the destination to Middlebox 1 the message can be properly protected. Middlebox 1 establishes some state information and expects a incoming message initiated by Host B. Signaling message protection between the H. Tschofenig et. al. [Page 9] Internet Draft CASP Midcom 23 October 2002 +--------------------------+ +--------------------------+ | | | | | Network A | | Network B | | | | | | +---------+ Missing +---------+ | | +-///-+ Middle- | Trust | Middle- +-///-+ | | | | box 1 | Relation- | box 2 | | | | | +---------+ ship +---------+ | | | | | | | | | | | | | | | | | | | | | | Trust | | Trust | | | | Relationship | | Relationship | | | | | | | | | | | | | | | | | | | | | +--+---+ | | +--+---+ | | | Host | | | | Host | | | | A | | | | B | | | +------+ | | +------+ | +--------------------------+ +--------------------------+ Figure 5: Missing Network-to-Network Trust Relationship two networks is difficult. The missing trust relationship does not necessarily mean that no security association establishment is possible. The lacking trust "only" disallows Middlebox 1 to create packet filters at Middlebox 2. If the CASP message itself is allowed to pass the firewall then it finally reaches Host B. Host B should not experience any difficulties to install filters at the local firewall (Middlebox 2). The message is then forwarded to Middlebox 1 which already waits for the incoming signaling message. Because it is possible to associate existing state information at Middlebox 1 with the incoming message packet filters are installed and the message is finally forwarded to Host A. Authorization for packet filter installation in Network A has to be provided by Host A and for Network B has to be provided by Host B when returning the response message. Traffic Selectors are installed for data traffic from Host A to Host B. The same procedure has to be applied again to signal information for the other direction (Host B to Host A). H. Tschofenig et. al. [Page 10] Internet Draft CASP Midcom 23 October 2002 The following behavior has to be assumed in order for this approach to be applicable: - CASP signaling messages must be allowed to pass firewalls along the path. Blocking CASP messages at firewalls disallows the receiver of the signaling message to return a signaling message. - The PATH message is assumed to be stateful. This approach suffers from the following drawbacks: - If CASP signaling messages are not allowed to bypass a firewall then no policy rules are create at any node along the path. - Receiver-Initiated signaling has the advantage that the receiver has to accept the creation of the policy rule in his own network to trigger the creation locally. This seems to simplify security processing. If a NAT is present then still a RESPONSE message is required to inform the data message sender about the NAT-binding (i.e. the IP addresses and port information seen by a data traffic receiver). Access Network-Only Signaling Message Exchange The next approach is based on signaling Traffic Selector information by both hosts into the local access network only. CASP allows to specify such a behavior by indicating the signaling endpoint with the help of scoping ( for example with domain name). If packet filters for both directions have to be installed then signaling messages have to make reservations up- and downstream along the data path. Similar to proposals in the area of QoS signaling some problems are likely to occur. One such problem is that downstream reservations in general does not work due to the policy of routing protocols and the asymmetric routes. The problem of triggering downstream reservations is for example described in [8]. Another problem for example is the placement of a firewall or NAT along the path other than in the access network. This would prevent a successful data exchange. The following behavior has to be assumed in order for this approach to be applicable: - Triggering a signaling message downstream must be possible. Thereby the correct firewall should be affected where later data traffic enters the domain. H. Tschofenig et. al. [Page 11] Internet Draft CASP Midcom 23 October 2002 - No other firewalls or NATs are present along the path other than in the access network. This approach suffers from the following drawbacks: - To signal policy rules only within the access network (by both end-points) has a number of disadvantage and challenges as described in various source including [8]. The complex message processing caused by this approach stronly argues against it although it might sound simple (and even might be simple in restricted environments). Section 9 also addressed message flows for this case. Although its usage is possible with CASP we strongly discourage its usage. - Some circumstances can lead to ineffective policy rules. Authorization Tokens The last approach is based on some exchanged authorization tokens which are created by an authorized entity (such as the PDP) in each access network. Both hosts need to exchange these tokens with some protocols such as SIP or HTTP which is more likely to allowed to bypass the firewall. Later when the CASP-Midcom signaling messages are exchanged the token is included. Host A would then include the received token for Network B. When the signaling message arrives at Middlebox 2 then the token is verified by the token-creating entity. To avoid reusing of the token a timestamp has to be included. Adding IP address information about Host A would create difficulties in relationship with NATs. Information about Host B might be possible to include in order to limit attacks where a token is lost and reused to a different host for a different purpose. The goal is to restrict the token. Which information can be safely included inside the token might also be implementation specified since it only has to be verified locally. Some further investigation is required. The following behavior has to be assumed in order for this approach to be applicable: - The exchange of authorization tokens between end-systems must be possible. These protocols must be allowed to pass the firewalls. - An end-system must be able to request such an authorization token at some entity in the local network. This approach suffers from the following drawback: H. Tschofenig et. al. [Page 12] Internet Draft CASP Midcom 23 October 2002 - An additional protocol is required for an end host to request an authorization token from an entity in the local network as depicted in Section 9. Note that CASP could be extended to provide this functionality but currently it does not. 3.5 Off-Path Signaling The separation of message delivery and next-hop discovery for the CASP protocol allows it to support in-path and off-path signaling easily with the same protocol. Throughout this document in-path signaling was assumed (the Scout protocol is used per-default for next peer discovery) but off-path signaling might be required in some scenarios where a third-party entity wants to signal some policy rules to a firewall. This mechanism has disadvantages in larger networks with multiple firewalls since topology information is required in order not to install policy rules at the wrong device. 4 Assumptions Based on the above-described trust relationships the following protocol assumptions have to be made. ú Middleboxes along the path are CASP-aware. If a middlebox is not CASP-aware then protocol functionality can not be fully guaranteed. The CASP-Midcom protocol can operate with limitations if a CASP-unaware firewall blocks all CASP signaling traffic. To support CASP-unaware NATs along the path some information needs to be added to a CASP-Midcom message to allow the signaling message receiving entity to verify that the source ip address (and port numbers) have changed. Currently no such object is included in this version of the document. ú The end host should not be required to know the topology of the networks along the path or some other network internal issues. Therefore it is not possible to make an assumption about routing and hence we have to assume asymmetric routes. As a consequence end hosts include unidirectional Traffic Selectors only. Within a administrative domain where more information is available this assumption might not hold and the establishment of bi-directional Traffic Selectors could be possible. 5 NAT Involvement Two issues need to be addressed when NATs are present along the path. Since the end host should not a-priori knowledge about the location, number and types of NATs along the path their presence has to be assumed. H. Tschofenig et. al. [Page 13] Internet Draft CASP Midcom 23 October 2002 First the CASP signaling messages must be able to traverse a non-CASP aware NAT box without major problems. Since CASP uses transport protocols such as TCP or SCTP a NAT is able to maintain a binding. Note that non-CASP aware NATs prevent the successful installation of packet filters at subsequent CASP-aware firewalls. In case that the NAT is CASP-aware problems only occur if source port numbers are fixed. So far CASP does not require fixed source port numbers to be used. The second issue addresses data packets for which a NAT binding needs to be requested. When an end host starts to transmit scout packets to discover the presence of firewalls/NATs along the path it is willing to subsequently transmit data packets with a given Traffic Selector. Subsequently such a firewall/nat/firewall scenario is described to explain the basic protocol interaction and the usefulness allowing Traffic Selectors to change mid-path (i.e. along the path). Mid-session changes of Traffic Selectors happen in mobility cases (for example if the end host obtains a new care-of address). In Figure 6 a hosts (Host A) wants to enable transmit data traffic from source IP address 192.168.1.5 to a given destination IP address (not shown in the Figure 6) at port 666 (both udp and tcp). Therefore Host A transmits a CASP-Midcom message to Firewall 1 (after discovering that this firewall is along the data path) to create the corresponding packet filters. Note that the traffic selector is unidirectional. This scenario shows a sender-initiated scenario. Firewall 1 installs two policy rules (one for udp and the other one for tcp) after successful authentication and authorization. After forwarding to the next middlebox (a NAT in this case) a NAT binding has to be created for the given traffic selectors. The externally visible Traffic Selector (IP address changed to 139.23.203.30 and port number=7000) is then forwarded to the next firewall (Firewall 2). Firewall 2 again creates policy rules after authentication and authorization. Then the message is forwarded towards the destination. After the signaling messages reaches its target (the destination IP address) or until no further firewall can be reached (for example because the message is rejected at a non CASP-aware firewall) a RESPONSE message is returned (if requested by the signaling message initiator). A RESPONSE message would contain a Status object which includes information about the applied Traffic Selector and whether the message reached its target or not. In case of NATs along the path the Traffic Selector information is then included in protocols like SIP to communicate on which protocol/port data will be sent. Section 9 additionally addresses some message flows with NAT involvement. H. Tschofenig et. al. [Page 14] Internet Draft CASP Midcom 23 October 2002 +---------------------------------------------------------------+ | | | Network A | | | | TS=(192.168.1.5; TS=(139.23.203.30; | | tcp+udp;666) tcp+udp;7000) | | +---------+ +----------+ | +----///------->+ NAT +------///----->+ Firewall +--> | | | 1 | | 2 | | | +---------+ +----------+ | | | | +----+-----+ | | | Firewall | | | | 1 | | | +----+-----+ | | ^ | | - TS=(192.168.1.5; | | - tcp+udp;666) | | | | | +--+---+ | | | Host | | | | A | | | +------+ | +---------------------------------------------------------------+ Figure 6: NAT Involvement 6 Operation CASP-Midcom defines the following message types: Path: A PATH message allows a receiver-initiated reservation approach. This message does not cause packet filters to be installed although all objects are present. This message is then used as a trigger to cause a CREATE to be returned. The PATH message transmitting entity includes the objects which are later used (if not modified) by the sender of the CREATE message. Create: A CREATE message allows to establish or update state at one or more firewall(s). Verification is necessary to ensure that policy rule creation is allowed by the requesting entity and that no other local security policy is violated. In case a security policy is violated or the creation of the policy H. Tschofenig et. al. [Page 15] Internet Draft CASP Midcom 23 October 2002 rule(s) is not permitted, a RESPONSE message with a "Security Policy Violated" error code is returned. If the CREATE message is used without a previous PATH message then it represents a typical sender-initiated reservation. Release: A RELEASE message is used to delete installed state at a firewall/NAT explicitly without waiting for a soft-state timeout. This message can only delete previously installed state. Referring to previously installed state can easily be done using the session identifier. Response: A RESPONSE message is either sent to acknowledge a previous message or to indicate an error. In case of an acknowledgement it is required that the signaling message initiator requests the transmission of a response message. Therefore the Next object is set to the Response message. No state information is modified by processing and forwarding an acknowledgement. If an error has to be returned then the error code inside the RESPONSE message allows to specify more detailed error information. Such an error code might for example indicate missing user specific credentials, a missing authorization token or a security policy violation. Detailed error codes have to be defined in future versions of this document. Query: A QUERY message triggers a RESPONSE message to return installed state information. The main purpose of this message is to provide diagnostic facilities. An initiator must only be able to query owned state information. Otherwise the entire set of policy rules of a firewall could be retrieved which causes security concerns. An adversary would have a simple mechanism to retrieve a lot of useful information for subsequent attacks. Trigger: Some sort of trigger message is required to support access network signaling message exchanges as described in Section 9 and in Section 3.4. (TBD: This usefulness of this message or other technical alternatives require some investigation.) The following table shows the basic message behavior whereby the following abbreviations are used: MAY (O), MUST NOT (--), MUST (M) or NA (not applicable)) The operations specify which message might indicate information to trigger which other message in response by the other end. Some messages (such as an error message) are created automatically without previous indication. H. Tschofenig et. al. [Page 16] Internet Draft CASP Midcom 23 October 2002 Msg/Next Msg Path Create Release Response Query Trigger ----------------------------------------------------------------- Path NA M -- O -- -- Create O O -- O -- -- Release -- -- O? O M -- Response -- -- -- NA -- -- Query -- -- -- M NA -- Trigger O O O? -- -- NA Note that the "Must" entries in the table above indicate only the default behavior. For example: A PATH message must be followed by a CREATE message. However, in case of an error a RESPONSE message (with an error code) will be returned. The following issues still require some investigations: - To enable a bi-directional reservation the sender of a CREATE message has to indicate either another CREATE message in the Next object or a PATH message. It is questionable whether a sender- initiated signaling message should follow a receiver-initiated? - Is it useful to allow a RESPONSE or a RELEASE message to follow a RELEASE message? 7 Typical Policy Rule Attributes Traffic Selectors used in CASP are used to install policy rules in firewalls. This paragraph describes some typically used attributes. Other attributes such as flow labels might be used but are considered as an exception. We believe that a granularity at transport layer protocol state-level (syn, syn/ack, ack, etc.) is not required. - Source/destination IPv4 and IPv6 addresses - Port numbers (possibly including ranges and a list of port numbers) - Transport protocol (for example TCP, UDP) - SPI (for IPSec protected data traffic) - Identifiers for AH and ESP (Protocol numbers, next headers fields) A NAT object returned to the signaling message initiator contains the same attribute types. The NAT object is included as a payload in the Status object. A signaling message originator may also use the NAT H. Tschofenig et. al. [Page 17] Internet Draft CASP Midcom 23 October 2002 object to request a particular NAT binding to take place. The same object is used for this purpose. There are only two actions defined for a policy rule: "allow / no logging" (default) and "allow / logging". The first action does not require additional objects to be included other than the Traffic Selector. This is the default action. If a "allow / logging" action has to be specified then the Logging Action object defined in 8 has to be included. This action creates log entries whenever the rule was triggered. End hosts are usually not allowed to specify this behavior because it could be used for a denial of service attack to cause log files to grow quickly and without bounds. Note that a single Traffic Selector might also specify a range or ports. Furthermore it is also possible to specify more than one Traffic Selector object within a single signaling message. 8 Objects The following objects are used by the CASP-Midcom client protocol: 8.1 Logging Action This object indicates which Traffic Selector(s) want to have logging specified. Note that end host are usually not allowed to specify this behavior for in-path signaling. It might, however, be requested within the network or in case of off-path signaling. (TBD: Some investigation is required to evaluate whether this action is really required.) 8.2 ApplicationID This object contains an identifier to provide more information about the data for which the policy rule is installed. Application-level firewalls and firewalls with stateful inspection are able to use this information. Providing a wrong application identifier for a given data traffic would then cause a processing failure. Such a behavior is more secure than a traditional packet filter firewall. Note that encrypted end-to-end traffic might reduce this advantage to some degree. A local security policy might indicate that this information is required before creating policy rules. A missing ApplicationID object would then cause a "Application ID require" RESPONSE message with an error code is returned. 8.3 Next The Next object indicates the next request that the signaling message receiver should generate if the incoming message was successfully processed. Section 6 shows possible combinations of messages. For H. Tschofenig et. al. [Page 18] Internet Draft CASP Midcom 23 October 2002 example, a CREATE message might contain a Next object which is set to CREATE causing another create message to be returned. Such a message flow would represent a bi-directional reservation. A frequently used object is the response object providing indications about a previously submitted message. 8.4 Authorization Token This object is used as described in Figure 5 of Section 3.4. More description will be added in the near future (see Section 11). 8.5 CMS Credential Object This object allows user specific cryptographic credentials to be transmitted some CASP peers (or networks) along the path. Figure 4 describes a scenario where such an object is required. Attributes included in this object are also briefly mentioned in Section 3.3. 8.6 Time This object indicates that filters should be installed somewhere in the near future. This might be required in the context of in-advance QoS reservation for a conferencing scenario. If this object is not present, the current time is used. 8.7 Version The version indication is used to quickly determine whether any of the object has changed (for example Traffic Selector), without having to do a bit-by-bit comparison. The Version object might be useful for messages which refresh established state information only. Uniqueness of the Version object is only required for a session. Whenever state information has to be modified then a new value has to be placed in the Version object. A high-resolution timestamp is typically used for this purpose. 8.8 Status The Status object is used to deliver status information inside the RESPONSE message. This object might return error notifications or information about installed Traffic Selectors (e.g. NAT-Object). Delivering Traffic Selector information is helpful for application that need to deliver IP address, protocol type and port information to the initiator in case of NATs along the path. One such protocol is SIP. 9 Basic Protocol Behavior H. Tschofenig et. al. [Page 19] Internet Draft CASP Midcom 23 October 2002 The following message flows try to show the basic protocol behavior and possible combinations regarding sender- and receiver-initiated messages flows, uni-directional/bi-directional Traffic Selectors, different trust assumptions and NAT and/or Firewall traversal. The subsequently shown figures do not include message flows for next-peer discovery (for example using the Scout protocol). 9.1 Receiver-Initiated Message Flow with Firewalls The following message flow shows the protocol behavior in case of a receiver-initiated signaling message exchange with two administrative domains (Network A and B) and two firewalls located at the borders. For the message flow a peer-to-peer trust relationship is assumed. Cryptographic credentials which support end-to-middle authentication (Host A-to-FW 2) can be included by Host A into the PATH message. The usage of receiver-initiation has the advantage that Host B has to assist in policy rule installation at Firewall B. In Figure 7 the sender indicates which policy rule to install by adding this information to the Traffic Selector. Host A uses the IP address 139.23.203.23 and the destination IP address (Host B) is 17.12.23.5. Note that the transport protocol is not mentioned since it is not helpful. The first firewall (FW 1) installs the indicated policy rule (Traffic Selector with actional "allow / without logging"). The message is forwarded to the next CASP aware node (FW 2). Because of the peer-to- peer trust assumption FW 2 trusts FW1 for the correctness of the provided parameters. The identity of the signaling message originator might be included in the signaling messages addressed toward the other end host. Policy rules are installed at both firewalls. When the signaling message reaches Host B then a CREATE message is returned in response and included the same Traffic Selector (unmodified). Note that the Traffic Selector is always directional (especially for the CREATE message in response to a PATH message this is applicable). The CREATE message installs the policy rules at the two firewalls. The CREATE message finally reaches Host A who can immediately start to transmit data traffic towards Host B. The following issues arise with the description of the message flow of Figure 7: - Should Traffic Selector information included in the PATH and CREATE message. Traffic Selector information in the PATH message could be temporarily stored at middleboxes (in this firewalls). The CREATE message would then only refer to existing state information. H. Tschofenig et. al. [Page 20] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | FW 1 | | | | FW 2 | Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ |Path(TS= | | | |(src=139.23.203.23, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |--------------------->| | | | |Path(TS= | | | |(src=139.23.203.23,| | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |------------------>| | | | |Path(TS= | | | |(src=139.23.203.23, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |--------------------->| | | |Create(TS= | | | |(src=139.23.203.23, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |<---------------------| | |Create(TS= | | | |(src=139.23.203.23,| | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |<------------------| | |Create(TS= | | | |(src=139.23.203.23, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |<---------------------| | | | Data Traffic (unidirectional) | |================================================================>| Figure 7: Receiver-Initiated Message Flow with Firewalls H. Tschofenig et. al. [Page 21] Internet Draft CASP Midcom 23 October 2002 - It does not seem to be useful to have a stateless version of the PATH message. Do we want to support such a stateless version? - If the Path message fails then no policy rules are installed. The signaling message flow has to be restart. Figure 7 does not contain NATs, micro-/macro-mobility specific message flows or any form of tunneling. Hence no Traffic Selector modification mid-path is necessary. Such a Traffic Selector modification would be required otherwise. Entities which are aware of micro-/macro-mobility protocols (for example a MAP or a home agent) are no middleboxes in the traditional sense. Since they have an impact on the Traffic Selector and on the data traffic it would be necessary to treat them as artificial middlebox to properly address flow identifications along the path. If no such treatment takes place then the wrong policy rules are installed at firewalls with the consequence that the entire protocol interaction is useless. In this description we assume that Traffic Selector attributes are based on information used for routing (i.e. IP addresses). 9.2 Sender-Initiated Message Flow with Firewalls The following message flow shows the protocol behavior in case of a sender-initiated signaling message exchange with two administrative domains (Network A and B) and two firewalls (FW 1 and FW 2). No NAT and other devices requiring modifications to the Traffic Selector are used. This message flow also assumes a peer-to-peer trust relationship. Cryptographic credentials which support end-to-middle authentication (Host A-to-FW 2) can be included by Host A into the CREATE message. The message flow in Figure 8 is similar to Figure 7. The CREATE message contains the Traffic Selector and immediately (after authentication, authorization and verification) causes the installation of policy rules. The signaling message sender might request a RESPONSE message. In case of NATs along the path such a RESPONSE message is very useful to return NAT binding information. This scenario does not require Traffic Selector modification along the path. No NAT binding is returned with the optional RESPONSE message. The following issue arises with the description of the message flow of Figure 8: - If a verification error is caused during the CREATE message processing then some firewalls might have installed policy rules whereas others have never seen the signaling message. A RESPONSE message indicating an error could leave installed state in place or cause already established state to be removed automatically. H. Tschofenig et. al. [Page 22] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | FW 1 | | | | FW 2 | Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ |Create(TS= | | | |(src=139.23.203.23, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |--------------------->| | | | |Create(TS= | | | |(src=139.23.203.23,| | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |------------------>| | | | |Create(TS= | | | |(src=139.23.203.23, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |--------------------->| | | | [Response] | | | |<---------------------| | | [Response] | | | |<------------------| | | [Response] | | | |<---------------------| | | | Data Traffic (unidirectional) | |================================================================>| Figure 8: Sender-Initiated Message Flow with Firewalls 9.3 Receiver-Initiated Message Flow with a Firewall and a NAT The message flow in Figure 9 introduces a NAT box (NAT 1) along the path between Host A and Host B additional to a firewall at Network B. Note that NAT 1 might additionally have firewall functionality which would require to install policy rules in addition to to obtain a NAT binding. The message flow assumes that Host A with source IP address 10.1.0.5 wants to transmit data traffic at source port 1200 (for example UDP / not shown in this example) to destination address 17.12.23.5 at destination port number 600. Host A does not requires a particular NAT H. Tschofenig et. al. [Page 23] Internet Draft CASP Midcom 23 October 2002 binding. Instead the provided NAT binding is provided as a NAT-Object in response. If Host A would like to request a particular NAT binding then the NAT-Object has to be included in the initial PATH message. As soon as the signaling message reaches NAT 1 a NAT binding is requested and the result of this request is placed into the Traffic selector field (i.e. src ip address is changed from 10.1.0.5 to 139.23.203.30 and the sport is rewritten from 1200 to 5000). When the signaling messages is successfully processed by FW 2 and forwarded to Host B a CREATE message with the indicated Traffic Selector is returned. A copy of the received Traffic Selector is placed into the NAT-Object. By returning the NAT-Object information Host A is able to learn which IP address and port information is seen by Host B. This IP address and port information would then included in for example a SDP of a SIP message. The CREATE message is routed backwards toward Host A (since the path is pinned down). The exchange of end-to-end messages after a successful signaling message exchange might be required to exchange parameters about the subsequent data traffic. Finally Host A starts to transmit data packets to Host B. 9.4 Sender-Initiated Message Flow with a Firewall and a NAT Figure 10 shows a sender-initiated signaling message flow whereby FW 2 in Network B initially rejects the signaling message due to an authentication/authorization failure. The returned RESPONSE message includes among the error code, information about the entity creating the error (in this case FW2@NetworkB) and optionally a challenge value. The challenge value allows Host A to either provide a freshness guarantee based on the challenge value and/or based on a timestamp. The usage of CMS allows Host A and Network B to use symmetric and asymmetric credentials for authentication. In any case a Credential object is attached to the CREATE signaling message. The Credential object securely binds a timestamp or a sequence number (to prevent replay attacks), identities, lifetime and possibly Traffic Selector information to the cryptographic credentials. Note that the RESPONSE message might return a NAT-Object if requested. Host A retransmits a new signaling message. After verification of the request and the credentials FW 2 forwards the message to Host B. As in previous examples Host B returns a RESPONSE message with a NAT-Object back to Host A. The message flow shows the following protocol features: H. Tschofenig et. al. [Page 24] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | NAT 1| | | | FW 2| Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ |Path(TS= | | | |(src=10.1.0.5, | | | | dst=17.12.23.5, | | | | sport=1200, |Path(TS= | | | dport=600) |(src=139.23.203.23,| | |--------------------->| dst=17.12.23.5, | | | | sport=5000, |Path(TS= | | | dport=600) |(src=139.23.203.23, | | |------------------>| dst=17.12.23.5, | | | | sport=5000, | | | | dport=600) | | | |--------------------->| | | | | | | |Create(TS= | | | |(src=139.23.203.23, | | |Create(TS= | dst=17.12.23.5, | | |(src=139.23.203.23,| sport=5000, | | | dst=17.12.23.5, | dport=600); | |Create(TS= | sport=5000, | NAT-Object= | |(src=10.1.0.5, | dport=600); |(src=139.23.203.23, | | dst=17.12.23.5, | NAT-Object= | dst=17.12.23.5, | | sport=1200, |(src=139.23.203.23,| sport=5000, | | dport=600); | dst=17.12.23.5, | dport=600)) | | NAT-Object= | sport=5000, |<---------------------| |(src=139.23.203.23, | dport=600)) | | | dst=17.12.23.5, |<------------------| | | sport=5000, | | | | dport=600)) | | | |<---------------------| | | | | | | | For example: SIP Signaling | |<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>| | | | | | Data Traffic (unidirectional) | |================================================================>| Figure 9: Receiver-Initiated Message Flow with a Firewall and a NAT - End-to-Middle Authentication by including a CMS object H. Tschofenig et. al. [Page 25] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | NAT 1| | | | FW 2| Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ |Create(TS= | | | |(src=10.1.0.5, |Create(TS= | | | dst=17.12.23.5, |(src=139.23.203.23,| | | sport=1200, | dst=17.12.23.5, | | | dport=600) | sport=5000, | | |--------------------->| dport=600) | | | |------------------>| | | |Response(ErrorCode=| | |Response(ErrorCode= |"Auth. Required", | | |"Auth. Required", | FW2@NetworkB, | | | FW2@NetworkB, | challenge=0x7a..8,| | | challenge=0x7a..8, |<------------------| | |<---------------------| | | |Create(TS= | | | |(src=10.1.0.5, | | | | dst=17.12.23.5, |Create(TS= | | | sport=1200, |(src=139.23.203.23,| | | dport=600) | dst=17.12.23.5, |Create(TS= | | Credentials(...)) | sport=5000, |(src=10.1.0.5, | |--------------------->| dport=600) | dst=17.12.23.5, | | | Credentials(...)) | sport=1200, | | |------------------>| dport=600) | | | |--------------------->| | | | Response( | | | Response( | NAT-Object(...)) | | Response( | NAT-Object(...)) |<---------------------| | NAT-Object(...)) |<------------------| | |<---------------------| | | | | SIP Signaling | | |<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>| | | | | | Data Traffic (unidirectional) | |================================================================>| Figure 10: Sender-Initiated Message Flow with a Firewall and a NAT (Credential object) to the signaling message after the authentication/authorization failure. If the Credential object is included into the first CREATE signaling message then no such H. Tschofenig et. al. [Page 26] Internet Draft CASP Midcom 23 October 2002 error message is returned. However, in that case replay protection can only be based on timestamps (loosely synchronized clocks). - A NAT-Object is included in the RESPONSE message to let the signaling message initiator to return the public IP address. - The RESPONSE message indicating an error could also return a NAT- Object to provide initial information to the - The same protocol operations can be used without NATs (only firewalls). 9.5 Sender-Initiated NAT/Firewall Traversal with Authorization Token The next scenario is slightly more complicated in the sense that authorization information for Network B is provided by Host B. Host B first request an authorization token from an entity in the local network by some means. This token is then communicated to Host A using an end- to-end protocol such as SIP or HTTP. This token then provides the necessary trust for Network B to allow the CREATE message to install policy rules at FW 2. Note that this message flow is different compared to the scenario described in Figure 10. In this case no pre-established cryptographic credentials between Host A and Network B are present before the protocol is used between Host A and Host B. The sender-initiated message flow is similar to the above-described flows with the only exception that the Authorization Token is included. The token is removed at FW 2 after successful verification. 9.6 Sender-Initiated Firewall Signaling only at the Access Network Sometimes people argue that the signaling message exchange should be done locally at the network access only because per-flow signaling messages are not processed in the core network. Instead of sending the signaling messages from one access network to the other whereby the signaling messages are transparent in the core each host transmits signaling messages independently in its own network. Although the concept sounds very simple at the first glance it turns out to be very complex in the generic case. Most difficulties appear because of the asymmetric routing architecture. Establishing policy rules in the uplink direction is fairly simple and requires only a mechanism which allows some sort of scoping (i.e. signaling messages have to terminate somewhere in the access network) without actually indicating the end- point. Casp provides means for scoping and local access network signaling. The installation of policy rules on the downlink direction is complicated because some topology information inside the network must be known in order to avoid policy rule creation at the H. Tschofenig et. al. [Page 27] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | NAT 1| | | | FW 2| Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ | | | Authorization | | | | Token | | | | Request | | | |<---------------------| | | | Authorization | | | End-to-End | Token | | | Communication | Response | | | (Authorization |--------------------->| | | Token) | | |<----------------------------------------------------------------| |Create(TS= | | | |(src=10.1.0.5, | | | | dst=17.12.23.5, |Create(TS= | | | sport=1200, |(src=139.23.203.23,| | | dport=600); Token) | dst=17.12.23.5, |Create(TS= | |--------------------->| sport=5000, |(src=10.1.0.5, | | | dport=600); Token)| dst=17.12.23.5, | | |------------------>| sport=1200, | | | | dport=600) | | | |--------------------->| | | | Response( | | | | NAT-Object(...)) | | | Response( |<---------------------| | | NAT-Object(...)) | | | Response( |<------------------| | | NAT-Object(...)) | | | |<---------------------| | | | | SIP Signaling | | |<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>| | | | | | Data Traffic (unidirectional) | |================================================================>| Figure 11: Sender-Initiated NAT/Firewall Traversal with Authorization Token wrong devices. Hence there is a built-in risk to cause the protocol to fail (i.e. to install policy rules at the wrong location). H. Tschofenig et. al. [Page 28] Internet Draft CASP Midcom 23 October 2002 For the message flow described in Figure 12 we assume the following protocol behavior: - Host A and Host B initiate a bi-directional Traffic Selector establishment with a scope restricted to the local access network only. Without some sort of bi-directional signaling message exchange a sort of TRIGGER message is required to initiate a downlink Traffic Selection establishment. - Based on the characteristics of signaling message exchanges local at both access networks assumptions about the topology must be made (or some topology information must be known). - In this simplified message flow no NAT device is present. - Host A has a-priori knowledge about the Traffic Selector for the inbound traffic (i.e. src=17.12.23.5 and sport=601). With the initial CREATE message Host A already supplies Traffic Selector information for the bi-directional reservation (i.e. the CREATE message by Host A is followed by another CREATE message from FW 1). To kept the CREATE signaling message within the local access network scoping is used. Indicating a particular IP address might also be possible but often the endpoint is unknown to the end host. As a result of successful processing a CREATE message is returned in response with the already provided Traffic Selector. Optionally an end-to-end message communication might follow to transmit Traffic Selector information from Host A to Host B. In most cases some communication is, however, required. Similar as in Network A a CREATE message is initiated by the end host with the Next object set to another CREATE message. Finally if everything was successful data can be exchanged in both directions on port 5001<-601 and a 5000->600. 9.7 Sender-Initiated NAT and Firewall Traversal within the Access Network The message flow described in Figure 13 extends the description in Figure 12 by using a uni-directional signaling exchange. As a consequence of this extension a TRIGGER message is required to cause a downlink signaling message to be sent within Network B. In order to avoid this message Network B could intercept the end-to-end message exchange to trigger a signaling message to Host B. However, this approach might suffer from the problem to be able to read and evaluate end-to-end signaling messages. H. Tschofenig et. al. [Page 29] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | FW 1 | | | | FW 2 | Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ |Create(TS=(src=139.23.205.5, | | | dst=17.12.23.5, sport=5000, dport=600); | | | Next=Create(TS=(src=17.12.23.5, | | | dst=139.23.205.5,sport=601,dport=5001)); | | | Scope=NetworkA) | | | |--------------------->| | | |Create(TS= | | | |(src=17.12.23.5, | | | | dst=139.23.205.5, | | | | sport=601, | | | | dport=5001)) | | | |<---------------------| | | | | End-to-End | | | | Communication | | | | (TS) - Optional | | |<--------------------------------------------------------------->| | |Create(TS=(src=17.12.23.5, | | | dst=139.23.205.5, sport=601, dport=5001);| | | Next=Create(TS=(src=139.23.205.5, | | | dst=17.12.23.5, sport=5000, dport=600)); | | | Scope=NetworkB) | | | | |<---------------------| | | |Create(TS= | | | |(src=139.23.205.5, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600)) | | | |--------------------->| | Data Traffic (bi-directional) | |<===============================================================>| Figure 12: Sender-Initiated Firewall Signaling only at the Access Network Additionally a NAT device is used in Network A which requires Host A to request a NAT binding and the corresponding NAT-Object which is then communicated to Host B. Using the Traffic Selector information inside the NAT-Object Host B learns the public IP address and port information of the data traffic transmitted by Host A. H. Tschofenig et. al. [Page 30] Internet Draft CASP Midcom 23 October 2002 The access network signaling message exchange requires some topology information as explained in previous figures. The TRIGGER message must cause a downlink signaling message to be initiated by a network device which where the data traffic of Host A is sent through. A even more difficult example would address a topology where each network is equipped with a NAT. The same is true for Traffic Selector installation for data traffic flowing in both directions with one or two NATs. 10 Security Considerations Installing packet filters to one or more firewalls is a security sensitive process. Security protection of signaling messages is necessary in order to defeat a number of threats. This section gives a brief discussion of possible threats and addresses their corresponding countermeasures. 10.1 Threats Denial of Service: Denial of service attacks can be launched by modifying messages used during the discovery process. A client could then be forced to contact a "wrong" firewall which is outside the data path. Furthermore it is possible to flood a firewall with bogus request and thereby cause massive state and computational resources to be allocated as part of the key exchange process. Furthermore an adversary can modify the Traffic Selector of a request to cause a large number of packet filters to be allocated. An adversary might also remove administrator installed packet filters which are not related to previous packet filter installations by users. Man-in-the-Middle: MITM attacks are possible during the discovery process where the entity of a firewall is discovered. In this case the user might be convinced to communicate with a firewall which is not the case. Many of these attacks are related to the discovery mechanism and therefore also described in [1]. Further threats which are not specific to the scout mechanism but also related to the next-hop discovery mechanism require further investigation (such as SLP, DHCP, DNS, etc.). The authors of some of these configuration mechanisms have already identified potential vulnerabilities and provide the corresponding security protection. Eavesdropping: An eavesdropper might be able to learn some installed packet filters by listening to the signaling message communication between a client and a firewall. Furthermore it H. Tschofenig et. al. [Page 31] Internet Draft CASP Midcom 23 October 2002 +------------------------------+ +-----------------------------+ | +------+ +------+ | | +------+ +--------+ | | |Host A| Network | NAT 1| | | | FW 2 | Network | Host B | | | +--+---+ A +--+---+ | | +--+---+ B +---+----+ | +-+--+-------------------+-----+ +----+-----------------+----+-+ |Create(TS= | | | |(src=192.168.1.5, | | | | dst=17.12.23.5, | | | | sport=5000, | | | | dport=600); | | | | Scope=NetworkA) | | | |--------------------->| | | |Response( | | | |NAT-Object= | | | |(src=139.23.203.30, | | | | dst=17.12.23.5, | | | | sport=8000, | | | | dport=600)) | End-to-End | | |<---------------------| Communication | | | | (NAT-Object) | | |<--------------------------------------------------------------->| | | |Trigger(TS= | | | |(src=139.23.205.30, | | | | dst=17.12.23.5, | | | | sport=8000, | | | | dport=600); | | | | Scope=NetworkB) | | | |<---------------------| | | |Create(TS= | | | |(src=139.23.205.30, | | | | dst=17.12.23.5, | | | | sport=8000, | | | | dport=600)) | | | |--------------------->| | Data Traffic (uni-directional) | |================================================================>| Figure 13: Sender-Initiated NAT and Firewall Traversal within the Access Network might be possible to learn an authorization token exchanged between the two entities or between entities along the path. Since the session identifier is used to uniquely identify state establish along entities along the path an adversary H. Tschofenig et. al. [Page 32] Internet Draft CASP Midcom 23 October 2002 might reuse this identifier to refer to existing state information. Integrity Violation: By modifying a request message an adversary can delete installed firewall filters, install filters using a different authorization identity or to create filters with a large lifetime. Masquerading: An adversary might gain information by querying installed packet filters at a firewall by masquerading the identify or a real user. This might be used for subsequent attacks. Rogue Firewall: An adversary at a compromised firewall might exploit an existing trust relationship to install or remove filters at other firewalls. Furthermore it is possible to return a NAT object with wrong information causing subsequent data traffic to be send to an arbitrary location. Unauthorized Access: A regular user might install firewall filters although he is not allowed because of missing authorization. Administrators are usually very concerned about installing packet filters from users access from an external network. Replay Attacks: An adversary might eavesdrop CASP-Midcom signaling messages and use them later for a replay attack. Furthermore an adversary might be able to collect authorization tokens and reuse them in a different context or later in time to open holes into a firewall. Privacy Violation: Adversaries can learn about the identities participating in the message exchange by eavesdropping information exchanged between the two end-systems. Especially authorization tokens exchanged between end-systems outside the CASP protocol (as explained in Section 3.4) represent a vulnerability. 10.2 Countermeasures To prevent the above-listed attacks a number of countermeasures are taken: Denial of Service: To limit denial of service attacks a number of countermeasure were taken. First the scout protocol (and other configuration mechanisms) experience some protection to prevent basic attacks. Furthermore it is necessary to mutually authenticate and authorize both peers after establishing a transport layer connection as described in [1]. Since the H. Tschofenig et. al. [Page 33] Internet Draft CASP Midcom 23 October 2002 authentication and key exchange protocol requires state and computational resources it has to be resistant against denial of service attacks. When transmitting CASP-Midcom specific information protection of the requests itself is necessary to prevent an adversary from object modification which otherwise would cause unpredictable behavior. Man-in-the-Middle: MITM attacks during the discovery phase are prevented by secure configuration mechanisms. The scout protocol experiences limited security protection by its nature. An authentication and authorization step is required after learning the identity of the next CASP peer. MITM adversaries will experience difficulties launching a successful attack after transport layer connection establishment because of the signaling message protection. Eavesdropping: Eavesdropping of signaling messages is prevented by using either IPSec ESP (without NULL encryption) or by using TLS (with encryption cipher-suites). It is therefore not possible to learn authorization tokens, session identifiers or other firewall packet filter specific information that might be useful for an adversary eavesdropping on for example a wireless link. With the suggested security protection eavesdropping is therefore only possible at CASP-Midcom aware nodes participating in the signaling message exchange. This is, however, intentional and required for the operation of the protocol. Integrity Violation: Modifying the content of signaling packets is prevented by either IPSec or TLS. Exchanged information thereby experiences both confidentiality as well as integrity protection. The usage of integrity protection with IPSec ESP is strongly recommended. Masquerading: Spoofing an identity to be able to delete or query installed packet filter information is prevented by data origin authentication of transmitted signaling messages. For the establishment of the required security associations mutual authentication is assumed. Rogue CASP-Midcom Node: Firewalls are security sensitive network devices. An adversary can use a compromised firewall in a number of ways. To prevent a compromised firewall to harm other firewalls trust might be limited and strong verification of request might be required. In case of missing peer-to-peer trust relationships more sophisticated protocol handling (as described in 3.3 and 3.4) is necessary. Such a handling makes it more difficult for an adversary to perform a successful H. Tschofenig et. al. [Page 34] Internet Draft CASP Midcom 23 October 2002 attack. Note that any malicious CASP-Midcom (or CASP node in general) can impact the security of other entities (not just firewalls). Unauthorized Access: Differentiation of access rights between various users and user-groups is common. The same type of authorization mechanisms based on access control lists can be applied. If authorization tokens are used then additionally a locally known user must be able to request such a token. For the trust relationship described in 3.3 one administrative domain must have a pre-established security association. The establishment of such this security association is usually bound to some access control rights. Privacy Violation: Encryption of information about user identities contained in authorization token prevents an adversary from obtaining user specific information. Currently only a keyed message digest function (HMAC) is provided to protect the authorization token content against modification. Either a custom mechanisms for encrypting some token parts or CMS encryption could be used to provide the necessary protection. Further investigation is required. To summarize: CASP relies on the security mechanisms described in [1]. Securing the messaging layer in a CASP-peer to CASP-peer fashion is provided either by IPsec or by TLS. Non peer-to-peer protection of client layer objects is provided by CMS which allows CASP-Midcom objects defined in this document to be encapsulated and protected by CMS. 11 Open Issues - The format of the objects need more work. - The structure of the authorization token needs more investigation. There is also a question about a custom token format or a CMS object. Both have advantages and disadvantages. - Terminology needs to be aligned with the Midcom Requirements and Framework drafts. Issues (such as groups of policy rules) discussed in these documents have to be mapped against the issues in this draft. - Traffic Selector attributes need some work to avoid the complex verification in case of overlapping rules. It must not be possible to prevent an administrator-created deny policy rule to become ineffective by an added allow policy rule with an overlapping port range. Hence it might be necessary to have an additional verification step to prevent these type of problems. H. Tschofenig et. al. [Page 35] Internet Draft CASP Midcom 23 October 2002 12 Acknowledgements We would like to thank (in alphabetical order) Steffen Fries, Xiaoming, Fu, Joerg Ottensmayer and Martin Reinhardt for their comments to this draft. A Object Format Details For concreteness, we describe a strawman packet format below. All CASP messages are composed of one or more TLV (type-length-value) objects. Within each object, elements are aligned on multiples of their size, to speed processing. All objects have lengths of a multiple of 32 bits. The length field in the object indicates the number of 32-bit words. We describe messages and objects as pseudo-C structures. Elements are enumerated in transmission order. We use the data types uint8, uint16, uint32, uint64, uint128 to identify unsigned integers with 8, 16, 32, 64 or 128 bits, respectively. Definitions for IPv4 and IPv6 address for the usage with Traffic Selectors are already provided in [1]. IPSec ESP and AH SPIs is four bytes in length. typedef struct uint32 SPI; Using a custom authorization token format might be more lightweight. (TBD: Authorization tokens can either be defined as CMS objects or as a objects with a custom structure. Using CMS object would simplify its definition and would allow a more generic usage. CMS objects are larger in size than custom build tokens. Some investigation is required to find the optional usage.) The following fields could be included in such a token: typedef struct { uint32 ID; Identity token_creator, token_requestor, token_user; Identity src_addr, dst_addr; NTP_TIMESTAMP timestamp; uint8 AlgorithmID; uint8 HMAC[20]; H. Tschofenig et. al. [Page 36] Internet Draft CASP Midcom 23 October 2002 ...Object describing the authorized TS.... } AuthToken; An authorization token is identified by a 32-bit number. The src_addr and the dst_addr attribute might contains an IPv4, IPv6 address or a FQDN. The Identity can either be a generic Unicode and ASCII ID, a FQDN or a URI. Unicode Identifiers (Unicode_ID), ASCII Identifiers and FQDNs are defined in [9]. The Uniform Resource Identifiers (URI) is defined in [10]. Since a NAT may change the source address it is possible to specify a FQDN, URI or an ASCII/Unicode ID or to omit the field. The token_creator specifies the identity of the entity which was responsible for the creation of the token. Information about this entity is necessary to route the token to the same entity for verification. Information about the entity requesting the token might be required. Finally the user identity obtained from authentication might be included. Especially if authentication to a firewall in the middle of the CASP-chain is required then this information provides additional authorization information. For cryptographic protection of the authorization token a keyed message digest HMAC [11] is used whereby the used algorithm (MD5, SHA-1) is indicated in the AlgorithmID field. The secret key necessary for the HMAC computation needs to be locally known only since verification is done at the token creator. The format of the NTP timestamp is defined in [12]. Finally the object contains information about the authorized Traffic Selector. Since a NAT might change some of this information its usefulness is questionable. B Authors' Addresses Henning Schulzrinne Dept. of Computer Science Columbia University 1214 Amsterdam Avenue New York, NY 10027 USA EMail: schulzrinne@cs.columbia.edu Hannes Tschofenig Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany EMail: Hannes.Tschofenig@siemens.com H. Tschofenig et. al. [Page 37] Internet Draft CASP Midcom 23 October 2002 C Bibliography [1] H. Schulzrinne, H. Tschofenig, X. Fu, J. Eisl, and R. Hancock, "Casp - cross-application signaling protocol," Internet Draft, Internet Engineering Task Force, Sept. 2002. Work in progress. [2] P. Srisuresh, J. Kuthan, J. Rosenberg, A. Molitor, and A. Rayhan, "Middlebox communication architecture and framework," Internet Draft, Internet Engineering Task Force, Mar. 2002. Work in progress. [3] M. Shore, "The TIST (topology-insensitive service traversal) protocol," Internet Draft, Internet Engineering Task Force, May 2002. Work in progress. [4] M. Shore, "Towards a network-friendlier midcom," Internet Draft, Internet Engineering Task Force, June 2002. Work in progress. [5] H. Schulzrinne, H. Tschofenig, X. Fu, and J. Eisl, "A quality-of- service resource allocation client for casp," Internet Draft, Internet Engineering Task Force, Sept. 2002. Work in progress. [6] H. Tschofenig, "RSVP security properties," Internet Draft, Internet Engineering Task Force, June 2002. Work in progress. [7] T. Taylor, "Semantics which the MIDCOM protocol must support," Internet Draft, Internet Engineering Task Force, June 2002. Work in progress. [8] J. Manner et al. , "Localized RSVP," Internet Draft, Internet Engineering Task Force, May 2002. Work in progress. [9] S. Yadav, R. Yavatkar, R. Pabbati, P. Ford, T. Moore, S. Herzog, and R. Hess, "Identity representation for RSVP," RFC 3182, Internet Engineering Task Force, Oct. 2001. [10] T. Berners-Lee, R. Fielding, and L. Masinter, "Uniform resource identifiers (URI): generic syntax," RFC 2396, Internet Engineering Task Force, Aug. 1998. [11] H. Krawczyk, M. Bellare, and R. Canetti, "HMAC: keyed-hashing for message authentication," RFC 2104, Internet Engineering Task Force, Feb. 1997. [12] D. L. Mills, "Network time protocol (version 3) specification, implementation," RFC 1305, Internet Engineering Task Force, Mar. 1992. H. Tschofenig et. al. [Page 38] Internet Draft CASP Midcom 23 October 2002 Table of Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . 2 2 Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 3 Trust Relationships . . . . . . . . . . . . . . . . . . . 5 3.1 Peer-to-Peer Trust Relationship . . . . . . . . . . . . . 5 3.2 Intra-domain Trust Relationship . . . . . . . . . . . . . 6 3.3 Required End-to-Middle Trust Relationship . . . . . . . . 7 3.4 Missing Network-to-Network Trust Relationship . . . . . . 8 3.5 Off-Path Signaling . . . . . . . . . . . . . . . . . . . 13 4 Assumptions . . . . . . . . . . . . . . . . . . . . . . . 13 5 NAT Involvement . . . . . . . . . . . . . . . . . . . . . 13 6 Operation . . . . . . . . . . . . . . . . . . . . . . . . 15 7 Typical Policy Rule Attributes . . . . . . . . . . . . . 17 8 Objects . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.1 Logging Action . . . . . . . . . . . . . . . . . . . . . 18 8.2 ApplicationID . . . . . . . . . . . . . . . . . . . . . . 18 8.3 Next . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.4 Authorization Token . . . . . . . . . . . . . . . . . . . 19 8.5 CMS Credential Object . . . . . . . . . . . . . . . . . . 19 8.6 Time . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.7 Version . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.8 Status . . . . . . . . . . . . . . . . . . . . . . . . . 19 9 Basic Protocol Behavior . . . . . . . . . . . . . . . . . 19 9.1 Receiver-Initiated Message Flow with Firewalls . . . . . 20 9.2 Sender-Initiated Message Flow with Firewalls . . . . . . 22 9.3 Receiver-Initiated Message Flow with a Firewall and a NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 9.4 Sender-Initiated Message Flow with a Firewall and a NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.5 Sender-Initiated NAT/Firewall Traversal with Authorization Token . . . . . . . . . . . . . . . . . . . . . . . . 27 9.6 Sender-Initiated Firewall Signaling only at the Access Network . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 9.7 Sender-Initiated NAT and Firewall Traversal within the Access Network . . . . . . . . . . . . . . . . . . . . . . . . . 29 10 Security Considerations . . . . . . . . . . . . . . . . . 31 10.1 Threats . . . . . . . . . . . . . . . . . . . . . . . . . 31 10.2 Countermeasures . . . . . . . . . . . . . . . . . . . . . 33 11 Open Issues . . . . . . . . . . . . . . . . . . . . . . . 35 12 Acknowledgements . . . . . . . . . . . . . . . . . . . . 36 A Object Format Details . . . . . . . . . . . . . . . . . . 36 B Authors' Addresses . . . . . . . . . . . . . . . . . . . 37 C Bibliography . . . . . . . . . . . . . . . . . . . . . . 38 H. Tschofenig et. al. [Page 1]