<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/security/keys, branch v2.6.19</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/security/keys?h=v2.6.19</id>
<link rel='self' href='https://git.amat.us/linux/atom/security/keys?h=v2.6.19'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2006-06-29T17:26:20Z</updated>
<entry>
<title>[PATCH] Keys: Allow in-kernel key requestor to pass auxiliary data to upcaller</title>
<updated>2006-06-29T17:26:20Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-06-29T09:24:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4e54f08543d05e519e601368571cc3787fefae96'/>
<id>urn:sha1:4e54f08543d05e519e601368571cc3787fefae96</id>
<content type='text'>
The proposed NFS key type uses its own method of passing key requests to
userspace (upcalling) rather than invoking /sbin/request-key.  This is
because the responsible userspace daemon should already be running and will
be contacted through rpc_pipefs.

This patch permits the NFS filesystem to pass auxiliary data to the upcall
operation (struct key_type::request_key) so that the upcaller can use a
pre-existing communications channel more easily.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-By: Kevin Coffman &lt;kwc@citi.umich.edu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] poison: add &amp; use more constants</title>
<updated>2006-06-28T00:32:38Z</updated>
<author>
<name>Randy Dunlap</name>
<email>rdunlap@xenotime.net</email>
</author>
<published>2006-06-27T09:53:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a7807a32bbb027ab9955b96734fdc7f1e6497a9f'/>
<id>urn:sha1:a7807a32bbb027ab9955b96734fdc7f1e6497a9f</id>
<content type='text'>
Add more poison values to include/linux/poison.h.  It's not clear to me
whether some others should be added or not, so I haven't added any of
these:

./include/linux/libata.h:#define ATA_TAG_POISON		0xfafbfcfdU
./arch/ppc/8260_io/fcc_enet.c:1918:	memset((char *)(&amp;(immap-&gt;im_dprambase[(mem_addr+64)])), 0x88, 32);
./drivers/usb/mon/mon_text.c:429:	memset(mem, 0xe5, sizeof(struct mon_event_text));
./drivers/char/ftape/lowlevel/ftape-ctl.c:738:		memset(ft_buffer[i]-&gt;address, 0xAA, FT_BUFF_SIZE);
./drivers/block/sx8.c:/* 0xf is just arbitrary, non-zero noise; this is sorta like poisoning */

Signed-off-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] keys: restrict contents of /proc/keys to Viewable keys</title>
<updated>2006-06-26T16:58:18Z</updated>
<author>
<name>Michael LeMay</name>
<email>mdlemay@epoch.ncsc.mil</email>
</author>
<published>2006-06-26T07:24:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=06ec7be557a1259611d6093a00463c42650dc71a'/>
<id>urn:sha1:06ec7be557a1259611d6093a00463c42650dc71a</id>
<content type='text'>
Restrict /proc/keys such that only those keys to which the current task is
granted View permission are presented.

The documentation is also updated to reflect these changes.

Signed-off-by: Michael LeMay &lt;mdlemay@epoch.ncsc.mil&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] keys: allocate key serial numbers randomly</title>
<updated>2006-06-26T16:58:18Z</updated>
<author>
<name>Michael LeMay</name>
<email>mdlemay@epoch.ncsc.mil</email>
</author>
<published>2006-06-26T07:24:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e51f6d343789a4f0a2a7587ad7ec7746969d5c1c'/>
<id>urn:sha1:e51f6d343789a4f0a2a7587ad7ec7746969d5c1c</id>
<content type='text'>
Cause key_alloc_serial() to generate key serial numbers randomly rather than
in linear sequence.

Using an linear sequence permits a covert communication channel to be
established, in which one process can communicate with another by creating or
not creating new keys within a certain timeframe.  The second process can
probe for the expected next key serial number and judge its existence by the
error returned.

This is a problem as the serial number namespace is globally shared between
all tasks, regardless of their context.

For more information on this topic, this old TCSEC guide is recommended:

	http://www.radium.ncsc.mil/tpep/library/rainbow/NCSC-TG-030.html

Signed-off-by: Michael LeMay &lt;mdlemay@epoch.ncsc.mil&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] keys: let keyctl_chown() change a key's owner</title>
<updated>2006-06-26T16:58:18Z</updated>
<author>
<name>Fredrik Tolf</name>
<email>fredrik@dolda2000.com</email>
</author>
<published>2006-06-26T07:24:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5801649d8b83e7cb9b15839761bdee594653c294'/>
<id>urn:sha1:5801649d8b83e7cb9b15839761bdee594653c294</id>
<content type='text'>
Let keyctl_chown() change a key's owner, including attempting to transfer the
quota burden to the new user.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] keys: discard the contents of a key on revocation</title>
<updated>2006-06-26T16:58:18Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-06-26T07:24:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=31204ed925b067d2bb65adb89501656f8274a32a'/>
<id>urn:sha1:31204ed925b067d2bb65adb89501656f8274a32a</id>
<content type='text'>
Cause the keys linked to a keyring to be unlinked from it when revoked and it
causes the data attached to a user-defined key to be discarded when revoked.

This frees up most of the quota a key occupied at that point, rather than
waiting for the key to actually be destroyed.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] keys: sort out key quota system</title>
<updated>2006-06-26T16:58:18Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-06-26T07:24:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7e047ef5fe2d52e83020e856b1bf2556a6a2ce98'/>
<id>urn:sha1:7e047ef5fe2d52e83020e856b1bf2556a6a2ce98</id>
<content type='text'>
Add the ability for key creation to overrun the user's quota in some
circumstances - notably when a session keyring is created and assigned to a
process that didn't previously have one.

This means it's still possible to log in, should PAM require the creation of a
new session keyring, and fix an overburdened key quota.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Keys: Fix race between two instantiators of a key</title>
<updated>2006-06-22T22:05:56Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-06-22T21:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=04c567d9313e4927b9835361d8ac0318ce65af6b'/>
<id>urn:sha1:04c567d9313e4927b9835361d8ac0318ce65af6b</id>
<content type='text'>
Add a revocation notification method to the key type and calls it whilst
the key's semaphore is still write-locked after setting the revocation
flag.

The patch then uses this to maintain a reference on the task_struct of the
process that calls request_key() for as long as the authorisation key
remains unrevoked.

This fixes a potential race between two processes both of which have
assumed the authority to instantiate a key (one may have forked the other
for example).  The problem is that there's no locking around the check for
revocation of the auth key and the use of the task_struct it points to, nor
does the auth key keep a reference on the task_struct.

Access to the "context" pointer in the auth key must thenceforth be done
with the auth key semaphore held.  The revocation method is called with the
target key semaphore held write-locked and the search of the context
process's keyrings is done with the auth key semaphore read-locked.

The check for the revocation state of the auth key just prior to searching
it is done after the auth key is read-locked for the search.  This ensures
that the auth key can't be revoked between the check and the search.

The revocation notification method is added so that the context task_struct
can be released as soon as instantiation happens rather than waiting for
the auth key to be destroyed, thus avoiding the unnecessary pinning of the
requesting process.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] selinux: add hooks for key subsystem</title>
<updated>2006-06-22T22:05:55Z</updated>
<author>
<name>Michael LeMay</name>
<email>mdlemay@epoch.ncsc.mil</email>
</author>
<published>2006-06-22T21:47:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d720024e94de4e8b7f10ee83c532926f3ad5d708'/>
<id>urn:sha1:d720024e94de4e8b7f10ee83c532926f3ad5d708</id>
<content type='text'>
Introduce SELinux hooks to support the access key retention subsystem
within the kernel.  Incorporate new flask headers from a modified version
of the SELinux reference policy, with support for the new security class
representing retained keys.  Extend the "key_alloc" security hook with a
task parameter representing the intended ownership context for the key
being allocated.  Attach security information to root's default keyrings
within the SELinux initialization routine.

Has passed David's testsuite.

Signed-off-by: Michael LeMay &lt;mdlemay@epoch.ncsc.mil&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[RBTREE] Update key.c to use rb_parent() accessor macro.</title>
<updated>2006-04-21T12:16:49Z</updated>
<author>
<name>David Woodhouse</name>
<email>dwmw2@infradead.org</email>
</author>
<published>2006-04-21T12:16:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fed306f2baa170220b0299198a39c6be2a91bf19'/>
<id>urn:sha1:fed306f2baa170220b0299198a39c6be2a91bf19</id>
<content type='text'>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
</entry>
</feed>
