访问控制原理
从广义上来讲,所有的计算机安全都与访问控制有关。
RFC 4949: Internet Security Glossary, Version 2 (rfc-editor.org)
RFC 4949 定义的计算机安全:用来实现和保证计算机系统的安全服务的措施,特别是保证访问控制服务的措施。 访问控制实现的安全策略是,指定对于每个具体的系统资源,谁(某个进程)或什么可以访问,以及每个实例允许访问的类型。
- 认证 - authentication:验证用户或其他系统实体声称的身份是有效的。
- 授权 - authorization:授予系统实体访问系统资源的权限和许可。这一功能确定谁对于给定的目的是可信的。
- 审计 - audit:对系统记录和活动进行独立审评和检查,以便测试系统控制措施的充分性,确保符合既定的策略和操作流程,检测安全违规,并推荐控制措施、策略和规程应采取的相应变化。
访问控制策略
访问控制一般分为自主访问控制(Discretionary Access Control,DAC),强制访问控制(Mandatory Access Control,MAC),基于角色的访问控制(Role-Based Access Control,RBAC)和基于属性的访问。后面会详细介绍。
访问控制的基本元素
访问控制的基本元素是:主体、客体和访问权。
主体 - subject:是能够访问客体的实体。一般来说主体的概念相当于进程的概念。任何用户或应用实际上通过代表或应用的进程来访问客体。进程使用用户属性,比如访问权。主体可以用审计来记录主体与其施加在客体上的关系安全的动作之间的关联。
- 所有者 - owner:可以是资源的创建者。对于系统资源,所有权可以属于系统管理员。
- 组 - group:除去分配给所有者的特权,命名组的用户也可以被授予访问权,以便具有组的成员资格就具有足够的访问权。
- 世界 - world:被授予最少访问权的用户,他们能够访问系统,但不包含在该资源的属主类和属组类中。
客体 - object:是外界对其访问受到控制的资源。客体一般是一个用来包含或接收信息的实体。实体包括记录、块、页、段...。
访问权 - access right:描述了主体可以访问客体的方式。
- 读 - read:用户可以查看系统资源的信息。读权限包括复制或打印的能力。
- 写 - write:用户可以添加、修改或删除系统资源的数据。写权限包括读权限。
- 执行 - execute:用户可以执行指定的程序。
- 删除 - delete:用户可以删除某个系统资源,比如文件或记录。
- 创建 - create:用户可以创建新的文件、记录或字段。
- 搜索 - research:用户可以列出目录中的文件或者搜索目录。