Internet Engineering Task Force Maureen Stillman INTERNET DRAFT Ram Gopal Senthil Sengodan Nokia Erik Guttman Sun Microsystems Matt Holdrege Sonus Networks 12 December 2002 expires June 12, 2002 Threats Introduced by Rserpool and Requirements for Security in response to Threats Status of This Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [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 The list of Internet-Draft Shadow Directories can be accessed at: http://www.ietf.org/shadow.html. Abstract This Internet draft is an attempt to describe security threats against the Rserpool protocol. This draft presents requirements for a security solution to thwart these threats in environments where it is likely to be deployed. The threats and requirements identified herein and the document should be considered as work in progress. Stillman, et al. [Page 1] Internet Draft Threats Introduced by Rserpool 12 December 2002 Contents Status of This Memo 1 Abstract 1 1. Introduction 3 1.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 2. Threats 4 2.1 PE Registration/Deregistration flooding . . . . . . . . . 4 2.2 PE Registration/Deregistration flooding . . . . . . . . . 4 2.3 PE Registration/Deregistration spoofing . . . . . . . . . 4 2.4 PE Registration/Deregistration unauthorized . . . . . . . 5 2.5 Malicious ENRP server joins the group of legitimate ENRP servers . . . . . . . . . . . . . . . . . 5 2.6 Registration/deregistration with malicious ENRP servers . 5 2.7 Malicious ENRP Name Resolution .. . . . . . . . . . . . . 5 2.8 Malicious node performs a replay attack.. . . . . . . . . 6 2.9 Re-establishing PU-PE security during failover. . . . . . 6 2.10 Integrity . . . . . . . . . . . . . . . . . . . . . . . . 6 2.11 Data Confidentiality . . . . . . . . . . . . . . . . . . 6 2.12 ENRP Server Discovery . . . . . . . . . . . . . . . . . . 7 2.13 Application security . . . . . . . . . . . . . . . . . . 7 3. Security Considerations . . . . . . . . . . . . . . . . . . . . 8 3.1 Scenarios for using TLS with Rserpool . . . . . . . . . . 8 3.1.1 PE - ENRP security . . . . . . . . . . . . . . . . . 9 3.1.1.1 Scenario A - TLS only . . . . . . . . . . . . . . 10 3.1.1.2 Scenario B - TLS plus alternate method for client authentication . . . . . . . . . . . . . . . . . . 10 3.1.1.3 Open issues for ENRP-PE security . . . . . . . . . . 11 3.1.2 End user-ENRP security . . . . . . . . . . . . . . . . . 11 3.2 Scenarios for using IPsec with Rserpool . . . . . . . . . . 11 3.2.1 Scenario A - PU to ENRP server . . . . . . . . . . . . . 12 3.2.2 Scenario B - PE to ENRP server . . . . . . . . . . . . . 13 4. References . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14 6. Author's addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Stillman, et al. [Page 2] Internet Draft Threats Introduced by Rserpool 12 December 2002 1. Introduction RSERPOOL provides a session layer for robustness and performance. The session layer function may redirect communication transparently to upper layers. This alters the direct one-to-one association between communicating endpoints which typically exists between clients and services. In particular, secure operation of protocols often relies on assumptions at different layers regarding the identity of the communicating party and the continuity of the communication between endpoints. Further, the operation of RSERPOOL itself has security implications and risks. The session layer is organized and operates dynamically which imposes additional concerns for the overall security of the end-to-end application. This document explores the security implications of RSERPOOL, both due to its own functions and due to its being interposed between applications and transport interfaces. This draft is modeled after [MIPv6 threats] which is a threat analysis document for Mobile IP V6. 1.1 Definitions This document uses the following terms: ENRP Endpoint Name Resolution Protocol: Within the operational scope of Rserpool, ENRP defines the procedures and message formats of a distributed fault-tolerant registry service for storing, bookkeeping, retrieving, and distributing pool operation and membership information. ASAP Aggregate Server Access Protocol: A session layer protocol which uses the Endpoint Name Resolution Protocol (ENRP) to provide a high availability name space. ASAP is responsible for the abstraction of the underlying transport technologies, load distribution management,fault management, as well as the presentation to the upper layer (i.e., the ASAP user) a unified primitive interface. Operation scope: The part of the network visible to pool users by a specific instance of the reliable server pooling protocols. Pool (or server pool): A collection of servers providing the same application functionality. Pool handle (or pool name): A logical pointer to a pool. Each server pool will be identifiable in the operation scope of the system by a unique pool handle or "name". ENRP namespace (or namespace): A cohesive structure of pool names and relations that may be queried by an internal or external agent. Stillman, et al. [Page 3] Internet Draft Threats Introduced by Rserpool 12 December 2002 Pool element (PE): A server entity that runs ASAP and has registered to a pool. Pool user (PU): A server pool user that runs ASAP. Note, a PU can also be a PE if it has registered itself to a pool. ENRP namespace server (or ENRP server): Entity which runs ENRP and is responsible for managing and maintaining the namespace within the operation scope. 2. Threats 2.1 PE Registration/Deregistration flooding Threat: A malicious node could send a stream of false registrations/deregistrations on behalf of non-existent PEs to ENRP servers at a very rapid rate and thereby create unnecessary state in an ENRP server. Effect: Corrupting the name server database and/or disabling the Rserpool discovery and naming function. Requirement: An ENRP server that receives a registration/deregistration should not create or update state information until it has authenticated the PE. 2.2 PE Registration/Deregistration flooding Threat: A malicious node or PE could send a stream of registrations/deregistrations that are unauthorized to register/deregister - to ENRP servers at a very rapid rate and thereby create unnecessary state in an ENRP server. Effect: Corrupting the name server database and/or disabling the Rserpool discovery and naming function. Requirement: An ENRP server that receives a registration/deregistration should not create or update state information until the authorization of the registering/de-registering entity is verified. 2.3 PE Registration/Deregistration spoofing Threat: A malicious node could send false registrations/deregistrations to ENRP servers concerning a legitimate PE thereby creating false state information in the ENRP servers. Effect: Misinformation in the ENRP server concerning a PE would get propagated to other ENRP servers thereby corrupting the ENRP database. Requirement: An ENRP server that receives a registration/deregistration should not create or update state information until it has authenticated the PE. Stillman, et al. [Page 4] Internet Draft Threats Introduced by Rserpool 12 December 2002 2.4 PE Registration/Deregistration unauthorized Threat: A PE who is not authorized to join a pool could send registrations/deregistrations to ENRP servers thereby creating false state information in the ENRP servers. Effect: Misinformation in the ENRP server concerning a PE would get propagated to other ENRP servers thereby corrupting the ENRP database. Requirement: An ENRP server that receives a registration/deregistration should not create or update state information until it has authorized the requesting entity. 2.5 Malicious ENRP server joins the group of legitimate ENRP servers Threat: Malicious ENRP server joins the group of legitimate ENRP servers with the intent of propagating inaccurate updates to corrupt the ENRP database. Effect: Inconsistent ENRP database state. Requirement: Mutual authentication of ENRP servers. 2.6 Registration/deregistration with malicious ENRP server Threat: A PE unknowingly registers/deregisters with malicious ENRP server. Effect: Registration might not be properly processed or ignored. Requirement: PE needs to authenticate the ENRP server. 2.7 Malicious ENRP Name Resolution Threat: The ASAP protocol receives a name resolution response from an ENRP server, but the ENRP server is malicious and returns random IP addresses or an inaccurate list in response to the pool handle. Effect: PU application communicates with the wrong PE or is unable to locate the PE since the response is incorrect in saying that a PE with that name did not exist. Requirement: ASAP needs to authenticate the ENRP server. Stillman, et al. [Page 5] Internet Draft Threats Introduced by Rserpool 12 December 2002 2.8 Malicious node performs a replay attack Threat: A malicious node could replay the entire message previously sent by a legitimate entity. This could create false/unnecessary state in the ENRP servers when the replay is for registration/de-registration or update. Effect: False/extra state is maintained by ENRP servers Requirement: Care should be taken to prevent replay attacks. 2.9 Re-establishing PU-PE security during failover Threat: PU fails over from PE A to PE B. In the case that the PU had a trusted relationship with PE A, then the PU will likely not have the same relationship established with PE B. Effect: If there was a trust relationship involving security context between PU and PE A, the equivalent trust relationship will not exist between PU and PE B. This will violate security policy. Requirement: Either notify the application when fail over occurs so the application can take appropriate action to establish a trusted relationship with PE B OR reestablish the security context transparently. 2.10 Integrity Threats: a) ENRP response to name resolution is corrupted during transmission b) ENRP peer messages are corrupted during transmission c) PE sends update for values and that information is corrupted during transmission Effect: ASAP receives corrupt information for pool handle resolution which the PU believes to be accurate. Requirement: Integrity mechanism needed. 2.11 Data Confidentiality Threat: An eavesdropper capable of snooping on fields within messages in transit, may be able to garner information such as topology/location/IP addresses etc. that may not be desirable to divulge. Effect: Information that an administrator does not wish to divulge are divulged. Requirement: Provision for Data confidentiality service. Stillman, et al. [Page 6] Internet Draft Threats Introduced by Rserpool 12 December 2002 2.12 ENRP Server Discovery Threat A thwarting successful discovery: When a PE wishes to register with an ENRP server, it needs to discover an ENRP server. An attacker could thwart the successful discovery of ENRP server(s) thereby inducing the PE to believe that no ENRP server is available. For instance, the attacker could reduce the returned set of ENRP servers to null or a small set of inactive ENRP servers. Threat B: A similar thwarting scenario also applies when an ENRP server or ASAP on behalf of a PU needs to discover ENRP servers. Threat C: Spoofing successful discovery: An attacker could spoof the discovery by claiming to be a legitimate ENRP server. When a PE wishes to register, it finds the spoofed ENRP server. Threat D: A similar spoofing scenario also applies when an ENRP server or ASAP on behalf of a PU needs to discover ENRP servers. Effect A: A PE that could have been in an application server pool does not become part of a pool. The PE does not complete discovery operation. This is a DOS attack. Effect B: An ENRP server that could have been in an ENRP server pool does not become part of a pool. A PU is unable to utilize services of ENRP servers. Effect C,D: This malicious ENRP would either misrepresent, ignore or otherwise hide or distort information about the PE to subvert RSERPOOL operation. Requirement: Discovery phase needs to be authenticated. 2.13 Security State for Applications The security context of an application is a subset of the overall context, and context or state sharing is explicitly out-of-scope for RSerPool. Because RSerPool does introduce new security vulnerabilities to existing applications application designers employing RSerPool should be aware of problems inherent in failing over secured connections. Security services necessarily retain some state and this state may have to be moved or re-established. Examples of this state include authentication or retained ciphertext for ciphers operating in cipher block chaining (CBC) or cipher feedback (CFB) mode. These problems must be addressed by the application or by future work on RSerPool. Requirement: None at this time. Future Rserpool work may address this issue. Stillman, et al. [Page 7] Internet Draft Threats Introduced by Rserpool 12 December 2002 3. Security Considerations for Rserpool Due to varying requirements and multiple use cases of Rserpool, we point out two basic security protocols, IPsec and TLS. We specifically do not discuss whether one security protocol would be preferred over the other. This choice will be made by designers and network architects based on system requirements. For networks that demand IPsec security, implementations MUST support draft-ietf-ipsec-sctp-02.txt which describes IPsec-SCTP. IPsec is two layers below RSerPool. Therefore, if IPsec is used for securing Rserpool, no changes or special considerations need to be made to Rserpool to secure the protocol. For networks that cannot or do not wish to use IPsec and prefer instead TLS, implementations MUST support TLS with SCTP as described in draft-ietf-tsvwg-tls-over-sctp-00.txt or TLS over TCP as described in RFC 2246. When using TLS/SCTP we must ensure that RSerPool does not use any features of SCTP that are not available to an TLS/SCTP user. This is not a difficult technical problem, but simply a requirement. When describing an API of the RSerPool lower layer we have also to take into account the differences between TLS and SCTP. This is also not difficult, but it is in contrast to the IPsec solution which is transparently layered below Rserpool. Support for security is required for the ENRP server and the PEs. Security support for the Rserpool end user is optional. Note that the end user implementation contains a piece of the Rserpool protocol -- namely ASAP -- whereby the pool handle is passed for name resolution to the ENRP server and IP address(es) are returned. The argument for optional end user security is as follows: If the user doesn't require security protection for example, against eavesdropping for the request for pool handle resolution and response, then they are free to make that choice. However, if the end user does require security, they are guaranteed to get it due to the requirement for security support for the ENRP server. It is also possible for the ENRP server to reject an unsecured request from the user due to its security policy in the case that it requires enforcement of strong security. But this will be determined by the security requirements of the individual network design. 3.1 Scenarios for using TLS with Rserpool This section describes security scenarios for two different parts of the Rserpool protocol. First, we examine the interaction between the PE and ENRP server. Next we examine a scenario for the end user (client using ASAP) and ENRP server interaction. Security provided by TLS includes authentication, confidentiality, integrity, protection from replay attack and protection from downgrade attack (that is coercing the server to go with a weaker ciphersuite than the client-server together can support). Stillman, et al. [Page 8] Internet Draft Threats Introduced by Rserpool 12 December 2002 TLS features: ciphersuites are comprised of a triple (key exchange algorithm WITH encryption algorithm, MAC algorithm). The ciphersuite is negotiated between the client and server with the server choosing the ciphersuite. This negotiation allows new cipher suites to be easily incorporated once they are standardized (example: AES) and old ones to be dumped when they are shown to be easily cracked. Confidentiality is optional meaning the second parameter can be null. A cipher suite of NULL WITH NULL NULL is deprecated (meaning don't do it). It offers no security. Once you have successfully negotiated a TLS connection, TLS allows you to resume sessions at a later time if the server is willing to do so. How long a session can be around before it can not be resumed is a matter of local policy. Session resumption saves on performance (CPU cycles) and handshake messages. Assumptions: (1) Each ENRP name server possesses a certificate (probably X.509 v3) signed by a CA and an associated private key. This allows the server to validate itself as a legitimate ENRP server for the domain foo.bar.com. It will contain this domain name in the certificate to allow the PE to check this against it's DNS inquiry. (2) PEs may authenticate using TLS, SRP or some other authentication protocol. We could have each PE use TLS and supply a client certificate but this might not scale well. Therefore, I have suggested other authentication mechanisms for PE to ENRP server. 3.1.1 PE - ENRP security TLS is a client-server protocol and the client and server play different roles. In this scenario the PE functions as the TLS client and ENRP functions as the TLS server. We describe two different TLS scenarios in this section to enforce PE - ENRP security. For scenario A ENRP and PE use TLS for mutual authentication. In scenario B, ENRP servers authenticate themselves using TLS and PEs authenticate themselves using some other unspecified authentication mechanism. This scenario will allow either TCP or SCTP as the transport for TLS. However, the current consensus is that the PEs should use SCTP to communicate with the (ENRP) name server Stillman, et al. [Page 9] Internet Draft Threats Introduced by Rserpool 12 December 2002 3.1.1.1 Scenario A -- TLS only 1) PE wants to register with a ENRP server. Uses DNS to lookup foo.bar.com ENRP server. 2) Establish a TLS connection with ENRP server. Negotiate chiphersuite. 3) PE (client) Gets the ENRP server certificate as part of the TLS protocol. a) Validate the signature; b) check expiration date; C) OCSP to check if the certificate has been revoked d) check the certificate contents name against the dns FQDM. 3) Get the client (PE) certificate as part of the TLS protocol. a) Validate the signature; b) check expiration date; C) OCSP to check if the certificate has been revoked d) check the cert contents against what? (This is a problem) If any checks fail, send back error message (defined by TLS) and abort. 4) TLS session is now established with mutual authentication of the PE and ENRP server 5) PE Sends registration message with pool handle name using TLS session 6) ENRP will either authorize that PE to join that pool or ask a third party (such as AAA) to authorize 3.1.1.2 Scenario B -- TLS plus alternate method for PE (client) authentication 1) PE wants to register with a ENRP server. Uses DNS to lookup foo.bar.com ENRP server. 2) Establish a TLS session with ENRP server. Negotiate chiphersuite. 3) Get the ENRP server cert as part of the TLS protocol. a) Validate the signature; b) check expiration date; C) OCSP to check if the cert has been revoked If any checks fail, send back error message (defined by TLS) and abort. 4) TLS session is now established with au thentication of the ENRP server 5) authenticate the client -- using the established TLS session, perform client authentication mechanism using SRP, CHAP, etc. 6) If client auth fails, then the server terminates the TLS session 7) TLS session is now established with mutual authen of the PE and ENRP server 8) PE Sends registration message with pool handle name using TLS session 9) ENRP will either authorize that PE to join that pool or ask a third party to authorize. Stillman, et al. [Page 10] Internet Draft Threats Introduced by Rserpool 12 December 2002 3.1.1.3 Open issues for ENRP-PE security 1) Order of authentication -- ENRP server first, PE client second OR PE client first then ENRP server Should we authenticate the PE (client) first and then set up the TLS connection if the authentication of the PE is oK or vice versa? ENRP - PE Advantages: PE knows it is talking with a genuine name server quickly. The other way would take longer for it to figure out it was talking with a bogus ENRP. The malicious ENRP could accept its authentication credentials and only later it would find out the ENRP server is not legitimate. This would waste time. PE - ENRP Disadvantage - Alternatively, malicious ENRP server could just reject its authen credentials and the PE would never find out that it was talking with the "bad" ENRP server. Conclusion: Authenticate ENRP server first, then the PE (client). 2) Do we allow authentication but no confidentiality in PE - ENRP communications? This is supported by TLS. If we want Authentication but no confidentiality, use TLS cipher suite: key exchange algorithm WITH no encryption algorithm, MAC algorithm i.e., xxx WITH NULL, yyy 3.1.2 End user-ENRP security For this scenario, we only need to authenticate the ENRP server. Presumably, any end user can contact the name server. In this scenario the end user functions as the TLS client and ENRP functions as the TLS server. 1) Using ASAP the end user wants to resolve a name using ENRP server. Uses DNS to lookup foo.bar.com ENRP server. 2) Establish a TLS session with ENRP server. Negotiate chiphersuite. 3) Get the ENRP server cert as part of the TLS protocol. a) Validate the signature; b) check expiration date; C) OCSP to check if the cert has been revoked If any checks fail, send back error message (defined by TLS) and abort. 4) TLS session is now established with authen of the ENRP server Send request for name/address resolution using TLS session; get response 5) We can resume this session if local policy allows it (the ENRP server policy, that is) 3.2 Scenarios for using IPsec with Rserpool This scenario works with any transport protocol, although TCP or SCTP are strongly recommended. Stillman, et al. [Page 11] Internet Draft Threats Introduced by Rserpool 12 December 2002 3.2.1 Scenario A PU to ENRP server To pre-establish one/more alternative IPSec security associations (SA) that can be used should the primary SA become unusable (due to server failure). No context sharing is done between SAs that are terminated at the different servers. PU ENRP1 ENRP2 ==== ==== ==== IP SA1 -----------------SAa IP /SA* IP SA2 --------------------------+ In this case PU has a separate SA with ENRP1 and ENRP2, call them SA1 and SA2. In this case, the transport and RSERPOOL interactions, as well as the application data is (a) protected (b) authenticated by IPsec. I call the SAs by different names on the PE sides since its important to note the problem is symmetric - you need association to be built from each ENRP server back to each pool user. The issue I see with this approach is the coordination between the rserpool layer and the IPsec layer. In particular, you need to establish n SAs for each PU, where n is the number of ENRP servers. This need not be done immediately: There's the usual trade off of eager/lazy processing. Since this is network layer security, a break in the flow of communication can be handled by the transport layer. The security state associated with the IPsec communication flow can be initialized and established with a different flow - to a different agent, in the case where RSERPOOL decides to redirect traffic. The challenge is still at the higher layers - doing application state context transfer. However, since these name resolution messages don't rely on state, we can just resend the messages in the event of failure of an ENRP server. Stillman, et al. [Page 12] Internet Draft Threats Introduced by Rserpool 12 December 2002 Time | PU ENRP1 ENRP2 v ==== ===== ===== A! o----- \ -----> B -----o SA(x) / SA(x)<---- C <======> D! o------------------ \ -----> E -----o SA(y) / SA(y)<----------------- F <=======================> A! RSERPOOL decides to direct PU traffic to ENRP1 B Establish SA and associated state between PU and ENRP1 (like cypher block vectors) C Communicate between PU and ENRP1. Stateful changes to SA(x) state continue to occur on both sides of the communication. D! RSERPOOL decides to redirect PU traffic to PE2 Note that a distinct SA must be established between PU and ENRP2. The entire state between PU and ENRP1 can be tossed, or saved for future communication between PU and ENRP1. E Establish SA and associated state between PU and ENRP2 F Communicate between PU and ENRP2. Stateful changes to SA(y) state continue to occur on both sides of the association. 3.2.2 Scenario B - PE to ENRP server There is no technical difference in Scenario A and B. The names are just changed, that is, substitute PE for PU. Stillman, et al. [Page 13] Internet Draft Threats Introduced by Rserpool 12 December 2002 4. References: [RFC2026] S. Bradner, "The Internet Standards Process -- Revision 3", RFC 2026, October 1996. [MIPv6 threats] draft-team-mobileip-mipv6-sec-reqts-00.txt, July, 2001, work in progress. [RFC3365] RFC 3365, Strong Security Requirements for IETF Standard Protocols, August, 2002. [ASAP] R. R. Stewart, Q. Xie: "Aggregate Server Access Protocol (ASAP)", draft-ietf-rserpool-asap-05.txt, work in progress. [ENRP] Q. Xie, R. R. Stewart "Endpoint Name Resolution Protocol", draft-ietf-rserpool-enrp-04.txt, work in progress. [SCTPIPsec] On the use of SCTP with IPsec, draft-ietf-ipsec-sctp-04.txt, work in progress. [TLS] TLS Version 1.0, RFC 2246. [SCTPTLS] SCTP over TLS draft-ietf-tsvwg-tls-over-sctp-00.txt, work in progress. 5. Acknowledgements Thanks to the Rserpool security design team that provided valuable comments. Lyndon Ong, Randy Stewart, Qiaobing Xie, Michael Tuexen, Sohrab Modi, Javier Pastor-Balbas, Xingang Guo, M. Piramanayagam, Bernard Aboba and Dhooria Manoj. Stillman, et al. [Page 14] Internet Draft Threats Introduced by Rserpool 12 December 2002 expires June 12, 2002 6. Author's Addresses Ram Gopal Nokia Research Center 5 Wayside Road Burlington, MA 01803 USA email: ram.gopal@nokia.com Erik Guttman Sun Microsystems Eichhoelzelstr. 7 74915 Waibstadt Germany Email: Erik.Guttman@sun.com Matt Holdrege Sonus Networks 223 Ximeno Avenue Long Beach, CA 90803 matt@sonusnet.com Senthil Sengodan Nokia Research Center 5 Wayside Road Burlington, MA 01803 USA email: Senthil.sengodan@nokia.com Maureen Stillman Nokia 35 Woodcrest Ave. Ithaca, NY 14850 USA email: maureen.stillman@nokia.com Stillman, et al. [Page 15]