[Openswan dev] Openswan + FIPS thoughts

David McCullough David_Mccullough at securecomputing.com
Tue Oct 30 18:31:11 EDT 2007


Jivin Ken Bantoft lays it down ...
> 
> On Tue, 30 Oct 2007, David McCullough wrote:
> 
> > 
> > Jivin Paul Wouters lays it down ...
> > > On Tue, 30 Oct 2007, David McCullough wrote:
> > > 
> > > > We are just starting out on a FIPS certification for some of our
> > > > products,  and they will include Openswan.  So far we can see no
> > > > problems with getting the certification,  but we are interested in some
> > > > feedback on the changes we need to make to get this through.
> > > 
> > > We have had inquieries in the past. Usually couped with "openssl is
> > > already paid for with FIPS, and so is NETKEY, can we change pluto to
> > > only use openssl with NETKEY".
> > 
> > It's not paid for, everyone needs to certify their version ...
> > 
> > The difference is that is has been certified and is using FIPS approved
> > algs etc.
> 
> I think (hope) Paul meant 'openssl is already certifiable for FIPS'.. so 
> no arguments there.

No problems :-)

> > > > We are considering two possible approaches:
> > > >
> > > > 	1) Replace all the libgmp/crypto code in Openswan user space to use
> > > > 	   libssl/openssl exclusively.  This will mean we have a single
> > > > 	   point of testing/implementation for FIPS.  It also means that
> > > > 	   OpenSwan will continue to use OCF for user space as appropriate,
> > > > 	   but can also take advantage of the many other openssl engines and
> > > > 	   accelerators.
> > > 
> > > We found that hw accelerators for userland was hardly worth it (and at
> > > times slower then using hardware)
> > 
> > Yes,  know all about that,  but you don't need to use them.
> > 
> > The thing is that on platforms like Via/Geode and so on,  the openssl
> > engine doesn't have to call into the kernel.  A lot of CPU manufacturers
> > also accelerate openssl first which can be useful (depending on the
> > platform).
> > 
> > Seemed like a nice side affect,  and since I though you guys had already
> > included the OCF accelerations into pluto,  this actually seems cleaner
> > IMO.
> 
> These patches would be welcome, I think.  I'm hoping you are working 
> around 2.5/#testing/etc.. and not based around 2.4.x.

I figured if we were to go this route we would have to dump the stable
2.4.x we are currently working on and move to a 3.0 (or whatever it is
now) tree.

So there are no issues with that,  I had already assumed it would be
required.

> > > > 	2) The second,  perhaps not so pretty solution,  is to hook
> > > > 	   everything in openswan userspace as has been done already for
> > > > 	   OCF, but to do it for everything that FIPS cares about.
> > > >
> > > > I am not sure of the history here,  so perhaps there is a reason why it
> > > > should or shouldn't be done this way or that.
> > > 
> > > Part is probably history (openssl didnt have the functionality needed).
> > > Part is bloat (openssl is huge)
> > 
> > No arguments on that one,  though it is also hard to produce a useful
> > platform without it in some form.
> > 
> > > Part of it was security (openssl is vulnerable on a weekly basis to something)
> > 
> > Which is also a good thing right ?  More eye's and faster fixes and all
> > that ?
> > 
> > > While it may satisy FIPS, it might not actually be more secure.
> > 
> > No one who knows there stuff will ever say that FIPS is more secure.
> > It's more about expected behaviour and being able to test that the
> > system is indeed producing the expected behaviour.
> 
> And part of it was politics - OpenSSL had US-based developers, and during 
> the FreeS/WAN era, there was the rule against accepting patches from US 
> developers.  We're long since that, so I don't see any reason why not.

Thats the bit I was missing, thanks.

> > > > Would switching from libgmp/ouwn crypto to a completely libssl solution
> > > > for the big num and user space crypto code be attractive to the openswan
> > > > community ?
> > > 
> > > I guess ideally, we could allow either one.
> > 
> > It may not be too much work to allow a compile time switch to select.
> > I just remember Michael complaining that the OCF changes didn't rip out
> > all the old crufty crypto.  I figured I would see if this was desired
> > this time around ;-)
> 
> Yes, patches to remove cruft are always welcome.. and tend to get 
> integrated a bit quicker these days (provided they are against #testing) 
> since we're back to running daily regression builds (so we know in a day 
> if they broke stuff)

ok.

> > > Michael has more intimate knowledge about the aceleration issues.
> > 
> > The acceleration (if you get it) is only a side benefit at best.  It
> > seemed like a possible plus to switching to OpenSSL.
> > 
> > Our primary goal is to create a system that will pass FIPS with the minimum
> > of overheads (boot/runtime tests).  To us this means having one of
> > everything.  One 3DES implementation, one key gen, one big num lib and
> > so on.  Since the system will have Openswan, OpenSSL amd other systems,
> > we are looking to reduce duplication of algs and so on.
> 
> Sounds good to me.

As always,  I have trouble knowing which git tree to pull from you guys :-)
I noticed some IKEv2 commits going on.  That is something ew would also
be keen to include,  and we need OCF in our Openswan stack.

Actually,  given all the requirements,  I think we need to use 3.0.
Is that even an option ?  Porting our OCF changes up to 2.5 may be safer
at this point if 3.0 is truly unstable and untested ?  Seems like #testing
is 2.5 based.

Thoughts ?

Thanks,
Davidm

-- 
David McCullough,  david_mccullough at securecomputing.com,   Ph:+61 734352815
Secure Computing - SnapGear  http://www.uCdot.org http://www.cyberguard.com


More information about the Dev mailing list