系统架构设计师笔记第10期:访问控制和数字签名

访问控制技术

访问控制是计算机系统中一种重要的安全机制,用于管理和控制用户对系统资源的访问权限。它的主要目标是确保只有经过授权的用户或实体能够访问资源,从而保护系统的安全性和保密性。访问控制技术的原理和主要技术如下:

  1. 原理: 访问控制的原理基于授权和认证机制。授权指的是系统管理员或授权管理者为用户分配合适的权限,并定义访问策略。认证是指验证用户身份的过程,确保用户是合法的身份,并具有相应的权限。
  2. 身份验证(Authentication): 身份验证是访问控制的第一步。它确认用户的身份并验证其合法性,以防止未经授权的访问。常见的身份验证方法包括用户名和密码、数字证书、生物特征(如指纹、虹膜等)等。
  3. 授权(Authorization): 一旦用户通过身份验证,系统需要确定用户所具有的访问权限。授权机制根据用户的身份和角色,以及系统定义的访问策略,决定用户能够访问哪些资源和执行哪些操作。授权通常使用访问控制列表(Access Control List,ACL)或角色基于访问控制(Role-Based Access Control,RBAC)等技术来管理和分配权限。
  4. 访问控制模型: 访问控制模型定义了授权策略的规则和方式。常见的访问控制模型包括:
  • 强制访问控制(Mandatory Access Control,MAC): 在 MAC 模型中,访问权限由系统管理员根据资源的保密级别和用户的安全级别来强制规定。它使用标签或标记来标识资源和用户的安全级别,并根据标签进行访问控制。
  • 自主访问控制(Discretionary Access Control,DAC): 在 DAC 模型中,资源的所有者可以自主控制对资源的访问权限。资源所有者可以授权其他用户或组织访问资源,并有权撤销或修改这些权限。
  • 角色基于访问控制(Role-Based Access Control,RBAC): RBAC 模型根据用户的角色和责任来管理访问权限。用户被分配到不同的角色,每个角色具有一组预定义的权限。这种模型简化了权限管理,提高了系统的可扩展性和灵活性。
  • 属性基于访问控制(Attribute-Based Access Control,ABAC): ABAC 模型根据用户和资源的属性来进行访问控制。它基于一组策略规则,使用用户和资源的属性值来确定是否授权访问。

5.审计(Audit): 审计是访问控制的一部分,用于跟踪和记录系统中的访问活动。通过审计日志,管理员可以监视用户的行为,并在必要时进行调查和故障排除。审计也有助于检测潜在的安全威胁和违规行为。

6.单点登录(Single Sign-On,SSO): SSO 是一种访问控制技术,允许用户使用单个身份验证凭据(如用户名和密码)登录多个应用程序或系统。这减少了用户需要记住和管理多个凭据的负担,并提高了系统的用户友好性和便利性。

综上所述,访问控制技术通过身份验证、授权、访问控制模型和审计等方法来管理和保护系统资源的访问权限。它起到了保护系统安全性和保密性的重要作用,并广泛应用于各种计算机系统和网络环境中。

数字签名

数字签名是一种加密技术,用于验证数字文档的完整性、真实性和身份。它使用了公钥密码学的原理和技术,以及哈希函数来实现。下面是数字签名的原理、主要技术和应用的详细介绍:
原理: 数字签名基于公钥密码学的原理,使用了非对称密钥加密算法。它使用了两个密钥:私钥(私有密钥)和公钥(公共密钥)。私钥只有文档的签名者拥有,并且必须保密保存。公钥可以被任何人访问。
数字签名的过程如下:

  1. 签名者使用哈希函数对要签名的文档进行摘要计算,生成一个固定长度的哈希值。
  2. 签名者使用自己的私钥对哈希值进行加密,生成数字签名。
  3. 数字签名与原文一起传输给接收者。
  4. 接收者使用签名者的公钥对数字签名进行解密,得到原文的哈希值。
  5. 接收者使用相同的哈希函数对接收到的原文进行摘要计算,得到一个新的哈希值。
  6. 如果两个哈希值相等,表示文档的完整性和真实性得到验证,且签名者的身份得到确认。

主要技术:

  1. 非对称密钥加密算法: 数字签名使用非对称密钥加密算法,如RSA(Rivest-Shamir-Adleman)和DSA(Digital Signature Algorithm)。这些算法使用两个密钥,一个用于加密(公钥),一个用于解密(私钥)。
  2. 哈希函数: 数字签名使用哈希函数对文档进行摘要计算,生成固定长度的哈希值。常用的哈希函数包括MD5(Message Digest Algorithm 5)和SHA(Secure Hash Algorithm)系列。

应用: 数字签名广泛应用于以下场景:

  1. 身份验证: 数字签名用于验证用户或实体的身份。例如,通过数字签名,网站可以验证用户的身份,并确保信息的机密性和完整性。
  2. 电子合同: 数字签名用于电子合同的签署和认证,确保合同的完整性和真实性,以及各方的身份确认。
  3. 软件分发: 数字签名用于验证软件的真实性和完整性,防止恶意软件的篡改和潜在威胁。
  4. 电子邮件安全: 数字签名用于验证电子邮件的发件人和内容的完整性,确保邮件的机密性和不可否认性。
  5. 数据完整性: 数字签名用于验证数据的完整性,例如在数据库中存储的敏感数据或重要数据的验证。

总之,数字签名通过使用公钥密码学和哈希函数的组合,实现了对数字文档的完整性、真实性和身份的验证。它在身份验证、电子合同、软件分发、电子邮件安全和数据完整性等方面具有广泛的应用。

你可能感兴趣的:(笔记)