CH7 操作系统安全性首先,操作系统是一个共享资源系统,支持多用户同时共享一套计算机系统的资源,有资源共享就需要有资源保护,涉及到种种安全性问题;
其次,随着计算机网络的迅速发展,客户机要访问服务器,一台计算机要传送数据给另一台计算机,于是就需要有网络安全和数据信息的保护;
另外,在应用系统中,主要依赖数据厍来存储大量信息,
它是各个部门十分重要的一种资源,数据库中的数据会被广泛应用,特别是在网络环境中的数据库,这就提出了信息系统 —— 数据库的安全性问题;
最后,计算机安全性中的一个特殊问题是计算机病毒,
需要采用措施预防,发现,解除它 。 上述计算机安全性问题大部份要求操作系统来保证,所以操作系统的安全性是计算机系统安全性的基础 。
按照 ISO通过的“信息技术安全评价通用准则” 关于操作系统、数据库这类系统的安全等级从低到高分为七个级别:
l D 最低安全性
l C1 自主存取控制
l C2 较完善的自主存取控制,审计
l B1 强制存取控制
l B2 良好的结构化设计,形式化安全模型
l B3 全面的访问控制,可信恢复
l A1 形式化认证目前流行的几个操作系统的安全性分别为:
DOS,D级; Windos NT和 Saloris,C2级;
OSF/1,B1级; Unix Ware 2.1,B2级 。
7.1 安全性概述从信息安全性的角度出发,安全性的实现包括下面几个层次 。
7.1.1 操作系统的分级安全管理
7.1.1.1 系统级安全管理系统级安全管理的任务是不允许未经核准的用户进入系统,从而也就防止了他人非法使用系统的资源 。 主要采用的手段有:
l注册 系统设置一张注册表,登录了注册用户名和口令等信息,使系统管理员能掌握进入系统的用户的情况,并保证用户各在系统中的唯一性 。
l登录 用户每次使用时,都要进行登录,通过核对用户名和口令,核查该用户的合法性 。
同时也可根据用户占用资源情况进行收费 。
口令很容易泄密,可要求用户定期修改口令,
以进一步保证系统的安全性 。
7.1.1.2 用户级安全管理用户级安全管理,是为了给用户文件分配文件
,访问权限,而设计的 。 用户对文件访问权限的大小,是根据用户分类,需求和文件属性来分配的 。 例如,Unix中,将用户分成三类:文件主,授权用户和一般用户 。
已经在系统中登录过的用户都具有指定的文件访问权限,访问权限决定了用户对哪些文件能执行哪些操作 。 当对某用户赋予其访问指定目录的权限时,他便具有了对该目录下的所有子目录和文件的访问权 。 通常,对文件可以定义的访问权限有:建立,删除,打开,读,写,
查询和修改 。
7.1.1.3 文件级安全管理文件级安全性是通过系统管理员或文件主对文件属性的设置,来控制用户对文件的访问 。 通常可对文件置以下属性:
执行,隐含,修改,索引,只读,写,
共享等 。
7.1.2 通信网络安全管理网络操作系统必须采用多种安全措施和手段,其主要有:
l用户身份验证和对等实体鉴别:远程录入用户的口令应当加密,
密钥必须每次变更以防被人截获后冒名顶替 。 网络环境下,一个用户向另一个用户发送数据,发主必须鉴别收方是否确定是他要发给信息的人,收方也必须判别所发来的信息是否确定是由发送者个人发来,这就是对等体鉴别 。
l访问控制:除了网络中主机上要有存取访问控制外,应当将访问控制扩展到通信子网,应对哪些网络用户可访问哪些本地资源,以及哪些本地用户可访问哪些网络资源进行控制 。
l数据完整性:防止信息的非法重发,以及传送过程中的篡改,替换,删除等,要保证数据由一台主机送出,经网络链络到达另一台主机时完全相同 。
l加密:加密后的信息即使被人截取,也不易被人读懂和了解,这是存取访问控制的补充手段 。
l防抵赖:防止收发信息双方抵赖纠纷 。 收方收到信息,他要确保发方不能否认曾向他发过信息,并要确保发方不否认收方收到的信息是未被篡改过的原样信息 。 发方也会要求收方不能在收到信息后抵赖或否认 。
l审计:审计用户对本地主机的使用,还应审计网络运行情况 。
网络系统安全保障的实现方法分两大类:
一类是以防火墙技术为代表的防卫型网络安全保障系统 。 它是通过对网络作拓扑结果和服务类型上进行隔离,在网络边界上建立相应的网络通信监控系统,
来达到保障网络安全的目的 。 实现防火墙所用的主要技术有:数据包过滤,应用网关和代理服务器 (Proxy Server)等 。
另一类是建立在数据加密和用户授权确认机制上的开放型网络安全保障系统 。 这类技术的特征是利用数据加密技术来保护网络系统中包括用户数据在内的所有数据流,只有指定用户或网络设备才能解译加密数据,从而在不对网络环境作特殊要求的前提下从根本上解决网络安全性问题 。 数据加密技术可分为三类:对称型加密,不对称型加密和不可逆加密 。 对称型加密使用单个密钥对数据进行加密或解密,计算量小,加密效率高,
但密钥管理困难,使用成本高,保安性能差 。 不对称加密也称公用密钥算法,它采用公用和私有二个密钥,只有二者搭配使用才能完成加解密过程 。 不可逆加密算法的特征是加密过程不需要密钥,经过加密的数据无法被解密,只有同样的输入数据,经过同样的不可逆加密算法才能得到相同的加密数据 。 但其加密计算工作量大,仅适用于数据量有限的场合 。
信息安全是指保护信息以防止未授权者对信息的恶意访问,泄漏,修改和破坏,从而导致信息的不可靠或被破坏 。 它可以用
CIA来表示,机密性 ( Confidentiality) 定义了哪些系统资源不能被未授权用户访问;
完整性 ( Integrity) 决定了信息不能被未授权的来源所替代或遭到改变和破坏;可用性 ( Availability) 防止非法独占资源,每当用户需要并有权访问时,总能访问到所需的信息资源 。
信息系统的安全性可用 4A的完善程度来衡量,
即用户身份验证 ( Authentication ),授权
( Authorization ),审计 ( Audit ) 和 保 证
( Assurance) 。 用户身份验证是指在用户获取信息,访问系统资源之前对其身份的标识进行确定和验证,以保证用户自身的合法性;授权是指使不同的用户能用各自的权限合法地访问他们可使用的信息及系统资源;审计是对各种安全性事件的检查,跟踪和记录;保证的作用是在意外故障乃至灾难中信息资源不被破坏与丢失 。
7.1.4 预防、发现和消除计算机病毒计算机病毒是一个能够通过修改程序,
并把自身的复制品包括在内去,传染,
其它程序的一种程序。
计算病毒具有破坏性、隐蔽性、传染性、
和表现性等特性计算机病毒的防治不外乎三个方面:
一是病毒的预防,指采取措施保护传染对象不受病毒的传染;
二是病毒的发现,指不能有效预防病毒入侵时,
应该尽早根据计算机系统中产生的种种蛛丝马迹发现病毒的存在,以便消除它;
三是病毒的消除,有专门的杀毒工具,如
Vsafe,MSAV,Kill等,用来杀毒和解毒,使系统恢复正常 。
7.2 安全性和保护的基本机制
7.2.1 策略与机制在操作系统中要强调机制和策略的区别 。
机制 是用于为实现任何不同种类策略提供工具的组件的集合 。
策略 则是特定的指定实现某项确定目标方法的策略 。 例如,除了交换信息外,某种特殊的通讯策略不允许两个进程分享资源 。 支持此策略的通讯机制就需要支持消息传送,可能是通过把一个进程地址空间内的信息复制到另一进程的方法 。 在另一种情况下,某必须的页面机制可能支持不同的替换算法策略 。 一个系统的安全策略制订了对本组织人员和非本组织人员资源的共享方式 。 机制是系统提供用于强制执行策略的特定步骤和工具 。
7.2.2 身份鉴别机制身份鉴别机制是大多数保护机制的基础 。 身份鉴别分为内部和外部身份鉴别两种 。 外部身份鉴别涉及验证某用户是否是其宣称的 。 例如,
某用户用一个用户名登录了某系统,此系统的基本外部身份鉴别机制将进行检查以证实此用户的登录确实是预想中拥有此用户名的用户 。
最简单的外部验证是赋予每个账号一个口令,
账号可能是广为人知的,例如,它可能被用作一个电子邮件地址,而口令则对使用此账号的人员保密,此口令作为一个实体只能被此账号的拥有者或系统管理员改变 。 操作系统机制支持这种验证来确保不存在通过某些隐蔽的方式绕过验证机制的可能 。
内部身份鉴别机制确保某进程不能表现为除了它自身以外的进程 。 若没有内部验证,某用户可以创建一个看上去属于另一用户的进程 。 从而,即使是最高效的外部验证机制也会因为把这个用户的伪造进程看成另一个合法用户的进程而被轻易地绕过 。
7.2.3 授权机制授权机制确认用户或进程只有在策略许可某种使用时才能够使用计算机的实体
(例如资源)。授权机制依赖于安全的验证机制的存在。
访问授权进程资源访问授权访问授权进程访问授权内部外部机器 X
机器 Y
对交互式计算机,通常的做法是为系统保存一个所有授权用户的登录账号纪录 。
一个可证明他 ( 她 ) 身份的用户便有权使用计算机,正如图 7-1所示,登录进某机器的用户若正试图登录另一台远程机器的话,他必须先被授权使用本地机器 。
远程机器可能会使用另一种形式的授权进程 。
7.2.4 加密加密是将信息编码成像密文一样难解形式的技术,在现代计算机系统中,加密的重要性在迅速增加 。 在通过网络互连的计算机系统中,想要提供一种信息不可达的机制是困难的 。 因此,
信息被加密成若不解密则其信息内容就不可见的形式 。 加密的关键处在要能高效地建立从根本上不可能被未授权用户解密的加密算法 。 后面我们将对现代加密手段进行详细描述 。
7.3身份鉴别
7.3.1 用户身份鉴别用户标识符和口令的组合被广泛用于操作系统来进行用户身份鉴别 。
操作系统还可以使用附加手段来确认某用户是否是其宣称的 。 这些手段也许会涉及到类似于银行允许用户通过电话传送资金这一技术 。 用户可能会被要求提供除密码外的附加信息,这些视策略中授予用户的权限而定 。
现代操作系统甚至会采用指纹或眼球扫描技术等手段 。
最简单的伪装事例是多人合用一个合法的用户名及口令 。 系统现在不能区分这些伪装成一个人的人们,所以它不能为他们提供安全保证 。
另一更严重的伪装发生在某授权用户把用户名和口令遗留在公共地点或用户名早就为人所知,而口令又被被人轻易猜出的情况下 。
一旦知道远程系统某用户登录名,某计算机就可利用此用户名与另一台计算机初始化一段对话模拟出一次合法的远程登录对话,然后,伪装的计算机与验证进程建立起连接,
然后,迅速地,系统性地对已知用户名尝试多个不同的口令 。 当验证进程检测到反复的密码提供错误时,它可侦测到这种闯入尝试从而在这种错误达到一定次数时终止这次连接 。 但是,伪装的机器稍后将可重新建立并继续搜寻此登录名的密码 。
7.3.2 网络中的身份鉴别
7.3.3 Kerberos网络身份鉴别
Kerberos是一套可用于验证一个用不可靠网络中的计算机进入另一台计算机的网络协议。
在 Kerberos中,它假设在一台计算机
( 客户机 ) 上的进程利用网络通信希望占有另一台计算机 ( 服务器 ) 上进程的服务 。 Kerberos提供一台身份鉴别服务器及协议来允许客户机和服务器传送验证消息到特定会话段中的协助进程中 。
在协议中遵守以下步骤 ( 图示见图 7-2),
在此协议中,身份鉴别服务器必须是可信的,因为它拥有一份客户机证明的安全复件,它知道如何进行只有客户机才能解密的信息加密方法,还可以创建一个独特的会话密钥来代表客户机和服务器间的会话 。
因为身份鉴别服务器能够为客户机和服务器加密信息,它可提供给客户机一个,容器,---含有客户机不可读但可传送给服务器的信息的证书 。 这类似于拥有一张背面印有代表账号数字的条形码的信用卡,
你事实上根本不能从条形码中读出什么,
但当你把此卡提交给一台自动柜员机 ( 服务器 ) 时,柜员机可从条形码中读出你的账号 。 信用卡就是一张拥有加密账号数字的令牌 ( 虽然它没有会话密钥 ) 。
身份鉴别服务器证书客户 ID
会话密钥客户机会话密钥


会话密钥


证书客户 ID
会话密钥


服务器会话密钥客户 ID

7.4内部访问授权内部访问授权是管理资源共享任务的一部分 。 在这里,目标是为了保护进程的资源不被其他的行为改变 。 设想进程 A拥有资源 W,X,Y,Z,如图 7-3所示,这其中的某些资源由其他进程共享:例如,
进程 B对 W有读取权限,而 C对 W有写的权限,B对 Y刻读取,而 C对 Y无任何权限,
C对 X可读,B对 X无任何权限,并且 A对 Z
有私有的所有权限 。
进程B 进程C
资源W
资源Y 资源X
资源Z
l 共享参数:
l 限制:
l 分配权限:
l 特洛伊木马: