rfc4643.txt 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348
  1. Network Working Group J. Vinocur
  2. Request for Comments: 4643 Cornell University
  3. Updates: 2980 K. Murchison
  4. Category: Standards Track Carnegie Mellon University
  5. October 2006
  6. Network News Transfer Protocol (NNTP)
  7. Extension for Authentication
  8. Status of This Memo
  9. This document specifies an Internet standards track protocol for the
  10. Internet community, and requests discussion and suggestions for
  11. improvements. Please refer to the current edition of the "Internet
  12. Official Protocol Standards" (STD 1) for the standardization state
  13. and status of this protocol. Distribution of this memo is unlimited.
  14. Copyright Notice
  15. Copyright (C) The Internet Society (2006).
  16. Abstract
  17. This document defines an extension to the Network News Transfer
  18. Protocol (NNTP) that allows a client to indicate an authentication
  19. mechanism to the server, to perform an authentication protocol
  20. exchange, and optionally to negotiate a security layer for subsequent
  21. protocol interactions during the remainder of an NNTP session.
  22. This document updates and formalizes the AUTHINFO USER/PASS
  23. authentication method specified in RFC 2980 and deprecates the
  24. AUTHINFO SIMPLE and AUTHINFO GENERIC authentication methods.
  25. Additionally, this document defines a profile of the Simple
  26. Authentication and Security Layer (SASL) for NNTP.
  27. Vinocur, et al. Standards Track [Page 1]
  28. RFC 4643 NNTP Authentication October 2006
  29. Table of Contents
  30. 1. Introduction ............................................. 3
  31. 1.1. Conventions Used in This Document ................... 3
  32. 2. The AUTHINFO Extension ................................... 4
  33. 2.1. Advertising the AUTHINFO Extension .................. 4
  34. 2.2. Authenticating with the AUTHINFO Extension .......... 5
  35. 2.3. AUTHINFO USER/PASS Command .......................... 6
  36. 2.3.1. Usage ........................................ 7
  37. 2.3.2. Description .................................. 7
  38. 2.3.3. Examples ..................................... 9
  39. 2.4. AUTHINFO SASL Command ............................... 9
  40. 2.4.1. Usage ........................................ 10
  41. 2.4.2. Description .................................. 11
  42. 2.4.3. Examples ..................................... 14
  43. 3. Augmented BNF Syntax for the AUTHINFO Extension .......... 16
  44. 3.1. Commands ............................................ 16
  45. 3.2. Command Continuation ................................ 17
  46. 3.3. Responses ........................................... 17
  47. 3.4. Capability Entries .................................. 17
  48. 3.5. General Non-terminals ............................... 18
  49. 4. Summary of Response Codes ................................ 18
  50. 5. Authentication Tracking/Logging .......................... 18
  51. 6. Security Considerations .................................. 19
  52. 7. IANA Considerations ...................................... 20
  53. 7.1. IANA Considerations for SASL/GSSAPI Services ........ 20
  54. 7.2. IANA Considerations for NNTP Extensions ............. 20
  55. 8. Acknowledgements ......................................... 21
  56. 9. References ............................................... 22
  57. 9.1. Normative References ................................ 22
  58. 9.2. Informative References .............................. 22
  59. Vinocur, et al. Standards Track [Page 2]
  60. RFC 4643 NNTP Authentication October 2006
  61. 1. Introduction
  62. Although NNTP [NNTP] has traditionally been used to provide public
  63. access to newsgroups, authentication is often useful for several
  64. purposes; for example, to control resource consumption, to allow
  65. abusers of the POST command to be identified, and to restrict access
  66. to "local" newsgroups.
  67. The ad-hoc AUTHINFO USER and AUTHINFO PASS commands, documented in
  68. [NNTP-COMMON], provide a very weak authentication mechanism in
  69. widespread use by the installed base. Due to their ubiquity, they
  70. are formalized in this specification but (because of their
  71. insecurity) only for use in combination with appropriate security
  72. layers.
  73. The ad hoc AUTHINFO GENERIC command, also documented in [NNTP-COMMON]
  74. but much less ubiquitous, provided an NNTP-specific equivalent of the
  75. generic SASL [SASL] facility. This document deprecates AUTHINFO
  76. GENERIC in favor of an AUTHINFO SASL replacement so that NNTP can
  77. benefit from authentication mechanisms developed for other SASL-
  78. enabled application protocols, including Simple Mail Transfer
  79. Protocol (SMTP) [SMTP-AUTH], Post Office Protocol (POP) [POP-AUTH],
  80. Internet Message Access Protocol (IMAP) [IMAP], Lightweight Directory
  81. Access Protocol (LDAP) [LDAP-AUTH], and Blocks Extensive Exchange
  82. Protocol (BEEP) [BEEP].
  83. This specification is to be read in conjunction with the NNTP base
  84. specification [NNTP]. Except where specifically stated otherwise, in
  85. the case of a conflict between these two documents, [NNTP] takes
  86. precedence over this one.
  87. It is also recommended that this specification be read in conjunction
  88. with the SASL base specification [SASL].
  89. 1.1. Conventions Used in This Document
  90. The notational conventions used in this document are the same as
  91. those in [NNTP], and any term not defined in this document has the
  92. same meaning as it does in that one.
  93. The key words "REQUIRED", "MUST", "MUST NOT", "SHOULD", "SHOULD NOT",
  94. "MAY", and "OPTIONAL" in this document are to be interpreted as
  95. described in "Key words for use in RFCs to Indicate Requirement
  96. Levels" [KEYWORDS].
  97. Terms related to authentication are defined in "On Internet
  98. Authentication" [AUTH].
  99. Vinocur, et al. Standards Track [Page 3]
  100. RFC 4643 NNTP Authentication October 2006
  101. In the examples, commands from the client are indicated with [C], and
  102. responses from the server are indicated with [S].
  103. 2. The AUTHINFO Extension
  104. The AUTHINFO extension is used to authenticate a user. Note that
  105. authorization is a matter of site policy, not network protocol, and
  106. therefore it is not discussed in this document. The server
  107. determines authorization in whatever manner is defined by its
  108. implementation as configured by the site administrator.
  109. This extension provides three new commands: AUTHINFO USER, AUTHINFO
  110. PASS, and AUTHINFO SASL. The capability label for this extension is
  111. AUTHINFO.
  112. 2.1. Advertising the AUTHINFO Extension
  113. A server MUST implement at least one of the AUTHINFO USER or AUTHINFO
  114. SASL commands in order to advertise the "AUTHINFO" capability label
  115. in response to the CAPABILITIES command ([NNTP] Section 5.2).
  116. However, this capability MUST NOT be advertised after successful
  117. authentication (see Section 2.2). This capability MAY be advertised
  118. both before and after any use of the MODE READER command ([NNTP]
  119. Section 5.3), with the same semantics.
  120. The AUTHINFO capability label contains an argument list detailing
  121. which authentication commands are available.
  122. The "USER" argument indicates that AUTHINFO USER/PASS is supported as
  123. defined by Section 2.3 of this document. The "USER" argument MUST
  124. NOT be advertised, and the AUTHINFO USER/PASS commands SHOULD NOT be
  125. provided, unless a strong encryption layer (e.g., Transport Layer
  126. Security (TLS) [NNTP-TLS]) is in use or backward compatibility
  127. dictates otherwise.
  128. The "SASL" argument indicates that AUTHINFO SASL is supported as
  129. defined by Section 2.4 of this document. If the server advertises
  130. the "SASL" argument, then it MUST also advertise the "SASL"
  131. capability in response to the CAPABILITIES command. The SASL
  132. capability is followed by a whitespace-separated list of available
  133. SASL mechanism names.
  134. The server MAY list the AUTHINFO capability with no arguments, which
  135. indicates that it complies with this specification and does not
  136. permit any authentication commands in its current state. In this
  137. case, the client MUST NOT attempt to utilize any AUTHINFO commands,
  138. even if it contains logic that might otherwise cause it to do so
  139. Vinocur, et al. Standards Track [Page 4]
  140. RFC 4643 NNTP Authentication October 2006
  141. (e.g., for backward compatibility with servers that are not compliant
  142. with this specification).
  143. Future extensions may add additional arguments to this capability.
  144. Unrecognized arguments MUST be ignored by the client.
  145. As the AUTHINFO command is related to security, cached results of
  146. CAPABILITIES from a previous session MUST NOT be relied on, as per
  147. Section 12.6 of [NNTP]. However, a client MAY use such cached
  148. results in order to detect active down-negotiation attacks.
  149. Example of AUTHINFO capabilities before and after the use of the
  150. STARTTLS [NNTP-TLS] extension:
  151. [C] CAPABILITIES
  152. [S] 101 Capability list:
  153. [S] VERSION 2
  154. [S] READER
  155. [S] IHAVE
  156. [S] STARTTLS
  157. [S] AUTHINFO SASL
  158. [S] SASL CRAM-MD5 DIGEST-MD5 GSSAPI
  159. [S] LIST ACTIVE NEWSGROUPS
  160. [S] .
  161. [C] STARTTLS
  162. [S] 382 Continue with TLS negotiation
  163. [TLS negotiation proceeds, further commands protected by TLS]
  164. [C] CAPABILITIES
  165. [S] 101 Capability list:
  166. [S] VERSION 2
  167. [S] READER
  168. [S] IHAVE
  169. [S] AUTHINFO USER SASL
  170. [S] SASL CRAM-MD5 DIGEST-MD5 GSSAPI PLAIN EXTERNAL
  171. [S] LIST ACTIVE NEWSGROUPS
  172. [S] .
  173. 2.2. Authenticating with the AUTHINFO Extension
  174. An NNTP server responds to a client command with a 480 response to
  175. indicate that the client MUST authenticate and/or authorize in order
  176. to use that command or access the indicated resource. Use of the
  177. AUTHINFO command as described below is one such way that a client can
  178. authenticate/authorize to the server. The client MAY therefore use
  179. an AUTHINFO command after receiving a 480 response. A client
  180. intending to use an AUTHINFO command SHOULD issue the CAPABILITIES
  181. command to obtain the available authentication commands and
  182. mechanisms before attempting authentication.
  183. Vinocur, et al. Standards Track [Page 5]
  184. RFC 4643 NNTP Authentication October 2006
  185. If a server advertises the AUTHINFO capability, a client MAY attempt
  186. the first step of authentication at any time during a session to
  187. acquire additional privileges without having received a 480 response.
  188. Servers SHOULD accept such unsolicited authentication requests. A
  189. server MUST NOT under any circumstances reply to an AUTHINFO command
  190. with a 480 response.
  191. A client MUST NOT under any circumstances continue with any steps of
  192. authentication beyond the first, unless the response code from the
  193. server indicates that the authentication exchange is welcomed. In
  194. particular, anything other than a 38x response code indicates that
  195. the client MUST NOT continue the authentication exchange.
  196. After a successful authentication, the client MUST NOT issue another
  197. AUTHINFO command in the same session. A server MUST NOT return the
  198. AUTHINFO capability in response to a CAPABILITIES command, and a
  199. server MUST reject any subsequent AUTHINFO commands with a 502
  200. response. Additionally, the client MUST NOT issue a MODE READER
  201. command after authentication, and a server MUST NOT advertise the
  202. MODE-READER capability.
  203. In agreement with [SASL], the server MUST continue to advertise the
  204. SASL capability in response to a CAPABILITIES command with the same
  205. list of SASL mechanisms that it did before authentication (thereby
  206. enabling the client to detect a possible active down-negotiation
  207. attack). Other capabilities returned in response to a CAPABILITIES
  208. command received after authentication MAY be different from those
  209. returned before authentication. For example, an NNTP server may not
  210. want to advertise support for a specific extension unless a client
  211. has been authenticated.
  212. Note that a server may perform a successful authentication exchange
  213. with a client and yet still deny access to some or all resources; the
  214. permanent 502 response indicates that a resource is unavailable even
  215. though authentication has been performed (this is in contrast to the
  216. temporary 480 error, which indicates that a resource is unavailable
  217. now but may become available after authentication).
  218. 2.3. AUTHINFO USER/PASS Command
  219. This section supersedes the definition of the AUTHINFO USER and
  220. AUTHINFO PASS commands as documented in Section 3.1.1 of
  221. [NNTP-COMMON].
  222. Vinocur, et al. Standards Track [Page 6]
  223. RFC 4643 NNTP Authentication October 2006
  224. 2.3.1. Usage
  225. These commands MUST NOT be pipelined.
  226. Syntax
  227. AUTHINFO USER username
  228. AUTHINFO PASS password
  229. Responses
  230. 281 Authentication accepted
  231. 381 Password required [1]
  232. 481 Authentication failed/rejected
  233. 482 Authentication commands issued out of sequence
  234. 502 Command unavailable [2]
  235. [1] Only valid for AUTHINFO USER. Note that unlike traditional 3xx
  236. codes, which indicate that the client may continue the current
  237. command, the legacy 381 code means that the AUTHINFO PASS
  238. command must be used to complete the authentication exchange.
  239. [2] If authentication has already occurred, AUTHINFO USER/PASS are
  240. not valid commands (see Section 2.2).
  241. NOTE: Notwithstanding Section 3.2.1 of [NNTP], the server MUST
  242. NOT return 480 in response to AUTHINFO USER/PASS.
  243. Parameters
  244. username = string identifying the user/client
  245. password = string representing the user's password
  246. 2.3.2. Description
  247. The AUTHINFO USER and AUTHINFO PASS commands are used to present
  248. clear text credentials to the server. These credentials consist of a
  249. username or a username plus a password (the distinction is that a
  250. password is expected to be kept secret, whereas a username is not;
  251. this does not directly affect the protocol but may have an impact on
  252. user interfaces). The username is supplied through the AUTHINFO USER
  253. command, and the password through the AUTHINFO PASS command.
  254. If the server requires only a username, it MUST NOT give a 381
  255. response to AUTHINFO USER and MUST give a 482 response to AUTHINFO
  256. PASS.
  257. If the server requires both username and password, the former MUST be
  258. sent before the latter. The server will need to cache the username
  259. until the password is received; it MAY require that the password be
  260. Vinocur, et al. Standards Track [Page 7]
  261. RFC 4643 NNTP Authentication October 2006
  262. sent in the immediately next command (in other words, only caching
  263. the username until the next command is sent). The server:
  264. - MUST return a 381 response to AUTHINFO USER;
  265. - MUST return a 482 response to AUTHINFO PASS if there is no cached
  266. username;
  267. - MUST use the argument of the most recent AUTHINFO USER for
  268. authentication; and
  269. - MUST NOT return a 381 response to AUTHINFO PASS.
  270. The server MAY determine whether a password is needed for a given
  271. username. Thus the same server can respond with both 381 and other
  272. response codes to AUTHINFO USER.
  273. Should the client successfully present proper credentials, the server
  274. issues a 281 reply. If the server is unable to authenticate the
  275. client, it MUST reject the AUTHINFO USER/PASS command with a 481
  276. reply. If an AUTHINFO USER/PASS command fails, the client MAY
  277. proceed without authentication. Alternatively, the client MAY try
  278. another authentication mechanism or present different credentials by
  279. issuing another AUTHINFO command.
  280. The AUTHINFO PASS command permits the client to use a clear-text
  281. password to authenticate. A compliant implementation MUST NOT
  282. implement this command without also implementing support for TLS
  283. [NNTP-TLS]. Use of this command without an active strong encryption
  284. layer is deprecated, as it exposes the user's password to all parties
  285. on the network between the client and the server. Any implementation
  286. of this command SHOULD be configurable to disable it whenever a
  287. strong encryption layer (such as that provided by [NNTP-TLS]) is not
  288. active, and this configuration SHOULD be the default. The server
  289. will use the 483 response code to indicate that the datastream is
  290. insufficiently secure for the command being attempted (see Section
  291. 3.2.1 of [NNTP]).
  292. Note that a server MAY (but is not required to) allow white space
  293. characters in usernames and passwords. A server implementation MAY
  294. blindly split command arguments at white space and therefore may not
  295. preserve the exact sequence of white space characters in the username
  296. or password. Therefore, a client SHOULD scan the username and
  297. password for white space and, if any is detected, warn the user of
  298. the likelihood of problems. The SASL PLAIN [PLAIN] mechanism is
  299. recommended as an alternative, as it does not suffer from these
  300. issues.
  301. Vinocur, et al. Standards Track [Page 8]
  302. RFC 4643 NNTP Authentication October 2006
  303. Also note that historically the username is not canonicalized in any
  304. way. Servers MAY use the [SASLprep] profile of the [StringPrep]
  305. algorithm to prepare usernames for comparison, but doing so may cause
  306. interoperability problems with legacy implementations. If
  307. canonicalization is desired, the SASL PLAIN [PLAIN] mechanism is
  308. recommended as an alternative.
  309. 2.3.3. Examples
  310. Example of successful AUTHINFO USER:
  311. [C] AUTHINFO USER wilma
  312. [S] 281 Authentication accepted
  313. Example of successful AUTHINFO USER/PASS:
  314. [C] AUTHINFO USER fred
  315. [S] 381 Enter passphrase
  316. [C] AUTHINFO PASS flintstone
  317. [S] 281 Authentication accepted
  318. Example of AUTHINFO USER/PASS requiring a security layer:
  319. [C] AUTHINFO USER fred@stonecanyon.example.com
  320. [S] 483 Encryption or stronger authentication required
  321. Example of failed AUTHINFO USER/PASS:
  322. [C] AUTHINFO USER barney
  323. [S] 381 Enter passphrase
  324. [C] AUTHINFO PASS flintstone
  325. [S] 481 Authentication failed
  326. Example of AUTHINFO PASS before AUTHINFO USER:
  327. [C] AUTHINFO PASS flintstone
  328. [S] 482 Authentication commands issued out of sequence
  329. 2.4. AUTHINFO SASL Command
  330. This section defines a formal profile of the Simple Authentication
  331. and Security Layer [SASL]. The use of the AUTHINFO GENERIC command
  332. as documented in Section 3.1.3 of [NNTP-COMMON], as a way to perform
  333. SASL authentication, is deprecated in favor of the AUTHINFO SASL
  334. command. A server SHOULD NOT advertise AUTHINFO GENERIC in the list
  335. of capabilities returned by CAPABILITIES.
  336. Vinocur, et al. Standards Track [Page 9]
  337. RFC 4643 NNTP Authentication October 2006
  338. 2.4.1. Usage
  339. This command MUST NOT be pipelined.
  340. Syntax
  341. AUTHINFO SASL mechanism [initial-response]
  342. This command MAY exceed 512 octets. The maximum length of this
  343. command is increased to that which can accommodate the largest
  344. encoded initial response possible for any of the SASL mechanisms
  345. supported by the implementation.
  346. Responses
  347. 281 Authentication accepted
  348. 283 challenge Authentication accepted (with success data) [1]
  349. 383 challenge Continue with SASL exchange [1]
  350. 481 Authentication failed/rejected
  351. 482 SASL protocol error
  352. 502 Command unavailable [2]
  353. [1] These responses MAY exceed 512 octets. The maximum length of
  354. these responses is increased to that which can accommodate the
  355. largest encoded challenge possible for any of the SASL
  356. mechanisms supported by the implementation.
  357. [2] If authentication has already occurred, AUTHINFO SASL is not a
  358. valid command (see Section 2.2).
  359. NOTE: Notwithstanding Section 3.2.1 of [NNTP], the server MUST
  360. NOT return 480 in response to AUTHINFO SASL.
  361. Parameters
  362. mechanism = String identifying a [SASL] authentication
  363. mechanism.
  364. initial-response = Optional initial client response.
  365. If present, the response MUST be encoded as
  366. specified in Section 4 of [BASE64]. [3]
  367. challenge = Server challenge.
  368. The challenge MUST be encoded as specified
  369. in Section 4 of [BASE64].
  370. [3] This argument MAY exceed 497 octets. The maximum length of
  371. this argument is increased to that which can accommodate the
  372. largest encoded initial response possible for any of the SASL
  373. mechanisms supported by the implementation.
  374. Vinocur, et al. Standards Track [Page 10]
  375. RFC 4643 NNTP Authentication October 2006
  376. 2.4.2. Description
  377. The AUTHINFO SASL command initiates a [SASL] exchange between the
  378. client and the server. The client identifies the SASL mechanism to
  379. be used with the first parameter of the AUTHINFO SASL command. If
  380. the server supports the requested authentication mechanism, it
  381. performs the SASL exchange to authenticate the user. Optionally, it
  382. also negotiates a security layer for subsequent protocol interactions
  383. during this session. If the requested authentication mechanism is
  384. invalid (e.g., is not supported), the server rejects the AUTHINFO
  385. SASL command with a 503 reply (see Section 3.2.1 of [NNTP]). If the
  386. requested authentication mechanism requires an encryption layer, the
  387. server rejects the AUTHINFO SASL command with a 483 reply (see
  388. Section 3.2.1 of [NNTP]).
  389. The service name specified by this protocol's profile of SASL is
  390. "nntp".
  391. The SASL exchange consists of a series of server challenges and
  392. client responses that are specific to the chosen [SASL] mechanism.
  393. A server challenge is sent as a 383 reply with a single argument
  394. containing the [BASE64]-encoded string supplied by the SASL
  395. mechanism. A server challenge that has zero length MUST be sent as a
  396. single equals sign ("=") and MUST be included (in order to comply
  397. with the [NNTP] requirement that responses always have the same
  398. number of arguments).
  399. A client response consists of a line containing a [BASE64]-encoded
  400. string. A client response that has zero length MUST be sent as a
  401. single equals sign ("=") and MUST be included (for consistency with
  402. the server challenge format). If the client wishes to cancel the
  403. authentication exchange, it issues a line with a single "*". If the
  404. server receives such a response, it MUST reject the AUTHINFO SASL
  405. command by sending a 481 reply.
  406. Note that these [BASE64]-encoded strings can be much longer than
  407. normal NNTP responses. Clients and servers MUST be able to handle
  408. the maximum encoded size of challenges and responses generated by
  409. their supported authentication mechanisms. This requirement is
  410. independent of any line length limitations the client or server may
  411. have in other parts of its protocol implementation.
  412. The optional initial response argument to the AUTHINFO SASL command
  413. is used to save a round trip when using authentication mechanisms
  414. that support an initial client response. If the initial response
  415. argument is omitted and the chosen mechanism requires an initial
  416. client response, the server MUST proceed as defined in section 5.1 of
  417. Vinocur, et al. Standards Track [Page 11]
  418. RFC 4643 NNTP Authentication October 2006
  419. [SASL]. In NNTP, a server challenge that contains no data is
  420. equivalent to a zero-length challenge and is encoded as a single
  421. equals sign ("=").
  422. Note that the [BASE64]-encoded initial response argument can exceed
  423. 497 octets, and therefore that the AUTHINFO SASL command can exceed
  424. 512 octets. Clients SHOULD and servers MUST be able to handle the
  425. maximum encoded size of initial responses possible for their
  426. supported authentication mechanisms. This requirement is independent
  427. of any command or argument length limitations the client or server
  428. may have in other parts of its protocol implementation.
  429. If use of the initial response argument would cause the AUTHINFO SASL
  430. command to exceed 512 octets, the client MAY choose to omit the
  431. initial response parameter (and instead proceed as defined in Section
  432. 5.1 of [SASL]).
  433. If the client is transmitting an initial response of zero length, it
  434. MUST instead transmit the response as a single equals sign ("=").
  435. This indicates that the response is present, but that it contains no
  436. data.
  437. If the client uses an initial-response argument to the AUTHINFO SASL
  438. command with a SASL mechanism that does not support an initial client
  439. response, the server MUST reject the AUTHINFO SASL command with a 482
  440. reply.
  441. If the server cannot [BASE64] decode any client response, it MUST
  442. reject the AUTHINFO SASL command with a 504 reply (see Section 3.2.1
  443. of [NNTP]). If the client cannot BASE64 decode any of the server's
  444. challenges, it MUST cancel the authentication using the "*" response.
  445. In particular, servers and clients MUST reject (and not ignore) any
  446. character not explicitly allowed by the BASE64 alphabet, and they
  447. MUST reject any sequence of BASE64 characters that contains the pad
  448. character ('=') anywhere other than the end of the string (e.g.,
  449. "=AAA" and "AAA=BBB" are not allowed).
  450. The authorization identity generated by this [SASL] exchange is a
  451. simple username, and both client and server MUST use the [SASLprep]
  452. profile of the [StringPrep] algorithm to prepare these names for
  453. transmission or comparison. If preparation of the authorization
  454. identity fails or results in an empty string (unless it was
  455. transmitted as the empty string), the server MUST fail the
  456. authentication with a 481 reply.
  457. Should the client successfully complete the exchange, the server
  458. issues either a 281 or a 283 reply. If the server is unable to
  459. authenticate the client, it MUST reject the AUTHINFO SASL command
  460. Vinocur, et al. Standards Track [Page 12]
  461. RFC 4643 NNTP Authentication October 2006
  462. with a 481 reply. If an AUTHINFO SASL command fails, the client MAY
  463. proceed without authentication. Alternatively, the client MAY try
  464. another authentication mechanism, or present different credentials by
  465. issuing another AUTHINFO command.
  466. If the SASL mechanism returns additional data on success (e.g.,
  467. server authentication), the NNTP server issues a 283 reply with a
  468. single argument containing the [BASE64]-encoded string supplied by
  469. the SASL mechanism. If no additional data is returned on success,
  470. the server issues a 281 reply.
  471. If a security layer is negotiated during the SASL exchange, it takes
  472. effect for the client on the octet immediately following the CRLF
  473. that concludes the last response generated by the client. For the
  474. server, it takes effect immediately following the CRLF of its success
  475. reply.
  476. When a security layer takes effect, the NNTP protocol is reset to the
  477. state immediately after the initial greeting response (see 5.1 of
  478. [NNTP]) has been sent, with the exception that if a MODE READER
  479. command has been issued, the effects of it (if any) are not reversed.
  480. The server MUST discard any knowledge obtained from the client, such
  481. as the current newsgroup and article number, that was not obtained
  482. from the SASL negotiation itself. Likewise, the client SHOULD
  483. discard and MUST NOT rely on any knowledge obtained from the server,
  484. such as the capability list, that was not obtained from the SASL
  485. negotiation itself. (Note that a client MAY compare the advertised
  486. SASL mechanisms before and after authentication in order to detect an
  487. active down-negotiation attack.)
  488. When both TLS [NNTP-TLS] and SASL security layers are in effect, the
  489. TLS encoding MUST be applied after the SASL encoding (the cleartext
  490. data is always SASL encoded first, and then the resultant data is TLS
  491. encoded).
  492. To ensure interoperability, client and server implementations of this
  493. extension MUST implement the [DIGEST-MD5] SASL mechanism.
  494. If AUTHINFO USER/PASS and AUTHINFO SASL are both implemented, the
  495. SASL [PLAIN] mechanism SHOULD also be implemented, as the
  496. functionality of DIGEST-MD5 is insufficient for some environments
  497. (e.g., the server may need to pass off the plaintext password to an
  498. external authentication service). The SASL PLAIN mechanism is
  499. preferred over AUTHINFO USER, even if there is not a strong
  500. encryption layer active, because it eliminates limitations that
  501. AUTHINFO USER/PASS has with regards to the use of white space
  502. characters being used in usernames and passwords.
  503. Vinocur, et al. Standards Track [Page 13]
  504. RFC 4643 NNTP Authentication October 2006
  505. 2.4.3. Examples
  506. Example of the [PLAIN] SASL mechanism under a TLS layer, using an
  507. initial client response:
  508. [C] CAPABILITIES
  509. [S] 101 Capability list:
  510. [S] VERSION 2
  511. [S] READER
  512. [S] STARTTLS
  513. [S] AUTHINFO SASL
  514. [S] SASL CRAM-MD5 DIGEST-MD5 GSSAPI
  515. [S] LIST ACTIVE NEWSGROUPS
  516. [S] .
  517. [C] STARTTLS
  518. [S] 382 Continue with TLS negotiation
  519. [TLS negotiation proceeds, further commands protected by TLS]
  520. [C] CAPABILITIES
  521. [S] 101 Capability list:
  522. [S] VERSION 2
  523. [S] READER
  524. [S] AUTHINFO USER SASL
  525. [S] SASL CRAM-MD5 DIGEST-MD5 GSSAPI PLAIN EXTERNAL
  526. [S] LIST ACTIVE NEWSGROUPS
  527. [S] .
  528. [C] AUTHINFO SASL PLAIN AHRlc3QAMTIzNA==
  529. [S] 281 Authentication accepted
  530. Example of the EXTERNAL SASL mechanism under a TLS layer, using the
  531. authorization identity derived from the client TLS certificate, and
  532. thus a zero-length initial client response (commands prior to
  533. AUTHINFO SASL are the same as the previous example and have been
  534. omitted):
  535. [C] AUTHINFO SASL EXTERNAL =
  536. [S] 281 Authentication accepted
  537. Example of the [DIGEST-MD5] SASL mechanism, which includes a server
  538. challenge and server success data (white space has been inserted for
  539. clarity; base64-encoded data is actually sent as a single line with
  540. no embedded white space):
  541. [C] AUTHINFO SASL DIGEST-MD5
  542. [S] 383 bm9uY2U9InNheUFPaENFS0dJZFBNSEMwd3RsZUxxT0ljT0kyd1FZSWU0
  543. enplQXR1aVE9IixyZWFsbT0iZWFnbGUub2NlYW5hLmNvbSIscW9wPSJhdXRo
  544. LGF1dGgtaW50LGF1dGgtY29uZiIsY2lwaGVyPSJyYzQtNDAscmM0LTU2LHJj
  545. NCxkZXMsM2RlcyIsbWF4YnVmPTQwOTYsY2hhcnNldD11dGYtOCxhbGdvcml0
  546. aG09bWQ1LXNlc3M=
  547. Vinocur, et al. Standards Track [Page 14]
  548. RFC 4643 NNTP Authentication October 2006
  549. [C] dXNlcm5hbWU9InRlc3QiLHJlYWxtPSJlYWdsZS5vY2VhbmEuY29tIixub25j
  550. ZT0ic2F5QU9oQ0VLR0lkUE1IQzB3dGxlTHFPSWNPSTJ3UVlJZTR6emVBdHVp
  551. UT0iLGNub25jZT0iMFkzSlFWMlRnOVNjRGlwK08xU1ZDMHJoVmcvLytkbk9J
  552. aUd6LzdDZU5KOD0iLG5jPTAwMDAwMDAxLHFvcD1hdXRoLWNvbmYsY2lwaGVy
  553. PXJjNCxtYXhidWY9MTAyNCxkaWdlc3QtdXJpPSJubnRwL2xvY2FsaG9zdCIs
  554. cmVzcG9uc2U9ZDQzY2Y2NmNmZmE5MDNmOWViMDM1NmMwOGEzZGIwZjI=
  555. [S] 283 cnNwYXV0aD1kZTJlMTI3ZTVhODFjZGE1M2Q5N2FjZGEzNWNkZTgzYQ==
  556. Example of a failed authentication due to bad [GSSAPI] credentials.
  557. Note that although the mechanism can utilize the initial response,
  558. the client chooses not to use it because of its length, resulting in
  559. a zero-length server challenge (here, white space has been inserted
  560. for clarity; base64-encoded data is actually sent as a single line
  561. with no embedded white space):
  562. [C] AUTHINFO SASL GSSAPI
  563. [S] 383 =
  564. [C] YIICOAYJKoZIhvcSAQICAQBuggInMIICI6ADAgEFoQMCAQ6iBwMFACAAAACj
  565. ggE/YYIBOzCCATegAwIBBaEYGxZURVNULk5FVC5JU0MuVVBFTk4uRURVoiQw
  566. IqADAgEDoRswGRsEbmV3cxsRbmV0bmV3cy51cGVubi5lZHWjge8wgeygAwIB
  567. EKEDAgECooHfBIHcSQfLKC8vm2i17EXmomwk6hHvjBY/BnKnvvDTrbno3198
  568. vlX2RSUt+CjuAKhcDcj4DW0gvZEqH7t5v9yWedzztlpaThebBat6hQNr9NJP
  569. ozh1/+74HUwhGWb50KtjuftO/ftQ8q0nTuYKgIq6PM4tp2ddo1IfpjfdNR9E
  570. 95GFi3y1uBT7lQOwtQbRJUjPSO3ijdue9V7cNNVmYsBsqNsaHhvlBJEXf4WJ
  571. djH8yG+Dw/gX8fUTtC5fDpB5zLt01mkSXh6Wc4UhqQtwZBI2t/+TpX1okbg6
  572. Hr1ZZupeH6SByjCBx6ADAgEQooG/BIG8GnCmcXWtqhXh48dGTLHQgJ04K5Fj
  573. RMMq2qPSbiha9lq0osqR2KAnQA6LioWYxU+6yPKpBDSC5WOT441fUfkM8iAL
  574. kW3uNc+luFCGcnDsacrmoVU7Y6Akcp9m7Fm7orRc+TWSWPpBg3OR2oG3ATW0
  575. 0NAz8TT06VOLVxIMUTINKdYVI/Ja7f3sy+/N4LGkJqScCQOwlo5tfDWn/UQF
  576. iTWo5Zw435rH8pjy2smQCnqC14v3NMAWTu4j+dzHUNw=
  577. [S] 481 Authentication error
  578. Example of a client aborting in the midst of an exchange:
  579. [C] AUTHINFO SASL GSSAPI
  580. [S] 383 =
  581. [C] *
  582. [S] 481 Authentication aborted as requested
  583. Example of attempting to use a mechanism that is not supported by the
  584. server:
  585. [C] AUTHINFO SASL EXAMPLE
  586. [S] 503 Mechanism not recognized
  587. Vinocur, et al. Standards Track [Page 15]
  588. RFC 4643 NNTP Authentication October 2006
  589. Example of attempting to use a mechanism that requires a security
  590. layer:
  591. [C] AUTHINFO SASL PLAIN
  592. [S] 483 Encryption or stronger authentication required
  593. Example of using an initial response with a mechanism that doesn't
  594. support it (the server must start the exchange when using
  595. [CRAM-MD5]):
  596. [C] AUTHINFO SASL CRAM-MD5 AHRlc3QAMTIzNA==
  597. [S] 482 SASL protocol error
  598. Example of an authentication that failed due to an incorrectly
  599. encoded response:
  600. [C] AUTHINFO SASL CRAM-MD5
  601. [S] 383 PDE1NDE2NzQ5My4zMjY4MzE3QHRlc3RAZXhhbXBsZS5jb20+
  602. [C] abcd=efg
  603. [S] 504 Base64 encoding error
  604. 3. Augmented BNF Syntax for the AUTHINFO Extension
  605. This section describes the formal syntax of the AUTHINFO extension
  606. using ABNF [ABNF]. It extends the syntax in Section 9 of [NNTP], and
  607. non-terminals not defined in this document are defined there. The
  608. [NNTP] ABNF should be imported first before attempting to validate
  609. these rules.
  610. 3.1. Commands
  611. This syntax extends the non-terminal "command", which represents an
  612. NNTP command.
  613. command =/ authinfo-sasl-command /
  614. authinfo-user-command /
  615. authinfo-pass-command
  616. authinfo-sasl-command = "AUTHINFO" WS "SASL" WS mechanism
  617. [WS initial-response]
  618. authinfo-user-command = "AUTHINFO" WS "USER" WS username
  619. authinfo-pass-command = "AUTHINFO" WS "PASS" WS password
  620. initial-response = base64-opt
  621. username = 1*user-pass-char
  622. password = 1*user-pass-char
  623. user-pass-char = B-CHAR
  624. Vinocur, et al. Standards Track [Page 16]
  625. RFC 4643 NNTP Authentication October 2006
  626. NOTE: a server implementation MAY parse AUTHINFO USER and AUTHINFO
  627. PASS specially so as to allow white space to be used within the
  628. username or password. Such implementations accept the additional
  629. syntax (making these two items inconsistent with "token" in Section
  630. 9.8 of [NNTP]):
  631. user-pass-char =/ SP / TAB
  632. In doing so, the grammar can become ambiguous if the username or
  633. password begins or ends with white space. To solve this ambiguity,
  634. such implementations typically treat everything after the first white
  635. space character following "USER"/"PASS", up to, but not including,
  636. the CRLF, as the username/password.
  637. 3.2. Command Continuation
  638. This syntax extends the non-terminal "command-continuation", which
  639. represents the further material sent by the client in the case of
  640. multi-stage commands.
  641. command-continuation =/ authinfo-sasl-383-continuation
  642. authinfo-sasl-383-continuation = ("*" / base64-opt) CRLF
  643. 3.3. Responses
  644. This syntax extends the non-terminal "initial-response-content",
  645. which represents an initial response line sent by the server.
  646. initial-response-content =/ response-283-content /
  647. response-383-content
  648. response-283-content = "283" SP base64
  649. response-383-content = "383" SP base64-opt
  650. 3.4. Capability Entries
  651. This syntax extends the non-terminal "capability-entry", which
  652. represents a capability that may be advertised by the server.
  653. capability-entry =/ authinfo-capability /
  654. sasl-capability
  655. authinfo-capability = "AUTHINFO" *(WS authinfo-variant)
  656. authinfo-variant = "USER" / "SASL"
  657. sasl-capability = "SASL" 1*(WS mechanism)
  658. Vinocur, et al. Standards Track [Page 17]
  659. RFC 4643 NNTP Authentication October 2006
  660. 3.5. General Non-terminals
  661. base64-opt = "=" / base64
  662. mechanism = 1*20mech-char
  663. mech-char = UPPER / DIGIT / "-" / "_"
  664. 4. Summary of Response Codes
  665. This section contains a list of each new response code defined in
  666. this document and indicates whether it is multi-line, which commands
  667. can generate it, what arguments it has, and what its meaning is.
  668. Response code 281
  669. Generated by: AUTHINFO USER, AUTHINFO PASS, AUTHINFO SASL
  670. Meaning: authentication accepted
  671. Response code 283
  672. Generated by: AUTHINFO SASL
  673. 1 argument: challenge
  674. Meaning: authentication accepted (with success data)
  675. Response code 381
  676. Generated by: AUTHINFO USER
  677. Meaning: password required via AUTHINFO PASS command. Note
  678. that this code is used for backwards compatibility and does
  679. not conform to the traditional use of 3xx codes.
  680. Response code 383
  681. Generated by: AUTHINFO SASL
  682. 1 argument: challenge
  683. Meaning: continue with SASL exchange
  684. Response code 481
  685. Generated by: AUTHINFO USER, AUTHINFO PASS, AUTHINFO SASL
  686. Meaning: authentication failed/rejected
  687. Response code 482
  688. Generated by: AUTHINFO USER, AUTHINFO PASS, AUTHINFO SASL
  689. Meaning: authentication commands issued out of sequence or
  690. SASL protocol error
  691. 5. Authentication Tracking/Logging
  692. This section contains implementation suggestions and notes of best
  693. current practice; it does not specify further network protocol
  694. requirements.
  695. Vinocur, et al. Standards Track [Page 18]
  696. RFC 4643 NNTP Authentication October 2006
  697. Once authenticated, the authorization identity presented in the
  698. AUTHINFO exchange (username when using USER/PASS) SHOULD be included
  699. in an audit trail associating the identity with any articles supplied
  700. during a POST operation, and this configuration SHOULD be the
  701. default. This may be accomplished, for example, by inserting headers
  702. in the posted articles or by a server logging mechanism. The server
  703. MAY provide a facility for disabling the procedure described above,
  704. as some users or administrators may consider it a violation of
  705. privacy.
  706. 6. Security Considerations
  707. Security issues are discussed throughout this memo.
  708. In general, the security considerations of [SASL] and any implemented
  709. SASL mechanisms are applicable here; only the most important are
  710. highlighted specifically below. Also, this extension is not intended
  711. to cure the security considerations described in section 12 of
  712. [NNTP]; those considerations remain relevant to any NNTP
  713. implementation.
  714. Before the [SASL] negotiation has begun, any protocol interactions
  715. may have been performed in the clear and may have been modified by an
  716. active attacker. For this reason, clients and servers MUST discard
  717. any sensitive knowledge obtained prior to the start of the SASL
  718. negotiation upon the establishment of a security layer. Furthermore,
  719. the CAPABILITIES command SHOULD be re-issued upon the establishment
  720. of a security layer, and other protocol state SHOULD be re-negotiated
  721. as well.
  722. Servers MAY implement a policy whereby the connection is dropped
  723. after a number of failed authentication attempts. If they do so,
  724. they SHOULD NOT drop the connection until at least 3 attempts at
  725. authentication have failed.
  726. Implementations MUST support a configuration where authentication
  727. mechanisms that are vulnerable to passive eavesdropping attacks (such
  728. as AUTHINFO USER/PASS and SASL [PLAIN]) are not advertised or used
  729. without the presence of an external security layer such as TLS
  730. [NNTP-TLS], and this configuration SHOULD be the default.
  731. When multiple authentication mechanisms are permitted by both client
  732. and server, an active attacker can cause a down-negotiation to the
  733. weakest mechanism. For this reason, both clients and servers SHOULD
  734. be configurable to forbid use of weak mechanisms. The minimum
  735. strength acceptable is a policy decision that is outside the scope of
  736. this specification.
  737. Vinocur, et al. Standards Track [Page 19]
  738. RFC 4643 NNTP Authentication October 2006
  739. 7. IANA Considerations
  740. 7.1. IANA Considerations for SASL/GSSAPI Services
  741. The IANA has registered the SASL/GSSAPI service name "nntp". This
  742. service name refers to authenticated use of Usenet news service when
  743. it is provided via the [NNTP] protocol.
  744. o Published Specification: This document.
  745. o Contact for Further Information: Authors of this document.
  746. o Change Controller: IESG <iesg@ietf.org>.
  747. 7.2. IANA Considerations for NNTP Extensions
  748. This section gives a formal definition of the AUTHINFO extension, as
  749. required by Section 3.3.3 of [NNTP] for the IANA registry.
  750. o This extension provides an extensible mechanism for NNTP
  751. authentication via a variety of methods.
  752. o The capability label for this extension is "AUTHINFO".
  753. o The "AUTHINFO" capability label has two possible optional
  754. arguments, "USER" and "SASL" (as defined in Section 2.1),
  755. indicating which variants of the AUTHINFO command are supported.
  756. o This extension also provides the "SASL" capability label, whose
  757. arguments list the available SASL mechanisms.
  758. o This extension defines three new commands, AUTHINFO USER, AUTHINFO
  759. PASS, and AUTHINFO SASL, whose behavior, arguments, and responses
  760. are defined in Sections 2.3 and 2.4.
  761. o This extension does not associate any new responses with pre-
  762. existing NNTP commands.
  763. o This extension may affect the overall behavior of both server and
  764. client in that the AUTHINFO SASL command may require that
  765. subsequent communication be transmitted via an intermediary
  766. security layer.
  767. o The length of the AUTHINFO SASL command (as defined in this
  768. document) may exceed 512 octets. The maximum length of this
  769. command is increased to that which can accommodate the largest
  770. initial response possible for any of the SASL mechanisms supported
  771. by the implementation.
  772. Vinocur, et al. Standards Track [Page 20]
  773. RFC 4643 NNTP Authentication October 2006
  774. o This extension defines two new responses, 283 and 383, whose
  775. lengths may exceed 512 octets. The maximum length of these
  776. responses is increased to that which can accommodate the largest
  777. challenge possible for any of the SASL mechanisms supported by the
  778. implementation.
  779. o This extension does not alter pipelining, but AUTHINFO commands
  780. cannot be pipelined.
  781. o Use of this extension may alter the capabilities list; once the
  782. AUTHINFO command has been used successfully, the AUTHINFO
  783. capability can no longer be advertised by CAPABILITIES.
  784. Additionally, the MODE-READER capability MUST NOT be advertised
  785. after successful authentication.
  786. o This extension does not cause any pre-existing command to produce
  787. a 401, 480, or 483 response.
  788. o This extension is unaffected by any use of the MODE READER
  789. command; however, the MODE READER command MUST NOT be used in the
  790. same session following successful authentication.
  791. o Published Specification: This document.
  792. o Contact for Further Information: Authors of this document.
  793. o Change Controller: IESG <iesg@ietf.org>.
  794. 8. Acknowledgements
  795. This RFC originated from a document initially written by Chris
  796. Newman.
  797. A significant amount of the authentication text was originally from
  798. the NNTP revision or common authentication specs written by Stan
  799. Barber. A significant amount of the SASL text was lifted from the
  800. revisions to RFC 1734 and RFC 2554 by Rob Siemborski.
  801. Special acknowledgement also goes to Russ Allbery, Clive Feather, and
  802. others who commented privately on intermediate revisions of this
  803. document, as well as the members of the IETF NNTP Working Group for
  804. continual (yet sporadic) insight in discussion.
  805. Vinocur, et al. Standards Track [Page 21]
  806. RFC 4643 NNTP Authentication October 2006
  807. 9. References
  808. 9.1. Normative References
  809. [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for
  810. Syntax Specifications: ABNF", RFC 4234, October 2005.
  811. [AUTH] Haller, N. and R. Atkinson, "On Internet
  812. Authentication", RFC 1704, October 1994.
  813. [BASE64] Josefsson, S., "The Base16, Base32, and Base64 Data
  814. Encodings", RFC 4648, October 2006.
  815. [DIGEST-MD5] Leach, P. and C. Newman, "Using Digest Authentication
  816. as a SASL Mechanism", RFC 2831, May 2000.
  817. [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
  818. Requirement Levels", BCP 14, RFC 2119, March 1997.
  819. [NNTP] Feather, C., "Network News Transfer Protocol (NNTP)",
  820. RFC 3977, October 2006.
  821. [NNTP-TLS] Murchison, K., Vinocur, J., and C. Newman, "Using
  822. Transport Layer Security (TLS) with Network News
  823. Transfer Protocol (NNTP)", RFC 4642, October 2006.
  824. [SASL] Melnikov, A. and K. Zeilenga, "Simple Authentication
  825. and Security Layer (SASL)", RFC 4422, June 2006.
  826. [SASLprep] Zeilenga, K., "SASLprep: Stringprep Profile for User
  827. Names and Passwords", RFC 4013, February 2005.
  828. [StringPrep] Hoffman, P. and M. Blanchet, "Preparation of
  829. Internationalized Strings ("stringprep")", RFC 3454,
  830. December 2002.
  831. 9.2. Informative References
  832. [BEEP] Rose, M., "The Blocks Extensible Exchange Protocol
  833. Core", RFC 3080, March 2001.
  834. [CRAM-MD5] Nerenberg, L., "The CRAM-MD5 SASL Mechanism", Work in
  835. Progress.
  836. [GSSAPI] Melnikov, A., "SASL GSSAPI mechanisms", Work in
  837. Progress.
  838. Vinocur, et al. Standards Track [Page 22]
  839. RFC 4643 NNTP Authentication October 2006
  840. [IMAP] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL -
  841. VERSION 4rev1", RFC 3501, March 2003.
  842. [LDAP-AUTH] Harrison, R., "Lightweight Directory Access Protocol
  843. (LDAP): Authentication Methods and Security
  844. Mechanisms", RFC 4513, June 2006.
  845. [NNTP-COMMON] Barber, S., "Common NNTP Extensions", RFC 2980, October
  846. 2000.
  847. [PLAIN] Zeilenga, K., Ed., "The PLAIN Simple Authentication and
  848. Security Layer (SASL) Mechanism", RFC 4616, August
  849. 2006.
  850. [POP-AUTH] Myers, J., "POP3 AUTHentication command", RFC 1734,
  851. December 1994.
  852. [SMTP-AUTH] Myers, J., "SMTP Service Extension for Authentication",
  853. RFC 2554, March 1999.
  854. Authors' Addresses
  855. Jeffrey M. Vinocur
  856. Department of Computer Science
  857. Upson Hall
  858. Cornell University
  859. Ithaca, NY 14853 USA
  860. EMail: vinocur@cs.cornell.edu
  861. Kenneth Murchison
  862. Carnegie Mellon University
  863. 5000 Forbes Avenue
  864. Cyert Hall 285
  865. Pittsburgh, PA 15213 USA
  866. EMail: murch@andrew.cmu.edu
  867. Vinocur, et al. Standards Track [Page 23]
  868. RFC 4643 NNTP Authentication October 2006
  869. Full Copyright Statement
  870. Copyright (C) The Internet Society (2006).
  871. This document is subject to the rights, licenses and restrictions
  872. contained in BCP 78, and except as set forth therein, the authors
  873. retain all their rights.
  874. This document and the information contained herein are provided on an
  875. "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
  876. OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
  877. ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
  878. INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
  879. INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
  880. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  881. Intellectual Property
  882. The IETF takes no position regarding the validity or scope of any
  883. Intellectual Property Rights or other rights that might be claimed to
  884. pertain to the implementation or use of the technology described in
  885. this document or the extent to which any license under such rights
  886. might or might not be available; nor does it represent that it has
  887. made any independent effort to identify any such rights. Information
  888. on the procedures with respect to rights in RFC documents can be
  889. found in BCP 78 and BCP 79.
  890. Copies of IPR disclosures made to the IETF Secretariat and any
  891. assurances of licenses to be made available, or the result of an
  892. attempt made to obtain a general license or permission for the use of
  893. such proprietary rights by implementers or users of this
  894. specification can be obtained from the IETF on-line IPR repository at
  895. http://www.ietf.org/ipr.
  896. The IETF invites any interested party to bring to its attention any
  897. copyrights, patents or patent applications, or other proprietary
  898. rights that may cover technology that may be required to implement
  899. this standard. Please address the information to the IETF at
  900. ietf-ipr@ietf.org.
  901. Acknowledgement
  902. Funding for the RFC Editor function is provided by the IETF
  903. Administrative Support Activity (IASA).
  904. Vinocur, et al. Standards Track [Page 24]