| 
									
										
										
										
											2006-08-03 16:45:49 -07:00
										 |  |  | NetLabel Introduction | 
					
						
							|  |  |  | ============================================================================== | 
					
						
							|  |  |  | Paul Moore, paul.moore@hp.com | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | August 2, 2006 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * Overview | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | NetLabel is a mechanism which can be used by kernel security modules to attach | 
					
						
							|  |  |  | security attributes to outgoing network packets generated from user space | 
					
						
							|  |  |  | applications and read security attributes from incoming network packets.  It | 
					
						
							|  |  |  | is composed of three main components, the protocol engines, the communication | 
					
						
							|  |  |  | layer, and the kernel security module API. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * Protocol Engines | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The protocol engines are responsible for both applying and retrieving the | 
					
						
							|  |  |  | network packet's security attributes.  If any translation between the network | 
					
						
							|  |  |  | security attributes and those on the host are required then the protocol | 
					
						
							|  |  |  | engine will handle those tasks as well.  Other kernel subsystems should | 
					
						
							|  |  |  | refrain from calling the protocol engines directly, instead they should use | 
					
						
							|  |  |  | the NetLabel kernel security module API described below. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Detailed information about each NetLabel protocol engine can be found in this | 
					
						
							|  |  |  | directory, consult '00-INDEX' for filenames. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * Communication Layer | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The communication layer exists to allow NetLabel configuration and monitoring | 
					
						
							|  |  |  | from user space.  The NetLabel communication layer uses a message based | 
					
						
							|  |  |  | protocol built on top of the Generic NETLINK transport mechanism.  The exact | 
					
						
							|  |  |  | formatting of these NetLabel messages as well as the Generic NETLINK family | 
					
						
							| 
									
										
										
										
											2007-05-09 08:57:56 +02:00
										 |  |  | names can be found in the 'net/netlabel/' directory as comments in the | 
					
						
							| 
									
										
										
										
											2006-08-03 16:45:49 -07:00
										 |  |  | header files as well as in 'include/net/netlabel.h'. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * Security Module API | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The purpose of the NetLabel security module API is to provide a protocol | 
					
						
							|  |  |  | independent interface to the underlying NetLabel protocol engines.  In addition | 
					
						
							|  |  |  | to protocol independence, the security module API is designed to be completely | 
					
						
							|  |  |  | LSM independent which should allow multiple LSMs to leverage the same code | 
					
						
							|  |  |  | base. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Detailed information about the NetLabel security module API can be found in the | 
					
						
							|  |  |  | 'include/net/netlabel.h' header file as well as the 'lsm_interface.txt' file | 
					
						
							|  |  |  | found in this directory. |