home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_n_r / draft-richardson-ipsec-traversal-cert-01.txt < prev    next >
Text File  |  1997-07-10  |  22KB  |  589 lines

  1. Network Working Group                                 Michael Richardson 
  2. INTERNET-DRAFT                                               Kai Martius
  3. draft-richardson-ipsec-traversal-01.txt                v1.1, 9 July 1997
  4. Expires in six months
  5.  
  6.  
  7.                 Firewall Traversal authorization system
  8.  
  9. Status of This memo
  10.  
  11. This document is an Internet-Draft. Internet-Drafts are working
  12. documents of the Internet Engineering Task Force (IETF), its areas,
  13. and its working groups. Note that other groups may also distribute
  14. working documents as Internet-Drafts.
  15.  
  16. Internet-Drafts are draft documents valid for a maximum of six
  17. months and may be updated, replaced, or obsoleted by other documents
  18. at any time. It is inappropriate to use Internet-Drafts as reference
  19. material or to cite them other than as ``work in progress.''
  20.  
  21. To learn the current status of any Internet-Draft, please check
  22. the ``1id-abstracts.txt'' listing contained in the Internet-Drafts
  23. Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  24. munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast),
  25. or ftp.isi.edu (US West Coast).
  26.  
  27. Abstract
  28.  
  29. This document describes a public key certificate mechanism to authorize
  30. traversal of multiple security gateways (firewalls). This work is inde-
  31. pendant of transport layer in concept, and could apply to IPsec, TLS, or
  32. SecSH. It is applied here to IPsec. The SPKI certificate format is used
  33. here.
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Michael Richardson and Kai Martius                              [page 1]
  59.  
  60. INTERNET-DRAFT                                         v1.1, 9 July 1997
  61.  
  62. Table of Contents
  63.  
  64. 1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  65.   1.1.  Definition of terminology   . . . . . . . . . . . . . . . . .  2
  66. 2.  Introduction to the problem   . . . . . . . . . . . . . . . . . .  3
  67.   2.1.  Key Sharing methods   . . . . . . . . . . . . . . . . . . . .  3
  68.   2.2.  Stacked or tunnelled solutions  . . . . . . . . . . . . . . .  4
  69.   2.3.  Virtual Circuit solutions   . . . . . . . . . . . . . . . . .  5
  70.   2.4.  Issues raised   . . . . . . . . . . . . . . . . . . . . . . .  6
  71. 3.  Firewall traversal certificates   . . . . . . . . . . . . . . . .  6
  72.   3.1.  The IP-Gateway Certificate  . . . . . . . . . . . . . . . . .  7
  73.   3.2.  Definition of certificate   . . . . . . . . . . . . . . . . .  7
  74.   3.3.  An example  . . . . . . . . . . . . . . . . . . . . . . . . .  8
  75.   3.4.  Completing the certificate loop   . . . . . . . . . . . . . .  8
  76. 4.  Security Considerations:  . . . . . . . . . . . . . . . . . . . .  9
  77. 5.  References:   . . . . . . . . . . . . . . . . . . . . . . . . . .  9
  78.   5.1.  Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . 10
  79.   5.2.  Expiration and File Name  . . . . . . . . . . . . . . . . . . 10
  80.  
  81.  
  82.  
  83. 1.  Introduction
  84.  
  85. This document is a result of recent discussions in the IETF ipsec, IETF
  86. secsh and IETF mobileip working groups about how to trust security
  87. gateways (aka firewalls) with end-to-end (host to host) encryption and
  88. authentication keys.
  89.  
  90. This document describes the problem, some solutions which have been
  91. suggested in the past, and then goes on to describe a system of public
  92. key signed certificates that would allow a series of appropriate
  93. connections to automatically be setup.
  94.  
  95. Gupta97-1 gives an expanded view of the problems, and other solutions.
  96. Unlike Gupta97-1, this document does not limit itself to firewalls that
  97. are known apriori, or under the same administrative control.
  98.  
  99. For a solution to be scalable to the entire internet, the policy must
  100. either be learnt dynamically from correspondant nodes (e.g. arrived at
  101. through negotiation), or must be available in some pre-existing global
  102. database such as the domain name system.
  103.  
  104. 1.1.  Definition of terminology
  105.  
  106. Here is a network of two security gateways, a client node and a server
  107. node.
  108.  
  109.                   C---{G1}---{G2}---S
  110.  
  111.             C is the client.
  112.             G1/G1 are gateways.
  113.             S is the server.
  114.  
  115.  
  116.  
  117. Michael Richardson and Kai Martius                              [page 2]
  118.  
  119. INTERNET-DRAFT                                         v1.1, 9 July 1997
  120.  
  121. Since there are potentially more than one transport or network layer
  122. connection, we define some terms to describe the different end points.
  123.  
  124.    C  is the transport layer originator. TLO
  125.  
  126.    S  is the transport layer target.     TLT
  127.  
  128.    C/G1
  129.       is a network layer originator/target pair. NLO/NLT/
  130.  
  131.    G1/G2
  132.       is a network layer originator/target pair.
  133.  
  134.    G2/S
  135.       is a network layer originator/target pair.
  136.  
  137. If discussing application layer protocols (e.g. SSH, TLS) through
  138. security gateways, then the transport layer designations above should be
  139. replaced with the session layer designations (e.g. URL, hostname), and
  140. the network layer designations with transport layer designations (e.g.
  141. TCP endpoints, SSH/TLS host keys).
  142.  
  143. The end points of the different types of connections will be denoted
  144. with a subscript. So, when C is used in an TLO context, the symbol C_s
  145. will be used (s for Server) . When C is used in a NLO context, the
  146. symbol C_g1 or C_g2 will be used.
  147.  
  148. 2.  Introduction to the problem
  149.  
  150. The problem is not as some say, merely a question of allowing security
  151. protocols to pass unexamined through a security gateway. Many
  152. environments have very strong auditing requirements, and encrypted
  153. traffic is by design, intended to thwart attempts for third parties to
  154. eavesdrop.
  155.  
  156. Further, this policy relies on the security of target hosts being
  157. perfect. Were this the case in practice, for all vendors, for all
  158. releases, both new and old, the firewall might not be required at all.
  159.  
  160. 2.1.  Key Sharing methods
  161.  
  162. It has been suggested by several people XXX that a key sharing protocol
  163. will solve the problem. The firewall(s) would be provided with the
  164. encryption keys in order to examine the traffic. Alternately, a copy of
  165. the authentication keys would allow the firewall to verify the origin of
  166. the packets, thus allowing it to apply its access policy.
  167.  
  168.         C <------+----------+------> S
  169.                  G1         G2
  170.  
  171. This solution is not appropriate because the problem is more
  172. complicated. In general there will be a combination of network address
  173. translating firewall, topology hiding firewalls, and particularities of
  174.  
  175.  
  176. Michael Richardson and Kai Martius                              [page 3]
  177.  
  178. INTERNET-DRAFT                                         v1.1, 9 July 1997
  179.  
  180. various protocols.
  181.  
  182. A host behind a network address translation may have an address that is
  183. not available, or worse: illegal, to its correspondant node. The
  184. firewall must therefore be involved during all the key exchange protocol
  185. because the firewall (or the address that the TLx is translated to) is
  186. the logical end point for the encryption, not the actual TLx.
  187.  
  188. When topology is hidden by a firewall, there must be some mechanism to
  189. map the connection to the intended TLT. That is, despite the topology
  190. hiding, there is a need to name selected pieces of the internal
  191. topology, and communicate that name to the firewall.
  192.  
  193. The difficulty of doing this in general for all protocols in first
  194. generation application layer firewalls, even for outbound connections,
  195. is what caused the development of protocols like SOCKS.
  196.  
  197. A firewall that supports protocols that use more than a single logical
  198. connection also has a requirement to see the contents of the "control"
  199. or "nameserver" connection. The typical example is FTP, but CuSeeMe,
  200. RealAudio, SunRPC (portmap is the nameserver connection), and most
  201. multicast protocols have this problem.
  202.  
  203. Furthermore, sharing of authentication keys leads to the problem that
  204. receiver can only verify a group of senders which in fact isn't an
  205. authentication anymore.
  206.  
  207. 2.2.  Stacked or tunnelled solutions
  208.  
  209. A second proposal is to stack algorithms. This is being proposed by
  210. Gupta97-2 for the mobileIP group. This is best illustrated by a diagram.
  211.  
  212.                   C_s  <------+----------+------> S_c
  213.                   C_g2 <------+--------> G2_c***>
  214.                   C_g1 <----> G1_c*****>
  215.  
  216. Each arrow represents a secure connection, the upper connections being
  217. transported in the lower connections. Stars represent unencrypted (from
  218. that layer's point of view) connections.
  219.  
  220. Note: there is n+1 layers when n gateways are involved. Two gateways are
  221. typical (one at each location), but should two higher security networks
  222. (e.g. research or finance) inside the lower security organizational
  223. network need to communicate, this number rises to 4. Future topologies
  224. could further increase n.
  225.  
  226. Some systems which have implemented this method include SOCKS: one runs
  227. SOCKS inside SOCKS.
  228.  
  229. The most glaring problem, however, is that the data, if encrypted, is
  230. opaque to both gateways! The traversal problem has been solved, but the
  231. auditing and protocol requirements remain.
  232.  
  233.  
  234.  
  235. Michael Richardson and Kai Martius                              [page 4]
  236.  
  237. INTERNET-DRAFT                                         v1.1, 9 July 1997
  238.  
  239. There is some difficulty with dealing with ICMP messages, since the
  240. gateway may not be able to do anything with them.
  241.  
  242. The repeated encapsulation (tunnelling) of one packet inside another
  243. increases the overhead, and for packet protocols, decreasing the amount
  244. of payload per packet.
  245.  
  246. This has serious efficiency and reliability implications. Node C may
  247. have difficulty getting accurate ICMP messages back, and may not be able
  248. to set its TCP MSS properly leading to excessive fragmentation. This
  249. problem is not unique to this topology.
  250.  
  251. 2.3.  Virtual Circuit solutions
  252.  
  253. An alternate way to set up the associations is a series of adjacent
  254. tunnels rather than a stack of tunnells. This is similar to what happens
  255. in ATM networks with virtual circuits are setup. The ATM switches
  256. negotiation frame ids between themselves and act as stateful routers.
  257.  
  258. There may still be a need for strong end to end security in this
  259. situation, so the tunnels may be used to transport an end to end
  260. security association. At most, there are two layers of security
  261. associations with this method.
  262.  
  263.           End to end      C_s  <--------+----------+--------> S_c
  264.           Hop by hop      C_g1 <------>G1_c
  265.                                        G1_g2<---->G2_g1
  266.                                                   G2_s<-----> S_g2
  267.  
  268. There are three ways to arrange the two sets of security associations:
  269.  
  270.    1. Delegated traversal
  271.       the gateways may provide sufficient trust in identity that an
  272.       internal tunnel is not required. In that case, an upper protocol
  273.       may appear immediately inside the hop-by-hop security header. The
  274.       hop-by-hop SA's may provide authentication alone, or encryption
  275.       and integrity.  On-the-wire IPsec packets might look like:
  276.  
  277.                              IP[C_g1->X] AH[C_g1->G1_c TCP/UDP/ICMP]
  278.  
  279.    or
  280.  
  281.                              IP[C_g1->X] ESP[C_g1->G1_c TCP/UDP/ICMP]
  282.  
  283.    2. Audited Traversal
  284.       If the gateways do not permit unexamined (i.e. encrypted) data to
  285.       pass through, then the end to end (C_s/S_c) SA must be
  286.       authentication only. The hop-by-hop SA's would have to provide the
  287.       privacy features.  On-the-wire IPsec packets might look like:
  288.  
  289.              IP[C_g1->X] ESP[C_g1->G1_c
  290.                  IP[C_s->S_c] AH[C_s->S_c] TCP/UDP/IP/ICMP]
  291.  
  292.  
  293.  
  294. Michael Richardson and Kai Martius                              [page 5]
  295.  
  296. INTERNET-DRAFT                                         v1.1, 9 July 1997
  297.  
  298.    3. Authenticated traversal
  299.       If the gateways do allow encrypted data to pass through, then the
  300.       end to end SA's can include privacy features. The hop-by-hop SA
  301.       could be authentication only, or might include additional privacy
  302.       features to thwart traffic analysis.  On-the-wire IPsec packets
  303.       might look like:
  304.  
  305.              IP[C_g1->X] AH[C_g1->G1_c
  306.                      ESP[C_s->S_c] <whatever>]
  307.  
  308.    or
  309.  
  310.    IP[C_g1->X] ESP[C_g1->G1_c
  311.            ESP[C_s->S_c] <whatever>]
  312.  
  313. Some notes on above:
  314.  
  315. 1. In the audited case (1) it is possible for the gateways to control
  316.    what kind of data can flow through by looking at the next protocol
  317.    header in the AH packet. Thus the gateway can prevent unauthorized
  318.    tunnels from being formed. The gateway could allow IP without
  319.    necessarily giving up the ability to audit. This is not true for the
  320.    authenticated case, because once any ESP is allowed through, the
  321.    gateway gives up control of what protocols get transmitted through
  322.    the gateway.
  323.  
  324. 2. At all times a single SA's could be used for different streams of
  325.    traffic (at the same sensitivity), or multiple SA's could be used for
  326.    a single stream of traffic.
  327.  
  328. 3. in case 2, where there is an outer AH or integrity protected ESP, the
  329.    inner ESP is NOT REQUIRED to also provide integrity protection, but
  330.    may do so.
  331.  
  332. 4.  the X above could be either S_c or it could be G1_c. It is not clear
  333.    which is more appropriate. In the NAT situation, there are reduced
  334.    choices, in the absense of NAT, either is possible. (ISSUE)
  335.  
  336. 2.4.  Issues raised
  337.  
  338. The following questions are posed, which this document will attempt to
  339. resolve:
  340.  
  341. 1. how does the client know that it can trust gateway g1 or g2?
  342.  
  343. 2. how does the server know that it can trust gateway g1 or g2?
  344.  
  345. 3. how to tell the real server who the real client is?
  346.  
  347. Problems 1 and 2 are related, and are solved by the same mechanism. The
  348. information as to the real client is also passed by this proceedure.
  349.  
  350.  
  351.  
  352.  
  353. Michael Richardson and Kai Martius                              [page 6]
  354.  
  355. INTERNET-DRAFT                                         v1.1, 9 July 1997
  356.  
  357. 3.  Firewall traversal certificates
  358.  
  359. If one makes an analogy between security perimeters and altitudes, then
  360. the end nodes can be thought of as being on plateaus, possibly with
  361. several ledges on the way up, with large amounts of plain between
  362. plateaus.
  363. Virtual private network tunnels are then bridges that span between
  364. ledges/plateaus. Prior to building a bridge, some guide wires (symmetric
  365. keys) must be established. To establish the guide wires requires sending
  366. an ambassador out with appropriate proof of origin. The ambassador meets
  367. up with a representative of the distant plateau, and they exchange
  368. credentials. The meeting place, which occurs on the plain, at zero
  369. altitude will be referred to as "security zone 0".
  370.  
  371. The wide open Internet is a good example of such a zone and it is
  372. probably equivalent to sea level. In general, the security zone 0 is
  373. just the lowest point on the path between the two security plateaus.
  374.  
  375. The remainder of this document is therefore a description of the
  376. credentials that are provided by non-zero security zones to lower
  377. altitude security levels.
  378.  
  379. 3.1.  The IP-Gateway Certificate
  380.  
  381. At each downward hop, a certificate is used to delegate the identity of
  382. the TLO node to an lower security level gateway. At security level 0,
  383. the ambassador meets with their counterpart. The counterpart also brings
  384. a set of certificates.
  385.  
  386. Once proof of identify has been exchanged, the ambassador needs to bring
  387. that proof back to the security plateau. The ambassador does this by
  388. using the same certificate chain that was issued to it, to delegate the
  389. higher identity to the ambassador.
  390.  
  391. The certificates are SPKI format. The issuer of the certificate is
  392. ultimately the TLO or TLT node. The subject of the certificate is the
  393. node to which authority is being delegated. The authentication being
  394. delegated the list of hosts for which the gateway is authorized to speak
  395. for.
  396.  
  397. In the simplest case, there is only one certificate issued by the TLx
  398. nodes, and it can only delegate authority for itself. A more complicated
  399. system would have an organizational CA or ISP based CA signing a
  400. certificate that delegated a particular portion of the IP address space
  401. to a particular key.
  402.  
  403. 3.2.  Definition of certificate
  404.  
  405.    v4-network
  406.       this is followed by the v4 network prefix and the length of the
  407.       prefix. Hosts are indicated by a prefix length of 32.
  408.  
  409.    v6-network
  410.  
  411.  
  412. Michael Richardson and Kai Martius                              [page 7]
  413.  
  414. INTERNET-DRAFT                                         v1.1, 9 July 1997
  415.  
  416.       this is followed by the v6 network prefix and the length of the
  417.       prefix. Hosts are indicated by a prefix length of 128.
  418.    host
  419.       this is followed by a DNS name, or by a SDSI name
  420.  
  421. 3.3.  An example
  422.  
  423. For example, Somecompany.com used to use the class C subnet:
  424. 192.1.2.128/26. This is further divided into several 16 address subnet
  425. that exist behind a packet filter. Further firewalls inside did network
  426. address translation as well. The network topology would look like:
  427.  
  428.                   X14---fw1----pf1---<INTERNET>
  429.  
  430. where X14 has a private network address, fw1 provides network address
  431. translation, and pf1 provides filtering only.  Also assume that this
  432. organization had a IPv6 prefix of c0:ff:ee:04:ba:be::
  433.  
  434. Given that, DNSSEC would delegate authority for 192.1.2.128/26 and for
  435. somecompany.com to the key SC1, then the following statements might be
  436. made:
  437.  
  438.           (cert (issuer  SC1)
  439.                   (subject pf1)
  440.                   (auth   (ip-gateway
  441.                             (v4-network 205.233.54.128 26)
  442.                             (v6-network c0:ff:ee:04:ba:be:: 48))))
  443.  
  444.           (cert (issuer (ref SC1 xterm14.somecompany.com))
  445.                   (subject fw1)
  446.                   (auth   (ip-gateway (host
  447.                                   (ref SC1 xterm14.somecompany.com)))))
  448.  
  449. We have to use a host name here because there is no IP address that can
  450. be legitimately used.
  451.  
  452. ISSUE: I'm not sure how the (stop-at-key) etc. stuff of SPKI applies
  453. here yet, but I KNOW that it does
  454.  
  455. ISSUE: a wildcard for the hostname might also be desirable, but perhaps
  456. SDSI groups would also work here
  457.  
  458. 3.4.  Completing the certificate loop
  459.  
  460. Since all certificates chains must be rooted with a self-signed
  461. certificate, the verifier of the ip-gateway chain (for instance, the TLx
  462. node) must determine the origin of the TLO's authority to speak for that
  463. address/hostname. The origin of its authority would come from either
  464. DNSSEC or X.500 servers that it trusts.
  465.  
  466. This initial trust relationship would appear in this node via a
  467. preconfigured root CA key, or cross certification of DNSSEC servers...
  468. the technology for doing this is not described here.
  469.  
  470.  
  471. Michael Richardson and Kai Martius                              [page 8]
  472.  
  473. INTERNET-DRAFT                                         v1.1, 9 July 1997
  474.  
  475. 4.  Security Considerations:
  476.  
  477. This entire document discussed a security protocol.
  478.  
  479. 5.  References:
  480.  
  481.    RFC-1825
  482.       R. Atkinson, "Security Architecture for the Internet Protocol",
  483.       RFC-1825, August 1995.
  484.  
  485.    RFC-1826
  486.       R. Atkinson, "IP Authentication Header", RFC-1826, August 1995.
  487.  
  488.    RFC-1828
  489.       P. Metzger, W. A. Simpson, "IP Authentication using Keyed
  490.       MD5",RFC-1828, August 1995.
  491.  
  492.    KSM-AH
  493.       New AH draft.
  494.  
  495.    Maughan97
  496.       D. Maughan, M. Schertler, "Internet Security Association and Key
  497.       Management Protocol (ISAKMP)", version 7, draft-ietf-ipsec-
  498.       isakmp-07.txt, work in progress: February 21, 1997
  499.  
  500.    Harkins97
  501.       D. Harkins, D. Carrel, "The resolution of ISAKMP with Oakley",
  502.       draft-ietf-ipsec-isakmp-oakley-03.txt, version 3, work in
  503.       progress: February 1997
  504.  
  505.    Ylo97-1
  506.       T. Ylonen, "SSH Transport Layer Protocol", draft-ietf-secsh-
  507.       transport-00.txt, version 0, work in progress: March 22, 1997
  508.  
  509.    Ellison97
  510.       C. Ellison, B. Frantz, B.M. Thomas, "Simple Public Key
  511.       Certificate", draft-ietf-spki-cert-structure-01.txt, version 1,
  512.       work in progress: March 25, 1997
  513.  
  514.    SDSI
  515.       R. Rivest, B. Lampson, "SDSI - A Simple Distributed Security
  516.       Infrastructure SDSI",
  517.       %lt;URL:http://theory.lcs.mit.edu/ rivest/sdsi11.html>, October 2,
  518.       1996
  519.  
  520.    Monte96
  521.       G. Montenegro, V. Gupta, "Firewall Support for Mobile IP", draft-
  522.       montenegro-firewall-mobileip-00.txt,
  523.       %lt;URL:http://skip.incog.com/drafts/draft-montenegro-firewall-
  524.       mobileip-00.txt%gt;, work in progress: Sept. 14, 1996
  525.  
  526.    Doraswaymy97-1
  527.       N. Doraswaymy. "Implementation of Virtual Private Networks (VPNs)
  528.  
  529.  
  530. Michael Richardson and Kai Martius                              [page 9]
  531.  
  532. INTERNET-DRAFT                                         v1.1, 9 July 1997
  533.  
  534.       with IP Security", draft-ietf-ipsec-vpn-00.txt, work in progress:
  535.       March 12, 1997
  536.  
  537.    Gupta97-1
  538.       V. Gupta, S. Glass, "Firewall Traversal for Mobile IP: Goals and
  539.       Requirements", draft-ietf-mobileip-ft-req-00.txt, work in
  540.       progress: Jan. 20, 1997
  541.  
  542.    Gupta97-2
  543.       V. Gupta, S. Glass, "Firewall Traversal for Mobile IP: Guidelines
  544.       for Firewalls and Mobile IP entities", draft-ietf-mobileip-
  545.       firewall-trav-00.txt, work in progress: March 17, 1997
  546.  
  547. 5.1.  Authors' Addresses
  548.  
  549.           Michael C. Richardson
  550.           Sandelman Software Works Corp.
  551.           152 Rochester Street
  552.           Ottawa, ON K1R 7M4
  553.           Canada
  554.  
  555.           Telephone:   +1 613 233-6809
  556.           EMail:       mcr@sandelman.ottawa.on.ca
  557.           http://www.sandelman.ottawa.on.ca/People/Michael_Richardson/
  558.  
  559.           Kai Martius
  560.           Dresden University of Technology
  561.           Faculty of Medicine
  562.           Institute of Medical Informatics and Biometrics
  563.           Fetscherstr. 74
  564.           01307 Dresden
  565.           Germany
  566.  
  567.           EMail:       kai@imib.med.tu-dresden.de
  568.  
  569. 5.2.  Expiration and File Name
  570.  
  571. This draft expires January 9, 1998
  572.  
  573. Its file name is draft-richardson-ipsec-traversal-cert-01.txt
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588. Michael Richardson and Kai Martius                             [page 10]
  589.