keys: add a "logon" key type
authorJeff Layton <jlayton@redhat.com>
Tue, 17 Jan 2012 21:09:11 +0000 (16:09 -0500)
committerSteve French <smfrench@gmail.com>
Wed, 18 Jan 2012 04:39:40 +0000 (22:39 -0600)
commit9f6ed2ca257fa8650b876377833e6f14e272848b
tree8b664dced5415a6d463a56c2bc98756bd5ea5e44
parentce91acb3acae26f4163c5a6f1f695d1a1e8d9009
keys: add a "logon" key type

For CIFS, we want to be able to store NTLM credentials (aka username
and password) in the keyring. We do not, however want to allow users
to fetch those keys back out of the keyring since that would be a
security risk.

Unfortunately, due to the nuances of key permission bits, it's not
possible to do this. We need to grant search permissions so the kernel
can find these keys, but that also implies permissions to read the
payload.

Resolve this by adding a new key_type. This key type is essentially
the same as key_type_user, but does not define a .read op. This
prevents the payload from ever being visible from userspace. This
key type also vets the description to ensure that it's "qualified"
by checking to ensure that it has a ':' in it that is preceded by
other characters.

Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
include/keys/user-type.h
security/keys/internal.h
security/keys/key.c
security/keys/user_defined.c