Re: A Humble Proposal

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

 



	I can certainly appreciate the desire to do this and it would be most
helpful for us in the ISCS project but there are some significant
hurdles if I correctly understand what you desire.
	I will be delighted to be wrong on this subject so, if someone sees a
better way, please correct me.  In ISCS (http://iscs.sourceforge.net),
we have been very interested in out-of-band authentication.  As far as I
know, all we consistently have to identify a user when the packet comes
in (in-band authentication) is the IP address.  How do we associate some
other kind of user authentication with this packet stream?
	We have been able to successfully use out-of-band authentication with
X.509 certs because we associate them with a specific tunnel using
FreeS/WAN (http://www.freeswan.org) and the X.509 patch
(http://www.strongsec.com).  When the IPSec session is initiated, we
capture the various fields of the cert (actually the fields in the
passed DER_ASN.1_DN ID) and the issuing CA.  We compare these against a
list of user groups associated with those fields (wildcards are allowed
in the security definitions so that we don't have to define every
specific user - just groups of users).  We then dynamically create rules
in the FORWARD or INPUT chains to jump the associated IP addresses to
the chains that contain the rules for those groups.  When the IPSec
session is torn down, we dynamically delete those chain jump rules.
	This is relatively safe against spoofing since we look for the traffic
coming off the ipsec interface.  It can't get to that interface unless
it has been authenticated in the IPSec tunnel creation and we will not
have two identical IPSec sessions with the same IP address.
	Other forms of out-of-band authentication are much more difficult.  We
have examined two approaches. One is to have a user application handle
it and the request for the authentication comes from the gateway.  The
other is to have the user initiate the authentication via something like
a Java app running in a browser.
	We found the first approach highly problematic.  It involves the
creation, distribution and maintenance of an OS specific application. 
The mechanism creates firewall problems.  Basically, the data packet
arrives at the gateway and the gateway sees if it has any rules to allow
the packet.  If it does not, it initiates a conversation with the
application running on the user's computer to ask for any other means of
identification.  Since the stream is initiated by the gateway, the
request is blocked if the user is behind a firewall that does not
(wisely) allow such inbound initiated streams.
	The user authentication method is much friendlier that way.  The data
stream is initiated by the user before sending any data packets and it
can run in any browser on any platform (theoretically!). However, we
have not yet set our minds to working around the spoofing problem.  Once
a user's IP address has been cached against that ID, in other words -
the dynamic iptables rules have been created based upon the
authentication and are checking packets on the physical interface, what
is to prevent another user from spoofing that address and obtaining the
same security clearance?
	My understanding from some of the major vendors who have implemented
this kind of out-of-band authentication is that they are subject to
spoofing attacks and it is an imperfect science.
	It would be wonderful if this could be in the state table but since the
authentication is a different data stream than the service data request,
how would it be associated? What happens when the user wishes to access
a different service, e.g., they first check their e-mail and then wish
to access the Human Resources web server? I,too, would love the ability
to do this but I see it as quite a challenging proposal.  Good luck to
all those working on it - John
-- 
John A. Sullivan III
Chief Technology Officer
Nexus Management
+1 207-985-7880
john.sullivan@xxxxxxxxxxxxx
---
If you are interested in helping to develop a GPL enterprise class
VPN/Firewall/Security device management console, please visit
http://iscs.sourceforge.net 



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux