本文详细介绍重新思考安全含义—让Linux系统更安全
本系列文章将集中关注加密和签名等在操作系统和应用程序环境中采取的措施,以积极地确保完整性。本文还将关注审计机制,以识别完整性的缺失并确定应对此负责的当事人。
机密性
当受保护的数据只能被授权的人或系统读取或者修改时,要保持其 机密性。这是一个与完整性截然不同的概念:当数据在网络上传输时,它可能是被毫无修改地正确传输,因此确保了其完整性,但是如果被第三方中途截取的话就再也不是机密的了。当未被授权的人可以访问数据传输并从中获取有价值的信息时,只有完整性是不够的。数据的机密性引出了三个更深入的问题:
谁希望访问数据?(认证)
哪些数据可以被访问?(授权)
如何保护数据不受未授权的访问?
Linux 有若干方法可以确保试图访问数据的实体是其所宣称的那一个。通过 Pluggable Authentication Modules(PAM),您可以实现一些认证策略,从存储在本地机器上一个集中目录(NIS、Kerberos、LDAP 等等)中简单的用户名/口令组合,到硬件标识或生物特征扫描不等。文件访问的授权可以使用传统的(粗糙的)UNIX 文件权限来解决:用户、组或全体级别的读、写和执行权限。较新的细粒度的(fine-grained)方法 —— 访问控制列表(Access Control Lists)—— 让您可以为具体的用户授予或拒绝具体的权限。
标准 Linux 安全概念是在软件中实现的,依赖于内核不接受没有被授权的用户对资源的使用。不过,内核缺陷(特权提升/自动调整、未经检查的参数,等等)可能会使用户可以访问先前不能访问的内存区域、磁盘空间、网络或者其他资源。通过安装击键记录器(keyloggers)、取走硬盘驱动器并在其他机器中读取、嗅探网络传输等等,对硬件物理上的访问可以让用户绕过软件检查。这样,必须采取更进一步的努力来保护机密的数据,比如文件系统、单个文件、网络传输的加密,和/或应用程序级别的加密。此外,物理上的措施也需要考虑,比如安全区域、数据的安全删除,以及机密信息的会计程序,不过本文并不涉及这些。
责编:豆豆技术应用