Re: [Syslog] Fingerprint/handshake

"Joseph Salowey (jsalowey)" <jsalowey@cisco.com> Thu, 29 May 2008 00:31 UTC

Return-Path: <syslog-bounces@ietf.org>
X-Original-To: syslog-archive@megatron.ietf.org
Delivered-To: ietfarch-syslog-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 383A43A6A50; Wed, 28 May 2008 17:31:50 -0700 (PDT)
X-Original-To: syslog@core3.amsl.com
Delivered-To: syslog@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EDEA73A6A8C for <syslog@core3.amsl.com>; Wed, 28 May 2008 17:31:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BUBS3Y2FUq0R for <syslog@core3.amsl.com>; Wed, 28 May 2008 17:31:46 -0700 (PDT)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by core3.amsl.com (Postfix) with ESMTP id A83AF28C149 for <syslog@ietf.org>; Wed, 28 May 2008 17:30:45 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.27,558,1204531200"; d="scan'208";a="105275231"
Received: from sj-dkim-3.cisco.com ([171.71.179.195]) by sj-iport-6.cisco.com with ESMTP; 28 May 2008 17:30:55 -0700
Received: from sj-core-1.cisco.com (sj-core-1.cisco.com [171.71.177.237]) by sj-dkim-3.cisco.com (8.12.11/8.12.11) with ESMTP id m4T0UtHT030993; Wed, 28 May 2008 17:30:55 -0700
Received: from xbh-sjc-211.amer.cisco.com (xbh-sjc-211.cisco.com [171.70.151.144]) by sj-core-1.cisco.com (8.13.8/8.13.8) with ESMTP id m4T0UtdC022486; Thu, 29 May 2008 00:30:55 GMT
Received: from xmb-sjc-225.amer.cisco.com ([128.107.191.38]) by xbh-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 28 May 2008 17:30:55 -0700
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Wed, 28 May 2008 17:31:41 -0700
Message-ID: <AC1CFD94F59A264488DC2BEC3E890DE505E7E825@xmb-sjc-225.amer.cisco.com>
In-Reply-To: <577465F99B41C842AAFBE9ED71E70ABA309090@grfint2.intern.adiscon.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [Syslog] Fingerprint/handshake
Thread-Index: Aci597ZxZLhWgaMcSke8NLzWgHaUOAABInCQAT9t6xAAii+fYA==
References: <003901c8b9f7$b671959d$060013ac@intern.adiscon.com> <AC1CFD94F59A264488DC2BEC3E890DE505DFD8E5@xmb-sjc-225.amer.cisco.com> <577465F99B41C842AAFBE9ED71E70ABA309090@grfint2.intern.adiscon.com>
From: "Joseph Salowey (jsalowey)" <jsalowey@cisco.com>
To: Rainer Gerhards <rgerhards@hq.adiscon.com>, syslog@ietf.org
X-OriginalArrivalTime: 29 May 2008 00:30:55.0113 (UTC) FILETIME=[41BF4790:01C8C123]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=4090; t=1212021055; x=1212885055; c=relaxed/simple; s=sjdkim3002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=jsalowey@cisco.com; z=From:=20=22Joseph=20Salowey=20(jsalowey)=22=20<jsalowey@ci sco.com> |Subject:=20RE=3A=20[Syslog]=20Fingerprint/handshake |Sender:=20; bh=TK+uPQFiOBlzyT5hvr4T+VoTYwmU17vOA5DIDDr2ZOo=; b=AJSG8D2jrXxBxLzIggNLI68CFEWJdeOk9Bp0XKJyV4iHL9CN1DfrghSefP DziwJvU8A+BgoLx6zry8XT9n5YVIrcKpvvhGn2aeGy8TfkDKUey7C3JZEiUR 7DJQribA5B;
Authentication-Results: sj-dkim-3; header.From=jsalowey@cisco.com; dkim=pass ( sig from cisco.com/sjdkim3002 verified; );
Subject: Re: [Syslog] Fingerprint/handshake
X-BeenThere: syslog@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Security Issues in Network Event Logging <syslog.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/syslog>, <mailto:syslog-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/syslog>
List-Post: <mailto:syslog@ietf.org>
List-Help: <mailto:syslog-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/syslog>, <mailto:syslog-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: syslog-bounces@ietf.org
Errors-To: syslog-bounces@ietf.org

Hi Rainer,

A TLS alert could be sent by the server indicating the error condition.
Would this help? 

Joe

> -----Original Message-----
> From: Rainer Gerhards [mailto:rgerhards@hq.adiscon.com] 
> Sent: Sunday, May 25, 2008 11:46 PM
> To: Joseph Salowey (jsalowey); syslog@ietf.org
> Subject: RE: [Syslog] Fingerprint/handshake
> 
> Hi Joe,
> 
> inline
> 
> > -----Original Message-----
> > From: Joseph Salowey (jsalowey) [mailto:jsalowey@cisco.com]
> > Sent: Friday, May 23, 2008 8:21 PM
> > To: Rainer Gerhards; syslog@ietf.org
> > Subject: RE: [Syslog] Fingerprint/handshake
> > 
> > The fingerprint check should be done where certificate validation
> would
> > be done.  This is typically done within the handshake itself,
> 
> I agree to this, but have found this to be problematic with 
> some TLS libraries. Of course, that doesn't mean the standard 
> needs to change, but I would still like to provide some 
> implementation feedback.
> 
> With GnuTLS, for example, you can do the final authentication 
> only after the handshake [1]. With NSS, it can be done during 
> the handshake. As of my understanding, OpenSSL does support 
> it after the handshake only (but I have not actually used 
> OpenSSL, this is based on my understanding after reading 
> doc). This brings me to the conclusion that, at least in some 
> environments I may be forced to delay the authentication 
> check to after the handshake.
> 
[Joe] Its been a while since I used OpenSSL, but if I remember correctly
they do have hooks in the certificate validation code. 

> > because if
> > the validation fails you do not want to send or receive data on the 
> > connection.  I suppose you could implement the check after the 
> > handshake, but you need to make sure you do not send or receive 
> > application before successful validation has occurred.
> 
> This is where it gets really problematic. We get into a race 
> condition here. Remember that syslog is simplex and works 
> without any app-level acks (in -transport-tls).
> 
> If the client authenticates the server, everything is fine.
> Authentication fails, client never sends data and the session 
> is terminated. Everything is fine.
> 
> But if the server authenticates the client (and 
> authentication fails), the client will still receive the 
> server's TLS Finished message. After that, the server drop 
> connection. HOWEVER, the client blindly sending data doesn't 
> know this until at least the second message sent (due to 
> local buffering at the client). *After* some messages, the 
> client gets a connection broken indication, but at this point 
> it is too late to react intelligently. In essence, those 
> messages sent after the initial handshake are lost. Even 
> worse, the client "gets the impression" that the remote 
> server is accepting its connection requests. This is because 
> there is no failure indication after the handshake. This can 
> lead to more frequent retries.
> 
> This problem is rooted in the underlying plain tcp transport. 
> I have described it in [2]. It's inherent to all plain tcp 
> syslog implementations. RFC3195 is a cure for it. With TLS 
> auth, it just gets to a new magnitude as it will now happen 
> every time during a failed authentication.
> 
> This is not a theoretic issue but one I can reliable 
> reproduce in my lab with actual software. Actually, I am 
> unable to NOT reproduce it - there is no work-around for this 
> problem (at least I have found none).
> 
> Again, I am not trying to say we need to change anything. I 
> am providing real world feedback. It may be worth, however, 
> adding a note or two to the I-D describing these issues.
> 
> Rainer
> 
> [1] 
> http://lists.gnu.org/archive/html/help-gnutls/2008-05/msg00017.html
> (full conversation, long)
> [2]
> http://blog.gerhards.net/2008/04/on-unreliability-of-plain-tcp
> -syslog.ht
> ml
> 
> 
_______________________________________________
Syslog mailing list
Syslog@ietf.org
https://www.ietf.org/mailman/listinfo/syslog