- 保证 运行的基础设施
- 保护 中的数据
保证 运行的基础设施
许多安全设置由服务器配置文件管理。使用 中包含的嵌入式 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 文件中添加以下语句。