- 保证 运行的基础设施
- 保护 中的数据
保证 运行的基础设施
许多安全设置由服务器配置文件管理。使用 中包含的嵌入式 Web 服务器时,可以在以下位置找到服务器配置文件:- .NET 版—— 安装目录的
www文件夹中的Web.Config文件(默认为C:\Program Files\CData\CData Arc) - Java 版—— 安装目录中的
arc.properties文件
为入站流量启用 TLS/SSL
强烈建议在服务器上启用 TLS/SSL。TLS/SSL 使用公钥/私钥加密来加密客户端和服务器之间的通信通道。这种加密保护 中数据的机密性、真实性和完整性。此外,通过使用数字证书,TLS 为客户端/服务器身份确认提供了便利。 启用入站 TLS/SSL 可以分为两类:- 主机 Web 服务器的 TLS,与 HTTP 流量相关,包括底层使用 HTTP 的协议(如 AS2 和 AS4)。由于托管 的 Web 服务器用于处理这些请求,因此必须在 Web 服务器级别启用 TLS。
- 所有其他服务器的 TLS,与非 HTTP 流量相关,例如 FTP 和 OFTP。由于处理这些入站连接的服务器与托管 的 Web 服务器不同,因此必须在 界面的 个人设置 页面的相应协议选项卡中启用这些选项。
用于 Web 服务器的 TLS/SSL
- 对于 .NET 版的 ,请参阅 使用嵌入式服务器 或 使用 IIS。
- 对于跨平台版,请参阅 启用 TLS/SSL。
其他服务器的 TLS/SSL
使用 个人设置 页面为以下服务器启用 TLS/SSL: 每个服务器在“个人设置”页面上都有一个选项卡,可以在其中启用或禁用 TLS/SSL。配置防火墙和使用 DMZ
为了让 发送和接收消息,它需要在相关发送和接收端口上不受防火墙干扰。最佳选择是在防火墙中将特定 IP 列入白名单,以确保流量仅来自预期来源。在无法做到这一点的情况下,必须在 侦听入站消息的关键端口上打开防火墙。 将配置资源保护在登录门户之后。 默认情况下, Web 服务器侦听端口 8001。可以直接在应用程序中为非 Web 协议配置端口。例如,可以在“个人设置”页面的 OFTP 服务器选项卡中配置 OFTP 服务器 侦听端口。DMZ
的 .NET 版本支持建立反向 SSH 隧道,以在隔离区 (DMZ) 中托管 ,从而避免直接在专用网络上打开防火墙。有关云托管的更多信息,请参阅 DMZ 网关。将公共端点与 Web 界面分离
默认情况下, 使用相同的 Web 服务器端口来托管管理控制台(在其中配置和管理 )和远程合作伙伴用来向应用程序发送数据的公共接收端点。管理控制台受凭据保护,以确保远程合作伙伴无法访问。然而,将公共接收端点托管在单独的端口上可确保使用网络/防火墙规则来增加一层冗余并增强安全性。有关在单独网络端口上托管公共接收端点的更多信息,请参阅 控制台与公共端点分离部署。强化服务器安全设置
您可以通过在知行之桥配置文件中设置ScriptingEngineHardeningLevel 配置参数来提高 服务器的安全性。默认情况下,此参数设置为 0,不会阻止任何运算器。您可以将其设置为 0 到 3 之间的值,其中每个较高的值通过禁用某些运算器来提高安全性。下表显示了在每个强化级别禁用的运算器:
使用以下部分为您的安装设置强化级别。
.NET
使用文本编辑器打开安装目录的www 文件夹中的 Web.Config 文件。在底部的 <appSettings> 标记内,添加如下所示的行并将 value 设置为所需的级别:
Java
使用文本编辑器打开安装目录中的arc.properties 文件。为以下属性添加一行,并将数字设置为所需的级别:
与外部恶意软件和防病毒文件扫描程序的交互
希望在文件处理期间能够独占访问应用程序目录的内容。应用程序使用时间敏感资源(例如应用程序目录中的资源锁)来确保多个线程不会处理相同的文件。它扫描端口 交易 选项卡中的文件,以将元数据应用于消息;当它在端口之间移动文件时,它会立即在端口目录之间移动文件,以确保跨流程中的多个步骤进行快速处理。 扫描文件和文件句柄的进程可能会影响 中的性能,并导致应用程序出现意外行为,包括文件自动化中断、无法记录流量、无法在端口之间移动消息、处理性能下降等等。 我们建议不要将文件扫描实用程序指向 应用程序目录或其任何子目录。如果需要对到达本地系统的文件执行病毒或恶意软件扫描,我们建议使用 File 端口 将文件移动到应用程序目录之外的磁盘路径。然后,该位置可以用作文件扫描的暂存文件夹。使用 File 端口继续处理扫描的文件
当从磁盘上与其他进程共享的文件夹接收文件时,可以使用 File 端口 设置 延迟接收,以配置端口在接收和处理传入文件之前等待的时间(以秒为单位)。默认间隔为 5 秒。增加该值可以让文件扫描程序有更多时间完成。保护 中的数据
以下部分涉及 中数据的安全性,包括流经应用程序的消息/数据和工作流配置本身。为出站流量启用 TLS/SSL
会根据出站连接的目标 URL 自动解析是否协商 TLS/SSL。例如,如果出站 AS2 连接以https URL 为目标, 将协商 TLS。
强烈建议使用 TLS/SSL 通过不包含内置加密机制的协议传输数据。这意味着 Web 流量应发送到 https 端点,FTP 流量应定向到 ftps 端点,依此类推。除了正确配置目标 URL 之外,无需其他步骤即可确保 协商 TLS/SSL 加密。
验证 TLS/SSL 服务器证书和 SSH 密钥
当与 TLS/SSL 或 SSH 服务器建立出站连接时,建立连接的端口(例如 REST、AS2 或 SFTP)将尝试验证服务器提供的证书或密钥。如果端口设置中未配置服务器证书/密钥, 将使用底层系统(操作系统或 JRE)中存在的验证过程来确定服务器的证书是否可信。 可以使用特定的 TLS/SSL 证书或 SSH 密钥指纹配置端口,以覆盖底层系统行为。进行出站连接时,如果服务器的证书与端口中配置的证书匹配,则端口将信任服务器。此选项提供最高级别的安全性。 当您将 TLS 服务器证书 字段设置为 任何证书 (Any Certificate) 时,端口会隐式信任服务器的身份。仅当不担心服务器假冒攻击时才应这样做。用户和管理员管理以及访问 API
为有权登录 Web 界面并使用应用程序的用户维护一组用户名和密码凭据。有关用户和角色(包括管理员角色)的更多信息,请参阅用户和用户角色。 具有管理员角色的用户可以访问和更改其他用户的密码。首次启动 时创建的管理员用户的凭据应安全地存储在外部位置,以确保该帐户既安全又可恢复。系统 API
用户可以通过调用系统 API 来执行所有应用程序管理任务,因此保护对该 API 的访问与保护对 Web 界面的访问同样重要。创建 用户时,可以生成一个授权令牌,允许该用户访问 API(根据该用户在应用程序中的角色进行限制)。有关使用授权令牌访问系统 API 的更多信息,请参阅 API 身份验证。创建用户的授权令牌后不会显示,因此应将其安全地存储在外部位置。
FIPS 合规性
联邦信息处理标准 (FIPS) 是由美国联邦政府制定的一套安全标准,用于确保计算机系统的安全性、互操作性和数据完整性。要在 中启用 FIPS,请按照以下特定于版本的说明操作。Java 版
要在嵌入式 Jetty Web 服务器中启用 FIPS,必须首先下载并安装所需的 Bouncy Castle FIPS jar 文件。从 https://www.bouncycastle.org/download/bouncy-castle-java-fips/#latest 下载以下 jar 文件,并将它们放在arc.jar 旁边的 lib 文件夹中:
bcutil-fips-2.x.jarbc-fips-2.x.jarbcpkix-fips-2.x.jarbctls-fips-2.x.jar
HTTP
如果 在为客户端提供 TLS/SSL 的反向代理后面运行,并且运行 的服务器通过 HTTP 与该代理通信,则只需将cdata.fips.enabled=true 添加到您的 arc.properties 文件中。
TLS/SSL
要在配置为使用 TLS/SSL (HTTPS) 时启用 FIPS,必须首先使用以下命令创建 BCFKS 密钥库:arc.properties 文件:
在嵌入式 Jetty Web 服务器中启用 FIPS 时,密码最小长度为 14 个字符。如果在启用 FIPS 的情况下密码长度少于 14 个字符,将无法登录 。
.NET 版
要在 .NET 嵌入式 Web 服务器中或在 IIS 中托管应用程序时启用 FIPS,请在您的Web.Config 文件中添加以下语句。