Nt/2000/xp平台下的存储控制模型(Access Control Model)
Byleezy_2000 2003-7-16 15:59
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
(-)
鉴于在nt类操作系统下开发程序时有可能涉及操作注册表,读写文件和操控服务等内容,而为使这类程序在不同帐户下皆可正确运行就需要了解nt类操作系统的存储控制模型,所以才写这篇文章。这篇文章所涉及大部分内容可在msdn找到相关说明,小部分内容来自个人经验。错漏之处还望斧正。
基本概念及缩写:
SID(security identifier):用于唯一标识用户或组的变长结构
access token:存储令牌包含每个登录帐户的安全信息。每当用户登录系统时,系统为其建立一个access token,而此用户所执行的进程拥有此access token的一份拷贝。Access token 中包含的内容有
l User SID
l Group SIDs
l Privilege Information
l Other access Information
ACE( access control entry) : 包含一系列存储权限及谁拥有这种权限的说明。
ACL(access control list): 一个ACE的链表,用于说明某个安全对象可以被谁以什么样的权限进行操作。
DACL(discretionary access control list):由安全对象的拥有者(即创建者)控制的ACL。
Trustee: a trustee is the user account, group account, or logon session to which an access control entry (ACE) applies
利用这些概念,我们来看一下,对安全对象进行操作要经过那些步骤。(见图1)
这个过程是这样,系统把线程的Access Token的trustee同DACL中每一个ACL的trustee相比较直到满足下列某一个条件:
l 一个ACE清楚的表明某项操作对这个Access Token无效。比如Thread A的访问过程。
l 一个ACE清楚的表明能够接受这个Access Token所要求的操作。比如Thread B要求进行Write ,Read or Execute操作。
l 所有ACE已被检查过但仍然有一项或多项权限没有被清楚的允许。此时称做隐式禁止(implicitly denied)。
另外,如果ACE在DACL中有不同的排列顺序,对于某个Access Token,可能有完全不同的结果。比如ACE 2排在ACE 1 前面的话,Thread A将可以对此对象进行写操作。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 294.75pt; HEIGHT: 238.5pt" type="#_x0000_t75"><img src="/Develop/ArticleImages/19/19746/CSDN_Dev_Image_2003-7-17933480.gif" o:title="无标题"><font size="3"></font></shape>
(图1 from msdn)
附1:
关于C2-Level Security的一些重要指标
l 必须能通过操控个人用户或用户组的权限来控制对资源的访问。
l 内存需要受到保护,一个进程所释放的内存不能被另外的进程读到。同样文件系统也要保证被删除的文件不能被读到。
l 用户能够用唯一的方式标识自己,All auditable actions must identify the user performing the action
l 系统管理员要能够对安全事件进行检查。但安全事件的存取权限要由authorized administrators进行设定。
l 系统要能够保证自己不被干扰。比如:不允许对正在运行的系统及相关的系统文件进行调整。
分享到:
相关推荐
界面和使用习惯上参照龚建伟VC版《串口调试助手V2.2》,并增加的特性: 1 自定义波特率。波特率列表上选择"Custom",列表框将由只读变为可写,直接输入你想要的波特率 ;当再选择其他内定的波特率时,列表框会恢复为...
FtpScan 1.0 [For 9X/ME/NT/2000/XP] 基于命令行的ftp帐户扫描探测工具。
国外弄来的,如题 安装在XP下需要打补丁,里边那个chm文件会告诉你怎么干~~ 提示您:评论可以拿回分~
windows之上的常用命令大全合集,而且是txt格式的文档,占很小的硬盘空间,随用随查
《Windows NT/2000编程实践》
本软件文件夹加密功能强大,和国内其他的加密软件有本质的区别,其他加密软件都是简单的把文件夹移动到回收站中并做一些简单的伪装,在Winrar等工具软件和部分杀毒...并且全面支持NT/2000/XP/2003/Vista等操作系统。
念青五笔输入法 for Windows NT/2000/XP V1.0a版本简要说明<;br>; <;br>; 作为一个文字工作者,我很早就使用五笔输入法进行汉字录入,从最初的王码五笔起步,至今也有些儿年头了。其中感觉较好的是...
ntp时间同步软件,很好用的一小工具 NTP für Windows NT/2000/XP NTP Cheat Sheet / Kurzreferenz Linux - Treiber für Meinberg PC-Einsteckkarten
Win32 NT/XP/2000 内核API 驱动 带源码
适用平台:WIN98/ME/NT/2K/XP 文件名:AccessPort115.zip
通过访问注册表修改网卡的物理地址。前面已经发布过了 Windows 9x版, 这个是NT/2000/XP版. 此版本查看物理地址功能稍有缺陷, 因为2000等下的运行一闪即逝, 人类根本无法看到. 望知道如何更正的高手赐教.
软件大小:484 KB<br/>软件语言:中文<br/>运行环境:Win9x/Me/NT/2000/XP/2003<br/>软件介绍:<br/> 小巧的网络端口扫描工具,绿色软件。
迷你asp服务器适用于2000/xp/vista
Windows NT_2000本机API参考手册
winio32.dll和winio32.sys一起解压到你的程序文件夹下 空间还有delphi的使用例子 以下内容2021.12更新 ========================== 不好意思,这里只是Winio的源码和生成的DLL和C#的调用例子 delphi的调用是在...
4.44 校园网认证客户端独立安装包下载(适用windowsXP/2000/2003/VISTA/WIN7)安装前请卸载老版客户端
Windows Vista/NT/XP Native API列表
Faster I/O port access under Windows NT/2000/XP. Improved physical memory mapping support under Windows NT/2000/XP. WinIo can now be used from non-administrative accounts under Windows NT/2000/XP.
HDDREG可以直接在Windows 95/98/Me环境下进行修复工作,但在Windows NT/2000/XP操作系统下,你还是需要用它建立一张可引导的修复软盘,然后再在DOS下使用(选择Regeneration菜单下的Create Diskette项,软盘建立后用...