On Monday 07 December 2009 07:41:21 pm Nicolas Williams wrote:
> On Mon, Dec 07, 2009 at 06:59:13PM -0500, Paul Moore wrote:
> > On Monday 07 December 2009 06:20:31 pm Dan McDonald wrote:
> > > On Mon, Dec 07, 2009 at 05:53:59PM -0500, Paul Moore wrote:
> > > > Why spend the time and effort to develop two specifications (not to
> > > > mention the actual implementations) when one IP option based labeling
> > > > spec could solve both use cases at the same time?
> > >
> > > Because sometimes you want to put sensitive traffic on public networks,
> > > without the overhead of tunnel mode (until we can get the world to go
> > >  beyond 1500-byte datagrams, overhead IS a problem).
> >
> > It is worth noting that this does introduce a scalability concern in the
> > case where a system communicates with another using a large number of
> > security labels.  It is only made worse on systems that have "rich"
> > security labels which consist of more than just MLS attributes; e.g.
> > SELinux labels contain user, role, type and MLS ranges, each unique
> > combination represents a new label and in the case of labeled IPsec, a
> > new SA.  It is possible that a traditional, unlabeled IPsec configuration
> > which would only use a single SA could potentially expand to several
> > thousand SAs depending on the number of security labels in use for that
> > particular policy.  We've already seen issues related to this with
> > SELinux.
> 
> For any discrete packet flow (say, a TCP connection), it makes no sense
> to have more than one label or clearance range.  Thus at worst you end
> up with a narrowed SA pair (or two, during re-keys) per-flow.
> 
> For protocols like NFS you'd have to do labelling in the protocol.
> I.e., for NFS you'd let IP/IPsec determine the labels/clearances of the
> client and server, and then the client and server would deal with
> labelling of files and user processes'/threads' actions.
> 
> IOW, the number of SAs will be bounded by the number of concurrent,
> discrete packet flows, not by the number of labels.

I agree that it only makes sense to assign a single label to a discrete packet 
flow, no argument there.  If you re-read what I wrote I wasn't talking about 
an individual connection/flow between two nodes but rather the general case of 
IPsec protected communications between two nodes.  The point I'm trying to 
make is that labeled IPsec adds the flow's security label to the SA's traffic 
selector which has the potential to increase the number of SAs on the system 
by making the SAs more selective. 

For example, it is possible to configure a SPD such that all communication 
between two nodes is protected with a single SA; if labeled IPsec is used, the 
number of SAs in use would grow to equal the number security labels used in 
communications between the two nodes.  If the two systems only communicate 
with label "Coke" then only a single SA is needed.  However, if the two 
systems have two or more communication channels using with at least one 
channel using "Coke" and another using "Pepsi" then two SAs will need to be 
created to convey the two unique security labels.

You can easily see how this example can be applied with finer grained SPDs as 
well.

> > Also, on the topic of performance, labeled IPsec requires that the IPsec
> > processing occur at the end node making it impossible to offload IPsec to
> > a gateway.  On small or heavily loaded systems this can quickly outweigh
> > any advantages gained by decreased header sizes.
> 
> I don't see why you believe this.

What don't you understand, that labeled IPsec requires IPsec processing to 
occur at the end node or that requiring IPsec on small devices can incur more 
of a performance penalty than a separate labeling protocol?  Perhaps I'm wrong 
about one of those statements, if I am I would appreciate help in 
understanding why.

> > >  IPsec SAs are perfect repositories for sensitivity information.
> >
> > There is a subtle problem with using SAs for labeling that hasn't really
> > been discussed in this forum and may not be immediate obvious.  All of
> > the labeled security mechanisms I've seen generate the packet/SA's
> > security label from the application which generates the network traffic
> > (the sender).  The fact that IPsec SAs are not tightly bound to
> > applications/senders, instead relying on the traffic selectors to match
> > packets to the SA, can make things more difficult for security policy
> > developers and security administrators.  As an example, compare the
> > security policy required for both CIPSO and labeled IPsec traffic on a
> > SELinux system.
> 
> See RFC5660.  See also the charter of the BTNS WG (though it's likely to
> be concluded before completing IPsec API work).

I just quickly skimmed RFC5660 and the BTNS charter so please correct me if I 
am misunderstanding things, but I don't see either the IPsec connection 
latching or BTNS charter having much impact on MAC security policies.  
Granted, the IPsec connection latching seems like an excellent idea but I'm 
fairly certain that systems which implement MAC using labeled security will 
still need to have MAC security policy in place to control (and provide the 
desired level of assurance) how IPsec SA based labeling is applied to network 
traffic; at least for implementations going through some form of security 
certification (I'm thinking Common Criteria).  IPsec latching may make this 
easier but I don't see how it would remove the requirement on MAC control over 
the process or change the MAC security policy, the basics of the SA based 
labeling remain the same.

-- 
paul moore
linux @ hp
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to