Enable Vista support for MSLSA
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 20 Mar 2007 07:13:18 +0000 (07:13 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 20 Mar 2007 07:13:18 +0000 (07:13 +0000)
commit6c634e12b354258537c1d8e263605cba07e4c5d7
tree2f1fc01757f43e1bee23c831873f041f66d06673
parentaa09c20faed6ef91261b4ae6a97d3bca985b67ec
Enable Vista support for MSLSA

The MSLSA: ccache type when used on Windows Vista can take advantage of an ability to write tickets to the LSA credential cache for the current logon session.   This is possible due to the addition of the KERB_SUBMIT_TICKET interface.

Also new to Vista is the CACHE_INFO_EX2 interface which permits a much more efficient method of enumerating the contents of the LSA credential cache.

The code to take advantage of these features has been present for more than a year.  However, due to the lack of a public SDK that included the necessary data structures the functionality has been disabled.  As of this commit, the functionality will be enabled if the version of NTSecAPI.h includes TRUST_ATTRIBUTE_TRUST_USES_AES_KEYS.  This is a preprocessor symbol that is new to the Vista SDK.

In order to build with the new Vista functionality when using the XP SP2 SDK, the NTSecAPI.h file from the Vista SDK must be used in place of the version from the XP SP2 SDK.

This commit also addresses the issues associated with the inability to read session keys from a UAC limited process.   When UAC limitation is detected by examining the process token elevation level all access to the MSLSA contents is disabled.   At some point in the future we can implement an elevated COM service in order to obtain access to the session keys.

ticket: new
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19237 dc483132-0cff-0310-8789-dd5450dbe970
src/lib/krb5/ccache/cc_mslsa.c