Yoshi,
Thank you very much for addressing the comments.
My answers inline.
regards,
-Subir
Yoshihiro Ohba wrote:
> Hi Subir and all,
>
> Thank you very much for your review comments. The comments are
> definitely useful to improve the quality of the draft.
>
> Please see my response below.
>
> -------------------------------------
> Session Lifetime:
>
> A duration that is associated with a PANA session. For an
> established PANA session, the session lifetime is bound to the
> lifetime of the current authorization given to the PaC. The
> session lifetime can be updated[a1] by a new round of EAP
> authentication before it expires.
>
> [a1]Extended may be a better term here.
>
> [YO] OK, s/updated/extended/.
>
> Session Identifier:
>
> This identifier is used to uniquely identify a PANA session on the
> PaC and the PAA. It is included in PANA messages to bind the
> message to a specific PANA session. This bidirectional identifier
> is allocated by the PAA in the initial request message and freed
> when the session terminates. The session identifier is assigned
> by the PAA and is unique within the PAA [a2]during the lifetime of the
> session.
>
> [a2]May like to delete this part
>
> [YO] We can delete "during the lifetime of the session"
>
Subir> fine.
> Enforcement Point (EP):
>
> A node on the access network where per-packet enforcement policies
> (i.e., filters) are applied on the inbound and outbound traffic of
> access devices. The EP and the PAA may be co-located. EPs should
> prevent data traffic from and to any unauthorized client unless
> it's either PANA or one of the other allowed traffic types (e.g.,
> ARP, IPv6 neighbor discovery, DHCP, etc.). Detailed enforcement
> policies may be specified in deployment-specific PANA
> applicability documents.[a3]
>
> [a3]Is it specified in a separate document. If so, pl. provide the
> reference, otherwise delete this sentence.
>
> [YO] There is an expired draft: draft-morand-pana-panaoverdsl-00.txt,
> but we can simply remove the sentence to move forward.
>
Subir> That would be better.
>
> o Access phase: After a successful authentication and authorization
> the host[a4] gains access to the network and can send and receive IP[a5]
> data traffic through the EP(s). At any time during this phase,
> the PaC and PAA may optionally send PANA notification messages to
> test liveness of the PANA session on the peer.
>
> [a4]Other places ?access device? is used. A consistent terminology would be
> better.
>
> [YO] I agree, s/host/access node/.
>
> [a5]Is this correct? Are DHCP, ND, ARP not IP data traffic?
>
> [YO] ARP is definitely not IP. I am not sure if we can categorize
> DHCP and ND as IP control or data traffic. I think we can remove
> "data" here.
>
Subir> Agreed.
> o Re-authentication phase: During the access phase, the PAA must
> initiate re-authentication before the PANA session lifetime
> expires. EAP is carried by PANA to perform authentication.[a6] This
> phase may be optionally triggered by both the PaC and the PAA
> without any respect to the session lifetime. [a7] The session moves to
> this phase from the access phase, and returns back there upon
> successful re-authentication.
>
> [a6]Is it authentication or re-authentication?
>
> [YO] It should be s/authentication/re-authentication, because this
> paragraph is talking about re-authentication phase.
>
Subir> Ok.
> [a7]May consider revising this part.
>
> [YO] I agree. Since authorization state remains during
> re-authentication, re-authentication phase should be described as a
> sub-phase of access phase. How about this?
>
> "Re-authentication phase is a sub-phase of access phase. The
> session moves to this sub-phase from the access phase when
> re-authentication starts, and returns back there upon successful
> re-authentication."
>
Subir> Fine with me.
>
> Cryptographic protection of messages between the PaC and PAA is
> possible as soon as EAP in conjunction with the EAP method exports a
> shared key. That shared key is used to create a PANA SA. The PANA
> SA helps generate per-message authentication codes that provide
> integrity protection and authentication.
>
> Throughout the lifetime of a session, various problems found with the
> incoming messages can generate an error request message (see
> Section 5.8) sent in response.[a8]
>
> [a8]other places ?answer? is used .. terminology problem..
>
> [YO] I think we can simply remove the paragraph. I don't think we
> need error handling overview in protocol overview section.
>
Subir> Even better.
>
> The PAA SHOULD limit the rate it processes incoming[a9]
> PANA-Client-Initiation messages in order not to subject itself to
> denial-of service (DoS) attacks. Details of rate limiting are
> outside the scope of this specification.
>
> [a9]May consider revising the sentence.
>
> [YO] How about this?
>
> "
> The PAA SHOULD limit the rate it processes incoming
> PANA-Client-Initiation messages to provide robustness against
> denial-of service (DoS) attacks.
>
Subir> Ok.
> "
>
> If the PAA wants to stay stateless in response to a
> PANA-Client-Initiation message, it SHOULD NOT include an EAP-Payload
> AVP in the initial PANA-Auth-Request message, and it SHOULD NOT re-
> transmit the message on a timer. For this reason, the PaC MUST
> retransmit the PANA-Client-Initiation message until it enters the
> authentication and authorization phase by receiving the second
> PANA-Auth-Request message (not a retransmission of the initial one)
> from the PAA.[a10]
>
> [a10]Not clear in particular, the last part of the sentence.
>
> [YO] There is some leftover from previous revison that had handshake
> phase which we don't have now. We can revise the sentence to:
>
> "
> For this reason, the PaC MUST retransmit the PANA-Client-Initiation
> message until it receives the second PANA-Auth-Request message (not
> a retransmission of the initial one) from the PAA.
>
Subir> Much better.
> "
>
> PaC PAA Message(sequence number)[AVPs]
> --------------------------------------------------------------------
> -----> PANA-Client-Initiation(0)
> <----- PANA-Auth-Request(x) // 'S' bit set
> -----> PANA-Auth-Answer(x) // 'S' bit set
> <----- PANA-Auth-Request(x+1)[Nonce, EAP]
> -----> PANA-Auth-Answer(x+1)[Nonce] // No piggybacking EAP
> -----> PANA-Auth-Request(y)[EAP]
> <----- PANA-Auth-Answer(y)
> <----- PANA-Auth-Request(x+2)[EAP]
> -----> PANA-Auth-Answer(x+2)[EAP][a11]
> <----- PANA-Auth-Request(x+3)[Result-Code, EAP, Key-Id,
> Algorithm, Lifetime, AUTH]
> // 'C' bit set
> -----> PANA-Auth-Answer(x+3)[Key-Id, AUTH]
> // 'C' bit set
>
> Figure 1: Example sequence for the authentication and authorization
> phase for a PaC-initiated session
>
> [a11]Is this piggybacked EAP? It is not clear why EAP is not inlcuded
> in PANA-Auth_Answer (y). Some texts explaning the piggybaked EAP will
> be helpful
>
> [YO] We can add "// Piggybacking EAP" here. To explain piggybacked EAP,
> we can revise the Figure 1 caption as follows:
>
> "
> Figure 1: Example sequence for the authentication and
> authorization phase for a PaC-initiated session ("Piggybacking
> EAP" is the case in which an EAP AVP is carried in PAN.
>
> "
>
Subir> Good.
>
> The last PANA-Auth-Request message MUST also carry an Algorithm AVP
> if it is for the first derivation of keys in the session. The PANA
> session MUST be deleted immediately after the last PANA-Auth message
> exchange.[a12]
>
> [a12]Is it really a PANA Session? This is happening during
> authentication and authorization phase which is a part of a PANA
> session. Also the definition of PANA should include authorization as a
> cause to session termination.
>
> [YO] Yes, it's a PANA session that is terminated
> (s/deleted/terminated/ per your other comment.). With regard to
> authorization as a cause to session termination, we can revise the
> PANA Session definition in Section 2 to:
>
> PANA Session:
>
> A PANA session is established between the PANA Client (PaC) and
> the PANA Authentication Agent (PAA), and terminates as a result
> of an authentication or liveness test failure, a message
> delivery failure after retransmissions reach maximum values or
> session lifetime expiration, an explicit termination message or
> any event that causes discontinuation of the access service. A
> fixed session identifier is maintained throughout a session. A
> session cannot be shared across multiple network interfaces.
>
> ("any event that causes discontinuation of the access service" was added.)
>
Subir> Fine with me. You may like to add "Authorization" after
authentication
since PANA session can be terminated if authorization fails but
authentication
succeeds.
> 4.2. Access Phase
>
> Once the authentication and authorization phase or the
> re-authentication phase successfully completes,[a13] the PaC gains access
>
> [a13]Is this true? Accordig to eralier definition or re-authenticatrion, it
> happens during access phase.
>
> [YO] You are right. We should remove "or the re-authentication phase".
>
Subir> good.
> to the network and can send and receive IP data traffic through the
> EP(s) and the PANA session enters the access phase. In this phase,
> PANA-Notification-Request and PANA-Notification-Answer messages with
> 'P' (Ping) bit set (ping request and ping answer messages,
> respectively) can be used for testing the liveness of the PANA
> session on the PANA peer. Both the PaC and the PAA are allowed to
> send a ping request to the communicating peer whenever they need to
> make sure the availability of the session on the peer and expect the
> peer to return a ping answer message. The ping request and answer
> messages MUST be protected with an AUTH AVP when a PANA SA is
> available.
>
> Implementations MUST limit the rate of performing this test. The PaC
> and the PAA can handle rate limitation on their own, they do not have
> to perform any coordination with each other. There is no negotiation
> of timers for this purpose. Additionally, an implementation MAY
> rate-limit processing of the incoming ping requests. It should be noted
> that if a PAA or PaC which considers its connectivity lost after a
> relatively small number of unresponsive pings coupled with a peer
> that is aggressively rate-limiting the ping request and answer
> messages, false-positives could result. [a14] Care should be taken when
> rate-limiting ping request and answer messages to periodically
> respond, and a PAA or PaC should not rely on ping request and answer
> messages to quickly determine loss of connectivity.
>
> [a14]Not clear. May consider revising the senetence.
>
> [YO] How about this?
>
> "
> Therefore, a PAA or PaC should not rely on highly frequent ping
> request and answer message exchanges to quickly determine loss of
> connectivity.
>
> "
>
Subir> The problem here is it is either request or answer. It can not be
both.
If answers arrive with frequent requests, then there is no loss of
connectivity.
Am I correct? Also you may delete "highly" here.
4.3. Re-authentication Phase
> The PANA session in the access phase can enter the re-authentication
> phase to extend the current session lifetime by re-executing EAP.
> Once the re-authentication phase successfully completes, the session
> re-enters the access phase. Otherwise, the session is deleted.[a15]
>
> [a15]Is it deleted or "terminated"?
>
> [YO] It should be "terminated".
>
Subir> Ok.
> When the PaC wants to initiate re-authentication, it sends a
> PANA-Notification-Request message with 'A' bit set (a re-
> authentication request message) to the PAA. This message MUST
> contain the session identifier assigned to the session being
> re-authenticated. If the PAA already has an established PANA session
> for the PaC with the matching session identifier, it MUST first
> respond with a PANA-Notification-Answer message with 'A' bit set (a
> re-authentication answer message), followed by a PANA-Auth-Request
> message that starts a new EAP authentication. If the PAA cannot
> identify the session, it MUST silently discard the message. The
> first PANA-Auth-Request and PANA-Auth-Answer messages in the
> re-authentication phase MUST have 'S' bit cleared [a16]and carry a Nonce
> AVP.
>
> [a16]Some places it says bit is not set and other places it is
> cleared. Consistency would be good.
>
> [YO] We shall use "cleared" throughout the document.
>
Subir> fine.
> The PaC may receive a PANA-Auth-Request before receiving the answer
> to its outstanding re-authentication request message. This condition
> can arise due to packet re-ordering or a race condition between the
> PaC and PAA when they both attempt to engage in re-authentication.
> The PaC MUST keep discarding the received PANA-Auth-Requests until it
> receives the answer to its request.[a17]
>
> [a17]How will PAA know that PaC has not received it? Will PaC
> retransmit PANA-Notification-Request?
>
> [YO] Yes. The PAA will answer to the PNR.
>
Subir> The question is when PaC will retransmit instead of discarding? This
race condition may continue for a while.
> 5.2. Sequence Number and Retransmission
>
> PANA uses sequence numbers to provide ordered and reliable delivery
> of messages.
>
> The PaC and PAA maintain two sequence numbers: the next one to be
> used for a request it initiates and the next one it expects to see in
> a request from the other end. [a18] These sequence numbers are 32-bit
>
> [a18]Not clear. May cosnider revising it.
>
> [YO] How about this?
>
> "
> The PaC and PAA maintain two sequence numbers: the one to be used
> for the next outgoing request and the one it expects to see in the
> next incoming request.
>
> "
>
Subir> How about this:
"The PaC and PAA maintain two sequence numbers: one is for outgoing
request and the other one is for incoming request."
> unsigned numbers. They are monotonically incremented by 1 as new
> requests are generated and received, and wrapped to zero on the next
> message after 2^32-1. Answers always contain the same sequence
> number as the corresponding request. Retransmissions reuse the
> sequence number contained in the original packet.
>
> The initial sequence numbers (ISN) are randomly picked by the PaC and
> PAA as they send their very first request messages except
> PANA-Client-Initiation message that MUST be always 0.
> When a request message is received, it is considered valid in terms
> of sequence numbers if and only if its sequence number matches the
> expected value. This check does not apply to the
> PANA-Client-Initiation message and the initial PANA-Auth-Request
> message.
>
> When an answer message is received, it is considered valid in terms
> of sequence numbers if and only if its sequence number matches that
> of the currently outstanding request. A peer can only have one
> outstanding request at a time.
>
> PANA request messages are retransmitted based on a timer until a
> response[a19] is received (in which case the retransmission timer is
>
> [a19]Should be 'answer'
>
> [YO] Yes, s/response/answer/.
>
Subir> ok.
>
> stopped) or the number of retransmission reaches the maximum value
> (in which case the PANA session MUST be deleted[a20] immediately).
>
> [a20]Is it deleted or terminated ?
>
> [YO] s/deleted/terminated/.
>
Subir> ok.
>
> 5.5. Message Validity Check
>
> When a PANA message is received, the message is considered to be
> invalid at least when one of the following conditions are not met:
>
> o Each field in the message header contains a valid value including
> sequence number, message length, message type, version number,
> flags, session identifier, etc.
>
> o The message type is one of the expected types in the current
> state. Specifically the following messages are unexpected and
> invalid:
>
> * In the authentication and authorization phase and the
> re-authentication phase:
>
> + PANA-Client-Initiation after completion of the initial
> PANA-Auth-Request and PANA-Auth-Answer exchange.
>
> + Re-authentication request.[a21]
>
> [a21]This seems incorrect since it is expected that re-authentication
> request will apprear during re-authntication phase.
>
> [YO] You are right. Re-auth request should be accepted at least in
> re-authentication phase to deal with re-auth race condition (i.e.,
> re-auth request and PAR cross each other).
>
Subir> ok.
> + The last PANA-Auth-Request as well as ping request before
> completion of the initial PANA-Auth-Request and
> PANA-Auth-Answer exchange.
>
> + The initial PANA-Auth-Request after a PaC receives a valid
> non-initial PANA-Auth-Request.
>
> + PANA-Termination-Request.[a22]
>
> [a22]Same as before.
>
> [YO] You are right. Re-auth request should be accepted at least in
> re-authentication phase to deal with another race condition (i.e., PTR
> and re-auth request or PAR cross each other). Now I think it is
> better to separate items for authentication and authorization phase
> and re-authentication phase.
>
> * In the access phase:
>
> + PANA-Auth-Request.[a23]
>
> [a23]Same as before since PANA-Auth-Request may appear during
> re-authentication phase.
>
> [YO] Yes, PAR should be allowed for PAA-initiated re-auth. We should remove
> this.
>
> + PANA-Client-Initiation.
>
> * In the termination phase:
>
> + PANA-Client-Initiation.
>
> + All requests but PANA-Termination-Request.
>
>
> [YO] So here is the new deny rule-set (including the resolution of
> recent ping issue):
>
> "
> * In the authentication and authorization phase:
>
> + PANA-Client-Initiation after completion of the initial
> PANA-Auth-Request and PANA-Auth-Answer exchange.
>
> + Re-authentication request.
>
> + The last PANA-Auth-Request as well as ping request before
> completion of the initial PANA-Auth-Request and
> PANA-Auth-Answer exchange.
>
> + The initial PANA-Auth-Request after a PaC receives a valid
> non-initial PANA-Auth-Request.
>
> + PANA-Termination-Request.
>
> * In the re-authentication phase:
>
> + PANA-Client-Initiation.
>
> + The initial PANA-Auth-Request.
>
> * In the access phase:
>
> + PANA-Client-Initiation.
>
> * In the termination phase:
>
> + PANA-Client-Initiation.
>
> + All requests but PANA-Termination-Request and ping request.
> "
>
Subir> good.
>
> 6.1. IP and UDP Headers
>
> Any PANA message is unicast between the PaC and the PAA.
>
> For any PANA message sent from the peer that has initiated the PANA
> session, the UDP source port is set to any number and the destination
> port is set to the assigned PANA port number (to be assigned by
> IANA). For any PANA message sent from the other peer, the source
> port is set to the assigned PANA port number (to be assigned by IANA)
> and the destination port is copied from the source port of the last
> received message. [a24]In case both the PaC and PAA initiates the session
> (i.e., PANA-Client-Initiation and unsolicited PANA-Auth-Request
> messages cross each other), then the PaC is identified as the
> initiator.
>
> [a24]What happens if PaC chooses a source port number that is used by PAA?
>
> [YO] According to the rule, the PAA will change its source port number
> to PANA port number once the initiator is determined to be the PaC.
>
Subir> ok.
> [a25]8.4. Failed-AVP AVP
>
> [a25]This AVP describes the vaule format while few others do not.
>
> [YO] Because it is of type Grouped.
>
Subir> ok.
> The Failed-AVP AVP (AVP Code 4) provides debugging information in
> cases where a message is rejected or not fully processed due to
> erroneous information in a specific AVP. The AVP data is of type
> Grouped. The format of the Failed-AVP AVP using the ABNF grammar
> defined in [RFC3588] for Grouped AVP is as follows.
>
> <Failed-AVP> ::= < AVP Header: 4 >
> 1* {AVP}
>
> In case of a failed grouped AVP, the Failed-AVP contains the whole
> grouped AVP. In case of a failed AVP inside a grouped AVP, the
> Failed-AVP contains the single offending AVP.
>
> 8.7. Nonce AVP
>
> The Nonce AVP (AVP Code 7) carries a randomly chosen value that is
> used in cryptographic key computations. The recommendations in
> [RFC4086] apply with regard to generation of random values. The AVP
> data is of type OctetString and it contains a randomly generated
> value in opaque format. The data length MUST be between 8 and 256
> octets inclusive.
>
> The length of the nonces are determined based on the available
> pseudo-random functions (PRFs) and the degree of trust placed into
> the two PaC and the PAA to compute random values. The length of the
> random value for the nonce is determined whether
>
> 1. The PaC and the PAA each are likely to be able to compute a
> random nonce (according to [RFC4086]). The length of the nonce
> has to be 1/2 the length of the PRF key [a26](e.g., 10 octets in the
> case of HMAC-SHA1).
>
> 2. The PaC and the PAA each are not trusted with regard to the
> computation of a random nonce (according to [RFC4086]). The
> length of the nonce has to have the full length [a27]of the PRF key
> (e.g., 20 octets in the case of HMAC-SHA1).
>
> Furthermore, the strongest available PRF available for PANA has to be
> considered in this computation. Currently, only a single PRF (namely
> HMAC-SHA1) is available and therefore the maximum output length is 20
> octets). The recommended maximum length of the nonce value is
> therefore currently 20 octets.
>
> [a26]Is it a MUST or SHOULD?
> [a27]Same a s before.
>
> [YO] The enumerated paragraphs are investigation. So we should not
> use RFC2119 requirements language there. On the other hand, the next
> paragraph should contain requirements language. How about this?
>
> "
> The maximum length of the nonce value in PANA Version 1 SHOULD be
> therefore 20 octets.
> "
>
Subir> fine.
> 8.8. Result-Code AVP
>
> The Result-Code AVP (AVP Code 8) is of type Unsigned32 and indicates
> whether an EAP authentication was completed successfully or whether
> an error occurred. Result-Code AVP values are described in the
> subsequent sections.
>
> 8.8.1. Authentication Results Codes
>
> These result code values inform the PaC about the authentication and
> authorization result. The authentication result and authorization
> result can be different as described below, but only one result is
> returned to the PaC. These codes are used with PANA-Auth-Request
> message with 'C' bit set.
>
> PANA_SUCCESS 0
>
> Both authentication and authorization processes are successful.
>
> PANA_AUTHENTICATION_REJECTED 1
>
> Authentication has failed. When this error is returned, it is
> assumed that authorization is automatically failed.
>
> PANA_AUTHORIZATION_REJECTED [a28]2
>
> The authorization process has failed. This error could occur when
> authorization is rejected by a AAA server or rejected locally by a
> PAA, even if the authentication procedure has succeeded.
>
> [a28]How about Authentication-Success but Authorization_Failed? Is it
> useful?
>
> [YO] I think PANA_AUTHORIZATION_REJECTED meant it.
>
Subir> Ok.
> ------
>
> Best Regards,
> Yoshihiro Ohba
>
> _______________________________________________
> Pana mailing list
> [email protected]
> https://www1.ietf.org/mailman/listinfo/pana
>
_______________________________________________
Pana mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/pana