Subject: RE: [Syslog] Summary of the syslog/tls issues resolving

From: "Anton Okmianski \(aokmians\)" <[email-masked]>
Date: Wed, 19 Apr 2006 18:01:57 -0400

Balazs:

I don't think DNS lookup for validating clients will work in all cases.  If syslog clients are NAT'ed (and many CPEs are), it does not make sense for them to have a hostname.  You will not see the real source IP on syslog server. So, if we recommend it as basic standard binding its use will be limited.  

I agree that server validation is different. In this case you have the ultimate source IP and hostname lookup helps. You are validating that the certificate the server presented is not just signed by right CA, but also authenticates the server you intended to connect to.  

In case of authenticating clients, I see two uses for it:

 (a) restricting access to server to a subset of clients;  this can be accomplished by CPE presenting a generic certificate signed by a given CA (say my organization CA);  if further granularity of access control is needed, some data from certificate needs to be compared against a list or a database - this is where "binding check" comes in, if you want to call it that; this should be allowed;

 (b) establishing the real identity of the sender, so you can trust its messages; here you don't necessarily care to limit access to the server, but rather care to have an indication about client identity that generated a given message; this is where insertion of CN data into message helps - it helps you understand who really sent the message; in case of generic certificate you may decide to trust what the client says in syslog message as long as it presented a valid generic certificate.

I can't think of a good standard binding check for clients (I don't mind us recommending it if we can come up with one), but I can see the value of standard way to identify the authenticated source in the message by inserting CN/CA field.  

Thanks,
Anton. 

> -----Original Message-----
> From: Balazs Scheidler [mailto:[email-masked]] 
> Sent: Wednesday, April 19, 2006 2:26 PM
> To: Anton Okmianski (aokmians)
> Subject: RE: [Syslog] Summary of the syslog/tls issues resolving
> 
> On Fri, 2006-04-14 at 10:56 -0400, Anton Okmianski (aokmians) wrote:
> > Miao:
> > 
> > >    [Issue 1]: Is it possible to use "generic certificate 
> for different
> > >    host?  The generic certificate is for specific 
> application type.
> > > AND
> > >    [Issue 2]: What to bind to a certificate?  Hostname, 
> Syslog APP-
> > >    NAME(generic certificate)?  APP-NAME binding makes 
> authentication/
> > >    access control happens both in TLS handshake and Syslog message
> > >    processing, is efficiency a problem?
> > > 
> > > Tentative resolution: 1, Generic certificate may not be 
> > > possible (refer to
> > > http://www1.ietf.org/mail-archive/web/syslog/current/msg00918.
> > > html). 
> > 
> > I can't support this conclusion. Of course, it is possible 
> - used all the time. 
> 
> Although the email above was written by me, there must have been some
> kind of misunderstanding, probably on my side.
> 
> My understanding is:
> 1) we should define some kind of certificate binding scheme (like
> subjectAltName is for HTTP)
> 2) we probably should allow the operator to override this 
> mechanism and
> avoid having to check this.
> 
> > 
> > > So bind
> > > app-name is not required and possible. 
> > 
> > Generic certificate does not need to be bound to anything, 
> although it can carry some 
> > certified pieces of information. Having a format for 
> putting known fields into 
> > certificate CN field would be nice, but not mandatory.  
> > 
> > I work on a product which manages million of consumer 
> devices (modems, gateways, 
> > settop boxes, etc)remotely for service providers (SPs). 
> These SPs are starting to 
> > use SSL/TLS for many CPE to back-end interactions. Some SPs 
> use unique certificates 
> > on each device, in which case it is a device ID such as 
> serial number or MAC address 
> > embedded in certificate CN field - not hostname. Case 
> study, DSL Forum defines use 
> > of device ID in certificate CN field in their CWMP standard 
> defined in TR-069 / WT-121. 
> > The same standard also allows for use of generic certificates.  
> > 
> > Some SP want to use the same cert on all devices. That 
> generic cert identifies either
> > manufacturer or service provider. It does not authenticate 
> a specific CPE, but rather 
> > as a way to establish that CPE is the right kind to connect 
> to backend systems.  Similar 
> > vendor certificates, I believe, are used in Cable 
> industry's PacketCable VoIP standards 
> > (although they have unique ones too). In this environment, 
> having a unique certificate 
> > on millions of devices is generally considered a serious 
> cost factor - adds cost to CPE. 
> > Sometimes a combination of generic cert + HTTP digest 
> authentication is used.  In syslog 
> > case, syslog payload signing could be the option that could 
> replace HTTP digest authentication.  
> > 
> > The point of above is that generic certificates are used 
> today, part of standards and 
> > seem to make sense to large organizations which demand 
> their use.  So, it is certainly 
> > possible to use those and would be a good idea for syslog 
> to support it too. 
> 
> I think these are the exact situations when certificate binding should
> be turned off, or tweaked.
> 
> > 
> > > 2, We need cerficate 
> > > binding to host
> > > name, operator to decide whether to check the binding. 
> > 
> > Certificate with hostname (FQDN, right?) in the CN is a 
> decent option, but as I mentioned above, 
> > this is not what say DSL SPs use to identify devices. 
> Hostname for unique certificate can't 
> > be a requirement IMO.  
> > 
> > I agree that it should be operator decision whether or not 
> to check the certificate binding. 
> > 
> > > Receiver may consult
> > > DNS to get host name for a sender, while sender may just 
> query local
> > > configuration to get host name.
> > 
> > Not sure what you mean here. Certificates have to be 
> generated by CA (certificate 
> > Authority) which has the private key, then installed on the 
> host.  The sender can't 
> > just generate one by looking up the hostname. Or are you 
> talking about hostname 
> > inserted in syslog message field?  
> > 
> > Also, why does receiver need to consult DNS?  
> 
> The problem is with syslog that you get a connection from an 
> IP address
> without any hostname information. If we are to define a certificate
> binding scheme that involves the name of the client's host, 
> then we need
> to map the IP address to a hostname somehow.
> 
> The sender is in an easy situation, we configure it to 
> forward all logs
> to a specified syslog receiver, with the also specified hostname (like
> the hostname in the HTTPS URL). Certificate binding can be done, no
> problem.
> 
> On the receiver side, things are a bit more difficult: it is listening
> for any number of clients, and these clients are not usually listed in
> their configuration (e.g. it is an open server like HTTPS) The problem
> in this case is that there is no hostname information apart 
> from the IP.
> 
> Our solution might be somewhat similar to what HTTPS has:
> * define a certificate binding scheme for syslog receivers (in which
> case it can easily be validated by the sender as it has the necessary
> information)
> * and leave it to implementations/operators for definition in the case
> of senders, just like client certificates in HTTPS, this way no DNS is
> required.
> 
> > 
> > >  [Issue 4]: Shall we mandate the sender MUST be 
> authenticated?  Most
> > >  of the Syslogd accepts messages only from configured address.
> > 
> > In TCP, restricting by source IP buys you more than in UDP 
> where it is 
> > easy to spoof, but even in TCP it is hardly an 
> authentication mechanism 
> > or we would not be talking about TLS auth. In case of my 
> application with 
> > millions of devices, you would have to allow huge subnets 
> anyway and 
> > addresses are allocated dynamically using DHCP.  
> 
> Sometimes it is enough to validate the syslog server for secrecy and
> client authentication is not required.
> 
> > 
> > > Tentative resolution: It should be optional to operator, use 
> > > SHOULD or MAY
> > > instead of MUST and explain security implication. I tend to 
> > > use SHOULD.
> > 
> > Sounds good.  Please state clearly what it means to 
> authenticate the sender 
> > though. Is it a sender presenting a legitimate signed 
> certificate (be it 
> > generic or unique)?  Or does it include checking 
> certificate binding by 
> > comparing CN field to some field in syslog message (like 
> FQDN)? In case 
> > of latter, the syslog would need to carry FQDN (not 
> hostname or IP which 
> > are allowed substitutes) as well. 
> 
> The problem with validating the host field in the message, 
> that a single
> sender may produce several different, but still valid names:
> 
> relays which receive messages from its close neighbours and send
> messages to a syslog center for processing. In this case the 
> relay has a
> single certificate.
> 
> -- 
> Bazsi
> 

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

---

From: Balazs Scheidler <[email-masked]>
Date: Thu, 20 Apr 2006 09:40:47 +0200

On Wed, 2006-04-19 at 18:01 -0400, Anton Okmianski (aokmians) wrote:
> Balazs:
> 
> I don't think DNS lookup for validating clients will work in all cases.  If 
> syslog clients are NAT'ed (and many CPEs are), it does not make sense for 
> them to have a hostname.  You will not see the real source IP on syslog 
> server. So, if we recommend it as basic standard binding its use will be 
> limited.  

Yes, I did not like the approach either, I just could not come up with
anything else.

> 
> I agree that server validation is different. In this case you have the 
> ultimate source IP and hostname lookup helps. You are validating that the 
> certificate the server presented is not just signed by right CA, but also 
> authenticates the server you intended to connect to.  

I think we should not rely on DNS in this case either, but rather
require the operator to supply a hostname.

-- 
Bazsi

---

From: "David B Harrington" <[email-masked]>
Date: Thu, 20 Apr 2006 11:34:19 -0400

Hi,

I also have concerns about depending on DNS.

I want to be sure I understand what you are suggesting as an
alternative.
Is the mapping from IP to hostname operator-defined in a static way?

What happens, network-management-wise, when an IP address changes for
a given host, or more importantly, is reissued to a different host?

David Harrington
FutureWei Technologies, a Huawei company
[email-masked] 
[email-masked]
[email-masked]

> Sent: Thursday, April 20, 2006 3:41 AM
> Cc: [email-masked]

---

From: Balazs Scheidler <[email-masked]>
Date: Thu, 20 Apr 2006 17:40:07 +0200

> a given host, or more importantly, is reissued to a different host?

I would say that the client should be configured to log to
log://loghost.domain/ instead of logging to an IP address. (maybe we can
also define an URL format, but not necessarily)  

In this case the name of the host is in the URL, and this is what the
certificate should be compared against. This way we only rely on the DNS
to forward-resolve hostnames which should work.

-- 
Bazsi

---

From: Miao Fuyou <[email-masked]>
Date: Sun, 30 Apr 2006 17:30:23 +0800

Another problem of using DNS is: name resolution itself is not secure if
DNSSEC is not used (true im most cases). Dependency on DNS may introduce new
security vulnerable to Syslog/TLS.

Client should use knowledge a priori to check server's certificate, such as
URL, if it is available. 

> Sent: Thursday, April 20, 2006 11:40 PM
> To: David B Harrington
> Cc: [email-masked]
> log://loghost.domain/ instead of logging to an IP address. 
> (maybe we can also define an URL format, but not necessarily)  
> 
> In this case the name of the host is in the URL, and this is 
> what the certificate should be compared against. This way we 
> only rely on the DNS to forward-resolve hostnames which should work.
> 
> --
> Bazsi
> 
>

---

From: Balazs Scheidler <[email-masked]>
Date: Sun, 30 Apr 2006 15:14:56 +0200

> Client should use knowledge a priori to check server's certificate, such as

Yes, you need forward DNS resolution in this case too. (e.g. hostname in
URL -> IP address)

-- 
Bazsi