lsm_interface.rst 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. ========================================
  2. NetLabel Linux Security Module Interface
  3. ========================================
  4. Paul Moore, [email protected]
  5. May 17, 2006
  6. Overview
  7. ========
  8. NetLabel is a mechanism which can set and retrieve security attributes from
  9. network packets. It is intended to be used by LSM developers who want to make
  10. use of a common code base for several different packet labeling protocols.
  11. The NetLabel security module API is defined in 'include/net/netlabel.h' but a
  12. brief overview is given below.
  13. NetLabel Security Attributes
  14. ============================
  15. Since NetLabel supports multiple different packet labeling protocols and LSMs
  16. it uses the concept of security attributes to refer to the packet's security
  17. labels. The NetLabel security attributes are defined by the
  18. 'netlbl_lsm_secattr' structure in the NetLabel header file. Internally the
  19. NetLabel subsystem converts the security attributes to and from the correct
  20. low-level packet label depending on the NetLabel build time and run time
  21. configuration. It is up to the LSM developer to translate the NetLabel
  22. security attributes into whatever security identifiers are in use for their
  23. particular LSM.
  24. NetLabel LSM Protocol Operations
  25. ================================
  26. These are the functions which allow the LSM developer to manipulate the labels
  27. on outgoing packets as well as read the labels on incoming packets. Functions
  28. exist to operate both on sockets as well as the sk_buffs directly. These high
  29. level functions are translated into low level protocol operations based on how
  30. the administrator has configured the NetLabel subsystem.
  31. NetLabel Label Mapping Cache Operations
  32. =======================================
  33. Depending on the exact configuration, translation between the network packet
  34. label and the internal LSM security identifier can be time consuming. The
  35. NetLabel label mapping cache is a caching mechanism which can be used to
  36. sidestep much of this overhead once a mapping has been established. Once the
  37. LSM has received a packet, used NetLabel to decode its security attributes,
  38. and translated the security attributes into a LSM internal identifier the LSM
  39. can use the NetLabel caching functions to associate the LSM internal
  40. identifier with the network packet's label. This means that in the future
  41. when a incoming packet matches a cached value not only are the internal
  42. NetLabel translation mechanisms bypassed but the LSM translation mechanisms are
  43. bypassed as well which should result in a significant reduction in overhead.