On 24 Jun 2002, Jan Johansson wrote:

> On Sun, 2002-06-23 at 09:18, James Yonan wrote:
> > Hello Pat,
> > 
> > I think it's a good idea, something we're considering for the next release.
> 
> I would like to have some info then on how to stop accepting a certain
> client certificate, since I base my "expirations" on stopping the port
> in question in case I no longer want a specific certificate to be able
> to connect to the network. I mean, of course the one-port-per-person
> will work after such an addition, but for folks that get in later.

One way to stop accepting a certain client certificate is to write a 
--tls-verify script to check the certificate fields.

As far as ports are concerned, I am thinking that a forking server 
implementation of OpenVPN would listen for incoming connections on a fixed 
port, but then switch over to a dynamic port to finalize initialization of 
the session.

There are still a number of design issues that need to be worked out such 
as:

(1) How do you fork on new clients without opening yourself up to DoS 
attacks?  In order to be secure, the server would need to statelessly 
authenticate the initial packet before forking.  Tricky, because SSL/TLS 
requires a multi-packet exchange to authenticate.

(2) How does the server know which return routes to set up for the client, 
without requiring an --up script on the server for every client that might 
connect?  The client could send its routes to the server as part of the 
initial authentication exchange, but there would need to be verification 
machinery to ensure that that client could not attack the server by 
sending it malformed routes.

If anyone else has ideas on how to securely implement a forking-server, 
please share them with the list.

James


Reply via email to