home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / e / id-tls-02.txt < prev    next >
Text File  |  2020-01-01  |  46KB  |  1,163 lines

  1. Internet Engineering Task Force                                     Michael Boe
  2. INTERNET-DRAFT draft-ietf-tn3270e-telnet-tls-02.txt                 Cisco Systems
  3. expires January 2000
  4.                                                                      July, 1999
  5.  
  6.  
  7.  
  8.                         TLS-based Telnet Security
  9.  
  10. Status of this memo
  11. This document is an Internet-Draft and is in full conformance with all
  12. provisions of Section 10 of RFC2026. Internet-Drafts are working
  13. documents of the Internet Engineering Task Force (IETF), its areas, and
  14. its working groups. Note that the other groups may also distribute
  15. working documents as Internet-Drafts.
  16.  
  17.  
  18. Internet-Drafts are draft documents valid for a maximum of six months
  19. and may be updated, replaced or obsoleted by other documents at any time.
  20. Its is inappropriate to use Internet-Drafts as reference material or to
  21. cite them other than as "work in progress."
  22.  
  23.  
  24. The list of current Internet-Drafts can be accessed at
  25. http://www.ietf.org/ietf/1id-abstracts.txt
  26.  
  27.  
  28. The list of Internet-Draft Shadow Directories can be accessed at
  29. http://www.ietf.org/shadow.html.
  30.  
  31.  
  32. Copyright Notice
  33. Copyright (C) The Internet Society (1998, 1999). All Rights Reserved.
  34.  
  35.  
  36. Abstract
  37. Telnet service has long been a standard Internet protocol. However, a
  38. standard way of ensuring privacy and integrity of Telnet sessions has
  39. been lacking. This document proposes a standard method for Telnet
  40.  
  41. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  42. servers and clients to use the Transport Layer Security (TLS) protocol.
  43. It describes how two Telnet participants can decide whether or not to
  44. attempt TLS negotiation, and how the two participants should process
  45. authentication credentials exchanged as a part of TLS startup.
  46.  
  47.  
  48. Changes since -01 Draft
  49.    o Drop possibility of a continuing a Telnet session if the TLS
  50.      negotiation fails.
  51.  
  52.    o Assert that server sending DO STARTTLS must be willing to negotiate
  53.      a TLS session
  54.  
  55.    o Change SHOULD to MUST with respect to a server requesting a client
  56.      certificate.
  57.  
  58.    o Add paragraph on commonName to section on check of X.509
  59.      certificate.
  60.  
  61.    o Sharpen language concerning notification of possible
  62.      server-certificate mismatch.
  63.  
  64.    o drop place-holder section on Kerberos 5 security; replace with
  65.      section on non-PKI-based authentication (after TLS negotiation).
  66.  
  67.    o Prohibit fallback to SSL 2.0.
  68.  
  69.    o Give more details about how authentication-after-TLS-negotiation
  70.      can be achieved.
  71.  
  72.    o Simplify post-TLS Telnet negotiation state-assumptions by resetting
  73.      them to initial-state.
  74.  
  75.  
  76. Changes since -00 Draft
  77.    o Add local authentication/authorization operational model.
  78.  
  79.    o Change behavior of Telnet machine to reset at start of TLS
  80.      negotiation.
  81.  
  82.    o Insert narrative questioning the utility of allowing continuation of
  83.      Telnet session after TLS has ended.
  84.  
  85.    o change examples to reflect the above changes.
  86.  
  87.    o Fix several typos.
  88.  
  89. Michael Boe                                                           [Page 2]
  90.  
  91. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  92. Contents
  93.  
  94.  
  95. 1    Introduction                                                          5
  96. 2    Telnet STARTTLS Option and Subnegotiation                             7
  97.  
  98.  
  99.      2.1     Abnormal Negotiation Failure    .    .    .    .    .    .    8
  100.  
  101.  
  102.      2.2     Assigned Values for STARTTLS Negotiation    .    .    .       8
  103. 3    Telnet Authentication and Authorization                               8
  104. 4    TLS, Authentication and Authorization                                 9
  105.  
  106.  
  107.      4.1     Authentication of the remote party       .    .    .    .    13
  108.  
  109.  
  110.      4.2     PKI-based Authentication and certificate extensions          14
  111.  
  112.  
  113.      4.3     Pre-TLS Authentication      .    .    .    .    .    .    .  14
  114. 5    Security                                                             15
  115.  
  116.  
  117.      5.1     Authentication of the Server by the Client   .    .    .     15
  118.  
  119.  
  120.           5.1.1     PKI-based certificate processing      .    .    .     15
  121.  
  122.  
  123.      5.2     Non-PKI-based Authentication of client or server     .       16
  124.  
  125.  
  126.      5.3     Display of security levels      .    .    .    .    .    .   16
  127.  
  128.  
  129.      5.4     Trust Relationships and Implications    .    .    .    .     17
  130. 6    TLS Variants and Options                                             17
  131.  
  132.  
  133.      6.1     Support of previous versions of TLS      .    .    .    .    17
  134.  
  135.  
  136.      6.2     Using Kerberos V5 with TLS       .    .    .    .    .    .  18
  137. 7    Protocol Examples                                                    18
  138.  
  139.  
  140. Michael Boe                                                           [Page 3]
  141.  
  142. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  143.      7.1     Successful TLS negotiation      .    .    .    .    .    .   18
  144.  
  145.  
  146.      7.2     Successful TLS negotiation, variation   .    .    .    .     18
  147.  
  148.  
  149.      7.3     Unsuccessful TLS negotiation    .    .    .    .    .    .   19
  150.  
  151.  
  152.      7.4     Authentication via Kerberos 4 after TLS negotiation          20
  153.  
  154.  
  155.  
  156. Michael Boe                                                           [Page 4]
  157.  
  158. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  159. 1    Introduction
  160. We are interested in addressing the interaction between the Telnet
  161. client and server that will support this secure requirement with the
  162. knowledge that this is only a portion of the total end-user to
  163. application path. Specifically, it is often true that the Telnet server
  164. does not reside on the target machine (it does not have access to a list
  165. of identities which are allowed to access to that mainframe), and it is
  166. often true (e.g. 3270 access) that the TN server can not even identify
  167. that portion of the emulation stream which contains user
  168. identification/password information. Additionally, it may be the case
  169. that the Telnet client is not co-resident with the end user and that it
  170. also may be unable to identify that portion of the data stream that deals
  171. with user identity. We make the assumption here that there is a trust
  172. relationship and appropriate protection to support that relationship
  173. between the TN Server and the ultimate application engine such that data
  174. on this path is protected and that the application will authenticate the
  175. end user via the emulation stream as well as use this to control access
  176. to information. We further make the assumption that the path between the
  177. end user and the client is protected.
  178.  
  179.  
  180. To hold up the Telnet part of the overall secure path between the user
  181. and the mainframe, the Telnet data stream must appear unintelligible to
  182. a third party. This is done by creating a shared secret between the
  183. client and server. This shared secret is used to encrypt the flow of data
  184. and (just as important) require the client to verify that it is talking
  185. to correct server (the one that the mainframe trusts rather than an
  186. unintended man-in-the-middle) with the knowledge that the emulation
  187. stream itself will be used by the mainframe to verify the identity of the
  188. end-user. Rather than create a specialized new protocol which
  189. accomplishes these goals we instead have chosen to use existing
  190. protocols with certain constraints.
  191.  
  192.  
  193. One such existing protocol is the TLS protocol (formerly known as SSL).
  194. And the Telnet [TELNET ] application protocol can certainly benefit from
  195. the use of TLS. Other security mechanisms have been used with Telnet
  196. (e.g. KERBEROS [RFC1416 ]), but TLS offers a broad range of security
  197. levels that allow sites to proceed at an "evolutionary" pace in
  198. deploying authentication, authorization and confidentiality policies,
  199. databases and distribution methods.
  200.  
  201.  
  202. TLS is used to provide the following:
  203.  
  204.  
  205.  
  206.    o creation and refresh of a shared secret;
  207.  
  208.  
  209.    o negotiation and execution of data encryption and optional
  210.  
  211.  
  212. Michael Boe                                                           [Page 5]
  213.  
  214. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  215.      compressesion;
  216.  
  217.  
  218.    o primary negotiation of authentication; and, if chosen
  219.  
  220.  
  221.    o execution of public-key or symmetric-key based authentication.
  222.  
  223.  
  224.  
  225. Since both encryption and authentication is always needed for a secure
  226. channel that meets the requirements of these emulation types, we can use
  227. the anonymous authentication negotiation option of TLS as an indication
  228. that the client wants to negotiate some non-TLS-based authentication
  229. exchange. Note that as per usual TLS rules, the client must always
  230. authenticate the server's credentials.
  231.  
  232.  
  233. TLS at most offers only authentication of the peers conducting the TLS
  234. dialog. In particular, it does not offer the possibility of the client
  235. providing separate credentials for authorization than were presented for
  236. authentication. It is expect that other RFCs will be produced describing
  237. how other authentication mechanisms can be used in conjunction with TLS.
  238.  
  239.  
  240. Traditional Telnet servers have operated without such early presentation
  241. of authorization credentials for many reasons (most of which are
  242. historical). However, recent developments in Telnet server technology
  243. make it advantageous for the Telnet server to know the authorized
  244. capabilities of the remote client before choosing a communications link
  245. (be it `pty' or SNA LU) and link-characteristics to the host system (be
  246. that "upstream" link local or remote to the server). Thus, we expect to
  247. see the use of client authorization to become an important element of the
  248. telnet evolution. Such authorization methods may require certificates
  249. presented by the client via TLS, or by the use of SASL or RFC1416, or
  250. some other as yet unstandardized method.
  251.  
  252.  
  253. This document defines extensions to Telnet which allow TLS to be
  254. activated early in the lifetime of the Telnet connection. It defines a
  255. set of advisory security-policy response codes for use when negotiating
  256. TLS over Telnet.
  257.  
  258.  
  259. Conventions Used in this Document
  260. The key words "REQUIRED", "MUST", "MUST NOT", "SHOULD", "SHOULD NOT" and
  261. "MAY" in this document are to be interpreted as described in [KEYWORDS ].
  262.  
  263.  
  264. Formal syntax is defined using ABNF [ANBF ].
  265.  
  266.  
  267. In examples, "C:" and "S:" indicate lines sent by the the client and
  268. server, respectively.
  269.  
  270.  
  271. Michael Boe                                                           [Page 6]
  272.  
  273. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  274. 2    Telnet STARTTLS Option and Subnegotiation
  275. The STARTTLS option is an asymmetric option, with only the server side
  276. being able to send IAC DO STARTTLS. The client may initiate by sending
  277. IAC WILL STARTTLS. There are some more rules due to the need to clear the
  278. link of data (or to synchronize the link). This synchronization takes
  279. the form of a three-way handshake:
  280.  
  281.  
  282.  
  283.  1.  As per normal Telnet option processing rules, the client MUST
  284.      respond to the server's IAC DO STARTTLS with either IAC WONT
  285.      STARTTLS or IAC WILL STARTTLS (if it hasn't already done so). An
  286.      affirmative response MUST be followed eventually by IAC SB STARTTLS
  287.      FOLLOWS IAC SE. If the client sends the affirmative response, it
  288.      must then not initiate any further Telnet options or subnegotiations
  289.      except for the STARTTLS subnegotiation until after the TLS
  290.      negotiation has completed.
  291.  
  292.  2.  The server SHOULD NOT send any more Telnet data or commands after
  293.      sending IAC DO STARTTLS except in response to client Telnet options
  294.      received until after it receives either a negative response from the
  295.      client (IAC WONT STARTTLS) or the affirmative (both IAC WILL
  296.      STARTTLS and followed eventually by IAC SB STARTTLS FOLLOWS IAC SE).
  297.      If the client's STARTTLS option response is negative, the server is
  298.      free to again send Telnet data or commands. If the client's response
  299.      is affirmative, then the server MUST send only IAC SB STARTTLS
  300.      FOLLOWS IAC SE. If the server sends IAC SB STARTTLS FOLLOWS IAC SE,
  301.      then the server MUST also arrange at this time, for the normal Telnet
  302.      byte-stuff/destuff processing to be turned off for the duration of
  303.      the TLS negotiation.
  304.  
  305.  3.  The client, upon receipt of the server's IAC SB STARTTLS FOLLOWS IAC
  306.      SE, MUST also arrange for normal Telnet byte-stuff/destuff
  307.      processing to be turned off for the duration of the TLS negotiation.
  308.      It MUST then enter into TLS negotiation by sending the TLS
  309.      ClientHello message.
  310.  
  311.  
  312.  
  313. Here's a breakdown of the Telnet command phrases defined in this
  314. document:
  315.  
  316.  
  317.  
  318. S: IAC DO STARTTLS--   Sent only by server. Indicates that server strongly
  319.      desires that the client enter into TLS negotiations.
  320.  
  321. C: IAC WILL STARTTLS--    Sent only by client. Indicates that client
  322.      strongly desires that the server enter into TLS negotiations.
  323.  
  324. S: IAC DONT STARTTLS--    Sent only by the server. Indicates that the
  325.      server is not willing to enter into TLS negotations.
  326.  
  327.  
  328. Michael Boe                                                           [Page 7]
  329.  
  330. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  331. C: IAC WONT STARTTLS--    Sent only by the client. Indicates that the
  332.      client is not willing to enter into TLS negotiations.
  333.  
  334.  
  335. C: IAC SB STARTTLS FOLLOWS IAC SE--     When sent by the client, this
  336.      indicates that the client is preparing for TLS negotiations, and
  337.      that the next thing sent by the client will be the TLS ClientHello.
  338.      Also indicates that the client has reset its Telnet state.
  339.  
  340.  
  341. S: IAC SB STARTTLS FOLLOWS IAC SE--     When sent by the server, this
  342.      indicates that the server has prepared to receive the TLS
  343.      ClientHello from the client. Also indicates that the server has
  344.      reset its Telnet state.
  345.  
  346. 2.1    Abnormal Negotiation Failure
  347.  
  348.  
  349.  
  350. The behavior regarding TLS negotiation failure is covered in [TLS ], and
  351. does not indicate that the TCP connection be broken; the semantics are
  352. that TLS is finished and all state variables cleaned up. The TCP
  353. connection may be retained.
  354.  
  355.  
  356. However, it's not clear that either side can detect when the last of the
  357. TLS data has arrived. So if TLS negotiation fails, the TCP connection
  358. SHOULD be reset and the client MAY reconnect. To avoid infinite loops of
  359. TLS negotiation failures, the client MUST remember to not negotiate TLS
  360. upon reconnecting after a TLS negotiation failure.
  361.  
  362. 2.2    Assigned Values for STARTTLS Negotiation
  363.  
  364.  
  365.  
  366. The assigned value of the Telnet STARTTLS option octet is 46. The
  367. assigned value of the FOLLOWS subnegotiation octet is 1. In ABNF, this
  368. is:
  369.  
  370.     STARTTLS = %d46
  371.     FOLLOWS  = %d1
  372.  
  373.  
  374. 3    Telnet Authentication and Authorization
  375. Telnet servers and clients can be implemented in a variety of ways that
  376. impact how clients and servers authenticate and authorize each other.
  377.  
  378.  
  379.  
  380. Michael Boe                                                           [Page 8]
  381.  
  382. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  383. However, most (if not all) the implementations can be abstracted via the
  384. following four communicating processes:
  385.  
  386. SES  Server End System. This is an application or machine to which client
  387.      desires a connection. Though not illustrated here, a single Telnet
  388.      connection between client and server could have multiple SES
  389.      terminations.
  390.  
  391. Server  The Telnet server.
  392.  
  393. Client  The Telnet client, which may or may not be co-located with the
  394.      CES. The Telnet client in fact be a gateway or proxy for downstream
  395.      clients; it's immaterial.
  396.  
  397. CES  Client End System. The system communicating with the Telnet Client.
  398.      There may be more than one actual CES communicating to a single
  399.      Telnet Client instance; this is also immaterial to how Client and
  400.      Server can sucessfully exchange authentication and authorization
  401.      details. However, see Section 5.4 for a discussion on trust
  402.      implications.
  403.  
  404. What is of interest here is how the Client and Server can exchange
  405. authentication and authorization details such that these components can
  406. direct Telnet session traffic to authorized End Systems in a reliable,
  407. trustworthy fashion.
  408.  
  409.  
  410. What is beyond the scope of this specification are several related
  411. topics, including:
  412.  
  413.    o How the Server and SES are connected, and how they exchange data or
  414.      information regarding authorization or authentication (if any).
  415.  
  416.    o How the Client and CES are connected, and how they exchange data or
  417.      information regarding authorization or authentication (if any).
  418.  
  419.  
  420. 4    TLS, Authentication and Authorization
  421. System-to-system communications using the Telnet protocol have
  422. traditionally used no authentication techniques at the Telnet level.
  423. More recent techniques have used Telnet to transport authentication
  424. exchanges (e.g.[TLSKERB ]). In none of these systems, however, is a
  425. remote system allowed to assume more than one identity once the Telnet
  426.  
  427.  
  428. Michael Boe                                                           [Page 9]
  429.  
  430. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  431. preamble negotiation is over and the remote is connected to the
  432. application-endpoint. The reason for this is that the local party must
  433. in some way inform the end-system of the remote party's identity (and
  434. perhaps authorization). This process must take place before the remote
  435. party starts communicating with the end-system. At that point it's too
  436. late to change what access a client may have to an server end-system:
  437. that end-system has been selected, resources have been allocated and
  438. capability restrictions set.
  439.  
  440.  
  441. [Author's note: I dislike providing state models of how local systems
  442. should behave in relation to a wire protocol; it seems to me that such
  443. models often do more harm than good when describing a wire protocol. The
  444. model often misrepresents reality, and/or makes unnecessarily limiting
  445. assumptions about implementation behavior. However, the alternative
  446. methods of explanation seemed even less useful in this case....]
  447.  
  448.  
  449. This process of authentication, authorization and resource allocation
  450. can be modeled (one hopes!) by the following simple set of states and
  451. transitions:
  452.  
  453. `unauthenticated'    The local party has not received any credentials
  454.      offered by the remote. A new Telnet connection starts in this state.
  455.  
  456.      The `authenticating' state will be entered from this state if the
  457.      local party initiates the authentication process of the peer. The
  458.      Telnet STARTTLS negotiation is considered an initiation of the
  459.      authentication process.
  460.  
  461.      The `authorizing' state will be entered from this state either if
  462.      the local party decides to begin authorization and resource
  463.      allocation procedures unilaterally...or if the local party has
  464.      received data from the remote party destined for local end-system.
  465.  
  466.  
  467. `authenticating'    The local party has received at least some of the
  468.      credentials needed to authenticate its peer, but has not finished
  469.      the process.
  470.  
  471.      The `authenticated' state will be entered from this state if the
  472.      local party is satisfied with the credentials proferred by the
  473.      client.
  474.  
  475.      The `unauthenticated' state will be entered from this state if the
  476.      local party cannot verify the credentials proffered by the client or
  477.      if the client has not proffered any credentials. Alternately, the
  478.      local party may terminate the Telnet connection instead of returning
  479.      it to the `unauthenticated' state.
  480.  
  481.  
  482. `authenticated'   The local party has authenticated its peer, but has not
  483.      yet authorized the client to connect to any end-system resources.
  484.  
  485.  
  486.  
  487. Michael Boe                                                          [Page 10]
  488.  
  489. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  490.      The `authenticating' state will be entered from this state if the
  491.      local party decides that further authentication of the client is
  492.      warranted.
  493.  
  494.      The `authorizing' state will be entered from this state if the local
  495.      party either initiates authorization dialog with the client (or
  496.      engages in some process to authorize and allocate resources on
  497.      behalf of the client), or has received data from the remote party
  498.      destined for a local end-system.
  499.  
  500.  
  501. `authorizing'   The local party is in the process of authorizing its peer
  502.      to use end-system resources, or may be in the process of allocating
  503.      or reserving those resources.
  504.  
  505.      The `transfer-ready' state will be entered when the local party is
  506.      ready to allow data to be passed between the local end-system and
  507.      remote peer.
  508.  
  509.      The `authenticated' state will be entered if the local party
  510.      determines that the current authorization does not allow any access
  511.      to a local end-system. If the remote peer is not currently
  512.      authenticated, then the `unauthenticated' state will be entered
  513.      instead.
  514.  
  515.  
  516. `transfer-ready'    The party may pass data between the local end-system to
  517.      its peer.
  518.  
  519.      The `authorizing' state will be entered if the local party (perhaps
  520.      due to a request by the remote peer) deallocates the communications
  521.      resources to the local-end system. Alternately, the local party may
  522.      enter the `authenticated' or the `unauthenticated' state.
  523.  
  524. In addition to the "orderly" state transitions noted above, some
  525. extraordinary transitions may also occur:
  526.  
  527.  1.  The absence of a guarantee on the integrity of the data stream
  528.      between the two Telnet parties also removes the guarantee that the
  529.      remote peer is who the authentication credentials say the peer is.
  530.      Thus, upon being notified that the Telnet session is no longer using
  531.      an integrity layer, the local party must at least deallocate all
  532.      resources associated with a Telnet connection which would not have
  533.      been allocable had the remote party never authenticated itself.
  534.  
  535.      In practice, this deallocation-of-resources restriction is hard to
  536.      interpret consistently by both Telnet endpoints. Therefore, both
  537.      parties MUST return to the initial Telnet state after negotiation of
  538.      TLS. That is, it is as if the Telnet session had just started.
  539.  
  540. Michael Boe                                                          [Page 11]
  541.  
  542. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  543.      This means that the states may transition from whatever the current
  544.      state is to `unauthenticated'. Alternately, the local party may
  545.      break the Telnet connection instead.
  546.  
  547.  
  548.  2.  If the local party is notified at any point during the Telnet
  549.      connection that the remote party's authorizations have been reduced
  550.      or revoked, then the local party must treat the remote party as being
  551.      unauthenticated. The local party must deallocate all resources
  552.      associated with a Telnet connection which would not have been
  553.      allocable had the remote party never authenticated itself.
  554.  
  555.      This too may mean that the states may transition from whatever the
  556.      current state is to `unauthenticated'. Alternately, the local party
  557.      may break the Telnet connection instead.
  558.  
  559. The above model explains how each party should handle the authentication
  560. and authorization information exchanged during the lifetime of a Telnet
  561. connection. It is deliberately fuzzy as to what constitutes internal
  562. processes (such as "authorizing") and what is meant by "resources" or
  563. "end-system" (such as whether an end-system is strictly a single entity
  564. and communications path to the local party, or multiples of each, etc).
  565.  
  566.  
  567. Here's a state transition diagram, as per [RFC2360 ]:
  568.  
  569.              0       1          2        3            4
  570. Events     | unauth   auth'ing  auth'ed   authorizing   trans-ready
  571. -----------+--------------------------------------------------------
  572. auth-needed| sap/1    sap/1     sap/1     sap/1        der,sap/1
  573. auth-accept| -       ain/2     -        -            -
  574. auth-bad   | -       0         wa/0     wa,der/0     der,sap/1
  575. authz-start| szp/3    -         szp/3     -            -
  576. data-rcvd  | szp/3    qd/1      szp/3     qd/3         pd/4
  577. authz-ok   | -       -         -        4            -
  578. authz-bad  | -       -         -        der/2        wa,der,szp/3
  579.  
  580.  
  581. Action | Description
  582. -------+--------------------------------------------
  583. sap    | start authentication process
  584. der    | deallocate end-system resources
  585. ain    | authorize if needed
  586. szp    | start authorization process
  587. qd     | queue incoming data
  588. pd     | process data
  589.  
  590.  
  591.  
  592. Michael Boe                                                          [Page 12]
  593.  
  594. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  595. wa     | wipe authorization info
  596.  
  597.  
  598. Event       |    Description
  599. -------------+---------------------------------------------------
  600. auth-needed  | authentication deemed needed by local party
  601. auth-accept  | remote party's authentication creds accepted
  602. auth-bad     | remote party's authentication creds rejected or expired
  603. authz-start  | local or remote party starts authorization proceedings
  604. data-rcvd    | data destined for end-system received from remote party
  605. authz-ok     | authorization and resource allocation succeeded
  606. authz-bad    | authorization or resource allocation failed or expired
  607.  
  608.  
  609. 4.1    Authentication of the remote party
  610.  
  611.  
  612.  
  613. If TLS has been successfully negotiated, the client will have the
  614. server's certificate. This indicates that the server's identity can be
  615. verified. Client implementations MUST always verify the server identity
  616. as part of TLS processing and fail the connection if such verification
  617. fails. See Section 5.1 for a general discussion of the server
  618. authentication apropos Telnet clients.
  619.  
  620.  
  621. The server, however, may not have the client's identity (verified or
  622. not). This is because the client need not provide a certificate during
  623. the TLS exchange. Or it may be server site policy not to use the identity
  624. so provided. In any case, the server may not have enough confidence in
  625. the client to move the connection to the authenticated state.
  626.  
  627.  
  628. If further client, server or client-server authentication is going to
  629. occur after TLS has been negotiated, it MUST occur before any
  630. non-authentication-related Telnet interactions take place on the link
  631. after TLS starts. When the first non-authentication-related Telnet
  632. interaction is received by either participant, then the receiving
  633. participant MAY drop the connection due to dissatisfaction with the
  634. level of authentication.
  635.  
  636.  
  637. If the server wishes to request a client certificate after TLS is
  638. initially started (presumably with no client certificate requested), it
  639. may do so. However, the server MUST make such a request immediately
  640. after the initial TLS handshake is complete.
  641.  
  642.  
  643. No TLS negotiation outcome, however trustworthy, will by itself provide
  644. the server with the authorization identity if that is different from the
  645. authentication identity of the client. See [SASL ] for why this might be
  646.  
  647.  
  648.  
  649. Michael Boe                                                          [Page 13]
  650.  
  651. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  652. a desirable function to have with proxy clients, etc. How such
  653. authorization is done is outside the scope of this document.
  654.  
  655.  
  656. The following subsections detail how the client can provide the server
  657. with authentication and authorization credentials separate to the TLS
  658. mechanism.
  659.  
  660. 4.2    PKI-based Authentication and certificate extensions
  661.  
  662.  
  663.  
  664. When PKI authentication is used no special X.509 certificate extensions
  665. will be require but a client or server may choose to support an extension
  666. if found. For example, they may use a contained certificate revocation
  667. URL extension if provided. The intent is to allow sharing of
  668. certificates with other services on the same host, for example, a Telnet
  669. server might use the same certificate to identify itself that a
  670. co-located WEB server uses. The method of sharing certificates is
  671. outside the scope of this document.
  672.  
  673.  
  674. An X.509 certificate received by a client may include the
  675. `subjectAltName' extension. If this extension is present and contains a
  676. `dNSName' object, then the client MUST check the hostname used to
  677. connect to the host against the dNSName found in the certificate. The
  678. method used is outlined in [TLSHTTP ].
  679.  
  680.  
  681. If the subjectAltName extension is not present, then the client may use
  682. the commonName field as long as the contents of the field are interpreted
  683. as fully qualified domain names.
  684.  
  685. 4.3    Pre-TLS Authentication
  686.  
  687.  
  688.  
  689. It could be that the server had moved the Telnet connection to the
  690. authenticated state sometime previous to the negotiation of TLS. If this
  691. is the case, then the server MUST NOT use the credentials proffered by
  692. the client during the TLS negotiations for authorization of that client.
  693. The server should, of course, verify the client's TLS-proffered
  694. credentials.
  695. Michael Boe                                                          [Page 14]
  696.  
  697. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  698. 5    Security
  699. Security is discussed throughout this document. Most of this document
  700. concerns itself with wire protocols and security frameworks. But in this
  701. section, client and server implementation security issues are in focus.
  702.  
  703. 5.1    Authentication of the Server by the Client
  704.  
  705.  
  706.  
  707. How the client can verify the server's proferred identity varies
  708. according to the key-exchange algorithm used in the selected TLS
  709. cipher-suite. However, it's important for the client to follow good
  710. security practice in verifying the proffered identity of the server.
  711.  
  712. 5.1.1   PKI-based certificate processing
  713.  
  714.  
  715.  
  716. When PKI authentication is used no special X.509 certificate extensions
  717. will be required but a client or server may choose to support an
  718. extension if found. For example, they may use a contained certificate
  719. revocation URL extension if provided. The intent is to allow sharing of
  720. certificates with other services on the same host, for example, a Telnet
  721. server might use the same certificate to identify itself that a
  722. co-located WEB server uses. The method of sharing certificates is not a
  723. topic of this document.
  724.  
  725.  
  726. The verification of the server's certificate by the client MUST include,
  727. but isn't limited to, the verification of the signature certificate
  728. chain to the point where the a signature in that chain uses a known good
  729. signing certificate in the clients local key chain. The verification
  730. SHOULD then continue with a check to see if the fully qualified host name
  731. which the client connected to appears anywhere in the server's
  732. certificate subject (DN). If no match is found then either:
  733.  
  734.    o the end user MUST see a display of the server's certificate and be
  735.      asked if he/she is willing to proceed with the session; or,
  736.  
  737.  
  738.    o the end user MUST NOT see a display of server's certificate, but the
  739.      certificate details are logged on whatever media is used to log
  740.      other session details. This option may be preferred to the first
  741.      option in environments where the end-user cannot be expected to make
  742.      an informed decision about whether a mismatch is harmful. The
  743. Michael Boe                                                          [Page 15]
  744.  
  745. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  746.      connection MUST be closed automatically by the client UNLESS the
  747.      client has been configured to explicitly allow all mismatches.
  748.  
  749.  
  750.    o the connection MUST be closed on the user's behalf, and an error
  751.      describing the mismatch logged to stable storage.
  752.  
  753. If the client side of the service is not interactive with a human
  754. end-user, the Telnet connection SHOULD be dropped if this host check
  755. fails.
  756.  
  757. 5.2    Non-PKI-based Authentication of client or server
  758.  
  759.  
  760.  
  761. Authentication of the client (or further mutual authentication between
  762. client and server) can be accomplished via non-PKI means, too.
  763. Implementors should be careful to remember that authentication must
  764. occur after successful TLS session negotiation. Further, the timing of
  765. the authentication MUST be as per Section  4.
  766.  
  767.  
  768. Practically speaking, this means that non-TLS authentication should
  769. immediately follow the TLS negotiation. See  7.4 for an example of how
  770. this can work.
  771.  
  772. 5.3    Display of security levels
  773.  
  774.  
  775.  
  776. The Telnet client and server MAY, during the TLS protocol negotiation
  777. phase, choose to use a weak cipher suite due to policy, law or even
  778. convenience. It is, however, important that the choice of weak cipher
  779. suite be noted as being commonly known to be vulnerable to attack. In
  780. particular, both server and client software should note the choice of
  781. weak cipher-suites in the following ways:
  782.  
  783.    o If the Telnet endpoint is communicating with a human end-user, the
  784.      user-interface SHOULD display the choice of weak cipher-suite and
  785.      the fact that such a cipher-suite may compromise security.
  786.  
  787.  
  788.    o The Telnet endpoints SHOULD log the exact choice of cipher-suite as
  789.      part of whatever logging/accounting mechanism normally used.
  790.  
  791. Michael Boe                                                          [Page 16]
  792.  
  793. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  794. 5.4    Trust Relationships and Implications
  795.  
  796.  
  797.  
  798. Authentication and authorization of the remote Telnet party is useful,
  799. but can present dangers to the authorizing party even if the connection
  800. between the client and server is protected by TLS using strong
  801. encryption and mutual authentication. This is because there are some
  802. trust-relationships assumed by one or both parties:
  803.  
  804.    o Each side assumes that the authentication and authentication details
  805.      proferred by the remote party stay constant until explicitly changed
  806.      (or until the TLS session is ended).
  807.  
  808.  
  809.    o More stringently, each side trusts the other to send a timely
  810.      notification if authentication or authorization details of the other
  811.      party's end system(s) have changed.
  812.  
  813. Either of these trust relationships may be false if an intruder has
  814. breached communications between a client or server and its respective
  815. end system. And either may be false if a component is badly implemented
  816. or configured. Implementers should take care in program construction to
  817. avoid invalidating these trust relationships, and should document to
  818. configuring-users the proper ways to configure the software to avoid
  819. invalidation of these relationships.
  820.  
  821.  
  822. 6    TLS Variants and Options
  823. TLS has different versions and different cipher suites that can be
  824. supported by client or server implementations. The following
  825. subsections detail what TLS extensions and options are mandatory. The
  826. subsections also address how TLS variations can be accommodated.
  827.  
  828. 6.1    Support of previous versions of TLS
  829.  
  830.  
  831.  
  832. TLS has its roots in SSL 2.0 and SSL 3.0. Server and client
  833. implementations may wish to support for SSL 3.0 as a fallback in case TLS
  834. 3.1 or higher is not supported. This is permissible; however, client
  835. implementations which negotiate SSL3.0 MUST still follow the rules in
  836. Section 5.3 concerning disclosure to the end-user of transport-level
  837. security characteristics.
  838.  
  839.  
  840.  
  841. Michael Boe                                                          [Page 17]
  842.  
  843. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  844. Negotiating the use of SSL 3.0 is done as part of the TLS negotiation; it
  845. is detailed in [TLS ]. Negotiating SSL 2.0 is MUST NOT be attempted.
  846.  
  847. 6.2    Using Kerberos V5 with TLS
  848.  
  849.  
  850.  
  851. If the client and server are both amenable to using Kerberos V5, then
  852. using non-PKI authentication techniques within the confines of TLS may
  853. be acceptable (see [TLSKERB ]). Note that clients and servers are under
  854. no obligation to support anything but the cipher-suite(s) mandated in
  855. [TLS ]. However, if implementations do implement the KRB5 authentication
  856. as a part of TLS ciphersuite, then these implementations SHOULD support
  857. at least the TLS_KRB5_WITH_3DES_EDE_CBC_SHA ciphersuite.
  858.  
  859.  
  860. 7    Protocol Examples
  861. The following sections provide skeletal examples of how Telnet clients
  862. and servers can negotiate TLS.
  863.  
  864. 7.1    Successful TLS negotiation
  865.  
  866.  
  867.  
  868. The following protocol exchange is the typical sequence that starts TLS:
  869.  
  870. // typical successful opening exchange
  871.   S: IAC DO STARTTLS
  872.   C: IAC WILL STARTTLS IAC SB STARTTLS FOLLOWS IAC SE
  873.   S: IAC SB STARTTLS FOLLOWS IAC SE
  874. // server now readies input stream for non-Telnet, TLS-level negotiation
  875.   C: [starts TLS-level negotiations with a ClientHello]
  876.   [TLS transport-level negotiation ensues]
  877.   [TLS transport-level negotiation completes with a Finished exchanged]
  878. // either side now able to send further Telnet data or commands
  879.  
  880. 7.2    Successful TLS negotiation, variation
  881.  
  882.  
  883.  
  884. The following protocol exchange is the typical sequence that starts TLS,
  885. but with the twist that the (TN3270E) server is willing but not
  886. aggressive about doing TLS; the client strongly desires doing TLS.
  887.  
  888.  
  889. Michael Boe                                                          [Page 18]
  890.  
  891. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  892. // typical successful opening exchange
  893.   S: IAC DO TN3270E
  894.   C: IAC WILL STARTTLS IAC
  895.   S: IAC DO STARTTLS
  896.   C: IAC WILL STARTTLS IAC SB STARTTLS FOLLOWS IAC SE
  897.   S: IAC SB STARTTLS FOLLOWS IAC SE
  898. // server now readies input stream for non-Telnet, TLS-level negotiation
  899.   C: [starts TLS-level negotiations with a ClientHello]
  900.   [TLS transport-level negotiation ensues]
  901.   [TLS transport-level negotiation completes with a Finished
  902.                  exchanged]
  903. // note that server retries negotiation of TN3270E after TLS
  904. // is done.
  905.   S: IAC DO TN3270E
  906.   C: IAC WILL TN3270E
  907. // TN3270E dialog continues....
  908.  
  909.  
  910. 7.3    Unsuccessful TLS negotiation
  911.  
  912.  
  913.  
  914. This example assumes that the server does not wish to allow the Telnet
  915. session to proceed without TLS security; however, the client's version
  916. of TLS does not interoperate with the server's.
  917.  
  918. //typical unsuccessful opening exchange
  919.   S: IAC DO STARTTLS
  920.   C: IAC WILL STARTTLS IAC SB STARTTLS FOLLOWS IAC SE
  921.   S: IAC SB STARTTLS FOLLOWS IAC SE
  922. // server now readies input stream for non-Telnet, TLS-level negotiation
  923.   C: [starts TLS-level negotiations with a ClientHello]
  924.   [TLS transport-level negotiation ensues]
  925.   [TLS transport-level negotiation fails with server sending
  926.                ErrorAlert message]
  927.   C: IAC DO TERMINAL-TYPE
  928.   S: IAC WONT TERMINAL-TYPE
  929.   S: [TCP level disconnect]
  930. //  server (or both) initiate TCP session disconnection
  931.  
  932. This example assumes that the server wants to do TLS, but is willing to
  933. allow the session to proceed without TLS security; however, the client's
  934. version of TLS does not interoperate with the server's.
  935.  
  936.  
  937. Michael Boe                                                          [Page 19]
  938.  
  939. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  940. //typical unsuccessful opening exchange
  941.   S: IAC DO STARTTLS
  942.   C: IAC WILL STARTTLS IAC SB STARTTLS FOLLOWS IAC SE
  943.   S: IAC SB STARTTLS FOLLOWS IAC SE
  944. // server now readies input stream for non-Telnet, TLS-level negotiation
  945.   C: [starts TLS-level negotiations with a ClientHello]
  946.   [TLS transport-level negotiation ensues]
  947.   [TLS transport-level negotiation fails with server sending
  948.                ErrorAlert message]
  949.   C: IAC DO TERMINAL-TYPE
  950.   S: IAC WILL TERMINAL-TYPE
  951. // regular Telnet dialog ensues
  952.  
  953.  
  954. 7.4    Authentication via Kerberos 4 after TLS negotiation
  955.  
  956.  
  957.  
  958. Here's an implementation example of using Kerberos 4 to authenticate the
  959. client after encrypting the session with TLS. Note the following
  960. details:
  961.  
  962.    o The client strictly enforces a security policy of proposing Telnet
  963.      AUTH first, but accepting TLS. This has the effect of producing a
  964.      rather verbose pre-TLS negotiation sequence; however, the
  965.      end-result is correct. A more efficient pre-TLS sequence can be
  966.      obtained by changing the client security policy to be the same as the
  967.      server's for this connection (and implementing policy-aware
  968.      negotiation code in the Telnet part of the client).
  969.  
  970.      A similar efficient result can be obtained even in the absence of a
  971.      clear client security policy if the client has cached server
  972.      security preferences from a previous Telnet session to the same
  973.      server.
  974.  
  975.  
  976.    o The server strictly enforces a security policy of proposing TLS
  977.      first, but falling back to Telnet AUTH.
  978.  
  979.   C: IAC WILL AUTHENTICATION
  980.   C: IAC WILL NAWS
  981.   C: IAC WILL TERMINAL-TYPE
  982.   C: IAC WILL NEW-ENVIRONMENT
  983.   S: IAC DO STARTTLS
  984.   C: IAC WILL STARTTLS
  985.   C: IAC SB STARTTLS FOLLOWS IAC SE
  986.   S: IAC DO AUTHENTICATION
  987.  
  988.  
  989. Michael Boe                                                          [Page 20]
  990.  
  991. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  992.   S: IAC DO NAWS
  993.   S: IAC WILL SUPPRESS-GO-AHEAD
  994.   S: IAC DO SUPPRESS-GO-AHEAD
  995.   S: IAC WILL ECHO
  996.   S: IAC DO TERMINAL-TYPE
  997.   S: IAC DO NEW-ENVIRONMENT
  998.   S: IAC SB AUTHENTICATION SEND
  999.     KERBEROS_V4 CLIENT_TO_SERVER|MUTUAL|ENCRYPT_REQ
  1000.     KERBEROS_V4 CLIENT_TO_SERVER|MUTUAL
  1001.     KERBEROS_V4 CLIENT_TO_SERVER|ONE_WAY
  1002.     SSL CLIENT_TO_SERVER|ONE_WAY   IAC SE
  1003.   S: IAC SB TERMINAL-TYPE SEND  IAC SE
  1004.   S: IAC SB NEW-ENVIRONMENT SEND  IAC SE
  1005.   S: IAC SB STARTTLS FOLLOWS  IAC SE
  1006.   [TLS - handshake starting]
  1007.   [TLS - OK]
  1008.   C: IAC WILL AUTHENTICATION
  1009.   C: IAC WILL NAWS
  1010.   C: IAC WILL TERMINAL-TYPE
  1011.   C: IAC WILL NEW-ENVIRONMENT
  1012.   <wait for outstanding negotiations>
  1013.   S: IAC DO AUTHENTICATION
  1014.   S: IAC DO NAWS
  1015.   S: IAC WILL SUPPRESS-GO-AHEAD
  1016.   C: IAC DO SUPPRESS-GO-AHEAD
  1017.   S: IAC DO SUPPRESS-GO-AHEAD
  1018.   C: IAC WILL SUPPRESS-GO-AHEAD
  1019.   S: IAC WILL ECHO
  1020.   C: IAC DO ECHO
  1021.   S: IAC DO TERMINAL-TYPE
  1022.   S: IAC DO NEW-ENVIRONMENT
  1023.   S: IAC SB AUTHENTICATION SEND
  1024.     KERBEROS_V4 CLIENT_TO_SERVER|MUTUAL
  1025.     KERBEROS_V4 CLIENT_TO_SERVER|ONE_WAY   IAC SE
  1026.   C: IAC SB AUTHENTICATION NAME jaltman IAC SE
  1027.   C: IAC SB AUTHENTICATION IS
  1028.     KERBEROS_V4 CLIENT_TO_SERVER|MUTUAL AUTH
  1029.     04 07 0B "CC.COLUMBIA.EDU" 00 "8(" 0D 9E 9F AB A0 "L" 15 8F A6
  1030.     ED "x" 19 F8 0C "wa" CA "z`" 1A E2 B8 "Y" B0 8E "KkK" C6 AA "<" FF
  1031.     FF 98 89 "|" 90 AC DF 13 "2" FC 8E 97 F7 BD AE "e" 07 82 "n" 19 "v"
  1032.     7F 10 C1 12 B0 C6 "|" FA BB "s1Y" FF FF 10 B5 14 B3 "(" BC 86 "`"
  1033.     D2 "z" AB "Qp" C4 "7" AB "]8" 8A 83 B7 "j" E6 "IK" DE "|YIVN"
  1034.     IAC SE
  1035.   S: IAC SB TERMINAL-TYPE SEND  IAC SE
  1036.   S: IAC SB NEW-ENVIRONMENT SEND  IAC SE
  1037.   S: IAC SB AUTHENTICATION REPLY
  1038.    KERBEROS_V4 CLIENT_TO_SERVER|MUTUAL ACCEPT  IAC SE
  1039.  
  1040.  
  1041. Michael Boe                                                          [Page 21]
  1042.  
  1043. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  1044.   C: IAC SB AUTHENTICATION IS
  1045.    KERBEROS_V4 CLIENT|MUTUAL CHALLENGE "[" BE B7 96 "j" 92 09 "~" IAC SE
  1046.   S: IAC SB AUTHENTICATION REPLY
  1047.    KERBEROS_V4 CLIENT_TO_SERVER|MUTUAL RESPONSE "df" B0 D6 "vR_/"  IAC SE
  1048. <no outstanding negotiations>
  1049.   C: IAC SB TERMINAL-TYPE IS VT320 IAC SE
  1050.   C: IAC SB NEW-ENVIRONMENT IS USERAjaltmanSYSTEMTYPEAWIN32 IAC SE
  1051.   C: IAC SB NAWS 162 49 IAC SE
  1052.  
  1053. Here are several things to note about the above example:
  1054.  
  1055.    o After TLS is successfully negotiated, all non-TLS Telnet settings
  1056.      are forgotten and must be renegotiated.
  1057.  
  1058.  
  1059.    o After TLS is successfully negotiated, the server offers all
  1060.      authentication types that are appropriate for a session using TLS.
  1061.      Note that the server, post TLS-negotiation, isn't offering Telnet
  1062.      ENCRYPT or AUTH SSL, since (a) it's useless and perhaps dangerous to
  1063.      encrypt twice, and (b) TLS and/or SSL can be applied only once to a
  1064.      Telnet session.
  1065.  
  1066.  
  1067. References
  1068. [ANBF]       D. Crocker, Ed., P. Overell, "Augmented BNF for Syntax
  1069.              Specifications: ABNF", RFC2235, November 1997.
  1070.  
  1071.  
  1072. [KEYWORDS]   Bradner, S. "Key words for use in RFCs to Indicate
  1073.              Requirement Levels", RFC2119, March 1997.
  1074.  
  1075.  
  1076. [RFC927]     Brian A. Anderson. "TACACS User Identification Telnet
  1077.              Option", RFC927, December 1984
  1078.  
  1079.  
  1080. [RFC1416]    D. Borman, Editor. "Telnet Authentication Option", RFC1416,
  1081.              February 1993.
  1082.  
  1083.  
  1084. [SASL]       Myers, J. "Simple Authentication and Security Layer (SASL)",
  1085.              RFC2222, October 1997.
  1086.  
  1087.  
  1088. [RFC2360]    G. Scott, Editor. "Guide for Internet Standard Writers",
  1089.              RFC2360, June 1998.
  1090.  
  1091.  
  1092. [TELNET]     J. Postel, J. Reynolds. "Telnet Protocol Specifications",
  1093.              RFC854, May 1983.
  1094. Michael Boe                                                          [Page 22]
  1095.  
  1096. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  1097. [TLS]        Tim Dierks. "The TLS Protocol", Internet Draft, November
  1098.              1997.
  1099.  
  1100.  
  1101. [TLSKERB]    Ari Medvinsky, Matthew Hur. "Addition of Kerberos Cipher
  1102.              Suites to Transport Layer Security (TLS)", Internet Draft,
  1103.              July 1997.
  1104.  
  1105.  
  1106. [TLSHTTP]    E. Rescorla. "HTTP Over TLS", Internet Draft
  1107.              <draft-ietf-tls-https-01.txt>, March 1998.
  1108.  
  1109.  
  1110. Author's Address
  1111.   Michael Boe
  1112.   Cisco Systems Inc.
  1113.   170 West Tasman Drive
  1114.   San Jose, CA 95134
  1115.  
  1116.  
  1117.   Email: Michael Boe <mboe@cisco.com>
  1118.  
  1119.  
  1120. Full Copyright Statement
  1121. Copyright (c) The Internet Society (1998, 1999). All Rights Reserved.
  1122.  
  1123.  
  1124. This document and translations of it may be copied and furnished to
  1125. others, and derivative works that comment on or otherwise explain it or
  1126. assist in its implementation may be prepared, copied, published and
  1127. distributed, in whole or in part, without restriction of any kind,
  1128. provided that the above copyright notice and this paragraph are included
  1129. on all such copies and derivative works. However, this document itself
  1130. may not be modified in any way, such as by removing the copyright notice
  1131. or references to the Internet Society or other Internet organizations,
  1132. except as needed for the purpose of develop- ing Internet standards in
  1133. which case the procedures for copyrights defined in the Internet
  1134. Standards process must be followed, or as required to translate it into
  1135. languages other than English.
  1136.  
  1137.  
  1138. The limited permissions granted above are perpetual and will not be
  1139. revoked by the Internet Society or its successors or assigns.
  1140.  
  1141.  
  1142. This document and the information contained herein is provided on an "AS
  1143. IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
  1144. FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
  1145.  
  1146.  
  1147.  
  1148. Michael Boe                                                          [Page 23]
  1149.  
  1150. I-D draft-ietf-telnet-tls-02     TLS-based Telnet Security     July, 1999
  1151. LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
  1152. INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
  1153. FITNESS FOR A PARTICULAR PURPOSE.
  1154.  
  1155.  
  1156. Acknowledgement
  1157. Funding for the RFC Editor function is currently provided by the
  1158. Internet Society.
  1159.  
  1160.  
  1161.  
  1162. Michael Boe                                                          [Page 24]
  1163.