12.1 系统安全的基本概念
1.系统安全的内容 系统安全性包括三个方面的内容,即物理安全、逻辑安全和安全管理。物理安全是指系统设备及相关设施受到物理保护,使之免遭破坏或丢失; 安全管理包括各种安全管理的政策和机制; 而逻辑安全则是指系统中信息资源的安全,它又包括以下三个方面:12.2 数据加密技术
(1)数据机密性。数据机密性是指系统仅允许被授权的用户访问计算机系统中的信息。
(2)数据完整性。数据完整性是指系统中所保存的信息既不会丢失,也不会被非授权用户修改,且能保持数据的一致性。
(3)系统可用性。系统可用性是指系统中的资源随时都能供授权用户访问。.
2.系统安全威胁的类型 安全威胁是指对系统安全造成破坏的隐患,它主要有以下几种类型:
(1)假冒。假冒是指攻击者伪装成另一合法用户,利用安全体制所允许的操作,对系统或网络进行攻击和破坏。
(2)数据截取。数据截取是指未经核准的用户通过非正当的途径(如直接从电话线上窃听)截取网络中的文件和数据。
(3)拒绝服务。拒绝服务是指未经主管部门许可而拒绝-些用户对系统中的资源进行访问。
(4)修改。修改是指未经授权的用户不仅能从系统中截获信息,而且还可以修改系统中的信息。.
(5)伪造。伪造是指未经授权的用户将一 些虚假信息送入计算机中,或者在文件中添加记录。
(6)否认。否认是指用户不承认自己曾经做过的事。
(7)中断。中断是指系统的某资源被破坏或变得不可用,如磁盘故障、通信线路被切断等。
(8)通信量分析。通信量分析是指攻击者通过窃听手段来窃取在线路.上传输的数据包,再分析数据包中的协议控制信息来了解通信者的身份、地址,或者通过分析数据包的长度和频度来了解消息的性质。
12.3 用户验证
文章图片
1.数据加密技术 目前常用的加密技术有对称加密和非对称加密两种方式。
(1)对称加密。对称加密算法也称作保密密钥算法,其中,加密算法和解密算法之间存在着一定的相依关系,即加密和解密算法往往使用相同的密钥,或者在知道了加密密钥Ke后,就很容易推导出解密密钥Kd。它具有加密速度快的优点,但密钥的分配和管理比较复杂。最有代表性的对称加密算法是数据加密标准DES。
(2)非对称加密。非对称加密算法也称作公开密钥算法,其中的加密密钥Ke和解密密钥Kd不同,而且难以从Ke推导出Kd来,因此,可以将其中的一个密钥公开成为公开密钥。在利用非对称加密算法进行数据加密时,发送者可利用接收者的公开密钥对数据进行加密,而接收者在接收到密文后,可使用自己的私有(保密)密钥进行解密,从而保证信息的安全性。这种方法的优点是密钥管理简单,但加密算法比较复杂。最有代表性的非对称加密算法是RSA算法。
2.数字签名 数字签名可用来验证传输的文件在传输过程中是否遭到他人修改,并可确定发信人的身份。为了能够用数字签名来代替传统的签名,必须满足以下三个条件:①接收者能够核实发送者对报文的签名; ②发送者事后不能抵赖其对报文的签名; ③接收者无法伪造对报文的签名。
目前,常用公开密钥法实现数字签名,发送方可使用自己的私有密钥对要发送的信息进行加密,而接收方则可利用发送方的公开密钥对收到的信息进行解密。
3.数字证明书 数字证明书相当于电子化的身份证明,证书里是一些帮助确定用户身份的信息资料,如:用户名称、发证机构名称、用户的公开密钥、公开密钥的有效日期、证明书的编号以及发证者的签名。数字证书上要有值得信赖的认证机构(CA)的数字签名,证书的作用是对人或计算机的身份及公开密钥进行验证。数字证明书即可以向一家公共的认证机构申请,也可以向自己运行有证书服务器的私人机构申请。
1.使用口令验证 利用口令来确认用户的身份,是当前最常用的验证方法。在口令机制中,系统通常都配置有一份口令文件,用于保存合法用户的用户名、口令和特权。每当用户要使用计算机系统时,他首先必须提供用户名和口令进行登录,只有当这两者与口令文件中的某个项相匹配时,系统才认为该用户是合法用户,并允许他进入系统。12.4 安全攻击
在这种机制中,保证口令文件的安全是至关重要的。通常采用加密技术对口令文件进行加密并以密文的方式保存该文件; 当用户登录时,系统将对用户输入的口令进行加密,并与口令文件中已加密的口令进行比较。
2.基于物理标志的验证技术 当前还广泛利用人们所具有的某种物理标志来进行身份认证,如常用的磁卡和IC卡。可以将用户的信息记录在他所持有的磁卡或IC卡中,当他将卡片插入或划过卡片读写器时,读写器便将其中的数据读出,并传送到计算机中,与系统中用户信息表中的信息进行比较,若找到匹配的表项,便认为该用户是合法用户,并允许他访问系统。这种技术通常还与口令机制结合起来,每次使用卡片时先要求用户输入口令,以保证持卡者确实是卡片的主人。
3.生物识别验证技术 利用人所具有的、难于伪造的生理标志来确认用户的身份,也是目前广泛使用的一种验证技术。每个人的指纹是唯一的,而且终身不变,因而用指纹来进行身份认证是万无一失的。指纹识别系统可通过指纹读取设备将用户的指纹图像输入到计算机系统中,并与保存在系统中的指纹进行比较,从而进行用户身份的识别。目前,指纹识别已被应用到电脑登录、身份识别和保管箱管理系统等多个方面。其他还有多种生物标志可用于身份认证,如眼纹、声音以及人脸等等。
1.早期常用的攻击方式 (1)在许多OS中,在进程终止而归还资源时,并不清除其中的有用信息,攻击者可请求调用许多内存页面和大量的磁盘空间或磁带,以读取其中的有用信息。12.4 可信系统
(2)尝试利用非法系统调用或者在合法的系统调用中使用非法参数,还可能使用虽是合法的但为不合理的参数来进行系统调用,以达到搅乱系统的目的。
(3)在登录过程中按DEL或者BREAK键等,有的系统便会封杀掉校验口令的程序,使得用户无须再输入口令便可能成功登录。
(4)尝试许多在明文规定中不允许做的操作,以破坏系统的正常运行。
(5)伪装成一个忘记了口令的用户,或采用其他方式,从系统管理员处骗取口令。
2.利用程序的攻击方式 (1)逻辑炸弹。逻辑炸弹是程序员在应用程序中秘密加入的一段破坏性代码,平时程序可正常运行,但当一个预先设定的逻辑条件满足时,便会引爆,从而造成严重的破坏。
(2)陷阱门](trapdoor)。陷阱门是程序员在设计系统时,为了方便对程序的调试,而有意设计的、进入系统的一个隐蔽入口点。陷阱门若被怀有恶意的人使用,他便可跳过正常的验证过程进入相应的系统,构成严重的安全威胁。
(3)缓冲区溢出。由于C语言编译器存在着某些漏洞,如它对数组不进行边界检查。如果某个程序调用一个函数,该函数利用一个在堆栈中分配空间的局部变量数组来接收用户的输入数据,并没有对数组边界进行检查。一旦被攻击者发现这样的漏洞,他便可以通过输入超过数组长度的大量数据,将栈中的有用信息(如函数的返回地址)覆盖掉,甚至可以通过精心计算,将他所设计的恶意软件的起始地址,覆盖在原来栈中存放的函数返回地址上,这样函数返回后就会去执行该恶意软件,造成对系统的攻击。
(4)病毒。计算机病毒实际上是一段程序,它能把自己附加在其他程序之中,并不断地进行复制,再去感染其他程序。病毒是目前常见的一种攻击计算机系统的方式,它会通过消耗系统的空间、占用处理机的时间、破坏文件和使机器运行异常等方式危害系统。
(5)蠕虫。蠕虫与病毒相似,也能进行自我复制,并通过网络在计算机间传播。蠕虫以与病毒类似的方式危害系统,但与病毒寄生在其他程序上不同,蠕虫是一个独立的程序。
(6)特洛伊木马。特洛伊木马表面上是一个合法的程序,如一个游戏程序,或一个软件的“升级”版本,但该程序中嵌有危害安全的隐蔽代码。当该程序执行时会引发隐蔽代码执行,产生难于预期的后果。
(7)登录欺骗。用一个恶意的欺骗登录程序,在屏幕上显示“Login:",当用户被骗而输入登录名后,欺骗登录程序再要求用户输入口令,从而获取用户的登录名和口令。
(8)移动代码。移动代码是指能在不同机器之间来回迁移的代码。当在本地执行从其他机器迁移过来的远程代码时,该远程代码便拥有本地资源的访问权限,因此,用户在执行移动代码完成相应操作时,也将承担万- -它是恶意软件的风险。防范恶意的移动代码可采用沙盒法,一个沙盒是专门分配给- -个不可 信的移动代码的限定的虚拟地址空间区域,如果发现移动代码有跳转到盒外某个地址去运行的任何企图,系统将停止该程序的运行。
另外,还可以对移动代码采用解释执行的方式,由解释器逐条检查移动代码,再决定是否执行该条代码,及是否要将它放入沙盒中来限制它的运行。
3.病毒的预防和检测 对于病毒的威胁,最好的解决办法是预防。用户应该使用具有高安全性的操作系统,并使用从正规渠道进来的正版软件,对于来历不明的电子邮件不要轻易打开。另外,平时还必须定期对重要的软件和数据进行备份,这样即使发现病毒,也可以用备份来还原被感染的文件。.除了做好上述的预防工作外,还应当购买性能优良的反病毒软件,定期检查计算机系统。目前常用的反病毒软件中,病毒的检测方法主要有以下几种:
(1)基于病毒数据库的检测法。这种方法先用“诱饵文件”程序采集的病毒样本建立病毒数据库,在扫描计算机上的可执行文件时,将与病毒数据库中的样本进行比较,如发现有相同的再设法将它们清除。
(2)完整性检测法。这种方法先计算每个文件的检查和(或称校验和),然后再计算目录中所有相关文件的检查和,将所有这些检查和都写入一个检查和文件中,如果下次检测时重新计算出的检查和与原来文件中的检查和不匹配,则表明相应文件已被病毒感染。
1.安全模型 为了建立一个可信系统,首先需要根据系统对安全的需求和策略构建一个安全模型。目前比较常用的安全模型有访问矩阵模型和信息流控制(information flow control)模型。
(1)访问矩阵模型。访问矩阵模型也称为保护矩阵,系统中的每一个主体(用户)都拥有矩阵中的一行,每一个客体(如程序、文件或设备)都拥有矩阵中的一列, 矩阵中的交叉项用于表示某主体对某客体的存取权限集。
(2)信息流控制模型。信息流控制模型是对访问矩阵模型的补充,它用于监管信息在系统中流通的有效路径,控制信息流从一个实体沿着安全途径流向另一实体,如被广泛使用的Bell-La Padula 模型,它把信息分为内部级(U)、秘密级(C)、机密级(S)和绝密级(TS)四个安全等级,并对信息的流动做出了不能上读、不能下写的两项规定,另外还规定,进程可以读写对象,但不能相互直接通信,以保证模型的安全性。
2.可信计算基TCB(Trusted Computing Base) 可信系统的核心是最小的可信计算基TCB,其中包含了实施所有安全规则所必须的硬件和软件。一个典型的可信计算基在硬件方面与一-般计算机系统相似,只是少了些不影响安全性的I/O设备; TCB中配置了OS最核心的功能,如进程创建、进程切换、内存映射以及部分文件管理和设备管理功能,并且TCB完全独立于OS的其余部分。在TCB中还配置了一个安全核心数据库,在数据库内存放了许多与安全有关的信息,其中最主要的是描述系统的安全需求和策略的安全模型的信息。
TCB的一个重要组成部分是访问监视器,它利用安全核心数据库中存放的访问控制文件和信息流控制文件,对每次与安全有关的系统请求(如打开文件)进行仲裁。访问监视器具有以下特性:
(1)完全仲裁。对每一.次访问都实施安全规则,保证对主存、磁盘和磁带中数据的每一次访问,均须经由它们的控制。为了提高系统的速度,通常有一部分 功能由硬件实现。
(2)隔离。保证访问监视器和安全核心数据库的安全,任何攻击者都无法改变访问监视器的逻辑结构以及安全核心数据库中的内容。
(3)可证实性。访问监视器的正确性必须是可证明的,即在数学上可以证明访问监视器执行了安全规定,并提供了完全仲裁和隔离。
TCB被设计得非常小,比较容易做正确性验证,因此TCB软件自身是可信软件,而在此基础上建立的系统便可认为是一个可信系统。
3.设计安全操作系统的原则 【操作系统|【操作系统】知识梳理(十二)保护与安全】如何设计一个高安全性的OS,是当今人们面临的一种挑战。经过长期的努力,人们提出了若干设计安全OS的原则。
(1)微内核原则。采用微内核的结构来设计操作系统,易于保证内核的正确性,使其成为一个可信任计算基。
(2)策略与机制分离原则。在设计安全内核时采用策略与机制分离原则,以减小安全内核的大小和增加系统的灵活性。
(3)安全入口原则。为确保安全内核的安全,在安全内核与其他部分之间,只提供唯一的安全接口,凡是要进入安全内核进行访问者,都必须接受严格的安全检查。
(4)分离原则。采用物理分离、时间分离、密码分离和逻辑分离等方法将每个用户进程与所有其他用户进程分离开,以防止共享造成的威胁。
(5)部分硬件实现原则。软件实现较容易受到攻击和病毒的感染,因此,在安全内核中部分用硬件实现,可以增加安全性,而且还能提高处理速度。
(6)分层设计原则。一个安全的计算机系统至少由四层组成:最低层是硬件,次低层是安全内核,第三层是OS,最高层是用户。其中每一层又都可分为若干个层次。安全保护机制在满足要求的情况下,应力求简单一致, 并将它的一部分 放入到系统的安全内核中,把整个安全内核作为OS的底层,使其最接近硬件。
推荐阅读
- 运维|Linux目录结构nginx
- 网络|大并发下TCP内存消耗优化小记(86万并发业务正常服务)
- 网络|UDP/TCP通信小记
- 面试|程序员面试宝典(第4版)
- 嵌入式|嵌入式系统开发
- 操作系统|[译]HTTP/2的优先级
- linux|Linux的防火墙相关操作
- java|cocos2dx环境搭建
- 操作系统---线程(一)