ISO / IEC JTC1/ SC25 WG1 N993 WG1 (Boston, Ungar)2 Date: January 2, 2002 ISO/IEC JTC1 SC25 WG1 Interconnection of Information Technology Equipment Home Electronic Systems Title: Security Enhancement for ISO/IEC CD-20587 Source: USA Project: 25.01.09 Requested Action: Consideration by WG1 at meeting to be held January 21-25, 2002 Distribution: P-, L-, O- Members of SC25 WG1 Note: Project Editor: Dr. Steven Ungar Telcordia Technologies, Inc. 973-829-4201, sungar@telcordia.com i Contents FOREWORD ................................................................................................................... 5 1 INTRODUCTION ...................................................................................................... 6 2 GENERAL ................................................................................................................ 7 2.1 Scope ................................................................................................................ 7 2.2 Normative references........................................................................................ 7 2.2.1 Normative reference list ............................................................................. 8 2.2.2 Normative reference acquisition .............................................................. 10 2.3 Informative References ................................................................................... 10 2.3.1 Informative document list ......................................................................... 10 2.3.2 Informative document acquisition ............................................................ 11 2.4 Symbols and abbreviations ................................................................................. 11 2.5 Compliance Notation ........................................................................................... 13 3 Security Services for the Versatile Home Network (VHN) ................................ 13 3.1 Coordination of Access Device and Host Security .............................................. 15 3.1.1 IPSec Configurations .................................................................................... 15 3.1.2 SSL/TLS Configurations................................................................................ 17 3.1.2.1 Securing the Browser ............................................................................. 20 3.1.3 Authorization ................................................................................................. 20 3.2 Firewall ................................................................................................................ 20 3.3 Event Logging ...................................................................................................... 21 ANNEX A: Security Services ...................................................................................... 23 A1 Introduction....................................................................................................... 23 A2 Home Network Threats .................................................................................... 23 Software and Configuration Security: Trojan Horses, Worms, Viruses ......... 25 Repudiation .......................................................................................................... 25 A3 Home Network Defenses ................................................................................. 26 A3.1 Encryption .................................................................................................... 27 A.1.1.1 Conventional Encryption ...................................................................... 27 A3.1.1 Public-Key Encryption .............................................................................. 28 A3.1.2 Digital Signatures and Key Exchange ...................................................... 28 A3.1.2.1 Diffie-Hellman Key Exchange .............................................................. 29 A3.2 Authentication and Authorization ................................................................. 29 A3.2.1 Firewalls ................................................................................................... 30 ii A3.3 Integrity and Confidentiality ......................................................................... 31 A3.3.1 Message Authentication Code (MAC)...................................................... 31 A3.3.2 Hash Functions and Digital Signatures .................................................... 32 A4 Home Network Security Solutions .................................................................. 33 A4.1 IPSec ........................................................................................................... 33 A4.1.1 Security Associations and the Security Policy Database ......................... 33 A4.1.2 Transport Mode and Tunnel Mode: ......................................................... 34 A4.1.3 Authentication Header (AH): .................................................................... 35 A4.1.4 Encapsulating Security Payload (ESP) Header: ...................................... 36 A4.1.5 Combining Security Associations............................................................. 38 A4.1.6 Key Management: .................................................................................... 39 A4.2 A5 SSL/TLS ...................................................................................................... 40 A4.2.1 SSL/TLS Record Protocol and SSL/TLS Handshake Protocol: ............... 40 A4.2.2 The SSL Session and the SSL Connection: ............................................ 40 A4.2.3 SSL Session States: ................................................................................ 41 A4.2.4 SSL Connection States:........................................................................... 41 A4.2.5 SSL Message Exchange: ........................................................................ 41 A4.2.6 SSL Session Establishment: .................................................................... 42 A Note on Link-Level Security in the Home Network .................................... 43 Table of Figures Figure 1: IPSec Transport Mode—One or more security associations apply between end stations (adapted from [43]). ........................................................................... 34 Figure 2: IPSec Tunnel Mode—A security association is applied at network boundaries (adapted from [43]). ............................................................................................... 35 Figure 3: The IPSec Authentication Header (AH) (adapted from [43]). ......................... 35 Figure 4: AH in Transport Mode and in Tunnel Mode (adapted from [43]). In this example, the IP payload is a TCP segment. .......................................................... 36 Figure 5: The IPSec ESP Header (adapted from [43]). ................................................. 37 Figure 6: ESP in Transport Mode and in Tunnel Mode (adapted from [43]). In this example, the IP payload is a TCP segment. .......................................................... 38 Figure 7: Iterated Tunneling in IPSec (adapted from [43]). ........................................... 39 iii Figure 8. The SSL Protocol Stack (adapted from [43]). ................................................ 40 Figure 9. Operation of the SSL Record Protocol (adapted from [43]). .......................... 42 Table of Tables Table 1: How IPSec, SSL/TLS and Firewall Defend the Home Network against Common Threats. .................................................................................................. 14 iv FOREWORD This standard was developed under the auspices of the R-7.4 Joint CEA/VESA Subcommittee. The Video Electronics Standards Association (VESA) established the VESA Home Network (VHN) Committee in 1995 to develop architecture for a digital, broadband home network. The VHN standard was initially developed by the VESA Home Network Committee. However, it was never ratified as a VESA standard. In June 1999, the Consumer Electronics Association (CEA) established the R7 Committee to help harmonize the several efforts being undertaken to develop home networking standards. In January 2000, the Board of Directors of VESA and the Board of Directors of the Consumer Electronics Association agreed to merge the VESA Home Network and the CEA R7 Committee, by establishing the CEA R7.4 Committee. After publication of EIA/CEA-851, the “VHN Home Network Specification,” in October, 2000, R7.4 immediately began work on expanding and augmenting Version 1 of the standard. In order to avoid delays in making new material available, as new sections are developed, they will be issued as separate standards in the 851 series. This standard, EIA/CEA-851.2, specifies the implementation of security services for the VHN Home Network. Another standard in this series, EIA/CEA-851.1 “IP-Based Digital Telephony for the Versatile Home Network,” was issued earlier. Other standards, dealing with network management and other topics, will be issued in the near future. 5 1 INTRODUCTION This standard defines security services for the Versatile Home Network. The threats to a home network are similar to those of an enterprise network. However, the various threats differ in significance for domestic, rather than commercial, network configurations and applications. For instance, while repudiation (denying that a transaction took place) is obviously a serious issue for a bank or brokerage firm, it is of less concern for the home, where the transaction is likely to be entirely private and noncommercial. Conversely, businesses have little to gain by concealing which hours of the day their networks are busiest, whereas residential users may very well wish to conceal traffic that indicates whether or not they are at home. Given the threats that are common to enterprises networks, we have identified the most likely threats to the Versatile Home Network, and defined a set of security services to defend against those threats. We have recognized that, as those threats are not peculiar to home networks, there is no need to invent new security mechanisms for the home network and access device. In fact, the difficulty of designing such mechanisms correctly and standardizing the results of such designs argues strongly against inventing new security mechanisms. However, for several reasons, security mechanisms appropriate for a business may not adapt well to home network security: 1. The first issue is cost. Some security mechanisms, such as industrial-strength firewalls, cost on the order of $10,000. Businesses write this off as an expense and recover cost by raising prices. Homeowners have no such option and probably do not perceive the threat to the home network as sufficiently important to merit that level of expense. Thus, a security mechanism must be inexpensive, or be able to be made inexpensive, if it is to be used in the home. 2. The second is complexity. Many security mechanisms are difficult to configure and require an expert to install and maintain. Once again, an enterprise may have an IT department that is responsible for network security. The typical homeowner is unlikely either to acquire the expertise or hire an outside consultant to do this job. Faced with such a choice, she may elect simply to do without security. Thus, simplicity of operation is essential to home network security. 3. The third is convenience. Employees of a business may be willing to endure a certain amount of inconvenience if management decides that’s the way the business operates. While passwords and smartcards are accepted as necessary to protect the company’s resources, it’s not clear how much inconvenience a homeowner may be willing to accept to protect the home’s resources. For example, most people will probably understand the necessity of having a password to access a networked digital VCR from a remote location, 6 such as an airport. However, they might find it inconvenient to use a smart card and may object to a sophisticated set of password complexity and aging rules 1. 4. The fourth is the different security priorities for a home and a business. Enterprises are likely to be concerned with coordinated and targeted attacks by outsiders, with sabotage by insiders, discovery and litigation, and protection of intellectual property. Residential users are, perhaps, more rightfully concerned about privacy of their personal data, physical security and safety of their home, accuracy of credit and billing records, public knowledge of their private life (such as knowledge of their whereabouts and interests), and protection from widespread data gathering, snooping, and junk mail. The task for home network security, then, is to choose among the security services that have been developed for enterprise networks, within the constraints imposed by cost, complexity, convenience, and relative priorities. As the VHN is a home intranet—and IP-based network using web tools for device access and control—we require SSL/TLS and IPSec for primary protection against threats external to the home network. Furthermore, we require firewall protection at the access device, and define the functional requirements for the firewall. Future versions of this standard will address protection against internal threats to the home network (e.g., rogue software that may be introduced via a floppy disk), as well as refinements to the current specifications. The requirements for VHN security are presented in Section 3. Annex A presents a discussion of security issues, and a discussion of the factors that were considered in formulating the requirements in Section 3. 2 GENERAL 2.1 Scope This standard specifies security services for the Versatile Home Network (VHN), as defined in EIA/CEA-851, “VHN Home Network Specification.” It assumes an implementation of a VHN that conforms to EIA/CEA-851 in the following sense: The network must be digital, and it must be IP-based; furthermore, it uses web tools, such as HTTP, for device control. (Note that, while the EIA/CEA-851 also defines a network architecture and requires a backbone topology based on IEEE 1394b, the security services specified in this standard are not based on any protocols below layer 3 of the ISO Standard Reference Model; thus, these requirements could be used for networks other than a VHN, so long as they are digital, IP-based, and use web tools for device control.) 2.2 Normative references The following standards contain provisions that, through reference in this text, constitute normative provisions of this standard. At the time of publication, the editions indicated 1 Indeed, one of the persistent problems for managers of enterprise security systems is the tendency of employees to use simplistic passwords; favorites are the user’s own name, the user’s street name, or a common dictionary word. 7 were valid. All standards are subject to revision, and parties to agreements based on this standard are encouraged to investigate the possibility of applying the most recent editions of the standards listed in Sec. 2.2.1. If the referenced standard is dated, the reader is advised to use the version specified. 2.2.1 Normative reference list 1. Rivest, R., The MD5 Message-Digest Algorithm, RFC 1321, Internet Engineering Task Force, April 1992 2. Kohl, J. and C. Neuman, The Kerberos Network Authentication Service (V5), RFC 1510, Internet Engineering Task Force, September 1993. 3. Yeong, W., T. Howes, and S. Kille, Lightweight Directory Access Protocol, RFC 1777, Internet Engineering Task Force, March 1995. 4. Secure Hash Standard, FIPS PUB 180-1, National Institute of Standards and Technology, April 17, 1995. 5. Karn, P., P. Metzger, and W. Simpson, The ESP Triple DES Transform, RFC 1851, Internet Engineering Task Force, September 1995. 6. Freier, A.O., P. Carlton, and P.C. Kocher, The SSL Protocol Version 3.0. 7. Oehler, M., and R. Glenn, HMAC-MD5 IP Authentication with Replay Prevention, RFC 2085, Internet Engineering Task Force, February 1997. 8. Krawczyk, H., M. Bellare, and R. Canetti, HMAC: Keyed-Hashing for Message Authentication, RFC 2104, Internet Engineering Task Force, February 1997. 9. Cheng, P., and R. Glenn, Test Cases for HMAC-MD5 and HMAC-SHA-1, RFC 2202, Internet Engineering Task Force, September 1997. 10. Dierks, T., and C. Allen, The TLS Protocol, RFC 2246, Internet Engineering Task Force, January 1999. 11. Wahl, M., T. Howes, and S. Kille, Lightweight Directory Access Protocol (v3), RFC 2251, Internet Engineering Task Force, December 1997. 12. Dusse, S., P. Hoffman, B. Ramsdell, and J. Weinstein, S/MIME Version 2 Message Specification, RFC 2311, Internet Engineering Task Force, March 1998. 13. Dusse, S., P. Hoffman, B. Ramsdell, and J. Weinstein, S/MIME Version 2 Certificate Handling, RFC 2312, Internet Engineering Task Force, March 1998. 14. Kent, S., R. Atkinson, Security Architecture for the Internet Protocol, RFC 2401, Internet Engineering Task Force, November 1998. 15. Madson, C., and R. Glenn, The Use of HMAC-MD5-96 within ESP and AH, RFC 2403, Internet Engineering Task Force, November 1998. 16. Madson, C. and R. Glenn, The Use of HMAC-SHA-1-96 within ESP and AH, RFC 2404, Internet Engineering Task Force, November 1998. 8 17. Madson, C., and N. Doraswamy, The ESP DES-CBC Cipher Algorithm With Explicit IV, RFC 2405, Internet Engineering Task Force, November 1998. 18. Kent, S., and R. Atkinson, IP Encapsulating Security Payload (ESP), RFC 2406, Internet Engineering Task Force, November 1998. 19. Piper, D., The Internet IP Security Domain of Interpretation for ISAKMP, RFC 2407, Internet Engineering Task Force, November 20. Maughan, D. M. Schertler, M. Schneider, and J. Turner, Internet Security Association and Key Management Protocol (ISAKMP), RFC 2408, Internet Engineering Task Force, November 1998. 21. Harkins, D. and D. Carrel, The Internet Key Exchange (IKE), RFC 2409, Internet Engineering Task Force, November 1998. 22. Glenn, R., and S. Kent, The NULL Encryption Algorithm and its Use With IPsec, RFC 2410, Internet Engineering Task Force, November 1998. 23. Kaliski, B, and J. Staddon, PKCS #1 : RSA Cryptography Specifications Version 2.0, RFC 2437, Internet Engineering Task Force, October 1998. 24. Pereira, R., and R. Adams, The ESP CBC-Mode Cipher Algorithms, RFC 2451, Internet Engineering Task Force, November 1998. 25. Housley, R., W. Ford, W. Polk, and D. Solo, Internet Public Key Infrastructure : Part 1 : X.509 Certificate and CRL Profile, RFC 2459, Internet Engineering Task Force, January 1999. 26. Case, J., R. Mundy, D. Partain, and B. Stewart, Introductions to Version 3 of the Internet-standard Network Management Framework, RFC 2570, Internet Engineering Task Force, April 1999. 27. Wijnen, B., D. Harrington, and R. Resuhn, An Architecture for Describing SNMP Management Frameworks, RFC 2571, Internet Engineering Task Force, April 1999. 28. Case, J., D. Harrington, R. Presuhn, and B. Wijnen, Message Processing and Dispatching for the Simple Network Management Protocol (SNMP), RFC 2572, Internet Engineering Task Force, April 1999. 29. Levi, D., P. Meyer, and B. Stewart, SNMP Applications, RFC 2573, Internet Engineering Task Force, April 1999. 30. Blumenthal, U., and B. Wijnen, User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3), RFC 2574, Internet Engineering Task Force, April 1999. 31. Wijnen, B., R. Presuhn, and K. McCloghrie, View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP), RFC 2575, Internet Engineering Task Force, April 1999. 32. Frye, R., D. Levi, S. Routhier, and B. Wijnen, Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework, RFC 2576, Internet Engineering Task Force, March 2000. 9 33. Rescorla, E., Diffie-Hellman Key Agreement Method, RFC 2631, Internet Engineering Task Force, June 1999. 34. Ramsdell, B., Ed., S/MIME Version 3 Certificate Handling, RFC 2632, Internet Engineering Task Force, June 1999. 35. Ramsdell, B., Ed., S/MIME Version 3 Message Specification, RFC 2633, Internet Engineering Task Force, June 1999. 36. Hoffman, P., Ed., Enhanced Security Services for S/MIME, RFC 2634, Internet Engineering Task Force, June 1999. 37. Medvinsky, A., and M. Hur, Addition of Kerberos Cipher Suites to Transport Layer Security (TLS), RFC 2712, Internet Engineering Task Force, October 1999. 38. Khare, R., and S. Lawrence, Upgrading to TLS within HTTP/1.1, RFC 2817, Internet Engineering Task Force, May 2000. 39. Rescorla, E., http over TLS, RFC 2818, Internet Engineering Task Force, May 2000. 40. Hodges, J., R. Morgan, and M. Wahl, Lightweight Directory Access Protocol (v3) : Extension for Transport Layer Security, RFC 2830, May 2000. 41. Advanced Encryption Standard, National Institute of Standards and Technology, 2000. 2.2.2 Normative reference acquisition IETF www.ietf.org Freier, A.O., P. Carlton, and P.C. Kocher, The SSL Protocol Version 3.0. Available at home.netscape.com/eng/ssl3/drft302.txt, November 1996. NIST www.nist.gov 2.3 Informative References The following documents contain information that is useful in understanding this standard. Some of these documents are drafts of standards that may become normative references in a future release of this standard. 2.3.1 Informative document list 42. Stallings, William, “Cryptography and Network Security: Principles and Practice,” Second Edition, Prentice Hall, 1999. 43. Kent, S., and R. Atkinson, “IP Authentication Header,” RFC 2402, Internet Engineering Task Force, November 1998. 44. Bluetooth, www.bluetooth.com 10 45. Rescorla, E., “SSL and TLS,” Addison-Wesley, 2001. 46. Gutmann, P., “Software generation of Practically Strong Random Numbers,” Seventh USENIX Security Symposium Proceedings, The USENIX Association, 1998, pp.243-257. 47. Kelsey, J., B. Schneier, and N. Ferguson, “Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator,” Sixth Annual Workshop on Selected Areas in Cryptography, Springer-Verlag, 1999. 48. Thayer, R., N. Doraswamy, and R. Glenn, IP Security Document Roadmap, RFC 2411, Internet Engineering Task Force, November 1998. 49. RFC 2412, “The OAKLEY Key Determination Protocol,” Internet Engineering Task Force, November 1998. 2.3.2 Informative document acquisition Bluetooth www.bluetooth.com HAVi www.havi.org IETF www.ietf.org UPnP www.upnp.org 2.4 Symbols and abbreviations AES Advanced Encryption Standard AH Authentication Header CAST Carlisle Adams & Stafford Tavares (developer of the algorithm) DDoS Distributed denial of service attack DES Data Encryption Standard DH Diffie-Hellman DMZ Demilitarized Zone DNS Domain Name System DSS Digital Signature Standard DTV Digital Television DVCR Digital VCR EIA Electronics Industry Alliance 11 ESP Encapsulation Security Payload FTP File Transfer Protocol HMAC Hash/MAC HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol ICMP Internet Control Message Protocol IDEA International Data Encryption Algorithm IEEE Institute for Electrical and Electronics Engineers IETF Internet Engineering Taskforce IKE Internet Key Exchange IP Internet Protocol IPv4 IP Version 4 (the current IP) IPv6 IP Version 6 (the upcoming IP) IPSec IP Security ISAKMP Internet Security Association and Key Management Protocol IT Information Technology LAN Local Area Network LDAP Lightweight Directory Access Protocol MAC Message authentication code MIB Management information base MPEG Motion Picture Experts Group MTU Maximum Transmission Unit PCT Private Communication Technology PGP Pretty Good Privacy PKIX Public Key Infrastructure X.509 PMTU Path MTU Discovery RFC Request for Comment RSA Rivest, Shamir, Adleman (developers of the RSA algorithm) S/MIME Secure Multipurpose Internet Mail Extension SA Security association SHA Secure Hash Algorithm SIP Session Initiation Protocol 12 SPD Security Policy Database SPI Security Parameters Index SSL Secure Sockets Layer TCP Transport Control Protocol TLS Transport Layer Security UDP User Data Protocol VCR Video cassette recorder VESA Video Electronics Standards Association VHN VHN Home Network VPN Virtual Private Network WAN Wide Area Network 2.5 Compliance Notation As used in this document “shall” and “must” denote a mandatory provisions of the standard. “Should” denotes a provision that is recommended but not mandatory. “May” denotes a feature whose presence does not preclude compliance that may or may not be present at the option of the implementer. 3 Security Services for the Versatile Home Network (VHN) The first goal of VHN security is to defend the home network against the threats described in Annex A—masquerade, replay, eavesdropping, modification, denial of service, resource exhaustion, unauthorized software (e.g., viruses), and repudiation— given the constraints listed in Section 1: low cost, low complexity, and only moderate levels of inconvenience to the homeowner. The second goal is to avoid developing new security services, by using widely available systems that address security at the network layer (IPSec) and the session layer (SSL/TLS). A combination of these two, correctly configured, combined with firewall technology will meet the criteria of low cost, low complexity, and moderate inconvenience, while doing a good job of defending the home against most of the threats listed above. Table 1 summarizes how these systems implement security defenses. Note that, in addition to the specific measures specified by this standard, adequate protection requires network computers to be protected by anti-virus software as described in Section A2. As this is the same service that is now commonly available to both enterprises and consumers, we assume that strategies for protecting the home network (and the access device) will be applied in the same manner. Note: Although the requirements in this section refer to current versions of services and mechanisms, this Standard will be revisited periodically, and updates will be made as needed; however, pending formal changes, the user should employ the latest available version of each technology. 13 Threat IPSec Defense SSL/TLS Defense Firewall Masquerade Authenticated Key Exchange Authenticated Key Exchange Access control by IP address or URL Replay Sequence Number per Packet TCP Sequence Number None Eavesdropping Encryption Encryption None Message Authentication Code Message Authentication Code None Modification Limit access to authorized devices Ingress filtering to discard spoofed packets Denial of Service None None Cookies, MACs of Ciphertext Avoid TCP SYN Floods by Requiring Integrity Checks Flow control Resource Exhaustion Software Security Partial Defense (Authentication and Data Integrity) Partial Defense (Authentication and Data Integrity) Partial Defense device access control Configuration Security Partial Defense (Authentication and Data Integrity) Partial Defense (Authentication and Data Integrity) Partial Defense device access control Repudiation No Defense; Use S/MIME or PGP No Defense; Use S/MIME or PGP None Table 1: How IPSec, SSL/TLS and Firewall Defend the Home Network against Common Threats. IPSec, SSL/TLS, and Firewall access control provide an effective defense against likely attacks against the home, with the exception of denial of service, software modification, and repudiation. As we mentioned above, there is no real-time defense against all denial of service attacks2. IPSec and SSL/TLS do not explicitly provide protection to 2 The currently accepted method of dealing with large-scale denial of service attacks is to add a traceback mechanism to IP, either by creating reverse-channel packets or inserting bits in the IP header that can 14 software; however, the authentication and integrity services at least ensure that the source of the infection is a legitimate user, thus protecting against most purely malicious attacks. If a non-repudiation service is needed, messages need to be encapsulated in a secure e-mail protocol, either S/MIME or PGP. Services requiring non-repudiation shall support the S/MIME version 3 protocol (RFCs 2632–2634) [34, 35, 36] and should be backward compatible with the S/MIME version 2 protocol (RFCs 2311, 2312, and 2437) [12, 13, 23]. These services cannot provide complete security. Not all traffic to the home will be on IP (e.g., streaming MPEG-2 video), and there is no defense against downloading a contaminated file from a presumably secure source or inadvertently revealing a password, so there is still need for packet filters and other security tools. However, they provide a good start towards securing the home network and a basis for future work towards specifying and implementing a home network security policy. If an access interface is used to protect the home network against external attacks, then all external access to the residential network shall be configured to go through such an interface. 3.1 Coordination of Access Device and Host Security Both IPSec and SSL/TLS require that client software be installed in either the end station (the host) or in a router or access interface. IPSec explicitly provides for both configurations. SSL/TLS, on the other hand, lies between TCP and the application layer (Figure 8), so it is usually implemented by an application, such as a web server or web browser. Even though SSL/TLS would “naturally” be implemented in end stations, such as networked devices that implement web servers to enable remote device control, in fact SSL/TLS can also be implemented in a proxy device, as part of the proxy device’s security functions. Devices that implement cryptographic functions shall be protected against software or software modification that causes long-term secret keys to be revealed outside the device, that replaces or modifies the public keys used to verify signatures on certificates, or that exposes session keys used to protect traffic. Devices that implement cryptographic functions shall be equipped with a means to generate cryptographically strong pseudo-random numbers [46, 47]. We examine each of these configurations, for IPSec and for SSL/TLS, in the following sections. 3.1.1 IPSec Configurations IPSec [5, 9, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 43, 48,49] provides authentication or encryption for any IP packets that meet the SA selector criteria in the SPD (see Section enable the reverse path to be computed. Because the most common of these attacks works by corrupting and co-opting a large number of unsuspecting processors, as a responsible citizen, one should secure the home network and its computers so that they cannot be used as part of a distributed denial of service attack against others. 15 A1.3.1). When security is applied between end stations, IPSec may operate in transport mode; when security is applied between gateways, it must operate in tunnel mode (see Figure 4 and Figure 6). If iterated tunneling is used (p. 38 and Figure 7) IPSec can run between a host at one end (e.g., in the home) and a router at the other end (e.g., at a service provider). Because all IP traffic is assumed to flow through a single access point to the home, i.e., the access device, it is easy and efficient to apply IPSec at the access device. This relieves end systems on the home network of the need to provide encryption and decryption services and centralizes security in the access device. This is particularly advantageous for relatively simple end devices with modest processor capability. While providing IPSec centrally in the access device may require some extra processor power and memory, it is still likely to be more efficient than requiring almost as much functionality in each end device. There are other advantages to centralizing IPSec in the access device: 1. When IPSec runs in tunnel mode, the original IP header is encrypted, and replaced with a new IP header. The IP address of the actual end station on the home network is hidden from the outside world and replaced in the header address fields by the IP address of the access device. This provides another layer of security, because the IP addresses of the devices on the home network are kept secret. 2. Centralizing IP security services makes it easier to administer security. The homeowner doesn’t have to install and configure security on each device that might communicate (using IP) with the outside world. Upgrades are easier, and can be applied to multiple devices at once. Centralizing security services particularly in the access device may make it easier for a third-party service provider to provision, upgrade, and maintain the security service for the home network. For example, the homeowner might choose to contract with an outside supplier to provide security services to her home; among other things, the supplier will maintain the Security Policy Database that determines which IP packets will be associated with SAs. If the SPD is housed in the access device, maintenance may be somewhat easier (for a network-based service) than if it is housed on an interior node of the home network. If external access to the residential network is not protected by SSL or TLS, it shall be configurable to use IPSec in tunnel mode between the external device and an access interface. It may also be configured to use IPSec in tunnel mode or transport mode or to use SNMPv3 [26, 27, 28, 29, 30, 31, 32] directly with the internal device or its proxy. An access interface shall be configured to allow the user to specify what external protocols are allowed to access this interface or devices inside the residence, what authentication is required, and what IPSec services are required. The access interface shall be capable of rejecting all other accesses. An access interface shall support IKE manual key distribution and aggressive mode for a Phase 1 exchange with external access points and IKE quick mode for Phase 2 exchanges. It may support IKE main mode and new group mode. 16 An access interface shall provide a logging and auditing tool to record all accepted and rejected external accesses. Minimally, a circular buffer of 10M bytes of storage shall be allocated to record such data. An access interface implementation of IPSec shall support the PMTU discovery mechanisms in RFC2401 [14]. An access interface implementing IKE may support only the SIT_IDENTITY_ONLY situation, but it shall support PKIX and should support LDAPv2 [3] for certificate management. It may support LDAPv3 [11]. Public key technology shall comply with IEEE1363. Applications shall use at least 1024-bit modular exponentiation,163-bit elliptic curve groups, or 448-bit (251) NTRU. An access interface shall support ESP. It should use ESP to protect traffic, and it should not use AH. All ESP SAs should use the integrity and replay detection services, unless these services are provided in a strong cryptographic manner by a higher layer protocol (for example, CRCs are NOT sufficient for integrity). HMAC with MD5 [1] or SHA-1 [4] shall be supported. Applications shall use AES [41] as the symmetric encryption algorithm. Except as modified by these requirements, IPSec implementations shall conform to IETF IPSec standards track RFCs at the currently highest level of standardization. 3.1.2 SSL/TLS Configurations The Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols provide cryptographic authentication, data stream integrity, and data stream confidentiality for TCP connections. They are particularly well suited for protecting http traffic between web browsers and servers. The contents of this section are aimed to help secure webbased access to the VHN home network. SSL and TLS are usually implemented at a server and at a browser. However, it may be advantageous to have SSL/TLS sessions established by the access server when access is requested through the Internet, rather than by the web servers in the controlled devices. This has several advantages over having separate sessions established for each connection to a server (i.e., to each controlled device) on the home network. This approach allows the access server to act as a proxy hiding the identity and IP address from the remote user. If a user wishes to access her home network to interact remotely with some networked device, such as an air conditioner, this will probably entail interactions with several web servers: A. First, the user establishes a connection to a server in the access device, using the access device’s (i.e., the home’s) public IP address. This server determines that the user wishes to connect to devices on the home network, and it acts as a proxy 17 server for the user by sending an HTTP get message to the home network’s network manager, accessing the home network’s home page. B. The access device forwards the home network’s home page to the user. This page has icons for controlled devices on the network, for cluster controllers, for the access device, and for various databases, such as the home network’s MIB or DNS server. The home network home page may also implement an authentication server that requires the user to provide proper identification and authentication before being allowed to proceed further. C. The user will access either a networked device, or a cluster controller. If she accesses a networked device (such as a digital VCR), she will be presented with icons that represent control messages that can be invoked to operate that device (e.g., “record” for the DVCR). If she accesses a cluster controller, she will be presented a choice of devices to be controlled (such as the air conditioner); she will then choose a device, and be presented with another web page displaying the control icons for that device. Note that the user is accessing multiple web servers, each with its own IP address, and is establishing new TCP connections with each server. If SSL/TLS is to be used to protect all external access, either (1) an SSL/TLS session must be associated with each or (2) the access device must act as a proxy for the others. In practice, some combination of these two methods may be used. In the first case, multiple SSL/TLS sessions are established - one for each server. In the second case, the Handshake Protocol is run once, when the user first accesses the home network’s home page. This SSL/TLS session will act as a secure proxy for the devices within the home network that do not implement SSL/TLS. The secure home page server shall be located such that all Internet traffic is routed directly to it and is not able to bypass the home page server. This spatial segmentation is commonly called a Demilitarized Zone (DMZ). This forces all remote traffic to flow through the home page server, minimizing the risk that an attacker will gain direct access to one or more network devices. The access server that provides external access to an internal HTTP server and internal secure HTTP servers shall support SSLv3 with RSA [6]. It may also support SSLv3 with DSS and DH [33] or TLS 1.0 or later [10, 37, 38, 39, 40]. Other protocols (e.g., SSLv2, PCT, and S-HTTP) are outside the scope of these requirements. Other devices on the home network may support SSLv3 with RSA, SSLv3 with DSS and DH, or TLS 1.0. For most e-commerce applications, the burden of authentication is placed on the commercial website’s server, because the customer’s browser will supply the required payment credentials like credit card data when needed. However, for applications such as home network access, initial authentication of both parties is critical. The most secure configuration would be to provide both parties with certificates signed by the network operator, install the network operator’s public key as the root key in the browsers and servers, and remove all other trusted keys from the server and the browser. That is, both parties (when using RSA, for example) respond to the 18 CertificateRequest message with a Certificate message and a CertificateVerify message. An alternative method of client authentication is to use a hardware-based one-time password system over the secured connection. Simple passwords sent over the secure connection are vulnerable to a number of practical attacks, so these should be used only with carefully constructed constraints (aging, complexity, logging, etc.). For example, the dangers of storing the password in the browser and performing logon from an untrusted computer must be explained clearly. Clients (browsers) should use certificates [25] to authenticate to the access device. They may, however, use a token-based authentication system or passwords sent over the protected channel. Certificates should be generated with a lifetime of no more than three years. Entire certificate chains should be checked for correct names, expiration, and revocation. For RSA or DH-DSS, key lengths shall be at least bits1024bits, ECC key length shall be at lest 163-bits, and NTRU key length shall be at least 448-bits (251) This applies to all certifiactes in the chain. Applications requiring confidentiality shall use128-bit AES [41], when implemented; otherwise, applications requiring confidentiality shall use triple DES. Browsers supporting only 40-bit keys single shall be rejected by the server. Browsers and servers shall provide long-term protection for the privacy of their authentication data and the integrity of root public keys they rely upon to verify certificates. Hardware tamper-resistance like a smart card or cryptographic module should be used, but if disk storage is used, these items shall be encrypted and password protected, and the system shall log all attempted accesses securely. Both parties shall protect pre-master secrets, master secrets, and session keys for the duration of their use. Use of software that allows memory access, memory dumps, examination of paging devices, and so forth shall be restricted accordingly. Where practical, processes should be locked in main memory and not paged. For SSLv3 [6], the protocol version is major=3, minor=0, and port and protocol selection and use shall follow RFC 2818. The server shall not use the cipher suites designed for U.S. export restrictions that are no longer in force, and the ephemeral RSA, anonymous, and Server Gated Cryptography options shall not be used. Both the server and the browser should support the inclusion of the length bytes in the ClientKeyExchange message. Session resumption with a timeout may be used; the recommended timeout interval is ten minutes. The server shall use the close_notify alert; the browser should also use close_notify to complete a two-way closure handshake. Both parties should support protected Rehandshake exchanges. If TLS 1.0 [10] is supported (protocol version is major=3, minor=1), the requirements for connection closure, use of port numbers, checking of the server’s identity, and checking the client’s identity in [39] shall be followed, the name matching rules specified in [25] shall be followed, and servers should, and browsers may, support the use of port numbers described in [38]. 19 3.1.2.1 Securing the Browser In general, new browsers (released in 2000 or later) are preferred over older ones, because older protocols like SSLv2 have security defects, and cryptographic strength has increased since the easing of U.S. export restrictions in January 2000. The browser should be a version released after January 1, 2002. The browser should be configured with its security settings to support the requirements for SSL and TLS listed above, and to alert the user of potential security violations. Unused features, such as plug-ins, Java, JavaScript, or ActiveX controls, should be disabled, unneeded root keys should be removed from the browser, and extraneous network services should be disabled. System logging and intrusion detection tools should be used to monitor the configuration as appropriate. The browser should wait for the server’s handshake Finish message before sending application data; if session resumption is enabled, the user shall be instructed to exit the browser or lock the terminal before leaving the workplace. 3.1.3 Authorization This security architecture, with IPSec and SSL/TLS implemented in the access device, doesn’t preclude a networked device or a cluster controller from implementing its own authorization procedures. For example, once the secure SSL/TLS connection to the home network home page is established, it may display an authentication window to confirm the identity of the user. This server will ask the user to enter an ID and password or other information, which will then be transmitted securely to the home page and verified. If the authentication fails, the user will not be allowed view the home page. Once the user is authenticated, she may then invoke an icon, and establish a TCP connection to the next server in line. This server, in turn, may also invoke a password client to confirm the identity of the user. For example, if the user wishes to access the security cluster controller or to gain entry to the home network’s MIB, it is likely that she will be asked to identify herself again to confirm that she is authorized to access that device, perhaps by using another password. Running the Handshake Protocol in the access device may also be a convenient and effective way to ensure that outside connections are secured, while inside access to web servers (which is assumed to be “friendly”) is not encumbered by unnecessary security burdens. For example, while one would certainly want to secure access to a DTV by an outside user, we don’t want to “log in” to our television set when using it from across the room. When the home network’s home page is invoked from a node inside the home network, rather than from the access device, the Handshake Protocol is not run, and devices in the home are accessed without the use of SSL/TLS. 3.2 Firewall The home network shall be protected by at least one firewall located between the local network and the Internet. Additional firewalls may be used to segment the local network into multiple security domains or to protect individual devices. Firewall 20 implementation shall follow the guidelines described in the latest version of RFC 2979 (“Behavior of and requirements for Internet firewalls”). Note: Firewalls are difficult to configure, and the correct and conventional setting of critical parameters is usually learned from experience in specific environments. At this time, there are very few home networks that have the scope of a VHN, and that could be used to guide the specification of these parameters. Therefore, this standard specifies only firewall functions; the implementation is left to the homeowner. Future issues of this standard may add more detailed implementation specifications. A firewall located between the home network and the Internet shall provide the following functions: Pass or block incoming (from WAN) connection requests Pass or block outgoing (from LAN) connection requests Selectively pass or block incoming packets based on internal IP interface, address, protocol and port number Selectively pass or block access to remote hosts based on remote IP interface, address, protocol and port number or fully-qualified domain name Prevent internal broadcast traffic from leaving the home to the Internet, through the access device Be transparent to common applications (ICMP, FTP, IPSec, SIP etc) Implement network ingress filtering to counter DDoS, per RFC 2827 Implement selective logging of blocked traffic To simplify configuration for the home user the factory default should be to allow all outbound traffic and block all incoming traffic. The firewall should include provisions to monitor for intrusion attempts. This includes scanning for ports commonly used by Trojans and combinatorial events that are benign by themselves but taken together constitute a potential threat. 3.3 Event Logging A key tool for network and security failures is adequate logging. The logger captures relevant home network events in sufficient quantity and depth to provide information about the failure. The event log shall consist of one or more circular buffers that automatically purge the oldest data. Data capture options are set through menu options. Deletion of logger data is under control of the logger. Logger design shall make it difficult for the end user or attacker to delete or corrupt log contents. The log format shall be TBD with a minimum size of TBD. All log entries are time stamped. Deletion of old entries shall be independent of the time stamp. The logger shall capture at least the following information: New device attach and discovery 21 Device reconfiguration Login, logoff, user account, remote site info, and destinations of all secure SSL/TLS and IPSec sessions Account creation/modification Failed login attempts Intrusion detection events Power loss/restoration WAN connection, disconnection, reconfiguration 22 ANNEX A: Security Services (Informative) A1 Introduction This section considers the likely external threats to the VHN Home Network, and recommends defense mechanisms and security services. A2 Home Network Threats The threats to a home network are similar to those of an enterprise network. However, the various threats differ in significance for domestic, rather than commercial, network configurations and applications. For instance, while repudiation (denying that a transaction took place) is obviously a serious issue for a bank or brokerage firm, it is of less concern for the home, where the transaction is likely to be entirely private and noncommercial. Conversely, businesses have little to gain by concealing which hours of the day their networks are busiest, whereas residential users may very well wish to conceal traffic that indicates whether or not they are at home. We have identified the following threats to the VHN Home Network: Masquerade and Replay Perhaps the most obvious threat to the home is unauthorized access to devices or databases on the home network. A masquerade takes place when an imposter pretends to be a legitimate user, such as the homeowner. The imposter could also pretend to be a service provider that has contracted with the homeowner. Defeating the authentication mechanism, e.g., guessing a password or stealing a token may affect a masquerade. Another way an imposter may trick the home network into thinking it is an authorized user is for the imposter to capture a legitimate message, and resend it at a later time. For example, if the imposter can intercept a message to the home’s burglar alarm system, telling it to turn off, she could replay that same message at a later time to achieve a desired result. Masquerade and replay attacks can be thwarted by use of authentication, authorization, and integrity mechanisms, which are discussed in Sections A3.2 and A3.3. Interception: Eavesdropping, Modification, and Traffic Analysis An interception occurs when an unauthorized party gains access to a message passing between the home network and an external user. The intruder may be an automated system that is programmed to search for vulnerable messages, or it may be a person who has wiretapped or otherwise violated the integrity of the communications channel. The interception may be passive or active; a passive interception amounts to eavesdropping—in effect, reading someone else’s traffic. An active interception may involve changing the contents of the message, deleting or rearranging part of the 23 communication, or changing its protocol control information, particularly the header (including the destination or source address). The key defense for an interception attack is to implement integrity and confidentiality services, which are discussed in Section A3.3. Authentication (Section A3.2) may also be used to thwart modification attacks. Even if all communication employs integrity and confidentiality services an eavesdropper may learn a great deal about the home network by monitoring source and destination information and the time of each message. This is called traffic analysis. Internal home network communications can be protected from traffic analysis by creating dummy traffic to hide useful messages. Communication outside the home network can be hidden by anonymizer services. Note that protecting the internal network is possible by use of strong authentication messages, while protecting against external messages is more difficult. Denial of Service and Resource Exhaustion A denial of service attack is effected by flooding the access network with useless traffic, thus preventing legitimate messages from reaching the home network. The incoming messages could also force the home network to try to respond, tying up resources in the access device, thus impairing outgoing traffic. The home network may be a victim of a DoS attack, or an unwitting participant: If a computer on the home network is compromised the attacker may able to use it to contribute to the packet flood without the knowledge of the homeowner. This is called a Distributed Denial of Service (DDoS) attack. Denial of service attacks are almost impossible to defend against in real time. In fact, security mechanisms alone cannot be effective against denial of service attacks, as it is trivially easy to overwhelm any defense by sending additional bogus messages. Careful design and implementation of the protocol and access device can mitigate resource exhaustion, whereby the flooding ties up parts of the home network or access device. For example, if the access device recognizes that it is being asked to open 5,000 simultaneous TCP connections, it could go to an alarm condition, in which it ignores additional incoming requests that are not properly cryptographically authenticated, and it gives priority on its output queues to messages originating in the home. To insure the home network does not become an unwitting participate in a DDoS attack measures must be taken to ensure illicit software is not installed; this is covered in the next section. Access control devices should implement ingress filtering, as specified in RFC 2267; this prevents the use of spoofed IP addresses. It has no effect if the attacker uses valid network addresses. Ingress filtering makes tracking down the source of the attack much easier because the packet source address is the source of the traffic. An additional benefit is the victim’s response is returned to the attacking system, thus preventing additional damage. To perform Ingress filtering the access devices blocks any packets with sources addresses that do not originate within the home network. 24 Software and Configuration Security: Trojan Horses, Worms, Viruses These are threats to the integrity of the software and configuration information on the access device and home network devices. A Trojan Horse is an unauthorized program that enters the home or the access device hidden in a legitimate message. Once in the home, the Trojan Horse can reside in a processor in any networked device. For example, a Trojan Horse can be inserted into an intercepted MPEG transport stream as private data, and take up residence in the processor of the digital television. It could then use the resources of the television’s processor, and the digital home network, to compromise the security of the internal network. Worms and viruses have received considerable publicity in both the technical and popular press. A worm is a program that can replicate itself and send copies from computer to computer across network connections [42]. Upon arrival, the worm may be activated to replicate and propagate again. In addition, the worm usually performs some unwanted function. A worm that invades the home network could thus spread across the network to multiple devices; if the worm performs harmful activity, such as wiping out the non-volatile memory of the device, the homeowner could find that multiple appliances, from DTVs to toasters, no longer work properly. A virus is code embedded within a program that causes a copy of itself to be inserted in one or more other programs, as well as performing some unauthorized function on the host machine [42]. Unlike a worm, a virus will not actively try to spread itself to other processors on the home network, so its damage will be confined to a single appliance. However, an appliance essential to the operation of the home network may function in unpredictable and undesired ways. Trojan Horses, worms, and viruses are defended against using software security services. As these are the same services that are now commonly available to both enterprises and consumers, we will assume that strategies for protecting the home network (and the access device) will also be the same. Certain attacks may attempt to compromise the home network configuration by altering security information. Three examples of this type of security information are addresses of external servers, trusted public keys or passwords used in the authentication process, and rules for filtering unwanted traffic at an access interface. Repudiation The last home network threat is repudiation, the denial of receipt or transmission of a message. Repudiation is an obvious and important threat to a business that relies on electronic traffic. For example, a stockbroker who executes a trade in response to an electronic sell order may be vulnerable to a repudiation attack if the customer claims (probably because the price of the stock suddenly changed) that the order, in fact, was never sent. For the home network, a repudiation attack probably isn’t as threatening as the others we have listed; it is, nevertheless, important that the homeowner be able (for instance) to defend against claims for payment for undelivered service to the home network or access device. 25 A3 Home Network Defenses The threats in Section 3 are not peculiar to home networks. They exist as threats to enterprise networks as well and, with the exception of the denial of service attack (which has no adequate real-time defense), security mechanisms and services have been developed to counter these threats. Thus, there is no need to invent new security mechanisms for the home network and access device. In fact, the difficulty of designing such mechanisms correctly and standardizing the results of such designs argues strongly against inventing new security mechanisms. However, for several reasons, security mechanisms appropriate for a business may not adapt well to home network security: 1. The first issue is cost. Some security mechanisms, such as industrial-strength firewalls, cost on the order of $10,000. Businesses write this off as an expense and recover cost by raising prices. Homeowners have no such option and probably do not perceive the threat to the home network as sufficiently important to merit that level of expense. Thus, a security mechanism must be inexpensive, or be able to be made inexpensive, if it is to be used in the home. 2. The second is complexity. Many security mechanisms are difficult to configure and require an expert to install and maintain. Once again, an enterprise may have an IT department that is responsible for network security. The typical homeowner is unlikely either to acquire the expertise or hire an outside consultant to do this job. Faced with such a choice, she may elect simply to do without security. Thus, simplicity of operation is essential to home network security. 3. The third is convenience. Employees of a business may be willing to endure a certain amount of inconvenience if management decides that’s the way the business operates. While passwords and smartcards are accepted as necessary to protect the company’s resources, it’s not clear how much inconvenience a homeowner may be willing to accept to protect the home’s resources. For example, most people will probably understand the necessity of having a password to access a networked digital VCR from a remote location, such as an airport. However, they might find it inconvenient to use a smart card and may object to a sophisticated set of password complexity and aging rules 3. 4. The fourth is the different security priorities for a home and a business. Enterprises are likely to be concerned with coordinated and targeted attacks by outsiders, with sabotage by insiders, discovery and litigation, and protection of intellectual property. Residential users are, perhaps, more rightfully concerned about privacy of their personal data, physical security and safety of their home, accuracy of credit and billing records, public knowledge of their private life (such as knowledge of their whereabouts and interests), and protection from widespread data gathering, snooping, and junk mail. 3 Indeed, one of the persistent problems for managers of enterprise security systems is the tendency of employees to use simplistic passwords; favorites are the user’s own name, the user’s street name, or a common dictionary word. 26 The task for home network security, then, is to choose among the security services that have been developed for enterprise networks, within the constraints imposed by cost, complexity, convenience, and relative priorities. These tools encompass two general categories: a) authentication and authorization, and b) integrity and confidentiality. All of these techniques rely on encryption, so we begin with a discussion of encryption technologies. A3.1 Encryption Encryption is by far the most important security mechanism, as it is the core of most security services, and even of most other security mechanisms. Encryption has a long and famous history; modern encryption relies on the special properties of mathematical and logical operations that may be applied to the binary representation of data. The two major classes of encryption algorithms are private-key and public-key systems4. Each has particular strengths that make them suitable for different security tasks. A3.1.1 Conventional Encryption In conventional ciphers, a message is converted from plaintext to an unreadable cyphertext, using an algorithm and a secret key. In almost all cases, the algorithm is known to both the receiver and sender, as well as to the attacker, but the key is a secret shared only between the receiver and sender. The sender uses the key with the algorithm and the plaintext to produce an apparently random cyphertext; any other key produces a different cyphertext. The receiver uses the same key, with the same algorithm (sometimes run in reverse) to convert the cyphertext to the original plaintext. An attacker that wants to read the plaintext message must either guess the key, or must use the statistical properties of the cyphertext to deduce the plaintext, a process known as cryptology. The defense against a cryptologic attack is to construct the algorithm in such a way as to hide the statistical properties of the plaintext, using elements of “diffusion” and “confusion.” Given the computation power available in modern systems, conventional encryption schemes must be of formidable complexity to withstand cryptologic attacks. If the attacker despairs of unraveling the cyphertext using cryptology, she might attempt a brute force attack on the secret key by systematically trying every possible permutation of ones and zeros. Thus, if a secret key were 56-bits long (i.e., a possible 256 different sequences of 1s and 0s), an attacker would have a 50% chance of guessing the key in the first 255 attempts. The only defense against a brute force attack is to increase the length of the key. The minimum key length used for any serious encryption system today is 56-bits; 112-bit, 128-bit, and 168-bit systems are also in use. One system (Blowfish) allows keys as long as 448-bits. 4 To avoid confusing “private-key encryption” with the “private key” used as part of public key systems, in this standard we will refer to private-key encryption systems as “conventional” encryption systems. 27 A3.1.2 Public-Key Encryption A major problem with conventional encryption is that the sender and receiver, and only the sender and receiver, must share the secret key. Thus, key distribution is an important element of any security service that uses a conventional encryption system; elaborate mechanisms have been developed for generating and delivering keys. Public-key encryption eliminates the need for the sender and receiver to share a single, secret key. In public-key encryption, one key is used to encrypt a message, and a second key is used to decrypt it. One of the keys is “public”; i.e., it is published and available to anyone; the second key is “private” known to only one of the parties. Either key may be used for encryption, but only the companion key can be used for decryption; given one of the keys and the algorithm, it is computationally infeasible to infer the other key. Public-key encryption works like this: 1. Each end system generates a pair of related keys. 2. One key is chosen by the user to be the “public” key, and is published in a public register or file; the second key is kept private. 3. If A wishes to send a message to B, A encrypts the message using B’s public key. 4. When B receives the message, B decrypts it using B’s private key (which only B knows). 5. No one else can decrypt the message, because no one else has B’s private key. Furthermore, as no secret keys were exchanged, there is no danger of an attacker intercepting a secret key, as there is in conventional systems. A3.1.3 Digital Signatures and Key Exchange Public-key algorithms are much simpler than conventional algorithms, but running them takes a lot of computer time, so public-key systems are not generally used to encrypt documents or long messages; instead, they are used to generate digital signatures, which are used to guarantee the authenticity of the sender, and for exchanging secret keys to be used in conventional cryptography. When public-key encryption is used for digital signatures, the sender produces an abstract of the document, and then encrypts it using his private key, producing a signature. The recipient decrypts the signature using the sender’s public key; as only the unique public key—private key pair will successfully encrypt and decrypt the abstract, the recipient is ensured that only the sender could have encrypted the abstract. The abstract that is used for the signature is often generated from the document using a hash function, which produces a fixed-length data block derived from the message, and called a hash code. The hash function is usually an algorithm based on conventional encryption. The sender generates the hash code using a secret key and the conventional encryption algorithm; the hash code is then encrypted using the sender’s private key. The recipient decodes the signature using the sender’s public 28 key, and the hash code is revealed. The recipient then regenerates the hash code from the message, using the same secret key that the sender used; if the two hash codes match, the document is authentic. The secret key used to generate the hash function, and to encrypt the document itself, may be sent to the recipient using a key exchange mechanism in which the secret key is encrypted using the recipients public key, as described above. As the secret key is relatively short5, the public-key encryption algorithm takes relatively little computer time to encrypt it and decrypt it; the conventional algorithm is then used to provide encryption for the message itself, and to generate the hash function. A3.1.3.1 Diffie-Hellman Key Exchange Another public-key mechanism for distributing secret keys is the algorithm that appeared in the first public paper to describe public-key encryption. Diffie-Hellman Key Exchange allows two users to securely exchange a secret key, which is also generated by the algorithm itself. Diffie-Hellman (DH) is based on calculating exponents using modulus arithmetic with a prime number base. While this is a relatively simple calculation, the inverse process of finding the logarithm modulo a prime number (called a discrete logarithm) is extremely difficult. There are two publicly known numbers used in a Diffie-Hellman key exchange: A prime number q and an integer that is a primitive root of q6. If A and B wish to exchange a key, A selects a random integer XA < q and computes YA = XA mod q. B independently selects a random integer XB < q and computes YB = XB mod q. The Y values are exchanged, and the X values are kept private. A may then compute a value K= (YB)XA mod q, and B may compute a value K = (YA)XB mod q. It can be shown that the two calculations will produce the same K; thus, A and B have generated a number K that can be used as the secret key. The system is secure against attack because an opponent who had access to only YA or YB could discover the corresponding X value only by taking a discrete logarithm, e.g., XA = ind,q(YB), where ind,q is the discrete logarithm. Finding the discrete logarithm is so difficult as to be computationally infeasible. A3.2 Authentication and Authorization An authentication service is used to ensure that the identity claimed by a party to a communication is correctly verified, whereas an authorization service ensures that the identified and authenticated party is entitled to access a particular device or application on the home network. 5 168 bits is only 21 octets, corresponding to 21 letters, as in the phrase: “This is a secret key!” If a is a primitive root of a prime number p, then the numbers a mod p, a2 mod p, …, ap-1 mod p, are distinct and consist of the integers from 1 through p-1 in some permutation. [42] contains a useful introduction to modulo arithmetic. 6 29 In general, authentication is the most confusing and complicated of security functions. Ultimately, it requires direct prior contact between the parties or one or more trusted third parties to vouch for the identity of a potential user, but the network of trusted parties that may evolve from this simple requirement can be staggeringly complex. Authentication can be as simple as supplying a password, but more than that will be needed to counter threats to the home network: First, the authentication process should not allow someone who observes and records it, even multiple times, from later carrying out a successful masquerade attack. Thus, if passwords are used, they cannot simply be transmitted from one party to another, but they must be hidden by some cryptographic protocol. Second, the authentication process should be two way; that is, both parties should be authenticated to each other; otherwise, it is not possible to protect against man-in-the-middle attacks, in which the attacker gets “between” the two legitimate parties, say Alice and Bob, and pretends to be Bob to Alice and Alice to Bob. Third, the authentication process should simultaneously establish a fresh, shared secret that Alice and Bob can use to protect the confidentiality and integrity of their entire communications session. There exist additional technical requirements as well: for example, the protocol should be safe against large-scale guessing attacks, and it should remain secure even when many instances of the protocol are run simultaneously. Examples of such comprehensive authentication protocols are Kerberos [2], IPSec [14], and SSL/TLS [6], [10]. A3.2.1 Firewalls Firewalls are designed to prevent unauthorized traffic between devices or networks. A Firewall may protect a single computer, portions of the local home network from each other or the entire home network from the Internet. A firewall implements a set of rules that determine if a pair of computers is allowed to communicate. Firewalls provide an effective defense by excluding undesirable traffic at the edge of the network as possible. This reduces the attacker options to those messages allowed to traverse the firewall. There are several firewall techniques: Packet filter: Examines each packet entering or leaving the network and accepts or rejects it based on policy rules. Packet filtering is fairly effective and transparent to users, but it is difficult to configure. Application Level gateway: Applies security mechanisms to specific applications, such as FTP and Telnet servers. This is very effective but requires the firewall to be aware of each application. Circuit-level gateway: Applies security mechanisms when a TCP or UDP connection is established. Once the connection has been made, packets can flow between the hosts without further checking. Proxy server: Intercepts all messages entering and leaving the network. Internal devices must be configured to use the proxy server in order to communicate with external hosts. To the external host traffic appears to 30 originate and terminate at the proxy, effectively hiding internal network topology and device identities. A3.3 Integrity and Confidentiality Integrity ensures that only authorized parties are able to create acceptable messages, and that no one else can modify the contents of messages. Integrity essentially embodies the authorization to write a message. Conversely, confidentiality ensures that the message is readable only by authorized parties. Authentication, as described above, is used to set up the cryptographic keys that are used to protect both the integrity and confidentiality of the contents of a session. Integrity is then achieved by adding a sequence number and MAC (see below) to the message. Confidentiality is accomplished by encrypting the message with an encryption algorithm and key that are sufficiently strong to foil attempts at decryption by an eavesdropper, while at the same time being easy to encrypt and to decrypt by the authorized users. It should be emphasized that such an encryption operation does not guarantee the integrity of the message. Because public key encryption is processor intensive and comparatively slow, it is not generally used for encrypting “user” messages; instead, conventional (symmetric) ciphers are used to provide message confidentiality. However, conventional ciphers require that a secret key be shared between the sender and receiver, and because conventional secret keys are only a few octets long, public key ciphers are often used as components of the authentication and key distribution protocols described above. A3.3.1 Message Authentication Code (MAC) A Message Authentication Code, or MAC, is used as the integrity function for IPSec and for SSL/TLS7. A Message Authentication Code is a small, fixed-size block of data, generated from the message using a secret key, and then appended to the message. Let us assume that Alice and Bob possess a secret key K, and that Alice wishes to send a message to Bob. Alice generates the MAC using the MAC function and K and appends the MAC to the message. When Bob receives the message, he also generates the MAC, using the same MAC function and the same K. He then compares the generated MAC with the MAC appended to the message. If they are identical, Bob knows that Alice sent the message, because only Alice and he have K. Bob also knows that the message is legitimate, i.e. that it has not been altered, because if it had been, Bob would have generated a different MAC from the one received with the message. Note that the MAC does not provide message confidentiality. Also note that there is no need for Bob to perform any decryption, as he merely needs to recalculate the MAC. In many cases, message integrity can be 7 IPSec specifies the HMAC algorithm [8], using either MD5 [1] or SHA-1 [4] as the underlying Hash function; see Section A.1.2.3.2. SSL/TLS uses an early version of the HMAC algorithm [7]; see Section A4.2. 31 implemented more efficiently than confidentiality. Note that K must be secret, and kept secret, until the message is checked. A3.3.2 Hash Functions and Digital Signatures A hash function produces a fixed length message digest that is generated by applying the function to an entire message. The hash function itself does not use an encryption mechanism to generate the message digest and thus does not use a secret key. Its strength is in its one-way nature. Although it is easy to generate a message digest from a plaintext message, it is extremely difficult to alter a message in such a way that applying the hash function will result in the same message digest as for the original message. In fact, a hash function is considered broken if any two messages with the same message digest can be found. MACs are often implemented applying a hash function to the message and the key in certain secure ways. The hash function thus provides a tool that can easily be used for ensuring message integrity. A digital signature is usually produced with public key encryption by encrypting a message digest with the Alice’s (the signer’s) private key. Bob (the verifier) is assured that the message came from Alice, because only she possesses her private key; he is also assured that the message is legitimate, because altering the message would alter the message digest. The essential difference between a MAC and a digital signature is as follows. When Bob verifies a MAC on Alice’s message, he knows that only he and Alice had the key, and he didn’t create the MAC, so she must have. But if he shows the message, MAC, and key to a judge and says, “Look what Alice said,” the judge should reply, “I’m not convinced; you could have made that up yourself.” With a digital signature, the situation is different. Only Alice has the signing key, so Bob has a good basis for his claim. This is what is meant by saying that digital signature provides support for non-repudiation. Alice’s ability to repudiate the message with her signature is severely constrained. The protocols like IPSec and SSL described below use MACs, not digital signatures, to protect the messages, so if non-repudiation is needed (say, to commit to a purchase), protocols like S/MIME [34] should be used in addition. Note that the authentication protocols in IPSec and SSL used to set up the confidentiality (encryption) and integrity (MAC) keys commonly use digital signatures, even though the protected traffic itself is not signed. Note also that because hash functions are of fixed length, and may be much shorter than the associated message, the use of public key cryptography does not impose an undue burden. Note, finally, that a hash function, digital signature, or MAC does not, by itself, provide message confidentiality; confidentiality requires further encryption functions, as described in Section A3.3. 32 A4 Home Network Security Solutions The previous sections described some security tools and mechanisms. This section covers how they can be combined into a system that implements multiple security services partially satisfying a home network security policy. Existing security systems deployed in products today will be the starting point for home network security. This section describes additional security systems for home networks. The VHN Home Network assumes that IP will be used to access controlled devices and that web-based tools (i.e., web servers and web browsers, using HTTP and HTML) will provide the user interface to the control mechanisms. In this model, the most important security systems for the home network are likely to be IP Security (IPSec) [14] and Secure Sockets Layer (SSL) [6], or its IETF version, Transport Layer Security (TLS) [10]. IPSec provides authentication, key management, integrity, replay detection, and confidentiality services for IP-based communications. SSL/TLS does the same for webbased (HTTP) communication. These services are described below. A4.1 IPSec IPSec provides security services at the IP layer that allow the user to apply combinations of integrity, replay detection, and encryption to IP packets. It also provides a mechanism for users to authenticate each other and generate and exchange session keys, secret keys that are used for a limited time (a session), and then discarded. IPSec also allows users to choose where, in the transmission path, to apply the security services: at either or both end devices, or at a intermediate nodes, such as routers or access devices. IPSec is the principal service used by enterprises to establish Virtual Private Networks (VPNs). IPv6 will incorporate IPSec as a required part of IP; however, IPSec may also be used with IPv4. In this section, we describe only the IPv4 implementation of IPSec. A4.1.1 Security Associations and the Security Policy Database At the heart of IPSec are the security association (SA), a one-way relationship between sender and receiver that defines the security mechanisms to be used, and the Security Policy Database (SPD), which allows the sender to apply security associations selectively to outgoing IP packets. A security association (SA) specifies a security mechanism (AH, Authentication Header [3], or ESP, Encapsulating Security Payload [18]) and a set of parameters including the security services (integrity, encryption, or integrity plus encryption), cryptographic algorithms, and other important data, such as keys and expiration time. The SA is named by the IP destination address and a 32-bit value called the Security Parameters Index (SPI). Each of these services are implemented by applying the specified cryptographic algorithm to an IP packet and then inserting a security header on it. This header corresponds to the mechanism: one format is used for AH, another for ESP. The Security Policy Database (SPD) consists of a list of SA selectors that determine the processing of outgoing IP packets. Packets may be sent unprotected, dropped, or mapped to an SA bundle. Selectors examine parameters such as destination IP 33 address, user ID, transport layer protocol (e.g., TCP or UDP), or source or destination ports. A4.1.2 Transport Mode and Tunnel Mode: The security services of IPSec may be applied in transport mode or in tunnel mode. In transport mode (see Figure 1), security must be applied at the originating node and removed at the terminating node. AH authenticates the IP payload and part of the IP header, while ESP encrypts or authenticates the IP payload, but not the IP header. In transport mode, the IP header specifies AH or ESP as the next protocol; in the case of AH, the AH header explicitly names the next protocol, e.g., TCP, whereas with ESP, the next protocol is encoded near the end of the (potentially) encrypted payload. One or more Security Associations Host (IPSec) Router Network Host (IPSec) Router Network Network Figure 1: IPSec Transport Mode—One or more security associations apply between end stations (adapted from [42]). In tunnel mode (see Figure 2), security may be applied either at an end device or at a router. The AH or ESP header is attached, as in transport mode, but the next protocol is IP again. The original packet is treated as the payload of a new IP packet with new IP header; the security mechanisms are applied to the entire new payload (original IP packet plus security header), thus protecting both the original IP packet and the original IP header. The new IP header may have completely different IP source and destination addresses from those in the original IP header; in fact, this new header is usually used to route the packet between routers or gateways, which serve as the source and destination for the secured payload. Thus, the encrypted packet travels through a tunnel from the originating router or gateway to the receiving router or gateway, where the protection is removed. The original IP header is then revealed and used to complete the routing of the packet. 34 In tunnel mode, AH authenticates the entire inner IP packet (including the original header), and part of the outer (new) IP header. ESP applies encryption, the integrity service, or both to the inner IP packet and its header. Tunnel Security Association Host Router (IPSec) Network Host Router (IPSec) Network Network Figure 2: IPSec Tunnel Mode—A security association is applied at network boundaries (adapted from [42]). A4.1.3 Authentication Header (AH): AH (Figure 3) provides data integrity service by prepending a MAC (see Section A.1.2.3.1 above) and a sequence number. The MAC is calculated over the portions of the IP header that do not change in transit (“immutable” fields, such as the IP source address), or that are predictable at the receiver (e.g., the IP destination address), the AH header itself (other than the MAC value), and the IP payload. 0 8 Next Header 31 16 Payload Length Reserved Security Parameters Index (SPI) Sequence Number Authentication Data Figure 3: The IPSec Authentication Header (AH) (adapted from [42]). 35 The IPSec specification requires the use of HMAC [8], using either the MD5 [1] or SHA1 [4] hash function. Users must share a secret key; which is affected by the key management function of IPSec, described below. A 12-octet field in the AH header contains the first 96 bits of the HMAC hash value. The AH header also contains a 4-octet sequence number that is incremented each time a packet is sent, to defend against replay attacks. Because IP is an unreliable datagram service, packets may arrive out of sequence, so the receiver must implement a sliding window that allows received packets to be tagged according to sequence number. In transport mode (Figure 4), the AH header is placed between the IP header and the payload. The integrity service covers the entire packet, excluding mutable fields in the IP header. In tunnel mode, the AH header is placed between the original IP header and the new, outer IP header. The MAC is computed over the entire original IP packet (including the entire IP header), and outer IP header, excluding mutable fields. Authenticated except for mutable fields Original IP Header AH TCP Header Data AH in Transport Mode Authenticated except for mutable fields in the new IP header New IP Header AH Original IP Header TCP Header Data AH in Tunnel Mode Figure 4: AH in Transport Mode and in Tunnel Mode (adapted from [42]). In this example, the IP payload is a TCP segment. A4.1.4 Encapsulating Security Payload (ESP) Header: The ESP service can provide message confidentiality, limited traffic flow confidentiality, message integrity, and replay detection. AH cannot provide the former two services. ESP can use any of several conventional (i.e., symmetric) ciphers for the confidentiality service. It is mandatory that DES be implemented, but there are alternatives with greater cryptographic strength that may be implemented as options, including three-key 36 triple DES, RC5, IDEA, three-key triple IDEA, CAST, and Blowfish8. AES will be added soon. The optional authentication service uses the same HMAC algorithms as specified for AH. 0 8 31 16 Security Parameters Index (SPI) Sequence Number Payload Data (variable) Padding (0-255 Bytes) Pad Length Next Header Authentication Data (Optional) Figure 5: The IPSec ESP Header (adapted from [42]). In transport mode (Figure 6), ESP can provide confidentiality for any application, making it unnecessary to implement confidentiality in each application. At the originating host, the ESP header is inserted between the IP header and the IP payload, and an ESP trailer is appended to the IP packet. Then, the payload and trailer are encrypted; if authentication is also provided, an ESP authentication data field, containing the MAC code, is placed after the ESP trailer. The encrypted payload, ESP header, and ESP trailer are authenticated. The packet is authenticated and decrypted in reverse order at the receiving host. 8 A brief introduction to these ciphers may be found in [42], which also contains an introduction to cryptography. 37 Authenticated Encrypted Original IP Header TCP Header Data ESP Tlr ESP in Transport Mode Authenticated Encrypted New IP Header Original IP Header TCP Header Data ESP Tlr ESP in Tunnel Mode Figure 6: ESP in Transport Mode and in Tunnel Mode (adapted from [42]). In this example, the IP payload is a TCP segment. In tunnel mode, the entire IP packet, including the header, may be encrypted at an access interface or external router to provide limited protection against traffic analysis, because it is impossible to determine the original source IP address or the ultimate destination. Authentication and decryption are performed at the receiving access interface or router, which relieves the burden on individual hosts of providing encryption and authentication services and simplifies both administration and key management (see below). Tunnel mode ESP is the service commonly used to implement VPNs for enterprise networks. A4.1.5 Combining Security Associations Security associations for a transport stream may be combined into a security association bundle: In a transport adjacency bundle, both AH and ESP are applied to a packet, which allows the IP source and destination addresses to be authenticated9. A more common way to combine SAs is called iterated tunneling (Figure 7), in which different SAs are applied at various points in the transport stream. For example, AH may be applied in transport mode, and ESP in tunnel mode, providing authentication of the original packet and original IP header, and encryption for the entire packet, and header, as well as defense against traffic analysis. 9 Note that using ESP in transport mode with the authentication option does not authenticate any fields in the IP header; see Figure 6. 38 One or more Security Associations Tunnel SA Host (IPSec) Router (IPSec) Network Host (IPSec) Router (IPSec) Network Network Figure 7: Iterated Tunneling in IPSec (adapted from [42]). A4.1.6 Key Management: Because both AH and ESP need shared secret keys, an automated key distribution mechanism is needed to provide the transmitter and receiver with these keys. IPSec defines the Internet Key Exchange (IKE) [21] protocols, which uses the OAKLEY Key Determination Protocol [49] to generate keys, and the Internet Security Association and Key Management Protocol (ISAKMP) [20] to manage the key distribution; ISAKMP is also used to set up and delete security associations. Oakley is an enhancement of the Diffie-Hellman Key Exchange protocol. Diffie-Hellman requires users to agree publicly on two global parameters: a large primary number p, and , a primitive root of p. Once these parameters are set, the parties can each calculate a secret key merely by passing, in the clear, numbers derived from these values. Thus, secret keys are created only when needed, and no infrastructure is needed to generate or pass the keys, beyond establishing p and . However, DiffieHellman as described here (Section A.1.2.1.3.1) performs key agreement without authentication. In Oakley, the parties go through the key agreement stage and then exchange signatures on their transcripts of the entire exchange to authenticate the other party and ensure that all messages were delivered intact without any active attacks on the protocol. The difficult part of the process is setting up an infrastructure with which to verify these signatures. ISAKMP sets up and modifies security associations; in fact, an IPSec SA begins with the exchange of ISAKMP packets. An ISAKMP message, carried in a UDP segment, consists of an ISAKMP header followed by an ISAKMP payload. The header contains a pseudorandom number called a cookie, which is used to authenticate the sending party and counter a clogging attack, which is similar to a resource exhaustion attack; it also identifies the type of payload that follows. The payload itself contains the information needed to establish an SA, pass values of p and , and generate the secret session keys needed for encryption and integrity checks. 39 A4.2 SSL/TLS Netscape developed SSL [45], the Secure Sockets Layer protocol, to implement security on HTTP-based communications. SSL Version 2 contained design implementation defects, and both Microsoft (PCT) and Netscape (SSLv3 [6]) proposed improvements. The IETF formed the TLS Working Group to develop a common standard. Version 1 of TLS, the Transport Layer Security protocol [10], was issued in January, 1999. As TLS is functionally almost identical to SSL, and as SSL is already widely deployed, it is not obvious that TLS will displace SSLv3 any time in the near future. Therefore, this section concentrates on the features and specifications of SSLv3 but generally refers to the “generic” SSL/TLS protocol. A4.2.1 SSL/TLS Record Protocol and SSL/TLS Handshake Protocol: SSL/TLS is a collection of protocols that lie above the transport layer and use the services of TCP to send secured messages between parties. As stated in the SSL specification [6]: “The SSL Record Protocol is used for encapsulation of various higher level protocols. One such encapsulated protocol, the SSL Handshake Protocol, allows the server and client to authenticate each other and to negotiate an encryption algorithm and cryptographic keys before the application protocol transmits or receives its first byte of data. One advantage of SSL is that it is application protocol independent. A higher level protocol can layer on top of the SSL Protocol transparently.” This “higher level protocol” is usually HTTP. SSL SSL Change Handshake Cipher Spec Protocol Protocol SSL Alert Protocol HTTP SSL Record Protocol TCP IP Figure 8. The SSL Protocol Stack (adapted from [42]). A4.2.2 The SSL Session and the SSL Connection: Two important concepts for SSL are the SSL Session and the SSL Connection. An SSL Session is an association between a client and server, set up by the SSL Handshake Protocol that defines a set of cryptographic security parameters. An SSL Connection is a virtual channel between two communicating entities. While a connection may be short-lived, a session may persist for a long time. Each connection is associated with a single session, but a session may be associated with multiple 40 connections. Thus, once a session is established, parties may open and close many connections by using the security mechanisms and parameters of the session. A4.2.3 SSL Session States: A session is characterized by its states, which are defined by the ciphers chosen for encryption and data integrity, an optional compression method, and a master secret that is used to generate various secret keys. Each session is identified by an arbitrary byte sequence called a session identifier. While the SSL Handshake Protocol is setting up or changing a session, the parameters being fixed by the SSL Handshake Protocol constitute the pending state of the session. When the SSL Handshake Protocol has successfully completed, the SSL Change Cipher Spec protocol is invoked, and the pending state becomes the current state of the session. A4.2.4 SSL Connection States: A connection is also characterized by its states, which are defined by the secret keys chosen for encryption and data integrity, random numbers chosen by the client and server to identify the connection, and sequence numbers incremented by the client and server each time a message is sent, to thwart replay attacks. A4.2.5 SSL Message Exchange: A. SSL messages are sent using the services of the SSL Record Protocol, which provides confidentiality and message integrity. SSL prepares the message for transmission in five steps (Figure 9): B. The message is fragmented into blocks of manageable size, with maximum block size of 214 bytes. C. Compression is optionally applied. The compression must be lossless, and may not increase the size of the message by more than 1024 bytes. Neither SSL nor TLS specifies a compression algorithm. D. A MAC is calculated over the compressed data, using a shared secret key. The MAC calculation is based on an early version of HMAC [7] and is similar to that defined for HMAC [8]. E. The compressed message plus the MAC are encrypted using another shared secret key. Allowed block ciphers include IDEA, RC2-40, DES-40, DES, Triple DES, Fortezza; allowed stream ciphers are RC4-40 and RC4-128. F. A header is prepended to the encrypted message to identify the nature (e.g., handshake, or application data) and compressed length of the message. 41 Application Data Step 1 Fragment Step 2 Compress Step 3 MAC Step 4 Encrypt Step 5 Append SSL Record Header Figure 9. Operation of the SSL Record Protocol (adapted from [42]). A4.2.6 SSL Session Establishment: Before any application data can be protected using the SSL Record Protocol, an SSL session must be set up with the SSL Handshake Protocol. This is a complicated procedure that involves the authentication of the server to the client (and possibly the client to the server), negotiation of the encryption and MAC algorithms to be used, and the generation of secret keys and other security parameters. In the first stage of session setup, the client sends the server a client_hello message. It includes a session identifier; a nonce10 (the ClientHello.random) used to prevent replay attacks and as input to the key generation algorithm; a list of key-generation algorithms supported by the client; and the client’s preferred list of MAC and encryption algorithms. Key generation may be based on Diffie-Hellman, but it can also use RSA (to transmit a secret key generated by the client) or Fortezza. As part of the key generation process, the client may request a public key certificate from the server. The server responds to the client_hello message with a server_hello message, in which the server selects from 10 In cryptography, a nonce is an unpredictable number or identifier that is used only once. 42 the cryptographic options presented by the client, thus establishing the algorithms to be used in the session, and sends the client its own nonce (the ServerHello.random). In the second stage, the server authenticates itself by sending the client its public key certificate (if requested). Optionally, it also sends the public Diffie-Hellman parameters needed for key generation, and it may request the client authenticate itself by providing a public key certificate. In the optional third stage, the client responds with its public key certificate (if requested) and a certificate_verify message to provide explicit verification for the client’s certificate. The client and server now use their shared secret based on the RSA or Diffie-Hellman exchange to generate a pre_master_secret, which is used, along with the ClientHello.random and ServerHello.random nonces, as input to a complicated hash algorithm, to generate the master_secret. This, in turn, is reused, as input to the same algorithm, to generate the various secret keys needed for the session. Finally, in the fourth stage, the client sends the server the change_cipher_spec message, and changes the pending state of the session to the current state; the client then sends the server the finished message, encrypted with the current encryption algorithm and keys. The server responds with its own change_cipher_spec and finished messages, completing the handshake. A5 A Note on Link-Level Security in the Home Network The VHN Home Network is an internet in which the component networks may use a wide variety of technologies. In addition to LAN technologies such as Ethernet or IEEE 1394, component networks may include systems that use power line or wireless transport. Some of these technologies have inherent security risks. For example, a wireless system may leak significant signal power beyond the boundary of the home, allowing a snooper to listen to traffic. Power line systems may also be vulnerable to eavesdropping or intrusion if the power line itself is accessible outside the house, say through a tap on the distribution transformer or through an outdoor outlet. In an apartment building, where living units are closely packed and all use a common power system, signals on wireless and power line technologies are particularly easy to intercept. Vendors of these systems are quite aware of these problems, and some of them have taken steps to implement link-layer encryption to secure traffic on their systems. For example, Bluetooth™ provides an elaborate security service at both the application layer and at the link layer, which uses proprietary authentication and encryption algorithms, with a key size of 128 bits for authentication, and from 8 to 128 bits for encryption [44]. Home Plug and Play also provides link layer security that includes several levels of password protection [42]. While it is clear that there is a need for security services on these vulnerable technologies, the proliferation of link layer security technologies could become too 43 much of a good thing when they become components of a larger internet. If a signal passes through three or four links, each of which implements its own authentication and encryption, throughput may go down and costs may go up. There is a need to control processor time and cost if the security provided by individual network technologies is not to be a burden on the integrated home network. It is clear that a single home network security policy would be preferable to multiple security mechanisms applied sequentially to a signal as it traverses the home, and there may be an impetus to coordinate these independent security services as home networks evolve. In the meantime, the broadband home network will have to live with multiple link layer security services provided by individual component networks. 44