1. 安全身份

Windows的安全模型是以用户为线索的,用户的身份是在登录系统时验证的。

除了用户外,还可以有一些特殊实体需要拥有安全的身份,以便进行验证,比如groups, domain等等。

Windows通过使用SID来标识一个实体的安全身份,重装过系统的同学会有类似的经验,对于上一个Windows系统留下来的文件夹,它的Owner会是一串以S-开头的数字,它就是上一个系统的用户的SID。

在注册表HKEY_USERS中,以及DACL属性页中都能够看到SID的身影。

2. 令牌(Access Token)

Access Token是一个内核对象,是用来标识一个进程或者线程所拥有的安全权限的对象。

通常这个权限是继承来的,CreateProcess/CreateThread时,允许设置Security Descriptor来限定子进程的权限,如果不加限定,那么子进程就继承了父进程的权限。

这些权限规定了对于系统中的资源的访问能力。某项资源究竟允许谁来访问,是由这项资源的Owner说了算的,这也是Windows安全模型中的最重要的原则。

3. Impersonation

说白了,就是顶替某个用户的安全身份去做一件事,比如访问某项资源。

这通常是必要的,因为当一个服务端的进程要代表某个客户端的程序去进行操作时,必须能够仿真这个客户端程序的安全身份,Impersonation就是这样一种机制。

4. 修改权限

这是一种终极的能力,如果你能修改任何人的权限,那么你就几乎能做任何事。通常这种能力仅限于系统管理员。

可以使用AdjustTokenPrivileges来修改Token的权限。

The AdjustTokenPrivileges function enables or disables privileges in the specified access token. Enabling or disabling privileges in an access token requires TOKEN_ADJUST_PRIVILEGES access.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb530716(v=vs.85).aspx列出了令牌的特权列表。

最新文章

  1. 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference
  2. ldap日志
  3. php抽象工厂模式的研究
  4. 用Swift GestureRecognizer 的几个注意点
  5. 【转】Win7注册表的使用(更新中)
  6. OC: 数组、集合、字典
  7. RHCA442学习笔记-Unit11内存缓存
  8. Java Performance Optimization Tools and Techniques for Turbocharged Apps--reference
  9. ubuntu 系统设置bugzilla制
  10. zoj 1738 - Lagrange's Four-Square Theorem
  11. Thrift总结(三)Thrift框架
  12. JavaScript 变量、类型与计算
  13. javascript中的typeof和类型判断
  14. dubbo could not get local host ip address will use 127.0.0.1 instead 异常处理
  15. Linux进阶指令(重点)
  16. python第一百一十天--Django 5
  17. Source map error
  18. Swift 里 Set (三)Inspecting a Set
  19. 创建Maven创建src/main/java提示反复
  20. R-sampe & seq函数学习[转载]

热门文章

  1. LiveTelecast直播平台技术图谱skill-map
  2. Python变量的下划线
  3. Cocos2d-x之Layer
  4. zoom:1总结
  5. Python列表推导式中使用if-else
  6. uvloop官网翻译
  7. Groovy学习:第四章 Groovy特性深入
  8. shell date 格式化
  9. No symbol table is loaded. Use the "file" command.
  10. vue项目从0开始记录