Subject: IP layer security
To: None <tech-net@NetBSD.ORG>
From: Perry E. Metzger <>
List: tech-net
Date: 01/28/1995 17:40:01
"Charles M. Hannum" <> writes:

>   However, when NetBSD eventually
>   supports IP-layer security, it would be somewhat more useful.
>What, pray tell, does `IP-layer security' *mean*?

It means that every IP packet (or at least the secure ones :-) is
encrypted and/or authenticated. If you look at draft-metzger-* in the
nearest internet drafts repository, you will see some (but not all; we
are still missing some documents) of the Atkinson/Metzger/Simpson
proposal for IPv4. (The Atkinson part is a bit of a fib; Ran wrote the
original documents, but he wrote them for IPng).

I'm currently starting a reference implementation of the proposal. My
platform is -- who would have guessed -- NetBSD.

I'm saddened to say that doing this cleanly requires some pervasive,
albeit slight, changes to many of the layers of the IP stack -- in
particular, pointers to Security Association structures have to be
passed up from the network layer (IP or IPng) to the transport layer
(i.e. UDP or TCP) and vice versa. This is so that SAIDs (the units of
keying -- Security Association Identifiers) can be set on a per socket
basis. There will also need to be some hooks to userland, and a key
negotation daemon.

Initial key negotation is going to be stunningly kerberos like --
because I can steal more code that way -- though eventually I'm going
to want to turn things in the direction of Phil Karn's "Photuris" key
negotiation proposal. I want to keep the notion of kerberos style
naming, however.

I hope to get this done before the Danvers IETF, but realistically its
not going to be usable until a bit afterwards; I can't work on it full
time (sigh; earning money comes first) and I don't have much help on
it (double sigh).

Oh, and by the way -- a random number pool device would be bloody
useful! If someone could port Ted Ts'o's driver, provided that it didn't
result in a significant performance hit, would be a real win for me,
and for people running PGP and other sorts of security oriented
programs. Random number sources are really important for security. A
device would mean that you could have software implementations on
machines without RNG hardware, but that applications could
transparently take advantage of such hardware on machines that had
it. It also would reduce the number of places for random number
generator failure to occur.