Windows Vista的UAC功能浅析(1)
原文摘自ITECN博客,作者:盆盆< Microsoft MVP ITECN博客站长>
ITECN博客,是由盆盆等MVP组织发起的、旨在研究和推广微软IT Pro技术的网站,由多位Microsoft MVP和资深微软认证讲师组成。ITECN博客的网址是http://blogs.itecn.net
本文由“ITECN”版权所有,仅授权PChome电脑之家发表,任何媒体没有“ITECN”同意不得擅自转载,转载必追究,后果自负。
本文以Windows Vista Build 5231为例,就“Date and Time”控制面板组件,在consent前后的进程访问令牌的变化,来试图探秘UAC功能的精妙之处。文章不但描述standard user和Full Privilege User之间的访问令牌的差异,同时揭示了这种差异应用到本例的实质(SeSystemTimePrivilege特权)。最后,文章还尝试解释Windows Vista最新引入的两个SID(Medium Mandatory Level和High Mandatory Level)的作用。
为了让读者诸公更好地享用后面的“正餐”,这里先呈上“开胃酒”─简单介绍一下UAC的功能。UAC(用户帐户控制)可以说是采用逆向思维的典范:
传统的安全规则告诫用户必须工作在受限帐户下,大多数用户会困惑于为什么无法安装应用程序,为什么无法修改系统时间─并没有必然的理由要求用户花时间学习runas的用法,他们有权专注于本职工作,而不是和这些令人生厌的命令打交道。
而UAP则是鼓励用户工作在管理员帐户下,只是这个管理员帐户经过特殊的“降级”处理─多数情况下,用户并不会有掣肘之感。如果要运行需要高特权的管理任务,系统会自动侦测到这种请求,在得到用户确认后,会自动提升到高级特权环境,以便顺利完成管理任务。
大家知道,要用“日期和时间”组件修改系统日期或者时间,当前帐户必须具备“更改系统时间”特权(该特权的内部名称为SeSystemTimePrivilege)。本文以“日期和时间”组件为例进行实验,查看其进程访问令牌的前后变化(主要是SeSystemTimePrivilege特权的变化),来简单剖析UAP功能的实质。
网友评论