Windows安全性编程完整版.docxVIP

  • 0
  • 0
  • 约1.99万字
  • 约 131页
  • 2026-01-07 发布于广东
  • 举报

Windows安全性编程

Windows

安全性编程

Windows安全性编程的范畴

如何修改/创建一个安全属性符合你预期的对象

CreateEvent的参数LPSECURITY_ATTRIBUTES

如将一个C盘目录下的配置文件,改为所有人可访问

EQ\*jc2\*hps60\o\ad(\s\up10(–),作)EQ\*jc2\*hps40\o\ad(\s\up10(SACL和DACL是什么?),为一个用户,你如)何在代码里查看或修改自己的特权(privilege);

EQ\*jc2\*hps40\o\ad(\s\up10(–或者以其他用户的特权/profile执行代码),进程间通信问题:如何“绕过”)安全边界

(session,desktop,winstat,uac,process),进行

通信/弹窗/访问等

Content

?1.Windows安全性编程的范畴

?2.Windows安全模型

?3.Windows访问控制和权限管理?4.WinVista/7安全性增强?5.Win8安全性增强(?)?6.总结

2.Windows安全模型

?2.1角色

–Principal

–管理机构

Principal1

Principal

1

Object

1

Principal

2

Object

2

Access

–认证

?2.2环境?2.3执行

2.1 -

2.1 -

.1PrincipalConcept

?Principal,译作主体/用户实体

–是一个安全的概念,指的是安全事务中的各个参与者

–它是相对于对象(Object)而言的,对象是一种资源,主体可以操作资源

–主体可以是:用户/计算机/服务

–有一个人类可识别的名字(Account)和机器可处理的标识符(SID

)来标识

–主体的信息存储在安全数据库(Securitydatabase)中,如AD、SAM

–主体为了表明自己的身份,需要证书(Credential),如口令

Access

2.1.1PrincipalSID

GUID/UUID:全球唯一标识符,一个在空间和时间上保证了唯一性的128位的

定长标识

空间:一个IEEE802地址,有中央管理机构颁发

时间:根据时钟调整之后永久递增的一个数字

SID:SecurityIdentify,安全标识符,不定长的

空间:在Windows安装时产生的96位标识(储存在注册表中)

时间:生成一个永久递增的计数值,与上述标识结合

管理机构标识符:标识账号颁发机构

SID格式:S-R-I-SA-SA-SA...

S:固定字母S

R:revision,当前为1

I:48位管理机构标识

SA:32位子管理机构

.1PrincipalSID

Sample:

Everyone:S-1-1-0

Administrator:S-1-5-21-XXXX-XXXX-XXXX-500

Guest :S-1-5-21-XXXX-XXXX-XXXX-501

21-XXXX-XXXX-XXXX:标识21之后跟的是安装时分配的机器ID

在不同语言中,上述三个例子的pricipal名称可能不一样,最好编码组合SID来应用principal

使用LookupAccountSid和LookupAccountName这两个函数可以进行Account和SID之间的互相映射(psgetsid.exe)

2.1

2.1

.1Principal-Credential

Credential:证书,以安全的方式来识别一个Principal,防止假冒

一个Principal能够提供的有效Credential,可概括以下三个问题:

你有什么?

Key

你知道什么?

Password

–你是谁(什么)?

?fingerprint

.2管理机构

需求:Alice想在多台机器上登录,每台机器都需要“记住”她的

Credentials,导致实施很难、安全性降低

方案:可信的中间管理机构(authority)-所有用户的Credentials都存在一个可信服务器上

用户实体名变为:principal@authority

SID变为:S-1-5-21-XXXX-XXXX-XXXX-XXXX-N,N为32位的管理机构标识

管理机构的单点失效隐患:集中式的管理的普遍问题

需要多个备份的可信服务器

需要一种可靠的同步复制机制

1.3机

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档