windows的访问控制机制

一、基本概念:

1、A访问B,A就是访问的主体,B就是访问的客体。A的令牌和B的安全描述符共同决定A是否可以问B。

  访问的主体的进程。因为线程没有自己的权限,而是来源于线程所属于的进程。一个进程中的所有线程都具有同样权限,因此可以把进程的权限看作访问的主体。

  访问的客体是安全对象,所有被访问的对象都具有安全描述,包括文件、注册表、事件(Evnet)、互斥(Mutex)、管道等。

 

2、进程-----访问令牌

  访问令牌:是操作系统专门表示用户的权限的数据结构。有两部组成,一个是令牌所表示的用户(如:用户标识符SID)及用户组等,另一个部分是“权限”(privilege)

  备注:权限是一个列表,每种取限是列表中一项。权限列表存在于进程的访问令牌中。

3、对象-----安全描述符

  安全描述符:是安全属性(SECURITY_ATTRIBUTES结构体)的表示形式,其包括访问控制列表(ACL)。

  访问控制列表有两种:一种是选择访问控制列表(discretionary access control list,DACL),另一种是系统访问控制列表(system access control list,SACL)。DACL决定了用户和用户组能否访问这个对象,SACL控制了尝试访问安全对象的检测信息的继承关系(这个我也不太清楚)。

  备注:DACL是访问控制的常用信息,DACL中包括一个访问控制入口(AccessControlEntries,ACE)列表。ACE表明了用户是否能进行操作以及能进行哪种操作。系统在进行访问控制检测时,会依次检测DACL中的ACE,直到被允许或被拒绝因此在列表前端的ACE优于列表后端的ACE。

二、具体对应的操作

1、进程访问安全对象时,只会用到SID,与进程的权限无关。

2、进程进行特殊操作时,用到的是权限,例如:如关闭系统、修改系统时间、加载设备驱动等。

3、创建进程相关API

  (1)CreateProcess(),该函数所创建的进程使用的访问令牌是当前登录用户的访问令牌。

  (2)CreateProcessAsUser()和CreateProcessWithTokenW()等,可以指定用户令牌,需要使用LogonUser()登录用户,通过LogonUser()函数的返回值得到用户令牌。

 

转载于:https://www.cnblogs.com/verbs/p/5514699.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值