安全的定义
安全是现今IT相关头条新闻的一个重要话题。时常出现的系统漏洞和安全补丁以及病毒和蠕虫是每位使用计算机的人都耳熟能详的名词。由于几乎每台计算机系统都联接到另外的计算机或则联接到Internet,因而确保这种计算机的安全,对于降低入侵、数据泄露或遗失、误用甚至对第三方的责任而言是至关重要的。
确保安全虽然对于没有联接到网路的独立的计算机也是很重要的。必须自可信赖的来源安装应用程序,例如经过验证的并检测过病毒的光碟。对应用程序数据也必须同样当心。比如,对于可以执行强悍的宏语言或则引入非法数据的软件程序包(Office套件等等),其软件缺陷可能会被利拿来执行任意的代码。为此linux安全涉及的方面,应用程序数据在拷贝到计算机之前必须经过完整性检测。可以通过将数据放置在一个安全的地方来控制对系统的访问(其实,不考虑来自已授权人员的功击)。
当系统联接到网路并向其他计算机提供服务(有意地或无意地)时,事情会显得更为棘手。在那个情况下,数据可能不只是来自系统管理员,由于顾客机程序要使用所提供的服务,而系统漏洞可能会让入侵者控制计算机。
这就是为何安全是从开始计划直至拆除系统的整个系统生命周期中最基本的问题。并且,安全的准确涵义是哪些?
一般,数据安全和系统安全可以分开来考虑。数据安全一般被觉得是确保以下方面的所有努力:
绝密性(Confidentiality)。
完整性(Integrity)。
可用性(Availability)。
综合上去,这种被叫做是储存在计算机上的数据的“CIA”。对/etc/passwd等配置数据的保护可以归类为数据安全。系统安全指的是计算机平台本身。日本NationalInformationSystemsSecurityGlossary(参阅参考资料以获得链接)对系统安全的定义如下:
系统安全。对信息系统的保护,避免未授权的访问及对信息(不论是储存中的、正在处理的还是正在传输的)的更改linux安全涉及的方面,并避免对授权用户服务的拒绝或对未授权用户服务的容许,包括这些测量、记录和还击这种恐吓的举措。
重要的是要认识到系统安全指出的是一个反复的过程puppy linux,这个过程包括应用安全补丁、经常审计、控制,同时最至少要有一个安全的系统配置。就此而言,不可能保证绝对的安全,也不可能提供百分之百安全的服务。目标更应当是在安全性、系统可用性和维护这个安全层级所须要的努力这三者之间找到一个折衷点。这个折衷取决于安全对于储存在计算机中的数据来说的重要性以及那些数据预期的使用情形(阅读BruceSchneIEr的SecretsandLieslinux教程下载,JohnWiley&Sons,2000;参阅参考资料以获得链接)。
完整性
具备完整性的数据是指合法的并且没有经过碰巧的或恶意的更改。当进行数据储存或交换时应当考虑其完整性。目标接收到的数据必须是源数据的原貌拷贝。这就是说,一方面,化学传输和储存媒介必须是可靠的,以促使数据可以正确地传输而不发生位错误。另一方面,数据必须不能被未经授权的实体不加检查地访问而更改。完整性的范围是从用户——最终的权威——将数据委托给系统后开始的。因而用户错误不在完整性范围之内。
对网路联接而言,要尤其注意确保完整性,不管网路是否安全(比如,通过加密传输)。在传输过程中,可以访问传输媒介的第三方可能会重新路由或则更改数据。涉及网路的化学环境和互联的计算机的完整性的方面并不特定于Linux,而是对所有计算机安装来说都是这么;因此这也超出了本文的范围。无论怎样,不仅其他方式之外,在化学层上采取的保护数据的举措包括,限制对计算机的访问、保持对传输媒介(例如线缆和联接器)的保护,以及防止停水和静电释放(阅读“BuildingtheIdealWebHostingFacility:APhysicalSecurityPerspective”,参阅参考资料以获得链接)。
本系列文章将集中关注加密和签名等在操作系统和应用程序环境中采取的举措,以积极地确保完整性。本文还将关注审计机制,以辨识完整性的缺位并确定应对此负责的当事人。