翻译:中国科学技术大学信息安全专业老师 第一部分基础知识 第一章准备 在对计算机安全进行有针对性的讨论之前,我们必须先定义这个研究领域,必须有一些通用的准则来帮助我们 将今天可能遇到的大量概念和安全机制进行分类整理。因此,我们的第一项任务就是要寻找“计算机安全”的定义。 为避免孤立地讨论一个个单独的安全系统,我们将提出一组通用的工程性原则,这组原则可用于指导安全的信息处 理系统的设计。我们鼓励大家在阅读本书时,时刻留心书中所介绍的各类安全系统中的这些原则 「标 ■提出计算机安全的一种定义,介绍机密性、完整性和可用性 解释计算机安全最根本的一个两难处境。 简述在构造安全系统时通常必须做出的一些设计决定 ■指出计算机安全机制必须依赖于有效的物理或机构保护措施。 1.1定义 按照一种良好的学术传统,我们将通过定义我们的研究目标来开始我们的研究,至少我们会努力这么做。计算 机安全研究在计算机系统中维护安全所使用的技术。我们不打算去区分计算机系统(不确切地说,内有处理器和存 储器的装置)和信息技术(IT)系统(不确切地说,紧密耦合的计算机系统网络),因为随着技术的不断飞速发展 现代的计算机已经是一种由各部件紧密耦合而成的网络了,曾经是应用程序的软件也可能成为操作系统的一部分。 web浏览器就是当前这种趋势的一个鲜明例子,在你机器上运行的软件不需要存储在你的机器上,它可以来自于 个本地服务器,或者甚至来自于 Internet上的一个web服务器。因此,你可以将“计算机安全”和“IT安全”作为 同义词来使用,而不会引起太多的误解 乍一看,计算机安全好象是一个相当显而易见的概念。然而不幸的是,安全属于这样一类概念,当你试图讲清 楚它的确切含义的时候,它似乎离显而易见越来越远了。在起草计算机安全的定义以及随后对这些定义进行修正方 面已经做了大量的努力。但是这些文档的编写者几乎无一例外地都被批评为眼光过于狭窄,或过多地介入了从严格 意义上来说不属于计算机安全的一些计算机科学领域 111安全 安全是关于财产的保护。这个定义意味着你必须知道你的财产和它们的价值。这种带有普遍性的看法当然也适 用于计算机安全,因此风险分析也是综合性的信息安全策略的一部分。但是,这个话题不在本书的范围之内,本书 的重点在于保护措施。对保护措施的一种大致的分类如下 ■预防:采取措施防止你的财产遭到破坏。 ■发现:采取措施使你能够发觉什么时候财产被破坏了,它是怎么被破坏的,以及是谁造成的破坏。 ■反应:采取措施使你能够重新获得财产,或者使财产从破坏中恢复。 为了说明这一点,考虑你家中贵重物品的保护 ■预防:门窗上的锁,使盗贼难以闯入你家:保护家产的墙,或者在中世纪可以増加另一层保护,就是城堡的 护城河。 ■发现:当某样东西不在那儿了,你将会发现它被偷了;当入室事件发生时报警器响了(希望如此);闭路电 视提供的信息可以确定入侵者。 ■反应:你可以打电话报警:你可能决定替换被偷的物品:警察可能追回被偷的物品并送还给你 来自物理世界的例子有助于解释计算机安全的原则,然而,将物理安全与计算机安全进行类比并不总是可能的 或是可取的,事实上,有些术语应用于信息技术环境时很容易引起误解。举一个与我们讨论的领域有密切关系的例 子,考虑使用信用卡号码在 Internet上购物。一个骗子可能使用你的信用卡号码购物,而费用从你卡上扣除。你怎 么来保护你自己呢? ■预防:下订单时使用密码;依靠贸易商行在接受信用卡购物订单前对购物者进行某些检査;不要在 Internet 上使用你的卡号。 ■发现: 项你没有授权的交易出现在你的信用卡帐单上。 第1页共36页创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 1 页 共 36 页 创建日期:2003-11 第一部分 基础知识 第一章 准 备 在对计算机安全进行有针对性的讨论之前,我们必须先定义这个研究领域,必须有一些通用的准则来帮助我们 将今天可能遇到的大量概念和安全机制进行分类整理。因此,我们的第一项任务就是要寻找“计算机安全”的定义。 为避免孤立地讨论一个个单独的安全系统,我们将提出一组通用的工程性原则,这组原则可用于指导安全的信息处 理系统的设计。我们鼓励大家在阅读本书时,时刻留心书中所介绍的各类安全系统中的这些原则。 目标 ■提出计算机安全的一种定义,介绍机密性、完整性和可用性。 ■解释计算机安全最根本的一个两难处境。 ■简述在构造安全系统时通常必须做出的一些设计决定。 ■指出计算机安全机制必须依赖于有效的物理或机构保护措施。 1.1 定义 按照一种良好的学术传统,我们将通过定义我们的研究目标来开始我们的研究,至少我们会努力这么做。计算 机安全研究在计算机系统中维护安全所使用的技术。我们不打算去区分计算机系统(不确切地说,内有处理器和存 储器的装置)和信息技术(IT)系统(不确切地说,紧密耦合的计算机系统网络),因为随着技术的不断飞速发展, 现代的计算机已经是一种由各部件紧密耦合而成的网络了,曾经是应用程序的软件也可能成为操作系统的一部分。 Web 浏览器就是当前这种趋势的一个鲜明例子,在你机器上运行的软件不需要存储在你的机器上,它可以来自于一 个本地服务器,或者甚至来自于 Internet 上的一个 web 服务器。因此,你可以将“计算机安全”和“IT 安全”作为 同义词来使用,而不会引起太多的误解。 乍一看,计算机安全好象是一个相当显而易见的概念。然而不幸的是,安全属于这样一类概念,当你试图讲清 楚它的确切含义的时候,它似乎离显而易见越来越远了。在起草计算机安全的定义以及随后对这些定义进行修正方 面已经做了大量的努力。但是这些文档的编写者几乎无一例外地都被批评为眼光过于狭窄,或过多地介入了从严格 意义上来说不属于计算机安全的一些计算机科学领域。 1.1.1 安全 安全是关于财产的保护。这个定义意味着你必须知道你的财产和它们的价值。这种带有普遍性的看法当然也适 用于计算机安全,因此风险分析也是综合性的信息安全策略的一部分。但是,这个话题不在本书的范围之内,本书 的重点在于保护措施。对保护措施的一种大致的分类如下: ■预防:采取措施防止你的财产遭到破坏。 ■发现:采取措施使你能够发觉什么时候财产被破坏了,它是怎么被破坏的,以及是谁造成的破坏。 ■反应:采取措施使你能够重新获得财产,或者使财产从破坏中恢复。 为了说明这一点,考虑你家中贵重物品的保护。 ■预防:门窗上的锁,使盗贼难以闯入你家;保护家产的墙,或者在中世纪可以增加另一层保护,就是城堡的 护城河。 ■发现:当某样东西不在那儿了,你将会发现它被偷了;当入室事件发生时报警器响了(希望如此);闭路电 视提供的信息可以确定入侵者。 ■反应:你可以打电话报警;你可能决定替换被偷的物品;警察可能追回被偷的物品并送还给你。 来自物理世界的例子有助于解释计算机安全的原则,然而,将物理安全与计算机安全进行类比并不总是可能的 或是可取的,事实上,有些术语应用于信息技术环境时很容易引起误解。举一个与我们讨论的领域有密切关系的例 子,考虑使用信用卡号码在 Internet 上购物。一个骗子可能使用你的信用卡号码购物,而费用从你卡上扣除。你怎 么来保护你自己呢? ■预防:下订单时使用密码;依靠贸易商行在接受信用卡购物订单前对购物者进行某些检查;不要在 Internet 上使用你的卡号。 ■发现: 一项你没有授权的交易出现在你的信用卡帐单上
翻译:中国科学技术大学信息安全专业老师 ■反应:你可以申请一个新的卡号:欺诈交易的损失可以由持卡人、骗子购物的商行或者信用卡的发行商承担。 在这个例子中,骗子“窃取”了你的卡号,但你依然持有这张卡,这和你的卡被盗的情况是不同的。因此在某 些法律框架下,比如在英国,骗子不能被起诉为盗窃你的信用卡卡号。必须制定新的律法来解决这个新的问题。 考虑保护机密信息的选择,我们继续关于保护问题的讨论。有可能仅当秘密被揭露时你才发现已经泄密了,而 在某些情况下,损失是无法挽回的。你的竞争对手可能已经得到了你耗费数年功夫完成的产品设计,在你之前占领 了市场,并获取了全部的利润,而你却歇业了。在这种情形下,预防是唯一的选择。这也解释了为什么历来计算机 安全相当重视对机密信息泄露的预防。 12计算机安全 为了首先获得计算机安全的概念,我们分析一下信息财富是如何受到损害的。最常给出的定义包括以下三个方 ■机密性( confidentiality):防止未经授权的信息透露 完整性( ntegrity):防止未经授权的信息修改 ■可用性( Availability):防止未经授权的信息或资源截留。 读者可以立即就这些话题的优先顺序展开讨论,并且给出一个重新排序的例子。或者读者可以论证说这个列表 不完整——因为列表永远不会完整——并再增加一些内容,比如读者关心通信,可以增加真实性(可靠性 authenticity),若感兴趣电子商务类应用,则可以增加可审计性 accountability) 即使在这样一般的层次上,你仍会发现对于某些安全方面的精确定义有不同意见。因此,我们通常会给出定义 的出处,这样定义的背景就比较清楚了。象美国可信赖计算机系统评价标准(橙皮书12])、欧洲信息技术安全评 价标准( ITSEC[1])和加拿大可信赖计算机产品评价标准( CTCPEC[l50)等,就是安全评价标准(第9章)的 主要来源。上面的定义就出自 ITSEC 113机密性 历史上,安全和保密是紧密联系在一起的。即使在今天,许多人仍然觉得计算机安全的主要目的是阻止未授权 的用户阅读敏感信息。更一般地说,未授权的用户不应该获悉敏感信息。机密性(隐私,机密)即要解决计算机安 全的这个方面的问题。术语“隐私”@ privacy)和“机密”( (secrecy)有时候用来区分个人数据的保护(隐私)和机构 数据的保护(机密)。机密性概念已经被很好地定义了,并且计算机安全中的研究通常集中在这个题目上,因为最 起码它提出了与物理安全不相类似的新问题。有时候安全性( security)和机密性( confidentiality)甚至被用作同义词 在一个纸质文档的世界中,控制对一个文档的访问是很简单的,你只要列出那些允许阅读这个文档的人就可以 了。然而稍微有些不同的是,计算机安全为实现机密性还必须控制写操作。读者将在42节看到更多有关这方面的 内容。 1.14完整性 很难给出一个简洁的完整性定义。一般来说,完整性是要确保每个事物保持它该有的状态。(很抱歉给出这样 个毫无帮助的但却反映了现实的定义。)在计算机安全的范围内,我们可能会满足于这样一个定义,即完整性研 究如何防范未授权的写操作。按照这种解释,完整性是双重机密性,而我们可以指望用类似的技术来同时达到两个 目的。 然而,更进一步的问题象“被授权做某人做的事”和“遵循正确的程序”也已经被包含进完整性术语中。 Clark 和Wlon在他们的颇有影响力的论文32]中采用了这个方法,该论文声称完整性就是这样一种特性: 完整性系统中的任何用户,即使被授权,也不允许以一种会使得公司的资产或帐目记录丢失或被讹误的方式 来修改数据项 如果将完整性与防止所有未授权的行为等同起来,则机密性就成为了完整性的一部分。 迄今为止,我们是通过指出必须控制的用户行为来确定安全性问题。从系统的观点来看,在定义完整性时最好 把注意力集中在系统状态上。橙皮书中关于数据完整性的定义正好就是这种类型的: 数据完整性当被计算机处理的数据与源文件中的数据一样,且没有受到意外的或恶意的修改或破坏时所呈现 的状态 在这里,完整性是外部一致性的同义词。存储在计算机系统中的数据应当正确地反映计算机系统外的某些事实 非常理想的当然是存储在任何计算机系统中的信息都正确地反映事实,然而,仅靠计算机系统内部的机制来保证这 个特性是不可能的。 第2页共36 创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 2 页 共 36 页 创建日期:2003-11 ■反应:你可以申请一个新的卡号;欺诈交易的损失可以由持卡人、骗子购物的商行或者信用卡的发行商承担。 在这个例子中,骗子“窃取”了你的卡号,但你依然持有这张卡,这和你的卡被盗的情况是不同的。因此在某 些法律框架下,比如在英国,骗子不能被起诉为盗窃你的信用卡卡号。必须制定新的律法来解决这个新的问题。 考虑保护机密信息的选择,我们继续关于保护问题的讨论。有可能仅当秘密被揭露时你才发现已经泄密了,而 在某些情况下,损失是无法挽回的。你的竞争对手可能已经得到了你耗费数年功夫完成的产品设计,在你之前占领 了市场,并获取了全部的利润,而你却歇业了。在这种情形下,预防是唯一的选择。这也解释了为什么历来计算机 安全相当重视对机密信息泄露的预防。 1.1.2 计算机安全 为了首先获得计算机安全的概念,我们分析一下信息财富是如何受到损害的。最常给出的定义包括以下三个方 面: ■机密性(Confidentiality):防止未经授权的信息透露。 ■完整性(Integrity):防止未经授权的信息修改。 ■可用性(Availability):防止未经授权的信息或资源截留。 读者可以立即就这些话题的优先顺序展开讨论,并且给出一个重新排序的例子。或者读者可以论证说这个列表 不完整——因为列表永远不会完整——并再增加一些内容,比如读者关心通信,可以增加真实性(可靠性, authenticity),若感兴趣电子商务类应用,则可以增加可审计性(accountability)。 即使在这样一般的层次上,你仍会发现对于某些安全方面的精确定义有不同意见。因此,我们通常会给出定义 的出处,这样定义的背景就比较清楚了。象美国可信赖计算机系统评价标准(橙皮书[112])、欧洲信息技术安全评 价标准(ITSEC[117])和加拿大可信赖计算机产品评价标准(CTCPEC[150])等,就是安全评价标准(第 9 章)的 主要来源。上面的定义就出自 ITSEC。 1.1.3 机密性 历史上,安全和保密是紧密联系在一起的。即使在今天,许多人仍然觉得计算机安全的主要目的是阻止未授权 的用户阅读敏感信息。更一般地说,未授权的用户不应该获悉敏感信息。机密性(隐私,机密)即要解决计算机安 全的这个方面的问题。术语“隐私”(privacy)和“机密”(secrecy)有时候用来区分个人数据的保护(隐私)和机构 数据的保护(机密)。机密性概念已经被很好地定义了,并且计算机安全中的研究通常集中在这个题目上,因为最 起码它提出了与物理安全不相类似的新问题。有时候安全性(security)和机密性(confidentiality)甚至被用作同义词。 在一个纸质文档的世界中,控制对一个文档的访问是很简单的,你只要列出那些允许阅读这个文档的人就可以 了。然而稍微有些不同的是,计算机安全为实现机密性还必须控制写操作。读者将在 4.2 节看到更多有关这方面的 内容。 1.1.4 完整性 很难给出一个简洁的完整性定义。一般来说,完整性是要确保每个事物保持它该有的状态。(很抱歉给出这样 一个毫无帮助的但却反映了现实的定义。)在计算机安全的范围内,我们可能会满足于这样一个定义,即完整性研 究如何防范未授权的写操作。按照这种解释,完整性是双重机密性,而我们可以指望用类似的技术来同时达到两个 目的。 然而,更进一步的问题象“被授权做某人做的事”和“遵循正确的程序”也已经被包含进完整性术语中。Clark 和 Wilson 在他们的颇有影响力的论文[32]中采用了这个方法,该论文声称完整性就是这样一种特性: 完整性 系统中的任何用户,即使被授权,也不允许以一种会使得公司的资产或帐目记录丢失或被讹误的方式 来修改数据项。 如果将完整性与防止所有未授权的行为等同起来,则机密性就成为了完整性的一部分。 迄今为止,我们是通过指出必须控制的用户行为来确定安全性问题。从系统的观点来看,在定义完整性时最好 把注意力集中在系统状态上。橙皮书中关于数据完整性的定义正好就是这种类型的: 数据完整性 当被计算机处理的数据与源文件中的数据一样,且没有受到意外的或恶意的修改或破坏时所呈现 的状态。 在这里,完整性是外部一致性的同义词。存储在计算机系统中的数据应当正确地反映计算机系统外的某些事实。 非常理想的当然是存储在任何计算机系统中的信息都正确地反映事实,然而,仅靠计算机系统内部的机制来保证这 个特性是不可能的
翻译:中国科学技术大学信息安全专业老师 更为混乱的是,信息安全的其他领域有它们自己关于完整性的概念。比如,在通信安全中,完整性是指: 对因蓄意操作或随机的传输错误而引起的传输数据的修改、插入、删除或重放而进行 的检测和纠正 当没有人被授权进行修改时,你可以把有意的修改看作是未授权修改的一种特殊情形。但是,采取这种观点并 没有多大帮助,因为授权体系的有或无对于需要解决的问题的本质以及相应的安全机制都有影响。 完整性通常是其他安全特性的先决条件。比如,攻击者可能试图通过修改操作系统或操作系统引用的访问控制 列表来挫败机密性控制。因此,我们必须保护操作系统的完整性或者访问控制列表的完整性来实现机密性。 最后,我们应当注意的是还有更一般的完整性定义,它把安全性和可用性都当作是完整性的一部分 15可用性 我们采用 CTCPEC中给出的定义: 可用性产品的服务在需要时不经太多延迟即可使用的特性。 国际标准ISO7498-2[51],通信安全的 ISO/OSI安全体系结构,给出了几乎相同的定义: 可用性需要时可被一个授权实体访问和使用的特性 可用性是超出传统的计算机安全范围的一个非常令人关注的问题。用于改善可用性的工程技术来自于其他领 域,象容错计算。在安全领域,我们想要保证的是,恶意的攻击者不能阻止合法用户合法访问他们的系统。也就是 说,我们希望防止拒绝服务( denial of service)。对此,我们引用ISO7498-2的定义: 拒绝服务 阻止对资源的授权访问或者延误时间关键性的操作 近来,因特网上已经出现了洪泛攻击 flooding attacks)的事件,攻击者用大量的连接请求淹没服务器,从而有效 地使服务器瘫痪。在许多情形下,可用性可能是计算机安全最重要的特性,但处理这类问题的安全机制却是特别缺 乏。事实上,限制太多的安全机制本身就可能导致拒绝服务。 116可审计性 现在我们已经讨论了计算机安全的三个传统领域。回想一下,你可以看到它们都研究了访问控制的不同方面 并且把重点放在了预防令人讨厌的事件上面。我们必须接受这样的事实,即我们几乎从来都无法防止所有不正确的 行为。首先,我们可能会发现授权行为可以导致安全违背:其次,我们可能会在我们的安全系统中发现一个缺陷, 使得攻击者可以找到绕过我们的控制的办法。因此,你可能需要在你的安全列表中加入新的安全要求。用户应当为 他们的行为负责,这个要求在正在出现的电子商务世界中尤为重要,而你已经能在象橙皮书这样历史性的文档中找 到它了 可审计性审计信息必须有选择地保存和保护,以便影响安全的行为可以被追溯到责任方 为了做到这一点,系统必须识别和认证用户,必须保存一份安全相关事件的审计记录。如果发生了安全违背事 件,审计记录中的信息可以帮助确认作恶者,以及作恶者损害系统所采取的步骤。 17可靠性和安全性( Safety)(安全(保险),安全,安全措施 在进行安全性( security)讨论时,还必须提及计算的其他领域,象可靠性,它涉及(意外)故障,和安全性( safety 它涉及系统故障对环境的影响,也涉及到系统在不利条件下必须正确运行的情形。 提及这些领域的原因之一是概念上有重叠。依你首选的观点而定,安全性( security)可以是可靠性的一个方面, 或者反之亦然。 IFIP WG104试图避免这种两难的处境,它引入可信任性( dependability)作为一个统一的概念 并将安全性( securIty)、可靠性、完整性和可用性当作可信任性的各个方面。 可信任性( Dependability,可靠性(强度,坚固度),相依性,依赖性)指计算机系统的这样一种性质,它使得系统 提供的服务有理由被信任。这里,系统提供的服务就是它的用户所能感知到的它的行为:用户是与系统相互作用的 另一个系统(物质,人)。 原因之二是有些应用必须同时解决多个问题。比如,考虑安全紧要( safety-critical)应用中的一个计算机系统 有时系统用户必须对紧急事件作出反应,安全( security)控制应当防止入侵者恶意造成意外事故。入侵检测系统试 图通过寻找陌生的行为模式来识别攻击,对紧急事件的反应有时候看上去也是陌生的—但愿紧急事件很少发生 -因此入侵检测可能会将紧急情况下的合法行为误解为攻击,并启动安全( securIty)机制,这可能会把问题搞糟, 因为安全( security)机制会干扰应急人员的行动。一般来说,你不能孤立地解决安全性( security)的问题,而不 考虑你想要保护的应用的其他要求 最后,应用于这两个领域的工程方法是类似的。比如,评价安全( security)软件的标准和评价安全紧要 第3页共36页创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 3 页 共 36 页 创建日期:2003-11 更为混乱的是,信息安全的其他领域有它们自己关于完整性的概念。比如,在通信安全中,完整性是指: 对因蓄意操作或随机的传输错误而引起的传输数据的修改、插入、删除或重放而进行 的检测和纠正。 当没有人被授权进行修改时,你可以把有意的修改看作是未授权修改的一种特殊情形。但是,采取这种观点并 没有多大帮助,因为授权体系的有或无对于需要解决的问题的本质以及相应的安全机制都有影响。 完整性通常是其他安全特性的先决条件。比如,攻击者可能试图通过修改操作系统或操作系统引用的访问控制 列表来挫败机密性控制。因此,我们必须保护操作系统的完整性或者访问控制列表的完整性来实现机密性。 最后,我们应当注意的是还有更一般的完整性定义,它把安全性和可用性都当作是完整性的一部分。 1.1.5 可用性 我们采用 CTCPEC 中给出的定义: 可用性 产品的服务在需要时不经太多延迟即可使用的特性。 国际标准 ISO 7498-2[51],通信安全的 ISO/OSI 安全体系结构,给出了几乎相同的定义: 可用性 需要时可被一个授权实体访问和使用的特性。 可用性是超出传统的计算机安全范围的一个非常令人关注的问题。用于改善可用性的工程技术来自于其他领 域,象容错计算。在安全领域,我们想要保证的是,恶意的攻击者不能阻止合法用户合法访问他们的系统。也就是 说,我们希望防止拒绝服务(denial of service)。对此,我们引用 ISO 7498-2 的定义: 拒绝服务 阻止对资源的授权访问或者延误时间关键性的操作。 近来,因特网上已经出现了洪泛攻击(flooding attacks)的事件,攻击者用大量的连接请求淹没服务器,从而有效 地使服务器瘫痪。在许多情形下,可用性可能是计算机安全最重要的特性,但处理这类问题的安全机制却是特别缺 乏。事实上,限制太多的安全机制本身就可能导致拒绝服务。 1.1.6 可审计性 现在我们已经讨论了计算机安全的三个传统领域。回想一下,你可以看到它们都研究了访问控制的不同方面, 并且把重点放在了预防令人讨厌的事件上面。我们必须接受这样的事实,即我们几乎从来都无法防止所有不正确的 行为。首先,我们可能会发现授权行为可以导致安全违背;其次,我们可能会在我们的安全系统中发现一个缺陷, 使得攻击者可以找到绕过我们的控制的办法。因此,你可能需要在你的安全列表中加入新的安全要求。用户应当为 他们的行为负责,这个要求在正在出现的电子商务世界中尤为重要,而你已经能在象橙皮书这样历史性的文档中找 到它了: 可审计性 审计信息必须有选择地保存和保护,以便影响安全的行为可以被追溯到责任方。 为了做到这一点,系统必须识别和认证用户,必须保存一份安全相关事件的审计记录。如果发生了安全违背事 件,审计记录中的信息可以帮助确认作恶者,以及作恶者损害系统所采取的步骤。 1.1.7 可靠性和安全性(Safety)(安全(保险),安全,安全措施) 在进行安全性(security)讨论时,还必须提及计算的其他领域,象可靠性,它涉及(意外)故障,和安全性(safety), 它涉及系统故障对环境的影响,也涉及到系统在不利条件下必须正确运行的情形。 提及这些领域的原因之一是概念上有重叠。依你首选的观点而定,安全性(security)可以是可靠性的一个方面, 或者反之亦然。IFIP WG 10.4 试图避免这种两难的处境,它引入可信任性(dependability)作为一个统一的概念, 并将安全性(security)、可靠性、完整性和可用性当作可信任性的各个方面。 可信任性(Dependability,可靠性(强度,坚固度),相依性,依赖性) 指计算机系统的这样一种性质,它使得系统 提供的服务有理由被信任。这里,系统提供的服务就是它的用户所能感知到的它的行为;用户是与系统相互作用的 另一个系统(物质,人)。 原因之二是有些应用必须同时解决多个问题。比如,考虑安全紧要(safety-critical)应用中的一个计算机系统。 有时系统用户必须对紧急事件作出反应,安全(security)控制应当防止入侵者恶意造成意外事故。入侵检测系统试 图通过寻找陌生的行为模式来识别攻击,对紧急事件的反应有时候看上去也是陌生的——但愿紧急事件很少发生 ——因此入侵检测可能会将紧急情况下的合法行为误解为攻击,并启动安全(security)机制,这可能会把问题搞糟, 因为安全(security)机制会干扰应急人员的行动。一般来说,你不能孤立地解决安全性(security)的问题,而不 考虑你想要保护的应用的其他要求。 最后,应用于这两个领域的工程方法是类似的。比如,评价安全(security)软件的标准和评价安全紧要
翻译:中国科学技术大学信息安全专业老师 ( safety-critical)软件的标准有许多相似之处,有些安全专家希望最终将只有一个标准 118我们的计算机安全定义 在本书中,我们将采用以下的计算机安全定义: 计算机安全计算机安全研究如何预防和检测计算机系统用户的非授权行为 正确授和访问控制这两个概念对于本定义是至关重要的。正确授权假设存在一个安全策略,即一组声明什么 行为是允许的和什么行为是禁止的规则。安全策略域即是由策略所控制的用户、数据客体、机器等实体组成的集合。 你可以将纠正不正确行为的影响包括到安全定义中,但这个方面对于我们进一步的讨论作用不大 从对术语的初步讨论得出的主要结论是: 1.不存在单一的安全定义 2.当你阅读文档时,注意不要将你自己的安全概念与文档中使用的概念相混淆: 3.大量的时间正被花费(和浪费)在试图定义明确的安全概念上 12计算机安全最根本的两难处境 随着依赖计算机安全的用户数量从处理机密数据的少数公司发展到与因特网相连的每个人,人们对计算机安全 的需求已经发生了巨大的变化。最起码,这种变化已经导致了一种根本性的两难处境的出现: 不懂安全的用户有特殊的安全需求,却常常不具备安全的专门知识。 这种两难处境在当前的安全评估策略中是显而易见的。通俗地说,安全评估检查产品是否提供了它所承诺的安 全服务。因此,必须规定安全系统的功能,我们需要确保安全控制是有效的,并且能够抵抗滲透的企图 橙皮书是第一本评估安全产品(操作系统)的指南,在计算机安全的发展中有着巨大的影响力。在橙皮书中 功能性和κ诺( assurance,(质量)保证,担保)被捆绑成预定义的类,用户只能从这个固定的菜单中选择。许多提 供商还通过给出产品的橙皮书分类来说明产品的安全等级。但是橙皮书相当刻板,并且在解决计算机网络和数据库 管理系统的安全评估上还不是非常成功。因此,迫切要求有一套更灵活的标准集。 ITSEC适应了这种需要,它将功能性和承诺分开,以便规定特定的评估目标( targets of evaluation,TOE)。不懂 安全的用户现在只要搞清楚特定的TOEs,并且针对不同的TOEs去比较被评估的产品 计算机安全的这个两难处境会以不同的形式出现,解决它是目前计算机安全中最为紧迫的挑战。不足为怪的是 这个难题不存在简单的答案 同这个根本性的两难处境相比较,安全与易于使用之间的冲突采用了简单的工程上的折衷。安全对性能的影响 是多方面的 ■安全机制需要额外的计算资源,这个代价容易被量化 ■安全干扰用户熟悉的工作模式,繁琐或不合适的安全限制导致生产力的浪费。 ■必须花费精力去管理安全,因此安全系统的购买者经常选择具有最好的图形用户界面的产品。 安全是一种需要论证的代价。评估没有安全的代价属于风险分析的范围,风险分析是安全管理的一个重要方面, 但它不在本书讨论的范围内 13数据对信息 计算机安全是关于控制对信息和资源的访问。然而,控制对信息的访问有时是很难描述的,因此常常用更加直 截了当的目标,即控制对数据的访问来代替。数据和信息之间的区别是很微妙的,但它也是计算机安全中某些更加 困难的问题的根源。数括代表了信息,信息是数据的(主观)解释 数据依照约定所选择的用来表现我们概念上和真实世界中某些方面的物理现象。我们赋予数据的含意称 为信息。数据用来传输和存储信息,以及依照形式化规则处理数据之后获取新的信息[24]。 当信息和相应的数据之间存在紧密联系时,这两种方法可能会产生非常相似的结果。但事情并不总是这样的。 将信息通过一个隐蔽信道(见4,24)传输是可能的,在这里,数据是对访问请求的“是”或“否”的回答,而收 到的信息却是一个敏感文件的内容。另一个例子是统计数据库的推理( inference)问题(见144)。我们来扼要地 看一下这个问题,考虑一个纳税申报单的国内税收数据库,这个数据库不仅被税务稽查员使用(他们访问个人记录), 也被财政部官员使用以便进行总体规划。财政部官员必须能够访问纳税申报单的统计概要,但是没有权利访问个人 记录。假定数据库管理系统仅允许对足够大的数据集进行统计查询以保护个人数据,但是仍然可能对两个仅相差一 条记录的足够大的数据集进行统计査询,并将查询结果结合起来。这样,即使没有对数据进行直接访问,仍然可以 第4页共36 创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 4 页 共 36 页 创建日期:2003-11 (safety-critical)软件的标准有许多相似之处,有些安全专家希望最终将只有一个标准。 1.1.8 我们的计算机安全定义 在本书中,我们将采用以下的计算机安全定义: 计算机安全 计算机安全研究如何预防和检测计算机系统用户的非授权行为。 正确授权和访问控制这两个概念对于本定义是至关重要的。正确授权假设存在一个安全策略,即一组声明什么 行为是允许的和什么行为是禁止的规则。安全策略域即是由策略所控制的用户、数据客体、机器等实体组成的集合。 你可以将纠正不正确行为的影响包括到安全定义中,但这个方面对于我们进一步的讨论作用不大。 从对术语的初步讨论得出的主要结论是: 1. 不存在单一的安全定义; 2. 当你阅读文档时,注意不要将你自己的安全概念与文档中使用的概念相混淆; 3. 大量的时间正被花费(和浪费)在试图定义明确的安全概念上。 1.2 计算机安全最根本的两难处境 随着依赖计算机安全的用户数量从处理机密数据的少数公司发展到与因特网相连的每个人,人们对计算机安全 的需求已经发生了巨大的变化。最起码,这种变化已经导致了一种根本性的两难处境的出现: 不懂安全的用户有特殊的安全需求,却常常不具备安全的专门知识。 这种两难处境在当前的安全评估策略中是显而易见的。通俗地说,安全评估检查产品是否提供了它所承诺的安 全服务。因此,必须规定安全系统的功能,我们需要确保安全控制是有效的,并且能够抵抗渗透的企图。 橙皮书是第一本评估安全产品(操作系统)的指南,在计算机安全的发展中有着巨大的影响力。在橙皮书中, 功能性和承诺(assurance,(质量)保证,担保)被捆绑成预定义的类,用户只能从这个固定的菜单中选择。许多提 供商还通过给出产品的橙皮书分类来说明产品的安全等级。但是橙皮书相当刻板,并且在解决计算机网络和数据库 管理系统的安全评估上还不是非常成功。因此,迫切要求有一套更灵活的标准集。 ITSEC 适应了这种需要,它将功能性和承诺分开,以便规定特定的评估目标(targets of evaluation, TOE)。不懂 安全的用户现在只要搞清楚特定的 TOEs,并且针对不同的 TOEs 去比较被评估的产品。 计算机安全的这个两难处境会以不同的形式出现,解决它是目前计算机安全中最为紧迫的挑战。不足为怪的是, 这个难题不存在简单的答案。 同这个根本性的两难处境相比较,安全与易于使用之间的冲突采用了简单的工程上的折衷。安全对性能的影响 是多方面的。 ■安全机制需要额外的计算资源,这个代价容易被量化。 ■安全干扰用户熟悉的工作模式,繁琐或不合适的安全限制导致生产力的浪费。 ■必须花费精力去管理安全,因此安全系统的购买者经常选择具有最好的图形用户界面的产品。 安全是一种需要论证的代价。评估没有安全的代价属于风险分析的范围,风险分析是安全管理的一个重要方面, 但它不在本书讨论的范围内。 1.3 数据对信息 计算机安全是关于控制对信息和资源的访问。然而,控制对信息的访问有时是很难描述的,因此常常用更加直 截了当的目标,即控制对数据的访问来代替。数据和信息之间的区别是很微妙的,但它也是计算机安全中某些更加 困难的问题的根源。数据代表了信息,信息是数据的(主观)解释。 数据 依照约定所选择的用来表现我们概念上和真实世界中某些方面的物理现象。我们赋予数据的含意称 为信息。数据用来传输和存储信息,以及依照形式化规则处理数据之后获取新的信息[24]。 当信息和相应的数据之间存在紧密联系时,这两种方法可能会产生非常相似的结果。但事情并不总是这样的。 将信息通过一个隐蔽信道(见 4.2.4)传输是可能的,在这里,数据是对访问请求的“是”或“否”的回答,而收 到的信息却是一个敏感文件的内容。另一个例子是统计数据库的推理(inference)问题(见 14.4)。我们来扼要地 看一下这个问题,考虑一个纳税申报单的国内税收数据库,这个数据库不仅被税务稽查员使用(他们访问个人记录), 也被财政部官员使用以便进行总体规划。财政部官员必须能够访问纳税申报单的统计概要,但是没有权利访问个人 记录。假定数据库管理系统仅允许对足够大的数据集进行统计查询以保护个人数据,但是仍然可能对两个仅相差一 条记录的足够大的数据集进行统计查询,并将查询结果结合起来。这样,即使没有对数据进行直接访问,仍然可以
翻译:中国科学技术大学信息安全专业老师 获得关于某条个人记录的信息。 14计算机安全的原则 你可能会听到这样一些话,说计算机安全是一个非常复杂的问题,“象火箭科学”。你千万不要让这样的看法把 你吓倒。如果你有机会用系统化的方法去实现一个计算机系统的安全特性,那么一套行之有效的软件(系统)开发 方法以及对一些基本的安全原则的良好理解,将会使你省力不少。然而,如果你事后才想起来要在一个已经非常复 杂的系统上再加上安全特性,那么当你被该系统已经采取的各种并未考虑安全要求的设计决定所限制时,你就非常 艰难了。不幸的是,后者的情形是经常发生的。 现在我们要提出一些基本的计算机安全设计要素( design parameters),这些设计决定提供了编排本书内容的框 架。图1.1说明了计算机安全设计空间中的主要维度,横轴代表安全策略的重点(见14.1),纵轴代表一种保护机 制被实现的计算机系统层次(见142) 1.41控制重点 让我们重新描述1.14中给出的完整性定义。我们可以说完整性与服从( compliance,一致(符合,顺从)一组给 定的规则有关。我们可以在以下方面定出规则: ■数据项的格式和内容(内部一致性):比如,一条规则可以规定帐目数据库中的余额域必须包含一个整数 这个规则不依赖于访问数据项的用户或者作用在数据项上的操作 ■可能作用在一个数据项上的操作;比如,一条规则可以规定只有“开户”、“査余额”、“取款”和“存款”操 作可以访问帐目数据库中的余额项,并且只有银行工作人员允许执行“开户”操作:这样的规则可能依赖于 用户和数据项 ■允许访问一个数据项的用户;比如,一条规则可以规定只有帐户的持有者和银行工作人员可以访问帐目数据 库中的余额项。 我们刚才已经进行了一项重要的和一般性的观察,得出了我们的第一个设计原则 第1个设计决定(决策, decision)在一个给定的应用中,一个计算机系统中的保护机制应该集中在数据、操 作还是用户上? 在实施安全控制时,这个选择是一个基本的设计决定。操作系统传统上集中在保护数据(资源)方面,而在现 代应用中则更多地与控制用户的行为有关。 142人-机标尺 图1.2给出了一个计算机系统的简单的分层模型。这个模型只准备用作一个一般性的指导,你不应该指望在你 分析的每一个计算机系统中发现所有这些层次,而当你发现一个系统有多于我们模型中给出的五个层次时也不要觉 得吃惊 ■用户运行应用程序,这些应用程序被定制成满足非常明确的应用需求。 ■应用程序可以使用像数据库管理系统(DBMS)或客体访问经纪人(ORB, object reference broker)这样的通 用软件包提供的服务。 ■这些软件包运行在操作系统之上,操作系统执行文件和内存管理,并控制对打印机和I/O设备等资源的访问 ■操作系统可能有一个协调对处理器和内存访问的内核。 ■硬件,即处理器和内存,物理上存储和处理计算机系统拥有的数据 安全控制可以被合理地放置于任何一个层次上。我们现在已经解释了我们的第二个基本安全原则的各个方面 第2个设计决定(决策, decision)一个安全机制应该被放置在计算机系统的哪一个层次上? 当你研究已有的安全产品时,你将观察到从硬件到应用软件每一层上的安全机制。设计者的任务就是为每一个 机制寻找合适的层次,以及为每一个层次寻找合适的机制 再来看一下我们的新的安全原则,将一个计算机系统的安全机制想象成一些同心的保护环,其中硬件机制位于 中心,应用机制位于外围(图1.3)。靠近中心的机制趋向于更通用、更面向计算机和更关心控制对数据的访问,外 围的机制则更适合解决个别的用户需求。结合我们的前两个安全原则,我们将用人-机标尺来指放置安全机制,图 143复杂性对保险性 第5页共36 创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 5 页 共 36 页 创建日期:2003-11 获得关于某条个人记录的信息。 1.4 计算机安全的原则 你可能会听到这样一些话,说计算机安全是一个非常复杂的问题,“象火箭科学”。你千万不要让这样的看法把 你吓倒。如果你有机会用系统化的方法去实现一个计算机系统的安全特性,那么一套行之有效的软件(系统)开发 方法以及对一些基本的安全原则的良好理解,将会使你省力不少。然而,如果你事后才想起来要在一个已经非常复 杂的系统上再加上安全特性,那么当你被该系统已经采取的各种并未考虑安全要求的设计决定所限制时,你就非常 艰难了。不幸的是,后者的情形是经常发生的。 现在我们要提出一些基本的计算机安全设计要素(design parameters),这些设计决定提供了编排本书内容的框 架。图 1.1 说明了计算机安全设计空间中的主要维度,横轴代表安全策略的重点(见 1.4.1),纵轴代表一种保护机 制被实现的计算机系统层次(见 1.4.2)。 1.4.1 控制重点 让我们重新描述 1.1.4 中给出的完整性定义。我们可以说完整性与服从(compliance,一致(符合,顺从))一组给 定的规则有关。我们可以在以下方面定出规则: ■数据项的格式和内容(内部一致性);比如,一条规则可以规定帐目数据库中的余额域必须包含一个整数; 这个规则不依赖于访问数据项的用户或者作用在数据项上的操作。 ■可能作用在一个数据项上的操作;比如,一条规则可以规定只有“开户”、“查余额”、“取款”和“存款”操 作可以访问帐目数据库中的余额项,并且只有银行工作人员允许执行“开户”操作;这样的规则可能依赖于 用户和数据项。 ■允许访问一个数据项的用户;比如,一条规则可以规定只有帐户的持有者和银行工作人员可以访问帐目数据 库中的余额项。 我们刚才已经进行了一项重要的和一般性的观察,得出了我们的第一个设计原则。 第 1 个设计决定(决策,decision) 在一个给定的应用中,一个计算机系统中的保护机制应该集中在数据、操 作还是用户上? 在实施安全控制时,这个选择是一个基本的设计决定。操作系统传统上集中在保护数据(资源)方面,而在现 代应用中则更多地与控制用户的行为有关。 1.4.2 人-机标尺 图 1.2 给出了一个计算机系统的简单的分层模型。这个模型只准备用作一个一般性的指导,你不应该指望在你 分析的每一个计算机系统中发现所有这些层次,而当你发现一个系统有多于我们模型中给出的五个层次时也不要觉 得吃惊。 ■用户运行应用程序,这些应用程序被定制成满足非常明确的应用需求。 ■应用程序可以使用像数据库管理系统(DBMS)或客体访问经纪人(ORB,object reference broker)这样的通 用软件包提供的服务。 ■这些软件包运行在操作系统之上,操作系统执行文件和内存管理,并控制对打印机和 I/O 设备等资源的访问。 ■操作系统可能有一个协调对处理器和内存访问的内核。 ■硬件,即处理器和内存,物理上存储和处理计算机系统拥有的数据。 安全控制可以被合理地放置于任何一个层次上。我们现在已经解释了我们的第二个基本安全原则的各个方面。 第 2 个设计决定(决策,decision) 一个安全机制应该被放置在计算机系统的哪一个层次上? 当你研究已有的安全产品时,你将观察到从硬件到应用软件每一层上的安全机制。设计者的任务就是为每一个 机制寻找合适的层次,以及为每一个层次寻找合适的机制。 再来看一下我们的新的安全原则,将一个计算机系统的安全机制想象成一些同心的保护环,其中硬件机制位于 中心,应用机制位于外围(图 1.3)。靠近中心的机制趋向于更通用、更面向计算机和更关心控制对数据的访问,外 围的机制则更适合解决个别的用户需求。结合我们的前两个安全原则,我们将用人-机标尺来指放置安全机制,图 1.4。 1.4.3 复杂性对保险性