blob: 9333bbb0adc1583c9dbbc969586d665619a2e96b [file] [log] [blame]
Mauro Carvalho Chehab593733ab2019-06-12 14:52:52 -03001=====================
Paul Moore8802f612006-08-03 16:45:49 -07002NetLabel Introduction
Mauro Carvalho Chehab593733ab2019-06-12 14:52:52 -03003=====================
4
Paul Moore8802f612006-08-03 16:45:49 -07005Paul Moore, paul.moore@hp.com
6
7August 2, 2006
8
Mauro Carvalho Chehab593733ab2019-06-12 14:52:52 -03009Overview
10========
Paul Moore8802f612006-08-03 16:45:49 -070011
12NetLabel is a mechanism which can be used by kernel security modules to attach
13security attributes to outgoing network packets generated from user space
14applications and read security attributes from incoming network packets. It
15is composed of three main components, the protocol engines, the communication
16layer, and the kernel security module API.
17
Mauro Carvalho Chehab593733ab2019-06-12 14:52:52 -030018Protocol Engines
19================
Paul Moore8802f612006-08-03 16:45:49 -070020
21The protocol engines are responsible for both applying and retrieving the
22network packet's security attributes. If any translation between the network
23security attributes and those on the host are required then the protocol
24engine will handle those tasks as well. Other kernel subsystems should
25refrain from calling the protocol engines directly, instead they should use
26the NetLabel kernel security module API described below.
27
28Detailed information about each NetLabel protocol engine can be found in this
Henrik Austada7ddcea2018-09-04 00:15:23 +020029directory.
Paul Moore8802f612006-08-03 16:45:49 -070030
Mauro Carvalho Chehab593733ab2019-06-12 14:52:52 -030031Communication Layer
32===================
Paul Moore8802f612006-08-03 16:45:49 -070033
34The communication layer exists to allow NetLabel configuration and monitoring
35from user space. The NetLabel communication layer uses a message based
36protocol built on top of the Generic NETLINK transport mechanism. The exact
37formatting of these NetLabel messages as well as the Generic NETLINK family
Michael Opdenacker59c51592007-05-09 08:57:56 +020038names can be found in the 'net/netlabel/' directory as comments in the
Paul Moore8802f612006-08-03 16:45:49 -070039header files as well as in 'include/net/netlabel.h'.
40
Mauro Carvalho Chehab593733ab2019-06-12 14:52:52 -030041Security Module API
42===================
Paul Moore8802f612006-08-03 16:45:49 -070043
44The purpose of the NetLabel security module API is to provide a protocol
45independent interface to the underlying NetLabel protocol engines. In addition
46to protocol independence, the security module API is designed to be completely
47LSM independent which should allow multiple LSMs to leverage the same code
48base.
49
50Detailed information about the NetLabel security module API can be found in the
51'include/net/netlabel.h' header file as well as the 'lsm_interface.txt' file
52found in this directory.