Towards Remote Procedure Call Encryption by Default
draft-ietf-nfsv4-rpc-tls-11
Revision differences
Document history
Date | Rev. | By | Action |
---|---|---|---|
2022-09-13
|
11 | (System) | Received changes through RFC Editor sync (created alias RFC 9289, changed title to 'Towards Remote Procedure Call Encryption by Default', changed abstract to 'This … Received changes through RFC Editor sync (created alias RFC 9289, changed title to 'Towards Remote Procedure Call Encryption by Default', changed abstract to 'This document describes a mechanism that, through the use of opportunistic Transport Layer Security (TLS), enables encryption of Remote Procedure Call (RPC) transactions while they are in transit. The proposed mechanism interoperates with Open Network Computing (ONC) RPC implementations that do not support it. This document updates RFC 5531.', changed pages to 21, changed standardization level to Proposed Standard, changed state to RFC, added RFC published event at 2022-09-13, changed IESG state to RFC Published, created updates relation between draft-ietf-nfsv4-rpc-tls and RFC 5531) |
2022-09-13
|
11 | (System) | RFC published |
2022-09-08
|
11 | (System) | RFC Editor state changed to AUTH48-DONE from AUTH48 |
2022-08-08
|
11 | (System) | RFC Editor state changed to AUTH48 |
2022-08-03
|
11 | (System) | RFC Editor state changed to RFC-EDITOR from REF |
2022-05-20
|
11 | (System) | RFC Editor state changed to REF from EDIT |
2022-05-10
|
11 | (System) | RFC Editor state changed to EDIT from MISSREF |
2020-11-23
|
11 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-11.txt |
2020-11-23
|
11 | (System) | New version approved |
2020-11-23
|
11 | (System) | Request for posting confirmation emailed to previous authors: Chuck Lever , Trond Myklebust |
2020-11-23
|
11 | Chuck Lever | Uploaded new revision |
2020-11-23
|
11 | Chuck Lever | Uploaded new revision |
2020-11-09
|
10 | (System) | IANA Action state changed to RFC-Ed-Ack from Waiting on RFC Editor |
2020-11-09
|
10 | (System) | IANA Action state changed to Waiting on RFC Editor from In Progress |
2020-11-09
|
10 | (System) | IANA Action state changed to In Progress from Waiting on Authors |
2020-11-09
|
10 | (System) | IANA Action state changed to Waiting on Authors from In Progress |
2020-11-06
|
10 | (System) | IANA Action state changed to In Progress from On Hold |
2020-11-06
|
10 | Sabrina Tanamal | "The terminology in the document is not quite aligned with RFC 5280. I'd like to work with the authors to fix it." |
2020-11-06
|
10 | (System) | IANA Action state changed to On Hold from In Progress |
2020-11-03
|
10 | (System) | RFC Editor state changed to MISSREF |
2020-11-03
|
10 | (System) | IESG state changed to RFC Ed Queue from Approved-announcement sent |
2020-11-03
|
10 | (System) | Announcement was received by RFC Editor |
2020-11-03
|
10 | (System) | IANA Action state changed to In Progress |
2020-11-03
|
10 | Amy Vezza | IESG state changed to Approved-announcement sent from Approved-announcement to be sent |
2020-11-03
|
10 | Amy Vezza | IESG has approved the document |
2020-11-03
|
10 | Amy Vezza | Closed "Approve" ballot |
2020-11-03
|
10 | Magnus Westerlund | IESG state changed to Approved-announcement to be sent from IESG Evaluation::AD Followup |
2020-11-03
|
10 | Magnus Westerlund | Ballot approval text was generated |
2020-11-02
|
10 | Benjamin Kaduk | [Ballot comment] Thank you for all the updates in response to my earlier reviews. One final note (no response necessary): Section 1 The -10 has … [Ballot comment] Thank you for all the updates in response to my earlier reviews. One final note (no response necessary): Section 1 The -10 has "must typically" where I (thought I) suggested "typically must". If that's intentional, that's fine; I just wasn't 100% sure at first look. |
2020-11-02
|
10 | Benjamin Kaduk | [Ballot Position Update] Position for Benjamin Kaduk has been changed to Yes from Discuss |
2020-10-31
|
10 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-10.txt |
2020-10-31
|
10 | (System) | New version approved |
2020-10-31
|
10 | (System) | Request for posting confirmation emailed to previous authors: Chuck Lever , Trond Myklebust |
2020-10-31
|
10 | Chuck Lever | Uploaded new revision |
2020-10-31
|
10 | Chuck Lever | Uploaded new revision |
2020-10-20
|
09 | Martin Duke | [Ballot comment] Thanks for addressing my DISCUSS about Early Data. previous comment: Thank you for this draft. I fully support bringing TLS into more use … [Ballot comment] Thanks for addressing my DISCUSS about Early Data. previous comment: Thank you for this draft. I fully support bringing TLS into more use cases of this type. Some comments: Sec 1. "Moreover, the use of AUTH_SYS remains common despite the adverse effects that acceptance of UIDs and GIDs from unauthenticated clients brings with it. Continued use is in part because: Per-client deployment and administrative costs are not scalable. Administrators must provide keying material for each RPC client, including transient clients. Host identity management and user identity management must be enforced in the same security realm. In certain environments, different authorities might be responsible for provisioning client systems versus provisioning new users." The text above says that something is still in use because..., and then mentions two things that are bad. I think the two items are supposed to refer to GSS? Sec 4.2 This sure looks like normative text, so s/must not/MUST NOT "... utilize the remote TLS peer identity for RPC user authentication" Sec 5.1.2 Similarly, s/should/SHOULD "...employ ConnectionIDs of at least 4 bytes in length." |
2020-10-20
|
09 | Martin Duke | [Ballot Position Update] Position for Martin Duke has been changed to No Objection from Discuss |
2020-10-08
|
09 | Benjamin Kaduk | [Ballot discuss] Thank you for the updates in the -09; they address all my previous Discuss points (from the -08). Unfortunately, there is one more … [Ballot discuss] Thank you for the updates in the -09; they address all my previous Discuss points (from the -08). Unfortunately, there is one more issue that was introduced in the update and will need to be resolved: While I appreciate the efforts to find appropriate external specifications to reference, I do not believe that an id-kp-rpcTLSServer certificate is a Resource Certificate per RFC 6487 -- that specification deals with the RPKI (Resource PKI) used to authenticate IP address assignment, but the RPKI is an entirely separate PKI than the Internet PKI ("PKIX"). I think we should drop that sentence entirely. |
2020-10-08
|
09 | Benjamin Kaduk | [Ballot comment] I also have a few non-discuss-level comments on the -09. Section 5.1.2 Sending a TLS Closure Alert terminates a DTLS session. Because … [Ballot comment] I also have a few non-discuss-level comments on the -09. Section 5.1.2 Sending a TLS Closure Alert terminates a DTLS session. Because neither DTLS nor UDP provide in-order delivery, after session closure there can be ambiguity as to whether a datagram should be interpreted as DTLS protected or not. Therefore receivers MUST discard datagrams exchanged using the same 5-tuple that just terminated the DTLS session for 60 seconds. The mandatory waiting period before reusing a 5-tuple is a fine mechanism for resolving the ambiguity. However, I worry that prescribing the exact 60-second timeout is over-prescriptive, and it might be better to say something like "MUST discard [...] for a sufficient length of time to ensure that retransmissions have ceased and packets already in the network have been delivered. In the absence of more specific data, a period of 60 seconds is expected to suffice." Section 5.2.1.1 The current document defines two new KeyPurposeId values: one that identifies the RPC-over-TLS peer as an RPC client, and one that identifies the RPC-over-TLS peer as an RPC server. Additional KeyPurposeId values related to RPC-over-TLS may be specified in subsequent Standards Track documents. Perhaps I am just forgetting a previous discussion, but I am not sure why this is apparently limited to Standards-Track documents -- the normal PKIX convention is that anyone can define whatever EKU they want and specify the semantics of it. Section 7.1.2 Appendix C of [RFC8446] discusses precautions that can mitigate exposure during the exchange of connection handshake information and TLS certificate material that might enable attackers to track the RPC client. I suggest adding another sentence at the end: "When PSK authentication is used, the PSK identifier is exposed during the TLS handshake, and can be used to track the RPC client." I'm a bit surprised that this fact was not stated in the referenced appendix, but didn't find it there! |
2020-10-08
|
09 | Benjamin Kaduk | Ballot comment and discuss text updated for Benjamin Kaduk |
2020-09-18
|
09 | Roman Danyliw | [Ballot comment] Thank you for addressing the early SECDIR review items (and thank you Derrell Piper and Alan Alan DeKok for doing them) Thank you … [Ballot comment] Thank you for addressing the early SECDIR review items (and thank you Derrell Piper and Alan Alan DeKok for doing them) Thank you for addressing by DISCUSS and COMMENT items. |
2020-09-18
|
09 | Roman Danyliw | [Ballot Position Update] Position for Roman Danyliw has been changed to No Objection from Discuss |
2020-09-18
|
09 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2020-09-18
|
09 | (System) | IANA Review state changed to Version Changed - Review Needed from IANA OK - Actions Needed |
2020-09-18
|
09 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-09.txt |
2020-09-18
|
09 | (System) | New version approved |
2020-09-18
|
09 | (System) | Request for posting confirmation emailed to previous authors: Chuck Lever , Trond Myklebust |
2020-09-18
|
09 | Chuck Lever | Uploaded new revision |
2020-09-18
|
09 | Chuck Lever | Uploaded new revision |
2020-07-09
|
08 | Cindy Morgan | IESG state changed to IESG Evaluation::Revised I-D Needed from IESG Evaluation |
2020-07-08
|
08 | Barry Leiba | [Ballot Position Update] New position, No Objection, has been recorded for Barry Leiba |
2020-07-08
|
08 | Warren Kumari | [Ballot Position Update] New position, No Objection, has been recorded for Warren Kumari |
2020-07-08
|
08 | Deborah Brungard | [Ballot Position Update] New position, No Objection, has been recorded for Deborah Brungard |
2020-07-08
|
08 | Alissa Cooper | [Ballot Position Update] New position, No Objection, has been recorded for Alissa Cooper |
2020-07-07
|
08 | Benjamin Kaduk | [Ballot discuss] I support Roman's Discuss points. Sorry to provide so many new substantive points here -- I was only able to follow the email … [Ballot discuss] I support Roman's Discuss points. Sorry to provide so many new substantive points here -- I was only able to follow the email discussions in the WG (and not completely, even) but not to actually read the document earlier. It hopefully goes without saying, but the goal is to make sure we get it right, since it's going to be an important pillar for the future of things; I'm happy to see that this is advancing. (1) I don't think that the claim in Section 4.2 that "[b]oth RPC and TLS have peer and user authentication" is correct, at least given my understanding of those terms. Using this document's definition of RPC "peer authentication" as analogous to TLS server authentication, the functionality that TLS calls "mutual authentication" is more analogous to RPC client authentication, though it is sometimes repurposed for use for user authentication, with concommittant bad user experience. This analogy does not seem critical to the mechanisms of this document, so I believe we should remove or modify it. (2) The mention of using RPCSEC_GSS with GSS channel bindings to TLS is quite underspecified. Unfortunately, this is largely the fault of other specifications, but we have to deal with the fallout. On first glance (but subject to further clarification/change), it seems like we should: - Say what channel binding type (from the registry that RFC 5929 registered stuff in) is to be used -- just citing 5929 doesn't help, since it mentions three different ones (none of which are really right for TLS 1.3, see below) - provide a mechanism for the peers to determine whether GSS channel binding to TLS is to be used. (As discussed in draft-ietf-kitten-channel-bound-flag, the current state of things GSS is that if one party supplies channel bindings but the other doesn't, the security context negotiation fails, which is usually not the best for usability.) Since this is a greenfield GSS-API application, the simplest thing by far is to just say "always provide the channel bindings when using RPCSEC_GSS over TLS". It's even the more secure option, too :) - give more detail about what value to provide as the 'chan_binding' input to the GSS security context negotiation. We currently reference RFC 5929, that defines three different channel-binding values, but none of them are really usable for TLS 1.3 (as discussed in draft-ietf-kitten-tls-channel-bindings-for-tls13). Most likely this will mean using the tls-exporter value from that document. (3) Please check this reference in Section 5.1.1: Reverse-direction operation occurs only on connected transports such as TCP (see Section 2 of [RFC8166]). [...] It seems likely that RFC 8167 was intended... (4) I don't think it's particularly safe to suggest that non-protected RPCs should be exchanged on the same 5-tuple that just terminated a DTLS association, since neither DTLS nor UDP provide in-order delivery, so there is ambiguity as to whether a datagram should be interpreted as DTLS protected or not. This is particularly problematic in the face of the three different DTLS record headers (DTLSPlaintext, DTLSCiphertext(full), and DTLSCiphertext(minimal)) with something like 10 or 11 different possible values for the first byte that might be in flight, with limited "magic number" verification fields available. I think I need some input from the TSV ADs about what the options are, though -- while a cooling-off period might be fine if an ephemeral port is in use, it seems problematic for cases where fixed port numbers are used for both source and destination. (5) Section 5.2.1 requires that: * Implementations SHOULD indicate their trusted Certification Authorities (CAs). Indicate to whom? (6) The usage of RFC 6125 procedures in Section 5.2.1 seems counter to its intent. Specifically, we seem to be saying "the peer gave me a cert, let me look through it to see if it has something I like", but RFC 6125's intended procedure is "I know a list of names that I expect to see at least one of in the cert; these rules tell me whether the cert is valid for any such name". It's not entirely clear that it's appropriate for this document to specify how the client has to order its list of names by type (per Section 6.1 of RFC 6125's "The client constructs a list of acceptable reference identifiers"), which the bit about "The following precedence applies" seems to be doing. To the extent that we give a recommendation to use DNS-ID instead of CN-ID, and ipAddress SAN instead of CN-ID, that's already covered by RFC 6125; it would be okay for us to say "use DNS-ID or iPAddress SAN", though. (Roman's comment about "why not a normative MUST" for putting IP addresses in the iPAddress SAN is related, and if we don't have a compelling reason to allow the flexibility, we should limit to the specific DNS-ID/iPAddress options without allowing CN-ID.) (6.1) Note additionally that if wildcard certificates are to be used, RFC 6125 requires the application protocol specification to give details on how they are to be used. (6.2) RFC 6125's procedures are (facially, at least) only valid for TLS server authentication. We also want to authenticate TLS clients, so we should say whether we expect the same procedures to be used, or what procedures should be used (even just as how it differs from the RFC 6125 ones). Of particular note is that, since the server is not initiating the network connection, it is unlikely to have a preconceived notion of what client identity to expect, and is likely limited to attempting to extract something from the certificate. In this scenario a precedence list (as I complained about being inconsistent with RFC 6125 above) would be appropriate. (7) Section 5.2.1 uses the phrase "renegotiate the TLS session". Renegotiation is not defined or allowed for TLS 1.3; generally one would need to either remember the presented certificate and re-run the validation process on it or shutdown the TLS connection and make a new one, though in theory one could try to define a mechanism using post-handshake authentication. (I don't recommend the latter, though; it's not widely implemented/used.) (8) Can we clarify the status of DNSSEC (or DANE) requirements? Section 1 assumes that support for DNSSEC is already available in an RPC implementation, but Section 7.1.1 says that "Clients [sic] implementors can choose from" a list of things including DANE TLSA records. Why would we require DNSSEC support but not using the records if they're present? (9) I agree with Roman('s comment) that Sections 5.2.2 and 5.2.4 should give a minimum amount of information to be exposed to the administrator for implementing the trust mode. |
2020-07-07
|
08 | Benjamin Kaduk | [Ballot comment] I'm surprised that we don't make a normative reference to BCP 195's "Recommendations for Secure Use of Transport Layer Security (TLS) and … [Ballot comment] I'm surprised that we don't make a normative reference to BCP 195's "Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)" (we have only an informative reference from the security considerations). Abstract I can't quite put my finger on it, but something about "enables encryption of in-transit Remote Procedure Call (RPC) transactions" rubs me the wrong way. I think I want to change what the "in transit" binds to, since what we are doing is encrypting RPC messages while they are in transit, as opposed to applying protection to just the subset of messages that are "in transit". Section 1 It strongly recommended that newly defined Internet protocols should make a genuine effort to mitigate monitoring attacks. Typically this mitigation is done by encrypting data in transit. I suggest s/is done by/includes/, since in some cases padding or other side-channel-resistance mechanisms are also used. * Parts of each RPC header remain in clear-text, constituting a significant security exposure. "Security" is kind of a catch-all term; it would be good to be more precise, here, perhaps as "constituting a needless loss of metadata confidentiality". Moreover, the use of AUTH_SYS remains common despite the adverse effects that acceptance of UIDs and GIDs from unauthenticated clients brings with it. Continued use is in part because: * Per-client deployment and administrative costs are not scalable. This writing could be tidied up; it currently can be read as saying that the deployment/administrative costs are of AUTH_SYS, but really the costs belong to the only currently defined alternative to AUTH_SYS. Perhaps, "Per-client deployment and administrative costs for the only defined alternative to AUTH_SYS are expensive at scale". * Host identity management and user identity management must be enforced in the same security realm. In certain environments, different authorities might be responsible for provisioning client systems versus provisioning new users. I think this is only true from a certain point of view. They have to be related, and (assuming Kerberos since non-Kerberos RPCSEC_GSS isn't really a thing) a cross-realm relationship would have to exist in at least one direction when client system and user provisioning are managed by separate kerberos realms, but the authorities in question do not need to be exactly the same. The alternative described in the current document is to employ a transport layer security mechanism that can protect the confidentiality of each RPC connection transparently to RPC and upper-layer protocols. The Transport Layer Security protocol side note: I'd consider an editorial rewording to something like: % In light of the difficulties and issues with both the mechanisms currently % defined for RPC protection and/or authentication, and the continued % inability to make significant progress in mitigating those concerns, this % document takes a new approach by defining a third mechanism to complement % the existing ones. The confidentiality of each RPC connection can be % protected transparently to the RPC and upper-layer protocols by use of a % transport-layer security mechanism. The Transport Layer Security protocol Encryption By Default: Transport encryption can be enabled without additional administrative tasks such as identifying client systems to a trust authority, generating additional keying material, or provisioning a secure network tunnel. To clarify Roman's comment, it seems worth specifying that this is without additional *per-client* keying material. Generating per-server keying material is clearly a minimum requirement. The current document specifies the implementation of RPC on an encrypted transport in a manner that is transparent to upper-layer protocols based on RPC. The imposition of encryption at the transport layer protects any upper-layer protocol that employs RPC, without alteration of that protocol. nit: this paragraph, especially the first sentence, feels pretty redundant with the paragraph that I proposed a rewording of. that do not support TLS. However, specifications for RPC-based upper-layer protocols should choose to require even stricter policies that guarantee encryption and host authentication is used for all RPC transactions. [...] We could probably cite 7258 again to strengthen this argument. I though 7435 (opportunistic security) also had some applicable text, but am not finding it right now. The protocol specification in the current document assumes that support for RPC, TLS, PKI, GSS-API, and DNSSEC is already available in an RPC implementation where TLS support is to be added. We assume that TLS is available where TLS support is to be added? That might merit a bit more explanation. Also, what exactly does "PKI" mean, here? PKIX X.509 certificates? Section 4.1 The mechanism described in the current document interoperates fully with RPC implementations that do not support RPC-over-TLS. Policy settings on the RPC-over-TLS-enabled peer determine whether RPC I'd consider joining the two sentences via ", subject to policy settings on the RPC-over-TLS-enabled peer that determine". The RPC client might query the RPC server's rpcbind service to make this selection. In all cases, an RPC server MUST listen on the same Is there a reference we could put in for the rpcbind service? containing a NULL RPC procedure with an auth_flavor of AUTH_TLS. The mechanism described in the current document does not support RPC transports other than TCP and UDP. It might be nice if we could find a way to mention this transport restriction in the previous paragraph, though it's hardly vital. The flavor value of the verifier in the RPC Reply message received from the server MUST be AUTH_NONE. The length of the verifier's body field is eight. The bytes of the verifier's body field encode the ASCII characters "STARTTLS" as a fixed-length opaque. nit/style: I kind of want there to be mention of "to accept" starttls or "a server supporting this mechanism" or something in this paragraph, since of course a client that sent the proper probe message will not get this response from a server that doesn't implement it. If an RPC client uses the AUTH_TLS authentication flavor on any procedure other than the NULL procedure, or an RPC client sends an RPC AUTH_TLS probe within an existing (D)TLS session, the RPC server MUST reject that RPC Call by setting the reply_stat field to MSG_DENIED, the reject_stat field to AUTH_ERROR, and the auth_stat field to AUTH_BADCRED. nit: is the protocol element a 'reply_stat' field or a 'stat' field of type 'reply_stat'? Likewise for reject_stat and auth_stat. Once the TLS session handshake is complete, the RPC client and server have established a secure channel for communicating. A successful AUTH_TLS probe on one particular port/transport tuple never implies RPC-over-TLS is available on that same server using a different port/ transport tuple. It could be worth saying something about expected future availability of RPC-over-TLS on the same server/port/transport (though it is, of course, not guaranteed). RFC 7435 admits this possibility when it discusses that peer capabilities may be obtained by out-of-band mechanisms such as trust-on-first-use (TOFU). Section 4.2 Each RPC server that supports RPC-over-TLS MUST possess a unique global identity (e.g., a certificate that is signed by a well-known trust anchor). Such an RPC server MUST request a TLS peer identity This is perhaps sufficiently vague to not be actively problematic, but at least comes close to a touchy area. The main source of "well-known trust anchor" that many readers will think of is the Web PKI, but use of TLS certificates issued from the Web PKI for authenticating RPC operation enters a grey area in terms of CA policy; if the CA determines that the certificate is being used for a purpose other than the one it was issued for, the certificate is subject to revocation by the CA. A hypothetical mass-revocation event due to publicity about wide-scale "misuse" of TLS certificate for RPC (i.e., not HTTP) would have knock-on effects on other consumers of those CAs via expanded CRL size and the resources needed to perform revocation checks. Things would be easier in this regard if a dedicated "well-known" CA infrastructure appeared for RPC usage, though many things would have to align for that to happen (which would themselves not be "easy"!), and there are of course options involving site-local CAs where the combination of issuer and subject serves to satisfy the "unique global identity" criterion. from each client upon first contact. There are two different modes nit: "contact" is perhaps needlessly ambiguous (i.e., w.r.t. TLS handshake vs. NULL RPC probe); perhaps "during the TLS handshake" suffices? identities. If authentication of either peer fails, or if authorization based on those identities blocks access to the server, the peers MUST reject the association. nit: there's something like a singular/plural mismatch, in that only authorization based on the client identity would "block access to the server", but we talk about "authorization based on those identities" plural. I guess in some sense the client could reject a server as unauthorized, but given how the server identity check happens usually the client would make that rejection before it even does a DNS resolution and starts the TLS handshake, with the in-handshake checks being limited to authenticating that the server is the one the client was trying to talk to. In either of these modes, RPC user authentication is not affected by the use of transport layer security. When a client presents a TLS peer identity to an RPC server, the protocol extension described in the current document provides no way for the server to know whether that identity represents one RPC user on that client, or is shared amongst many RPC users. Therefore, a server implementation must not That's only true to the extent that we haven't yet defined X.509 mechanisms to convey that information. It's certainly imaginable that we would define new name types or key usage that are specific to RPC client or RPC user authentication, though I don't know of any such mechanism that already exists today. Section 4.2.1 RPCSEC GSS can also perform per-request integrity or confidentiality protection. When operating over a TLS session, these GSS services become redundant. An RPC implementation capable of concurrently At risk of being called a pedant, these services are only "largely redundant" -- most TLS setups will be using standard asymmetric key exchange that is vulnerable to a quantum computer, whereas a kerberos-backed RPCSEC_GSS will be using symmetric crypto that is or can be quantum-resistant for appropriate key sizes. When a "record now, decrypt later" attack is relevant the distinction can be important to make (though for purely ephemeral traffic the distinction collapses). Section 5 * Negotiation of a ciphersuite providing confidentiality as well as integrity protection is REQUIRED. Support for and negotiation of compression is OPTIONAL. There's a bit of tidying we can do that falls out from the "1.3 only" change -- all TLS 1.3 ciphersuites provide confidentiality (by virtue of needing to be AEAD ciphers), and compression is forbidden in TLS 1.3. * Implementations MUST support certificate-based mutual authentication. Support for TLS-PSK mutual authentication [RFC4279] is OPTIONAL. See Section 4.2 for further details. (Roman's Discuss is valid, but also) people using TLS-PSK (with TLS 1.3) might be interested in the topics discussed in draft-ietf-tls-external-psk-guidance and draft-ietf-tls-external-psk-importer. I don't insist on referencing them, but it might be worth considering. Client implementations MUST include the "application_layer_protocol_negotiation(16)" extension [RFC7301] in their "ClientHello" message and MUST include the protocol identifier defined in Section 8.2 in that message's ProtocolNameList value. Similary, in response to the "ClientHello" message, server implementations MUST include the "application_layer_protocol_negotiation(16)" extension [RFC7301] in their "ServerHello" message and MUST include only the protocol identifier defined in Section 8.2 in that message's ProtocolNameList value. [this would change if we end up using ALPN to indicate whether GSS channel binding is used] If the server responds incorrectly (for instance, if the "ServerHello" message does not conform to the above requirements), the client MUST NOT establish a TLS session for use with RPC on this connection. See [RFC7301] for further details about how to form these messages properly. We could probably give a bit more detail about what happens here. Specifically, once you abort the TLS handshake, most implementations don't give you a guaranteed clean way to get back to a non-TLS socket, so you generally end up tearing the whole thing down. If we expect people to be able to say "well, STARTTLS failed, let me just reuse this connection for unencrypted RPC", we should be clear about that. Section 5.1.1 If spurious traffic appears on a TCP connection between the initial clear-text AUTH_TLS probe and the TLS session handshake, receivers MUST discard that data without response and then SHOULD drop the connection. Is this "spurious traffic" supposed to be just in one direction or in both? IIUC at least one of those cases would probably be malformed RPC (and thus discarded anyway?). The protocol convention specified in the current document assumes there can be no more than one concurrent TLS session per TCP connection. This is true of current generations of TLS, but might be different in a future version of TLS. I'd be pretty surprised if a future version of TLS grew this feature; I've asked the TLS WG if we think there's not need to include such a statement in this document. To protect reverse-direction RPC operations, the RPC server does not establish a separate TLS session on the TCP connection, but instead uses the existing TLS session on that connection to protect these operations. My apologies for zoning out during the WG discussions, but we're sure that the RPC framing is enough to let this work (with forward and reverse-direction RPCs intermingled on the same TLS connection)? Section 5.1.2 Using DTLS does not introduce reliable or in-order semantics to RPC on UDP. Each RPC message MUST fit in a single DTLS record. DTLS encapsulation has overhead, which reduces the effective Path MTU (PMTU) and thus the maximum RPC payload size. The use of DTLS record "Packetization Layer Path MTU" (PLPMTU, draft-ietf-tsvwg-datagram-plpmtud, in the RFC Editor's queue) might be a better term to use. As soon as a client initializes a UDP socket for use with an RPC server, it uses the mechanism described in Section 4.1 to discover DTLS support for an RPC program on a particular port. It then negotiates a DTLS session. We could probably normalize the wording between the TCP and UDP cases (e.g., TCP says "typically, once a client completes the TCP handshake, it uses the mechanism [...]" but this uses descriptive text). That would also let us decide whether or not to mention that (D)TLS usage is contingent on mutual support for STARTTLS. extension described in Section 9 of [I-D.ietf-tls-dtls13], and RPC- on-DTLS peer endpoints MUST provide a ConnectionID with a non-zero nit: we seem to prefer RPC-over- to RPC-on (as is used here, across the line break) Section 5.1.3 Transports that provide intrinsic TLS-level security (e.g., QUIC) need to be addressed separately from the current document. In such cases, the use of TLS is not opportunistic as it can be for TCP or UDP. nit(?): somehow "can be" doesn't feel like the right wording here, but "must be" isn't right either... scope of the current document. Because there might not be other provisions to exchange client and server certificates, authentication Er, "other provisions" than what? Section 5.2.1 X.509 certificates are specified in [X.509] and extended in [RFC5280]. Note that RFC 5280 claims to be a profile of X.509, not an extension to it. * Certificate validation MUST include the verification rules as per [RFC5280]. It might be appropriate to reference RFC 6125 as well (though that places some restrictions on how servers are named, claims to only apply to server certificate validation, and requires specifying what type of name is to be validated and how the input name to validation is obtained) * Peer validation always includes a check on whether the locally configured expected DNS name or IP address of the server that is contacted matches its presented certificate. DNS names and IP In the RFC 6125 parlance these would be the "DNS-ID" and "iPAddress subjectAltName", respectively, and such a reference would obviate the need for most of the subsequent explanation. * Implementations MAY allow the configuration of a set of additional properties of the certificate to check for a peer's authorization to communicate (e.g., a set of allowed values in subjectAltName:URI or a set of allowed X.509v3 Certificate Policies). I could imagine an extendedKeyUsage being configured, too. trust model. As a suggestion, at least the following parameters of the X.509 client certificate SHOULD be exposed: What about non-extended keyUsage, and arbitrary X.509 extensions? * Originating IP address I don't think "originating IP address" is a parameter of the X.509 client certificate. * Certificate Fingerprint Using what hash algorithm? * Subject [...] * all X.509v3 Subject Alternative Name Per RFC 5280 (§ 4.1.2.6) the SAN *is* (part of) the Subject. Section 5.2.2 As above, fingerprint using what hash algorithm? Section 5.2.3 This mechanism is OPTIONAL to implement. In this mode, the RPC peer is uniquely identified by keying material that has been shared out- of-band or by a previous TLS-protected connection (see Section 2.2 of [RFC8446]). [...] I strongly suggest not mentioning the "by a previous TLS-protected connection (see Section 2.2 of [RFC8446])" case here; the TLS stack should handle resumption transparently and expose the identity information from the original handshake. There's no need to make the application manage and track the resumption PSK identifier values. * TLS Identifier nit: missing "PSK". Section 7 It's probably worth pulling in (by reference) the security considerations of RFCs 5280 and 8446 as well. Section 7.1.1 * Client security policy can require that a TLS session is established on every connection. If an attacker spoofs the handshake, the client disconnects and reports the problem. If It might be worth adding a few more words about how this is a "fail-safe" setup where the attacker cannot cause the client to fall back to plaintext. Section 7.1.2 The exception to this edict is the initial RPC NULL procedure that acts as a STARTTLS message, which cannot be protected. This RPC NULL procedure contains no arguments or results, and the AUTH_TLS authentication flavor it uses does not contain user information. I suggest hammering home the conclusion, ", so there is negligible privacy impact from this exception". Section 7.2 I'd consider using the phrase "credentials" instead of, or in addition to, "identity material". Section 7.3 but it does enable receivers to reject non-participant messages. In particular, transport layer encryption plus peer authentication protects receiving XDR decoders from deserializing untrusted data, a common coding vulnerability. I might go on to add that these decoders would still be exposed to untrusted input in the case of the compromise of a trusted peer (or trusted CA). In light of the above, it is RECOMMENDED that when AUTH_SYS is used, every RPC client should present host authentication material to RPC servers to prove that the client is a known one. The server can then determine whether the UIDs and GIDs in AUTH_SYS requests from that client can be accepted. Perhaps add ", based on the authenticated identity of the client"? Section 7.4 * When using AUTH_NULL or AUTH_SYS, both peers are required to have DNS TLSA records and certificate material, and a policy that I suggest to s/DNS/DANE/ or s/DNS/DNSSEC/. * RCPSEC_GSS provides integrity and privacy services which are redundant when TLS is in use. These services should be disabled ["largely redundant", again] Section 8 I think we should consider getting IANA to allocate OIDs for some X.509 extendedKeyUsage values that correspond to RPC-TLS client/server usage. It's not necessarily something that we'd require to be present (but would be helpful if a dedicated RPC-TLS PKI was to appear), but is useful to have available for when it's needed. This would presumably be under the 1.3.6.1.5.5.7.3 arc, and the referenced documents for existing allocations usable as a template for what text to put in. Section 8.1 Isn't it codepoint squatting to claim auth flavor 7 before IANA has allocated it? (This is usually a Discuss-level issue, but that part is too long already so I left it here.) Section 9.1 RFC 7258 doesn't seem like it needs to be normative. Appendix A Maybe link to draft-dnoveck-nfsv4-security-needs for further (extensive!) discussion of the weaknesses of AUTH_SYS? 3. The use of 32-bit unsigned integers as user and group identifiers is problematic because these data types are not cryptographically signed or otherwise verified by any authority. Also problematic due to the need for database consistency between client/server. |
2020-07-07
|
08 | Benjamin Kaduk | [Ballot Position Update] New position, Discuss, has been recorded for Benjamin Kaduk |
2020-07-07
|
08 | Alvaro Retana | [Ballot Position Update] New position, No Objection, has been recorded for Alvaro Retana |
2020-07-06
|
08 | Roman Danyliw | [Ballot discuss] ** Despite Section 5.0 stating that only TLS v1.3+ can be used, there are two references to TLS v1.2 mechanisms: -- Section 5.0. … [Ballot discuss] ** Despite Section 5.0 stating that only TLS v1.3+ can be used, there are two references to TLS v1.2 mechanisms: -- Section 5.0. Per “Implementations MUST support certificate-based mutual authentication. Support for TLS-PSK mutual authentication [RFC4279] is OPTIONAL”. Shouldn’t Section 2.2.2 or 4.2.11 of RFC8446 be used instead? -- Section 5.2.4. The token binding mechanism suggested here, RFC8471, only applies to TLS v1.2. The expired draft-ietf-tokbind-tls13 provides the TLS v1.3 mechanism. ** Section 7.4. Per “When using AUTH_NULL or AUTH_SYS, both peers are required to have DNS TLSA records and certificate material …”, what is “certificate materials”? Can this guidance please be clarified (and perhaps related to the options specified in Section 5.2). |
2020-07-06
|
08 | Roman Danyliw | [Ballot comment] Thank you for addressing the early SECDIR review items (and thank you Derrell Piper and Alan Alan DeKok for doing them) ** Section … [Ballot comment] Thank you for addressing the early SECDIR review items (and thank you Derrell Piper and Alan Alan DeKok for doing them) ** Section 1. Per “Encryption by Default: Transport encryption can be enabled without … generating additional keying materials”, I’m not sure that this is accurate if the server and clients need to be keyed with certificates or PSK for TLS ** Section 4.1. Per “Policy settings on the RPC-over-TLS-enabled peer determine whether RPC operation continues without the use of TLS or RPC operation is not permitted.”, I had trouble parsing this sentence. ** Section 4.1. Per “RPC operation can continue …”, it might be worth repeating what was stated earlier that “[t]he RPC operation can continue if permitted by local policy …” ** Section 5.2.1. Per “For services accessed by their network identifiers (netids) and universal network addresses (uaddr), the iPAddress subjectAltName SHOULD be present in the certificate and must exactly …”, why not a normative MUST? ** Section 5.2.1. Per “For example, if the Issuer is not in a trusted set of Issuers, the RPC server may decline to perform RPC transactions with this client.”, wouldn’t the TLS connection fail in this case and not even get to whatever authorization logic the RPC server might have? ** Section 5.2.1. Per “As a suggestion, at least the following parameters of the X.509 client certificate SHOULD be exposed … Originating IP address”, how exactly should this IP address be exposed in the certificate, or is this intended to be the IP address of the peer which presented the certificate? ** Section 5.2.2 and 5.2.4. Both 5.2.1 and 5.2.3 described what information should be exposed by implementations. These sections omit that information. For example, I would have expected Section 5.2.4 to discuss Token Binding IDs ** Section 5.2.2. Is there any MTI guidance on the kinds of digests to support for these fingerprints? ** Section 5.2.4. Are there any MTI parameters for the token binding to specify? ** Section 7.3. Per “… it is RECOMMENDED that when AUTH_SYS is used, every RPC client should present authentication materials to RPC servers …”, is this the same thing as saying that when AUTH_SYS is used a mutual authentication TLS-scheme is RECOMMENDED? I concur with this approach. I would just recommended saying that explicitly. ** Section 7.4. Is there a reason not to use normative language in this section? Specifically, RECOMMENDED for the first bullet and SHOULD for the second. ** Editorial Nits: -- Section 5. Typo. s/Similary/Similarly/ -- Section 7.1.2. Typo. s/connnection/connection/ |
2020-07-06
|
08 | Roman Danyliw | [Ballot Position Update] New position, Discuss, has been recorded for Roman Danyliw |
2020-07-06
|
08 | Robert Wilton | [Ballot Position Update] New position, No Objection, has been recorded for Robert Wilton |
2020-07-06
|
08 | Martin Vigoureux | [Ballot Position Update] New position, No Objection, has been recorded for Martin Vigoureux |
2020-07-05
|
08 | Murray Kucherawy | [Ballot comment] I'm having trouble parsing the first paragraph of Section 4.1. Thank you for including Section 6. The REQUIRED in Section 7.1 isn't actually … [Ballot comment] I'm having trouble parsing the first paragraph of Section 4.1. Thank you for including Section 6. The REQUIRED in Section 7.1 isn't actually an interoperability concern, is it? |
2020-07-05
|
08 | Murray Kucherawy | [Ballot Position Update] New position, No Objection, has been recorded for Murray Kucherawy |
2020-07-03
|
08 | Éric Vyncke | [Ballot comment] Thank you for the work put into this document. Please find below a couple on non-blocking COMMENTs. I hope that this helps to … [Ballot comment] Thank you for the work put into this document. Please find below a couple on non-blocking COMMENTs. I hope that this helps to improve the document, Regards, -éric == COMMENTS == -- Abstract -- As section 4.2 specifies the use of at least server-side authenticated TLS session, I wonder why the abstract contains 'opportunistic encryption'. -- Section 4.1 -- "(D)TLS-protected RPC" while DTLS was never expanded before... or did I miss it ? -- Section 6.3 -- Just puzzled by "No comments from implementors" about Hammerspace while one author is affiliated with Hammerspace. |
2020-07-03
|
08 | Éric Vyncke | [Ballot Position Update] New position, No Objection, has been recorded for Éric Vyncke |
2020-06-30
|
08 | Amanda Baber | IANA Experts State changed to Expert Reviews OK |
2020-06-30
|
08 | Amanda Baber | IANA Review state changed to IANA OK - Actions Needed from Version Changed - Review Needed |
2020-06-29
|
08 | Erik Kline | [Ballot comment] [[ questions ]] * Can/should the same AUTH_TLS w/ NULL RPC check be done on the rpcbind (portmapper) service as well? * … [Ballot comment] [[ questions ]] * Can/should the same AUTH_TLS w/ NULL RPC check be done on the rpcbind (portmapper) service as well? * What mechanism guarantees that (D)TLS traffic can always and easily be distinguished from RPC traffic on the same port? [[ nits ]] [ section 5.1.1 ] * "When operation is complete" ... In addition to a grammar tweak, you might repeat a few choice words from section 7.2 about the ability to send multiple requests over a connection. [ section 7.4 ] * s/RCPSEC_GSS/RPCSEC_GSS/ |
2020-06-29
|
08 | Erik Kline | [Ballot Position Update] New position, No Objection, has been recorded for Erik Kline |
2020-06-25
|
08 | Martin Duke | [Ballot comment] Thank you for this draft. I fully support bringing TLS into more use cases of this type. Some comments: Sec 1. "Moreover, the … [Ballot comment] Thank you for this draft. I fully support bringing TLS into more use cases of this type. Some comments: Sec 1. "Moreover, the use of AUTH_SYS remains common despite the adverse effects that acceptance of UIDs and GIDs from unauthenticated clients brings with it. Continued use is in part because: Per-client deployment and administrative costs are not scalable. Administrators must provide keying material for each RPC client, including transient clients. Host identity management and user identity management must be enforced in the same security realm. In certain environments, different authorities might be responsible for provisioning client systems versus provisioning new users." The text above says that something is still in use because..., and then mentions two things that are bad. I think the two items are supposed to refer to GSS? Sec 4.2 This sure looks like normative text, so s/must not/MUST NOT "... utilize the remote TLS peer identity for RPC user authentication" Sec 5.1.2 Similarly, s/should/SHOULD "...employ ConnectionIDs of at least 4 bytes in length." |
2020-06-25
|
08 | Martin Duke | Ballot comment text updated for Martin Duke |
2020-06-25
|
08 | Martin Duke | [Ballot discuss] This presumably a trivial fix but I think it's important enough to be a DISCUSS: I think the document needs some discussion of … [Ballot discuss] This presumably a trivial fix but I think it's important enough to be a DISCUSS: I think the document needs some discussion of the security properties of TLS1.3 early data over TCP, if only to refer to Section 8 of RFC 8446 (replay) and mention that it is not forward-secure, unlike the rest of the payload. |
2020-06-25
|
08 | Martin Duke | [Ballot comment] Thank you for this draft. I fully support bring TLS into more use cases of this type. Some comments: Sec 1. "Moreover, the … [Ballot comment] Thank you for this draft. I fully support bring TLS into more use cases of this type. Some comments: Sec 1. "Moreover, the use of AUTH_SYS remains common despite the adverse effects that acceptance of UIDs and GIDs from unauthenticated clients brings with it. Continued use is in part because: Per-client deployment and administrative costs are not scalable. Administrators must provide keying material for each RPC client, including transient clients. Host identity management and user identity management must be enforced in the same security realm. In certain environments, different authorities might be responsible for provisioning client systems versus provisioning new users." The text above says that something is still in use because..., and then mentions two things that are bad. I think the two items are supposed to refer to GSS? Sec 4.2 This sure looks like normative text, so s/must not/MUST NOT "... utilize the remote TLS peer identity for RPC user authentication" Sec 5.1.2 Similarly, s/should/SHOULD "...employ ConnectionIDs of at least 4 bytes in length." |
2020-06-25
|
08 | Martin Duke | [Ballot Position Update] New position, Discuss, has been recorded for Martin Duke |
2020-06-22
|
08 | Amy Vezza | Placed on agenda for telechat - 2020-07-09 |
2020-06-22
|
08 | Magnus Westerlund | IESG state changed to IESG Evaluation from Waiting for AD Go-Ahead |
2020-06-22
|
08 | Magnus Westerlund | Ballot has been issued |
2020-06-22
|
08 | Magnus Westerlund | [Ballot Position Update] New position, Yes, has been recorded for Magnus Westerlund |
2020-06-22
|
08 | Magnus Westerlund | Created "Approve" ballot |
2020-06-22
|
08 | Magnus Westerlund | Ballot writeup was changed |
2020-06-19
|
08 | (System) | IANA Review state changed to Version Changed - Review Needed from IANA - Not OK |
2020-06-19
|
08 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-08.txt |
2020-06-19
|
08 | (System) | New version approved |
2020-06-19
|
08 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2020-06-19
|
08 | Chuck Lever | Uploaded new revision |
2020-06-19
|
08 | Chuck Lever | Uploaded new revision |
2020-05-27
|
07 | (System) | IESG state changed to Waiting for AD Go-Ahead from In Last Call |
2020-05-26
|
07 | (System) | IANA Review state changed to IANA - Not OK from IANA - Review Needed |
2020-05-26
|
07 | Sabrina Tanamal | (Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs: The IANA Functions Operator has completed its review of draft-ietf-nfsv4-rpc-tls-07. If any part of this review is inaccurate, please let … (Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs: The IANA Functions Operator has completed its review of draft-ietf-nfsv4-rpc-tls-07. If any part of this review is inaccurate, please let us know. The IANA Functions Operator understands that, upon approval of this document, there are two actions which we must complete. First, in the RPC Authentication Flavor Numbers registry on the Remote Procedure Call (RPC) Authentication Numbers registry page located at: https://www.iana.org/assignments/rpc-authentication-numbers/ a single, new registration will be made as follows: Identifier String: AUTH_TLS Flavor Name: TLS Value: [ TBD-at-Registration ] Description: Signals the use of TLS to protect RPC messages on socket-based transports. Reference: [ RFC-to-be ] IANA notes that the authors have requested a value of 7 for this registration. Second, in the TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs registry on the Transport Layer Security (TLS) Extensions registry page located at: https://www.iana.org/assignments/tls-extensiontype-values/ a single, new registration is to be made as follows: Protocol: SunRPC Identification Sequence: 0x73 0x75 0x6e 0x72 0x70 0x63 ("sunrpc") Reference: [ RFC-to-be ] As this document requests registrations in an Expert Review (see RFC 8126) registry, the IESG-designated experts for the TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs registry have asked that you send a review request to the mailing list tls-reg-review@ietf.org. Expert review will need to be completed before your document can be approved for publication as an RFC. The IANA Functions Operator understands that these are the only actions required to be completed upon approval of this document. Note: The actions requested in this document will not be completed until the document has been approved for publication as an RFC. This message is meant only to confirm the list of actions that will be performed. Thank you, Sabrina Tanamal Senior IANA Services Specialist |
2020-05-24
|
07 | Dale Worley | Request for Last Call review by GENART Completed: Ready with Nits. Reviewer: Dale Worley. Sent review to list. |
2020-05-19
|
07 | Gunter Van de Velde | Request for Last Call review by OPSDIR is assigned to Sheng Jiang |
2020-05-19
|
07 | Gunter Van de Velde | Request for Last Call review by OPSDIR is assigned to Sheng Jiang |
2020-05-14
|
07 | Jean Mahoney | Request for Last Call review by GENART is assigned to Dale Worley |
2020-05-14
|
07 | Jean Mahoney | Request for Last Call review by GENART is assigned to Dale Worley |
2020-05-13
|
07 | Amy Vezza | IANA Review state changed to IANA - Review Needed |
2020-05-13
|
07 | Amy Vezza | The following Last Call announcement was sent out (ends 2020-05-27): From: The IESG To: IETF-Announce CC: nfsv4-chairs@ietf.org, draft-ietf-nfsv4-rpc-tls@ietf.org, David Noveck , nfsv4@ietf.org, … The following Last Call announcement was sent out (ends 2020-05-27): From: The IESG To: IETF-Announce CC: nfsv4-chairs@ietf.org, draft-ietf-nfsv4-rpc-tls@ietf.org, David Noveck , nfsv4@ietf.org, magnus.westerlund@ericsson.com, davenoveck@gmail.com Reply-To: last-call@ietf.org Sender: Subject: Last Call: (Towards Remote Procedure Call Encryption By Default) to Proposed Standard The IESG has received a request from the Network File System Version 4 WG (nfsv4) to consider the following document: - 'Towards Remote Procedure Call Encryption By Default' as Proposed Standard The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the last-call@ietf.org mailing lists by 2020-05-27. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting. Abstract This document describes a mechanism that, through the use of opportunistic Transport Layer Security (TLS), enables encryption of in-transit Remote Procedure Call (RPC) transactions while interoperating with ONC RPC implementations that do not support this mechanism. This document updates RFC 5531. The file can be obtained via https://datatracker.ietf.org/doc/draft-ietf-nfsv4-rpc-tls/ No IPR declarations have been submitted directly on this I-D. |
2020-05-13
|
07 | Amy Vezza | IESG state changed to In Last Call from Last Call Requested |
2020-05-13
|
07 | Magnus Westerlund | Last call was requested |
2020-05-13
|
07 | Magnus Westerlund | Ballot approval text was generated |
2020-05-13
|
07 | Magnus Westerlund | IESG state changed to Last Call Requested from AD Evaluation::AD Followup |
2020-05-13
|
07 | Magnus Westerlund | Last call announcement was changed |
2020-04-30
|
07 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2020-04-30
|
07 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-07.txt |
2020-04-30
|
07 | (System) | New version approved |
2020-04-30
|
07 | (System) | Request for posting confirmation emailed to previous authors: Chuck Lever , Trond Myklebust |
2020-04-30
|
07 | Chuck Lever | Uploaded new revision |
2020-04-30
|
07 | Chuck Lever | Uploaded new revision |
2020-04-14
|
06 | Magnus Westerlund | Ballot writeup was changed |
2020-04-01
|
06 | Magnus Westerlund | AD Review performed: https://mailarchive.ietf.org/arch/msg/nfsv4/28NPwUUx9_gFMBRZa8RN8dEEk9A/ Expect new version after WG have finished discussing comments. |
2020-04-01
|
06 | Magnus Westerlund | IESG state changed to AD Evaluation::Revised I-D Needed from AD Evaluation |
2020-02-25
|
06 | Magnus Westerlund | IESG state changed to AD Evaluation from Publication Requested |
2020-02-12
|
06 | David Noveck | 1. Summary This docuument provides for the encryption of RPC transactions using opportunistic TLS, extending RFC 5531, for which the nfsv4 working group is … 1. Summary This docuument provides for the encryption of RPC transactions using opportunistic TLS, extending RFC 5531, for which the nfsv4 working group is also responsible. The Shepherd is David Noveck and the Responsible Area Director is Magnus Westerlund. The working group anticipates that this document will be approved as a Proposed Standard, as is appropriate given that RFC5531 which it extends is currently a Proposed Standard. 2. Review and Consensus This document has the support of the working group and has had extensive discussion and review within the working group and considerable work in the form of prototype implementations. Although this document provides a necessary building-block there has already been discussion about developing policies for protocols at the level above RPC (e.g NFSv4) that might require use of the mechanisms defined in this document to mitigate security weaknesses in the handling of existing protocols for which the working group is responsible. These weaknesses include the very limited of support privacy exposing much traffic to monitering and the pervasive acceptance of requests using AUTH_SYS "authentication" from unauthenicated clients. While the working group agrees that the approach taken here to improve RPC security is an appropriate one, there have at times been worries about its acceptability to the larger IETF community. In particular, the fact that this document seeks to limit the harm caused by use of AUTH_SYS (by provinding encryption and client authentication), as opposed to outlawing or otherwise denigrating it, has led some to wonder whether the current approach, while technically sound, would encounter resistance from those who felt otherwise For this reason a number of reviews by the Security Directorate have been scheduled, which found important issues which have been addressed in the current draft. As to the continued use of AUTH_SYS within NFSv4, it is now generally accepted that that is a descision to be made in another document and that the building blocks provided in this document are a desirable precursor for the necessary later discussion. 3. Intellectual Property Each author has confirmed conformance with BCP 78/79. There are no IPR disclosures on the document. |
2020-02-12
|
06 | David Noveck | Responsible AD changed to Magnus Westerlund |
2020-02-12
|
06 | David Noveck | IETF WG state changed to Submitted to IESG for Publication from WG Consensus: Waiting for Write-Up |
2020-02-12
|
06 | David Noveck | IESG state changed to Publication Requested from I-D Exists |
2020-02-12
|
06 | David Noveck | IESG process started in state Publication Requested |
2020-02-12
|
06 | David Noveck | 1. Summary This docuument provides for the encryption of RPC transactions using opportunistic TLS, extending RFC 5531, for which the nfsv4 working group is … 1. Summary This docuument provides for the encryption of RPC transactions using opportunistic TLS, extending RFC 5531, for which the nfsv4 working group is also responsible. The Shepherd is David Noveck and the Responsible Area Director is Magnus Westerlund. The working group anticipates that this document will be approved as a Proposed Standard, as is appropriate given that RFC5531 which it extends is currently a Proposed Standard. 2. Review and Consensus This document has the support of the working group and has had extensive discussion and review within the working group and considerable work in the form of prototype implementations. Although this document provides a necessary building-block there has already been discussion about developing policies for protocols at the level above RPC (e.g NFSv4) that might require use of the mechanisms defined in this document to mitigate security weaknesses in the handling of existing protocols for which the working group is responsible. These weaknesses include the very limited of support privacy exposing much traffic to monitering and the pervasive acceptance of requests using AUTH_SYS "authentication" from unauthenicated clients. While the working group agrees that the approach taken here to improve RPC security is an appropriate one, there have at times been worries about its acceptability to the larger IETF community. In particular, the fact that this document seeks to limit the harm caused by use of AUTH_SYS (by provinding encryption and client authentication), as opposed to outlawing or otherwise denigrating it, has led some to wonder whether the current approach, while technically sound, would encounter resistance from those who felt otherwise For this reason a number of reviews by the Security Directorate have been scheduled, which found important issues which have been addressed in the current draft. As to the continued use of AUTH_SYS within NFSv4, it is now generally accepted that that is a descision to be made in another document and that the building blocks provided in this document are a desirable precursor for the necessary later discussion. 3. Intellectual Property Each author has confirmed conformance with BCP 78/79. There are no IPR disclosures on the document. |
2020-02-03
|
06 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-06.txt |
2020-02-03
|
06 | (System) | New version approved |
2020-02-03
|
06 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2020-02-03
|
06 | Chuck Lever | Uploaded new revision |
2020-02-03
|
06 | Chuck Lever | Uploaded new revision |
2020-01-11
|
05 | David Noveck | Changed consensus to Yes from Unknown |
2020-01-11
|
05 | David Noveck | Intended Status changed to Proposed Standard from None |
2020-01-11
|
05 | David Noveck | Notification list changed to David Noveck <davenoveck@gmail.com> |
2020-01-11
|
05 | David Noveck | Document shepherd changed to David Noveck |
2020-01-10
|
05 | David Noveck | IETF WG state changed to WG Consensus: Waiting for Write-Up from In WG Last Call |
2020-01-10
|
05 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-05.txt |
2020-01-10
|
05 | (System) | New version approved |
2020-01-10
|
05 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2020-01-10
|
05 | Chuck Lever | Uploaded new revision |
2020-01-10
|
05 | Chuck Lever | Uploaded new revision |
2019-11-24
|
04 | David Noveck | WGLC started earlier. Scheduled to end 12/13. |
2019-11-24
|
04 | David Noveck | IETF WG state changed to In WG Last Call from WG Document |
2019-11-17
|
04 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-04.txt |
2019-11-17
|
04 | (System) | New version approved |
2019-11-17
|
04 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2019-11-17
|
04 | Chuck Lever | Uploaded new revision |
2019-11-17
|
04 | Chuck Lever | Uploaded new revision |
2019-10-22
|
03 | Derrell Piper | Request for Early review by SECDIR Completed: Not Ready. Reviewer: Derrell Piper. Sent review to list. |
2019-09-26
|
03 | Tero Kivinen | Request for Early review by SECDIR is assigned to Derrell Piper |
2019-09-26
|
03 | Tero Kivinen | Request for Early review by SECDIR is assigned to Derrell Piper |
2019-09-23
|
03 | Magnus Westerlund | Requested Early review by SECDIR |
2019-09-22
|
03 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-03.txt |
2019-09-22
|
03 | (System) | New version approved |
2019-09-22
|
03 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2019-09-22
|
03 | Chuck Lever | Uploaded new revision |
2019-09-22
|
03 | Chuck Lever | Uploaded new revision |
2019-04-25
|
02 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-02.txt |
2019-04-25
|
02 | (System) | New version approved |
2019-04-25
|
02 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2019-04-25
|
02 | Chuck Lever | Uploaded new revision |
2019-04-25
|
02 | Chuck Lever | Uploaded new revision |
2019-04-15
|
01 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-01.txt |
2019-04-15
|
01 | (System) | New version approved |
2019-04-15
|
01 | (System) | Request for posting confirmation emailed to previous authors: Trond Myklebust , Chuck Lever |
2019-04-15
|
01 | Chuck Lever | Uploaded new revision |
2019-04-15
|
01 | Chuck Lever | Uploaded new revision |
2019-03-26
|
00 | Spencer Dawkins | This document now replaces draft-cel-nfsv4-rpc-tls instead of None |
2019-03-25
|
00 | Chuck Lever | New version available: draft-ietf-nfsv4-rpc-tls-00.txt |
2019-03-25
|
00 | (System) | WG -00 approved |
2019-03-25
|
00 | Chuck Lever | Set submitter to "Chuck Lever " and sent approval email to group chairs: nfsv4-chairs@ietf.org |
2019-03-25
|
00 | Chuck Lever | Uploaded new revision |