| 文字广告: ppp |
| 当前位置 > 网络安全 > 病毒漏洞 > 网络维护 Windows NT安全性理论与实践
时间:2005-6-16 10:28:45 作者: 来源:原创点击数:
摘要
本文是是一系列技术论文的第一篇,描述封装Windows NT安全性应用程序接口的C++类层次的实现和编程。这一系列论文包括: "Windows NT Security in Theory and Practice" (介绍)"The Guts of Security" (安全性类层次的实现)"Security Bits and Pieces" (样板程序的结构)"A Homegrown RPC Mechanism" (描述样板程序使用的远程通信)在本文中,将会在相当高的水平上对安全加密进行探讨。 介绍安全性在操作系统中应该是相当容易实现的,对吗?就是说,为任意对象指定某个安全级别所需要做的所有工作只是一个简单的函数调用,例如GrantAccessTo或者DenyAccessTo,对吗? 不幸的是,Windows NT安全性应用程序接口(API)看起来并不是那么简单。它包含了过多的与安全性有关的函数,并且仅仅为一个用户打开一个对象的工作就已经非常复杂了。 要正确使用安全性API,需要按照下面几个层次去理解: 第一个层次是理解数据结构:访问控制表(ACLs),访问控制元素(ACEs),安全性描述符(SDs)和安全性Ids (SIDs)。 第二个层次是理解ACLs的语义(虽然不需要理解它们是如何工作的)。根据ACLs建立顺序的不同,对同一个用户的访问可能允许,也可能不允许。 第三个层次是理解操作系统本身如何使用安全性。可以将安全性API理解成为服务器应用程序提供用来保护对象不被未授权的用户访问的服务集合,同事务日志帮助设备驱动程序和应用程序记录错误以及确认事件提供服务的方法相同。 在这些服务只被第三方应用程序使用时,相当容易理解安全性是如何工作的。然而,Windows NT是一个安全的操作系统,此外,基于Windows NT的网络也非常依赖于安全性。因此,安全性结合到系统的方法就显得很模糊。 谁需要安全? 在进入任何细节之前,先要明确为什么会需要安全性。如果不是处于下面的情况,就根本不必为安全性担心: 正在写一个服务器应用程序,即几个用户都可以访问的一个应用程序,而且此服务器应用程序只限于为这些用户的一个子集提供数据结构。 注意这是一个相当广泛的定义。下面是满足条件的几个例子程序。 对于单机(没有连网的计算机),编写一个服务,Windows NT启动以后一直运行,并且有多个用户在此计算机上登录及退出。该服务提供的信息只对少数用户可见。例如,想收集使用模式或者登录数据,就可能只限于管理员访问该数据。 |
|
|
|
|
|||||||||