1
linux/Documentation/security
Casey Schaufler f7112e6c9a Smack: allow for significantly longer Smack labels v4
V4 updated to current linux-security#next
Targeted for git://gitorious.org/smack-next/kernel.git

Modern application runtime environments like to use
naming schemes that are structured and generated without
human intervention. Even though the Smack limit of 23
characters for a label name is perfectly rational for
human use there have been complaints that the limit is
a problem in environments where names are composed from
a set or sources, including vendor, author, distribution
channel and application name. Names like

	softwarehouse-pgwodehouse-coolappstore-mellowmuskrats

are becoming harder to avoid. This patch introduces long
label support in Smack. Labels are now limited to 255
characters instead of the old 23.

The primary reason for limiting the labels to 23 characters
was so they could be directly contained in CIPSO category sets.
This is still done were possible, but for labels that are too
large a mapping is required. This is perfectly safe for communication
that stays "on the box" and doesn't require much coordination
between boxes beyond what would have been required to keep label
names consistent.

The bulk of this patch is in smackfs, adding and updating
administrative interfaces. Because existing APIs can't be
changed new ones that do much the same things as old ones
have been introduced.

The Smack specific CIPSO data representation has been removed
and replaced with the data format used by netlabel. The CIPSO
header is now computed when a label is imported rather than
on use. This results in improved IP performance. The smack
label is now allocated separately from the containing structure,
allowing for larger strings.

Four new /smack interfaces have been introduced as four
of the old interfaces strictly required labels be specified
in fixed length arrays.

The access interface is supplemented with the check interface:
	access  "Subject                 Object                  rwxat"
	access2 "Subject Object rwaxt"

The load interface is supplemented with the rules interface:
	load   "Subject                 Object                  rwxat"
	load2  "Subject Object rwaxt"

The load-self interface is supplemented with the self-rules interface:
	load-self   "Subject                 Object                  rwxat"
	load-self2  "Subject Object rwaxt"

The cipso interface is supplemented with the wire interface:
	cipso  "Subject                  lvl cnt  c1  c2 ..."
	cipso2 "Subject lvl cnt  c1  c2 ..."

The old interfaces are maintained for compatibility.

Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
2012-05-14 22:48:38 -07:00
..
00-INDEX security: Yama LSM 2012-02-10 09:18:52 +11:00
apparmor.txt
credentials.txt Documentation: clarify the purpose of LSMs 2011-11-16 12:37:27 +11:00
keys-ecryptfs.txt encrypted-keys: move ecryptfs documentation to proper location 2011-06-30 19:08:14 +10:00
keys-request-key.txt
keys-trusted-encrypted.txt Documentation: Fix multiple typo in Documentation 2012-03-07 16:08:24 +01:00
keys.txt KEYS: Add invalidation support 2012-05-11 10:56:56 +01:00
LSM.txt Documentation: clarify the purpose of LSMs 2011-11-16 12:37:27 +11:00
SELinux.txt
Smack.txt Smack: allow for significantly longer Smack labels v4 2012-05-14 22:48:38 -07:00
tomoyo.txt
Yama.txt Yama: add additional ptrace scopes 2012-04-19 13:39:56 +10:00