安全和加密 NCache

NCache 提供了一套强大的 安全性 旨在保护分布式缓存环境且不影响性能的功能。例如,它提供的访问控制功能允许您定义特定缓存和节点的用户权限,确保只有授权用户才能执行某些操作。此外,LDAP 集成支持集中式身份验证,使管理整个系统的安全访问更加轻松。

此外,为了保护敏感数据, 数据加密 使用 AES、3DES 和 AES FIPS 等算法在内存和传输过程中保护数据。然而,这会增加性能成本。为了更高效的网络安全, 传输层安全性 (TLS) 加密 以较少的开销保护客户端、服务器和网桥之间的通信,并允许您选择要保护的通信路径。此外, HTTPS支持 确保访问 NCache Windows 和 Linux 上的管理中心均使用 TLS 证书,确保安全加密的管理访问。这些安全功能包括: NCache 可分为以下三个主要领域:

  1. 用户安全
  2. 加密
  3. 传输层安全性
NCache 适用于 Windows 和 Linux 上的 .NET、Java、Node.js 和 Python 的分布式缓存架构。
多平台 NCache 用于微服务和遗留数据的集群。

基于角色的访问控制 (RBAC) 和用户身份验证

用户安全 NCache 通过管理与缓存集群交互的用户的身份验证和授权,确保安全的访问控制。

认证与授权

NCache 通过产品内置的身份验证和授权提供安全性。 NCache 根据以下两种不同的安全级别对用户进行分类:

  1. 节点管理员: 节点管理员是拥有缓存完全控制权的超级用户。他们可以创建、修改和删除缓存,以及执行任何缓存管理任务。他们可以保存或放弃安全配置,并可以继承缓存用户的功能,使用 NCache API。
  2. 缓存用户: 如果您想限制用户仅访问缓存 API,而没有节点管理权限,可以将其配置为“缓存用户”,限制他们只能通过其有权访问的缓存上的相关 API 执行“添加”、“移除”、“更新”和“检索”等数据操作。但是,如果您希望所有用户都拥有对节点和已配置缓存执行操作的完全访问权限,则无需设置“缓存用户”,因为节点管理员已经拥有对缓存的完全控制权。
NCache 采用 LDAP、RSA 加密和 TLS 的安全模型。
集成 LDAP 身份验证和 RSA/TLS 加密工作流程。

认证

NCache 实施基于角色的访问控制 (RBAC),以确保只有授权用户才能访问或管理集群。通过与支持 LDAP 的目录服务(例如 Microsoft Active Directory)原生集成, NCache 它强制执行集中式身份验证,使组织能够在现有的身份基础架构内管理安全策略。 NCache 启用安全机制后,所有与缓存集群的连接都必须首先通过缓存服务器上的 LDAP 目录进行身份验证。在此过程中,用户必须提供用户名、专有名称 (DN) 和密码。如果这些凭据身份验证失败,则连接请求将被拒绝。

在这种情况下,如果与域控制器的连接中断,验证将失败,用户将无法执行任何操作。为了避免这种情况, NCache 提供凭据缓存功能,用户的凭据存储在其中。 NCache 这样,已通过身份验证的用户在流程生命周期内无需重复进行身份验证。此功能默认禁用,用户可以通过服务配置文件启用它。您需要根据安全级别在以下位置指定用户凭据。更多详细信息,请参阅[此处应插入相关文档]。 NCache 文件记录.

  • 节点管理员: 添加节点管理员如下:

    Add-NCacheUserOrGroup -Server 20.200.20.40 -AccessLevel Admin -AdminCredentials(Get-Credential john_smith) -UserOrGroupName john_smith -UserOrGroupDN "CN=John Smith,OU=engineers,DC=example,DC=com" -DomainController test_domain

    然后你可以 启用安全性 正如你下面看到的:

    Enable-NCacheSecurity -Server 20.200.20.40 -AdminCredentials(Get-Credential john_smith) -WriteCredentialsToServiceConfig

    您还可以使用以下方式配置节点级别安全性 NCache 管理中心.

  • 缓存用户:

    您已成功保护节点及其缓存的安全。如前所述,要限制某些用户在没有完全管理权限的情况下执行缓存操作,请将其添加为“缓存用户”。对于节点管理员,请使用相同的 cmdlet,方法是将 AccessLevel 指定为 Cache,并将 CacheName(您希望用户访问的缓存名称)指定为 Cache。运行以下命令:

    Add-NCacheUserOrGroup -Server 20.200.20.40 -AccessLevel Cache -CacheName demoCache -AdminCredentials(Get-Credential john_smith) -UserOrGroupName john_smith -UserOrGroupDN "CN=John Smith,OU=engineers,DC=example,DC=com" -DomainController test_domain -EnableSecurity Yes

    您还可以配置凭据 以编程方式。下面显示了如何使用所需的用户凭据调用此方法的示例:

    // Specify cache name and user credentials
    string cacheName = "demoCache";
    string userId = "userid";
    string password = "mypassword";
    
    // Initialize the CacheConnectionOptions
    var options = new CacheConnectionOptions();
    
    // Enter the credentials
    options.UserCredentials = new Credentials(userId, password);
    
    // Connect to the cache using the security credentials
    ICache cache = CacheManager.GetCache(cacheName, options);

同质安全设置

为一个节点设置好安全配置后,您需要确保集群中的所有节点都具有相同的安全配置。在一个节点上担任节点管理员的用户,也应该是该集群中所有其他节点的管理员。同样,在一个节点上担任缓存用户的用户,也应该是其他节点的缓存用户。如果集群中所有节点的安全配置不一致,您在管理和运行缓存时可能会遇到各种问题。

授权

后 NCache 成功验证到缓存的连接,它检查 NCache 缓存服务器上的配置文件来授权此连接。一旦连接通过 Active Directory 的身份验证,它就会从 安全.ncconf 文件或 客户端.ncconf 根据您是否分别使用节点级别或缓存级别安全性。

加密

如果您的应用程序处理您想要保护的机密和敏感数据,并且您正在使用 内存分布式缓存,您需要确保您的分布式缓存通过加密保护这些敏感数据免受不必要的访问。

NCache 使用 DEK 和 KEK 进行数据加密,并采用 RSA 安全密钥交换。
面向分布式环境的零信任数据加密架构。

数据加密

NCache 它支持丰富的行业标准加密算法,包括 AES-256 和符合 FIPS 标准的 AES,帮助企业满足 PCI-DSS、HIPAA 和 GDPR 等监管要求。这确保您的敏感数据始终受到 NIST 推荐的加密标准的保护。 NCache 支持以下加密算法:

  • 三重数据加密标准 (3DES)
  • 高级加密标准(AES)
  • 高级加密标准 - 联邦信息处理标准 (AES-FIPS)

以下是每种算法及其支持的变体的详细信息:

三重数据加密标准 (3DES)

三重数据加密标准 (3DES) 是一种对称密钥分组密码算法,对每个数据块应用三次 DES 加密算法。以下 3DES 算法的不同变体支持 NCache 是:

  • 3DES-128: 128位加密
  • 3DES-192: 192位加密

高级加密标准(AES)

高级加密标准 (AES) 是一种对称分组密码算法,其分组/块大小为 128 位。它使用 128、192 和 256 位的密钥转换这些单独的分组。加密这些分组后,它会将它们连接在一起形成密文。AES 算法支持的不同变体 NCache 是:

  • AES-128: 128位加密
  • AES-192: 192位加密
  • AES-256: 256位加密

数据加密工作流程

NCache 数据加密和解密发生在内部 NCache 客户申请流程。 因此,在您的应用程序和缓存集群之间通过网络传输的所有数据都已加密。 同样,只有加密数据存储在缓存存储中。 您提供的加密密钥 NCache 用途,保存在里面 NCache 安全配置文件 在每个缓存服务器上以加密方式保存数据。连接成功后,加密密钥会自动发送给客户端,供其在内存中使用。

您可以通过以下方式启用加密 NCache 管理中心 无需您进行任何编程工作。 启用加密后, NCache 客户端在将它们发送到缓存集群之前自动开始加密您的对象。 而且,它会自动解密从缓存中获取的对象,然后再将它们传递给您的应用程序。

加密密钥管理

加密密钥管理 NCache 涉及安全地处理所有加密密钥,包括密钥加密密钥 (KEK)、数据加密密钥 (DEK) 和凭证加密密钥 (CEK),如下所述。

  • 密钥加密密钥 (KEK): 密钥加密密钥 (KEK) 基于 AES 256 加密,通过加密数据加密密钥 (DEK) 来保护它。此密钥必须在以下位置进行配置: NCache 服务器上的服务配置文件。为了确保分布式环境中所有缓存服务器的一致性和安全性,每台服务器必须使用相同的密钥加密密钥 (KEK)。
  • 数据加密密钥 (DEK): 数据加密密钥 (DEK) 负责在用户数据存储到缓存之前对其进行加密。DEK 本身也使用密钥加密密钥 (KEK) 进行加密。这种方法确保只有授权的工具或进程才能检索和使用加密密钥。
  • 凭证加​​密密钥 (CEK): NCache 使用凭据加密密钥 (CEK) 对存储在客户端配置文件 (client.ncconf) 中的用户凭据进行加密。此密钥必须在以下位置进行配置: NCache 服务配置文件。与 KEK 类似,每台服务器必须使用相同的凭据加密密钥 (CEK)。这确保了一致性,并在分布式环境中有效地保护了客户端凭据。

RSA加密(公钥/私钥传输)

为了安全地交换加密密钥和用户凭证, NCache 采用基于RSA的公钥/私钥加密。RSA加密仅用于客户端与服务器之间通信以及服务器之间交换期间的密钥和凭证传输。

  • RSA 在密钥交换过程中保护用户凭证、KEK 和 CEK 的传输。
  • 每个参与组件在运行时动态生成公钥/私钥 RSA 密钥对,以执行安全密钥交换。
  • 这样可以确保敏感密钥和凭证永远不会以明文形式传输,即使在应用传输层安全 (TLS) 加密之前也是如此。

传输层安全性

而 NCache 它包含数据加密功能,可以保护内存中的数据以及网络传输过程中的数据安全。然而,数据加密会带来额外的性能开销。另一方面,传输层安全协议 (TLS) 遵循行业标准,提供了一种更全面的方式来保护网络传输中的数据。虽然 TLS 也会对性能产生影响,但它通常比数据加密这种替代方案消耗的资源更少。

NCache TLS 图显示了用于客户端-服务器通信的常规 TLS 和相互 TLS (mTLS)。
通过 TLS 1.3 和相互认证实现端到端网络完整性。

常规 TLS

传输层安全性 TLS 加密可确保服务器与客户端、不同服务器、缓存和网桥之间的数据交换安全。用户可以启用任何已颁发或自签名的证书来与客户端建立连接,也可以启用组件到组件的连接。 NCache。这保证了加密数据传输,与 TLS 保护的数据是分开的。

NCache 提供强大的传输层安全协议 (TLS 1.2 和 1.3),以保护传输中的数据。这包括对双向 TLS (mTLS) 的支持,可在客户端和服务器之间提供双向身份验证。这确保了所有通道(包括客户端到服务器、服务器到服务器以及 WAN 桥接连接)上的加密通信。为了建立这些安全通道,TLS 依赖于数字证书进行身份验证。这些证书可以安装在受信任的根证书存储区或个人(我的)证书存储区中,从而为组策略可能限制根证书存储区使用的环境提供了灵活性。建议使用公共 CA 颁发的证书,以避免额外的信任配置。但是,也可以使用私有 CA 证书,前提是颁发机构已添加到所有服务器和客户端的受信任根证书存储区中。

相互 TLS

NCache 支持标准 TLS 和双向 TLS 两种安全认证方式。在标准 TLS 中,每个服务器上都会安装一个服务器证书。 NCache 服务器允许客户端在握手期间验证服务器的身份。双向 TLS 通过要求客户端也提供证书来进一步加强这一过程,确保客户端和服务器在建立安全连接之前相互验证身份。为了在整个分布式缓存环境中实现安全通信,TLS 现在不仅保护客户端与服务器之间的交互,还保护服务器之间的通信以及通过桥接连接交换的数据。

配置集群范围的 TLS

NCache 它提供了一种通过新方式无缝配置传输层安全 (TLS) 的方法。 启用-NCacheTLS禁用-NCacheTLS cmdlet。证书安装完毕并启用 TLS 后,所有参与节点之间将强制执行安全通信。配置更改需要 NCache 服务重启后生效,用户可以通过管理中心或日志验证加密状态,日志会显示 TLS 握手操作成功。

要在 Windows 或 Linux 中配置 TLS 加密,请按照 配置 TLS 加密 NCache

NCache 安全性:FIPS 和 RBAC 矩阵

安全层 技术/标准 目的
认证 LDAP/活动目录 集中化身份管理;根据现有的企业域控制器验证用户身份。
授权 RBAC(管理员 vs. 用户) 通过将管理任务限制在特定授权角色范围内,强制执行最小权限原则。
数据隐私 AES-256 / FIPS 140-2 使用 NIST 推荐的加密标准,确保数据在静态、内存和传输过程中的机密性。
网络完整性 TLS 1.3 / mTLS 提供端到端加密;双向 TLS 可防止中间人攻击 (MITM) 并确保双向验证。
管理权限 HTTPS/TLS 确保 NCache 管理中心(Windows 和 Linux),具备加密管理通信功能。

接下来做什么?

常见问题

是的。 NCache 支持 AES-FIPS(联邦信息处理标准),这对于政府机构和高度监管行业的组织至关重要。这确保了分布式缓存中的所有数据都符合严格的联邦安全要求。

NCache 在客户端应用程序进程内执行数据加密和解密。通过在数据通过网络发送之前对其进行加密, NCache 确保只有密文通过网络传输并存储在缓存中。这降低了缓存服务器的处理负载,并维护了零信任环境。

当然。 NCache 它提供原生 LDAP 集成,允许您使用现有的 Microsoft Active Directory 或其他支持 LDAP 的目录服务进行集中式身份验证。这通过利用组织现有的身份基础架构简化了用户管理。

标准的TLS提供服务器端身份验证,客户端验证服务器的身份。双向TLS(mTLS)则增加了一层额外的安全保障,要求客户端也提供证书,确保在交换任何数据之前,连接的两端都经过验证。

是的。 NCache 采用基于角色的访问控制 (RBAC) 模型,分为两个主要级别:节点管理员,拥有完整的集群管理权限;缓存用户,根据“最小权限原则”,其权限仅限于基本数据 API 操作(添加、获取、删除)。

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。