Re: CHAP Authentication transition Error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Nicholas,
I may have sent the mail too soon .The patch is showing regression in other areas.
Covering section (RFC 3720 5.3.3) which says,
-------------<snip>--------------------
If the target responds to a Login Request that has the T bit set to 1
with a Login Response that has the T bit set to 0, the initiator
should keep sending the Login Request (even empty) with the T bit set
to 1, while it still wants to switch stage, until it receives the
Login Response that has the T bit set to 1 or it receives a key that
requires it to set the T bit to 0.
-------------<snip>--------------------

On 5/28/2014 2:12 PM, Tejas Vaykole wrote:
Hi Nicholas,

On 5/28/2014 2:35 AM, Nicholas A. Bellinger wrote:
On Mon, 2014-05-26 at 11:47 +0530, Tejas Vaykole wrote:
Hi ,
I'm looking for help in understanding the CHAP authentication (Non
Mutual) behavior of LIO Target.
I am sending a the login request in following order-

I-> T : Login request with TargetName,InitiatorName,AuthMethod=CHAP.
T-> I : AuthMethod=CHAP. TargetAlias=LIO Target,TargetProtalGroup=1
I ->T : Login request with  CHAP_A=5
T ->I : CHAP_A=5,CHAP_I=X ,CHAP_C="<some challenge>"
I ->T : Login request with No parameters, Tbit=1,CSG bit =0, NSG bit =3
T ->I : Success.

According to the RFC3270 clause section 8.2. I am expecting a login
reject for a last Login request (forced transit to Full Feature Phase )
but the Target sends a success.

RFC 3720: Section 8.2
----------------------<snip>-----------------------
"Whenever an iSCSI target gets a response whose keys, or their values,
are not according to the step definition, it MUST answer
     with a Login reject with the "Initiator Error" or "Missing
Parameter" status."
---------------------<snip>------------------------

If I check the dmesg, it  shows Login Failed. I have also attached the
pcap for the same.

Am I looking at an error in LIO CHAP implementation?  I am expecting a
initiator Error at this point However still maintains its state at
Security negotiation.
Your comment Please.

So it's the zero-length payload that is causing the target to send a
response with CSG=0,T=0, requesting that the initiator complete the
security negotiation phase.

However, I do agree that the login should be failed at this point..

Here's a quick patch to return INITIATOR_ERR for the zero-length
security payload case, otherwise for the non zero length payload case
the existing logic should hit a failure while processing parameter keys.

Please test.
I have tested the patch you have given.
i have attached the pcap for this test.The patch is working fine.

dmesg output -
[root@root test_suite_iscsi]# dmesg -c
[ 1903.548513] Initiator sent zero length security payload
[ 1903.548525] iSCSI Login negotiation failed.

--nab

diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_neg
index 75b6859..49f77c9 100644
--- a/drivers/target/iscsi/iscsi_target_nego.c
+++ b/drivers/target/iscsi/iscsi_target_nego.c
@@ -773,6 +773,11 @@ static int iscsi_target_handle_csg_zero(
                 }
                   goto do_auth;
+       } else if (!payload_length) {
+               pr_err("Initiator sent zero length security payload\n");
+ iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
+ ISCSI_LOGIN_STATUS_AUTH_FAILED);
+               return -1;
         }
           if (login->first_request)






--
Thanks and regards.
Tejas Vaykole
Development Engineer.
Calsoft Inc.|Ext- 3169

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux