Subject: RE: [Ips] Initiator CHAP authentication of target?

From: "Krueger, Marjorie" <[email-masked]>
Date: Mon, 4 Oct 2004 11:57:38 -0700

While it may not be "detectable" by the target, it certainly seems like
"expected behavior" (ie, following the protocol) is that the initiator
MUST use the CHAP_N and CHAP_R supplied in the login response - would
you agree?  When testing an initiator implementation, if one can prove
that a certain initiator isn't using the values supplied, one can say
that the initiator is not correctly implemented?
 
-Marjorie

________________________________

	From: Julian Satran [mailto:[email-masked]] 
	Sent: Monday, October 04, 2004 4:40 AM
	To: Krueger, Marjorie
	Cc: [email-masked]; William Studenmund
	Subject: RE: [Ips] Initiator CHAP authentication of target?

	Marjorie, 
	
	Maybe I am not understanding clearly the "substance" of your
question but if you are questioning the validity of an initiator not
using the data supplied to authenticate the target - that is "legal" in
the sense that the protocol has no way of enforcing the check in CHAP
(i.e., there is no returned value that will irrefutably prove that the
initiator did check). 
	I would not use this protocol in a money exchange transaction!
The weaknesses of CHAP have been discussed at some length on the list. 
	
	Regards, 
	Julo 

"Krueger, Marjorie" <[email-masked]> 
Sent by: [email-masked] 

01/10/04 01:28 

To
"William Studenmund" <[email-masked]> 
cc
[email-masked] 
Subject
RE: [Ips] Initiator CHAP authentication of target?

	It appears a certain initiator is ignoring CHAP_N returned by
the target
	and just using the target node name for CHAP_N regardless of
what the
	target sent in the login sequence.  I think it seems like
invalid
	behavior but I just wanted to check with this audience.
	
	Thanks
	Marjorie
	
	> -----Original Message-----
	> From: William Studenmund [mailto:[email-masked]] 
	> Sent: Thursday, September 30, 2004 3:32 PM
	> To: Krueger, Marjorie
	> Cc: [email-masked]
	> Subject: Re: [Ips] Initiator CHAP authentication of target?
	> 
	> On Sep 30, 2004, at 3:22 PM, Krueger, Marjorie wrote:
	> 
	> > So if
	> >
	> >>     or, if it requires target authentication, with:
	> >>
	> >>        CHAP_N=<N> CHAP_R=<R> CHAP_I=<I> CHAP_C=<C>
	> >>
	> >>     If the initiator authentication fails, the target MUST
answer 
	> >> with a
	> >>     Login reject with "Authentication Failure" status.
	> >> Otherwise, if the
	> >>     initiator required target authentication, the target 
	> MUST either
	> >>     answer with a Login reject with "Authentication 
	> Failure" or reply
	> >>     with:
	> >>
	> >>        CHAP_N=<N> CHAP_R=<R>
	> >
	> > And the target replys with CHAP_N that is not defined and
the 
	> > initiator accepts that (accepts anything) is that valid 
	> behavior?  In 
	> > otherwords, if the initiator ignores CHAP_N and only uses 
	> the target 
	> > node name and CHAP_R to authenticate, is that valid
behavior?  
	> > Shouldn't the target be able to force the use of CHAP_N?
	> 
	> I'm confused. The initiator can't NOT use CHAP_N. Thus the 
	> target shouldn't be able to force something that's required.
:-)
	> 
	> To quote the paragraph after the one above:
	> 
	>     Where N, (A,A1,A2), I, C, and R are (correspondingly) the
Name,
	>     Algorithm, Identifier, Challenge, and Response as defined
in
	>     [RFC1994], N is a text string, A,A1,A2, and I are 
	> numbers, and C and
	>     R are large-binary-values and their binary length (not 
	> the length of
	>     the character string that represents them in encoded 
	> form) MUST not
	>     exceed 1024 bytes.
	> 
	> So an initiator that just uses the target's name for CHAP 
	> purposes seems broken.
	> 
	> Take care,
	> 
	> Bill
	> 
	
	_______________________________________________
	Ips mailing list
	[email-masked]
	https://www1.ietf.org/mailman/listinfo/ips

_______________________________________________
Ips mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ips

---

From: John Hufferd <[email-masked]>
Date: Mon, 4 Oct 2004 12:54:21 -0700

Marjorie,
As I read the CHAP Spec., the name is not used in the computation of the 
check/response.  It is used as an index to quickly locate the approprate 
Secret.  With that in mind, regardless of the Response to the Challenge, 
the name is not used in the computation (Hash); if the computation works 
out correctly, that is really all that is needed.  And I do not see any 
security exposure based on a different name, except if the same Secret is 
used by more than one storage controller which is forbidden by the iSCSI 
spec.  Therefore, it seems to me the only way one could tell if the other 
side is ignoring the Name that is sent, is to send an invalid name, and 
then complain that the link was not dropped, or given an invalid protocol 
message.  Which I think is a strange way to operate.  So technically, the 
name must be sent, but I do not see a requirement that it must be check in 
some special way that excludes ignoring it.  I would have like us to have 
a default of the iSCSI Node name, if the CHAP_N keyword is not sent, but 
since we did not do that, I think that in most cases to ease the 
Administrative burden of setting yet another name, most installations will 
use the iSCSI Node Name

.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/System Group, San Jose CA
Main Office: (408) 256-0403, Tie: 276-0403, eFax: (408) 904-4688
Alt Office: (408) 997-6136, Cell: (408) 499-9702
Internet Address: [email-masked]

10/04/2004 11:57 AM

To
"Julian Satran" <[email-masked]>
cc
[email-masked], William Studenmund <[email-masked]>
Subject
RE: [Ips] Initiator CHAP authentication of target?

While it may not be "detectable" by the target, it certainly seems like 
"expected behavior" (ie, following the protocol) is that the initiator 
MUST use the CHAP_N and CHAP_R supplied in the login response - would you 
agree?  When testing an initiator implementation, if one can prove that a 
certain initiator isn't using the values supplied, one can say that the 
initiator is not correctly implemented?
 
-Marjorie

Marjorie, 

Maybe I am not understanding clearly the "substance" of your question but 
if you are questioning the validity of an initiator not using the data 
supplied to authenticate the target - that is "legal" in the sense that 
the protocol has no way of enforcing the check in CHAP (i.e., there is no 
returned value that will irrefutably prove that the initiator did check). 
I would not use this protocol in a money exchange transaction! The 
weaknesses of CHAP have been discussed at some length on the list. 

Regards, 
Julo 

To

It appears a certain initiator is ignoring CHAP_N returned by the target
and just using the target node name for CHAP_N regardless of what the
target sent in the login sequence.  I think it seems like invalid
behavior but I just wanted to check with this audience.

Thanks
Marjorie

> >>     If the initiator authentication fails, the target MUST answer 
> >> with a
> > And the target replys with CHAP_N that is not defined and the 
> > node name and CHAP_R to authenticate, is that valid behavior? 
> target shouldn't be able to force something that's required. :-)
> 
>     Where N, (A,A1,A2), I, C, and R are (correspondingly) the Name,
>     Algorithm, Identifier, Challenge, and Response as defined in

---

From: Paul Koning <[email-masked]>
Date: Mon, 4 Oct 2004 15:54:27 -0400

>>>>> "Marjorie" == Marjorie Krueger <Krueger> writes:

 Marjorie> While it may not be "detectable" by the target, it
 Marjorie> certainly seems like "expected behavior" (ie, following the
 Marjorie> protocol) is that the initiator MUST use the CHAP_N and
 Marjorie> CHAP_R supplied in the login response - would you agree?
 Marjorie> When testing an initiator implementation, if one can prove
 Marjorie> that a certain initiator isn't using the values supplied,
 Marjorie> one can say that the initiator is not correctly
 Marjorie> implemented?
 
I certainly would say that.  If we hadn't wanted the initiator to look
at CHAP_N, we would have left it out of the protocol.

The CHAP exchange proves that you know the secret that goes with name
CHAP_N.

This is testable, too.  If an exchange succeeds, and a repeat of that
exchange with a different CHAP_N in the message also succeeds, then
the initiator was ignoring CHAP_N.

	paul

---

From: Julian Satran <[email-masked]>
Date: Tue, 5 Oct 2004 11:38:19 +0200

Paul,

Please read John's answer. CHAP does not require (AFAIK) the use of 
CHAP_N.

Julo

Paul Koning <[email-masked]> 
04/10/04 21:54

To
[email-masked]
cc
Julian Satran/Haifa/IBM@IBMIL, [email-masked], [email-masked]
Subject
RE: [Ips] Initiator CHAP authentication of target?

 

                 paul

---

From: William Studenmund <[email-masked]>
Date: Tue, 5 Oct 2004 09:48:27 -0400

On Oct 4, 2004, at 3:54 PM, John Hufferd wrote:

> Marjorie,
> As I read the CHAP Spec., the name is not used in the computation of 
> the check/response.  It is used as an index to quickly locate the 
> approprate Secret.  With that in mind, regardless of the Response to 
> the Challenge, the name is not used in the computation (Hash); if the 
> computation works out correctly, that is really all that is needed. 
>  And I do not see any security exposure based on a different name, 
> except if the same Secret is used by more than one storage controller 
> which is forbidden by the iSCSI spec.  Therefore, it seems to me the 
> only way one could tell if the other side is ignoring the Name that is 
> sent, is to send an invalid name, and then complain that the link was 
> not dropped, or given an invalid protocol message.  Which I think is a 
> strange way to operate.  So technically, the name must be sent, but I 
> do not see a requirement that it must be check in some special way 
> that excludes ignoring it.  I would have like us to have a default of 
> the iSCSI Node name, if the CHAP_N keyword is not sent, but since we 
> did not do that, I think that in most cases to ease the Administrative 
> burden of setting yet another name, most installations will use the 
> iSCSI Node Name

I think the issue that Marjorie is describing is a case where the 
target sends a CHAP_N which is not the iSCSI node name, yet the 
initiator uses the node name to look up the secret for calculating the 
CHAP hash. Thus it doesn't get the same secret and fails to 
authenticate the target.

I agree that this behavior does not open up a security vulnerability 
nor does it impact how the hash is calculated.

I also agree that it's fine for a target (or specifically its 
administrator) to choose to use the target name for the CHAP name, but 
I think that decision should be on the target side, not the initiator 
side.

Take care,

Bill