首页 理论教育 身份认证和强制访问控制:安全机制的基础

身份认证和强制访问控制:安全机制的基础

时间:2023-11-06 理论教育 版权反馈
【摘要】:因此,身份认证机制成为大多数安全机制的基础。强制访问控制作为更强有力的安全保护方式,使用户不能通过意外事件和有意识的误操作逃避安全控制。

身份认证和强制访问控制:安全机制的基础

8.4.1 认证机制

身份认证是安全操作系统应具备的最基本功能,是用户欲进入系统访问资源或网络中通信双方在进行数据传输之前实施审查和证实身份的操作。因此,身份认证机制成为大多数安全机制的基础。身份认证可分为两种:内部和外部身份认证。外部身份认证涉及验证某用户是否是其宣称的。例如,某用户用一个用户名登录了某系统,此系统的外部身份认证机制将进行检查以证实此用户的登录确实是预想中拥有此用户名的用户。最简单的外部验证是赋予每个账号一个口令,账号可能是广为人知的,例如电子邮件地址,而口令则对不使用此账号的人员保密,此口令作为一个静态实体只能被此账号的拥有者或系统管理员改变。操作系统机制支持这种验证来确保不存在通过某隐蔽的方式绕过验证机制的可能。

内部身份认证机制确保某进程不能表现为除了它自身以外的进程。若没有内部验证,某用户可以创建一个看上去属于另一个用户的进程。从而即使是最高效的外部验证机制也会因为把这个用户的伪造进程看成另一个合法用户的进程而被轻易地绕过。

目前实现身份认证的技术主要包括:

(1)基于口令的认证。通过比较用户输入的口令与系统内部存储的口令是否一致来判断其身份。基于口令的认证简单灵活,是目前最常使用的一种认证方式,但由于口令容易泄漏,其安全性相对较差。

(2)基于生物特征的认证。通过计算机利用人体固有的生物特征来识别用户的真实身份。常用的生物特征包括虹膜指纹、声音、笔迹、脸像等。生物特征认证具有依附于人体、不易伪造、不易模仿等优势。

(3)基于密码学的认证。以网络为背景的认证技术的核心基础是密码学,对称密码和公开密码是实现用户身份识别的主要技术。

身份认证根据其实现方式的不同可以分为三类:单向认证(one-wayauthentication)、双向认证(two-wayauthentication)和信任的第三方认证(trustedthird-wayauthentication)。每一种实现方式又可以根据不同的需求采用对称密码或公开密码来实现。

单向认证是通信的一方认证另一方的身份,如服务器在提供用户申请的服务以前,先要认证用户是否是这项服务的合法用户,但是不需要向用户证明自己的身份。双向认证需要通信双方互相认证对方的身份。双方都要提供用户名和密码给对方,才能通过认证。信任的第三方认证也是一种通信双方相互认证的方式,但是认证过程必须借助于一个双方都能信任的第三方,一般而言可以是政府机构或其他可信赖的机构。

8.4.2 访问控制

访问控制技术是用来管理用户对系统资源的访问。包括以下三个任务:

(1)授权。确定可给予哪些主体访问客体的权力。

(2)确定访问权限(读、写、执行、删除、追加等访问方式的组合)。

(3)实施访问权限。

访问控制一般涉及自主访问控制和强制访问控制两种形式。

1.自主访问控制

自主访问控制是最常用的一类访问控制机制,用来决定一个用户是否有权访问一些特定客体的一种访问约束机制。在自主访问控制机制下,文件的拥有者可以按照自己的意愿精确指定系统中的其他用户对其文件的访问权。另外,自主也指对其他具有授予某种访问权力的用户能够自主地(可能是间接的)将访问权或访问权的某个子集授予另外的用户。UNIX、LINUX以及Windows等操作系统都提供自主访问控制的功能。

在自主访问控制系统中,特权用户为普通用户分配的访问权限信息主要以访问控制表(access control list,ACL)、访问控制能力表(access control capability lists,ACCL)、访问控制矩阵(access control matrix,ACM)三种形式来存储。

ACL是以客体为中心建立的访问权限表,其优点在于实现简单,系统为每个客体确定一个授权主体的列表,大多数PC、服务器和主机都使用ACL作为访问控制的实现机制。图8-1为ACL示例。其中,R表示读操作,W表示写操作,Own表示管理操作。例如,对客体1,乙只有读取权限,丙则有读/写操作的权限。

图8-2为ACCL示例。ACCL是以主体为中心建立的访问权限表。在这个例子中,甲被赋予一定的访问控制能力,其具有的权限包括:对客体1拥有的访问权限集合为{Own,R,W},对客体2拥有只读权限{R},对客体3拥有读和写的权限{R,W}。

ACM是通过矩阵形式表示主体用户和客体资源之间的授权关系的方法。表8-1为ACM示例。采用二维表的形式来存储访问控制策略,每一行为一个主体的访问能力描述,每一列为一个客体的访问控制描述,整个矩阵可以清晰地体现出访问控制策略。但如果主体和客体很多,那么ACM将会成几何级数增长,对于增长了的矩阵而言,会有大量的冗余空间,如主体丙和客体之间没有访问关系,但也存在着授权关系项。

图8-1 ACL示例

图8-2 ACCL示例

表8-1 ACM示例(www.xing528.com)

2.强制访问控制

在强制访问控制机制下,系统中的每个进程、每个文件、每个客体(消息队列、信号量集合和共享存储区)都被赋予相应的安全属性,这些安全属性是不能改变的,它由管理部门(如安全管理员)或由操作系统自动地按照严格的规则来设置,不像访问控制表由用户或程序直接或间接地修改。当一个进程访问一个客体时,调用强制访问控制机制,根据进程的安全属性和访问方式,比较进程的安全属性和客体的安全属性,从而确定是否允许进程对客体的访问。强制访问控制作为更强有力的安全保护方式,使用户不能通过意外事件和有意识的误操作逃避安全控制。因此强制访问控制用于将系统中的信息分密级和类进行管理,适用于政府部门、军事金融领域

强制访问控制已经在许多基于安全内核的系统中得以实现,并转换到许多非内核化的操作系统中,包括Honeywell的Multics、DEC的SES/VMS以及Sperry公司的1100操作系统。

8.4.3 加密机制

加密是将信息编码成像密文一样难解形式的技术。加密的关键是要能高效地建立从根本上不可能被未授权用户解密的加密算法,以提高信息系统及数据的安全性和保密性,防止保密数据被窃取与泄密。图8-3为数据加密的一般模型。可以看出发送方意图将信息传递给接收方,为了保证安全,使用加密密钥将明文加密成密文,以密文的形式通过公共信道传输给接收方,接收方接收到密文后需要使用解密密钥将密文解密成明文,才能正确理解。破译者虽然可以在公共信道上得到密文,但不能理解其内容,即无法解密密文。在加密过程和解密过程中的两个密钥可以相同,也可以不同。在一个密码系统中除了解密密钥外,其余的加/解密算法等都是公开的。一个密码体制安全的必要条件是穷举密钥搜索是不可行的,即密钥空间非常大。

图8-3 数据加密模型

1.加解密算法分类

根据不同的分类标准,密码体制有以下三种常用的分类。

根据密钥的使用方式不同,可分为对称密钥体制和非对称密码体制(也称为公钥密码体制)。对称密码体制就是用于加密数据的密钥和用于解密数据的密钥相同,或两者之间存在着某种明确的数学关系。绝大多数的对称加密算法加密密钥和解密密钥都是相同的。对称加密算法要求通信双方在建立安全信道之前,约定好所使用的密钥。其安全性完全决定于密钥的安全。最广泛使用的是DES算法。非对称加密算法是指用于加密的密钥与用于解密的密钥是不同的,而且从加密的密钥无法推导出解密的密钥。加密密钥公之于众,谁都可以使用,又被称为公钥;而解密密钥只有解密人自己知道,又被称为私钥。最广泛使用的一种是RSA算法。

根据对明文和密文的处理方式和密钥的使用不同,可将密码体制分成分组密码和序列密码体制。分组密码每次加密一个明文块,序列密码每次加密一个位或一个字符。根据加密算法在使用过程中是否变化,可将密码体制分成固定算法密码体制和变化算法密码体制。

2.经典密码算法

经典密码采用的两种基本的技术,分别为代换技术和置换技术。现代加密算法大多是综合应用这两种技术来实现的,但基于的数学基础更加复杂。

代换是将明文字母替换成其他字母、数字或符号的方法。有四种类型的代换密码:

(1)简单代换密码(或单字母密码)。将明文的一个字符用相应的一个密文字符代替。

(2)多名码代换密码。与简单代换密码系统相似,唯一的不同是单个字符明文可以映射成密文的几个字符之一,如A可能对应于5、13、25或56,B可能对应于7、19、31或42等。

(3)字母代换密码。字符块被成组加密,如ABA可能对应于RTQ,ABB可能对应于SLL等。

(4)多表代换密码。由多个简单的代换密码构成,如可能有5个被使用的不同的简单代替密码,单独的一个字符用来改变明文的每个字符的位置。

置换技术中,明文的字母保持相同,但顺序被打乱。例如,纵行换位密码中,明文以固定的宽度水平地写在一张图表纸上,密文按垂直方向读出,解密时将密文按相同的宽度垂直地写在图表纸上,然后水平地读出明文。

8.4.4 审计机制

一个系统的安全审计就是对系统中有关安全的活动进行记录、检查及审核。它的主要目的就是检测和阻止非法用户对计算机系统的入侵,并显示合法用法的误操作。审计作为一种事后追查的手段来保证系统的安全,它对涉及系统安全的操作做一个完整的记录。审计为系统进行事故原因的查询、定位,事故发生前的预测、报警以及事故发生之后的实时处理提供详细、可靠的依据和支持,以备有违反系统安全规则的事件发生后能够有效地追查事件发生的地点和过程以及责任人。因此,审计是操作系统安全的一个重要方面。

审计事件是系统审计用户操作的最基本单位。系统将所有要求审计或可以审计的用户动作都归纳成一个个可区分、可识别、可标志用户行为和可记录的审计单位,即审计事件。审计机制一般对系统定义了一个固定审计事件集,即必须审计事件的集合。对用户来讲,系统可以通过设置来要求审计哪些事件,即用户事件标准。用户的操作处于系统监视之下,一旦其行为落入其用户事件集或系统固定审计事件集中,系统就会将这一信息记录下来。否则系统将不对该事件进行审计。

显然,审计过程会增大系统的开销,如果设置的审计事件过多,势必使系统的性能相应地下降很多,所以在实际设置中,审计机制应选择最主要的事件加以审计,不能设置太多的审计事件,以免过多影响系统性能。系统审计员可以通过设置审计事件标准,确定对系统中哪些用户或哪些事件进行审计,审计的结果存放于审计日志文件中,审计的结果也可以按要求的报表形式打印出来。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈