在知行之桥EDI系统中,系统安全性问题主要分为两大类:
- 保证知行之桥EDI系统运行的基础
- 通过知行之桥EDI系统保护数据
保证知行之桥EDI系统运行的基础
许多安全设置由服务器配置文件管理。使用知行之桥中包含的嵌入式 Web 服务器时,可以在以下位置找到服务器配置文件:
- Windows 版-知行之桥安装目录的 www 文件夹中的 Web.Config 文件(默认为 C:\Program Files\CData\CData Arc)
- Java 版-arc.properties 文件
将知行之桥部署到外部服务器时,应使用该外部服务器的配置文件。
为知行之桥的入站流量启用 TLS/SSL
强烈建议在服务器上启用 TLS/SSL。 TLS/SSL 使用公钥/私钥加密来加密客户端和服务器之间的通信通道。这种加密保护知行之桥中数据的机密性、真实性和完整性。此外,通过使用数字证书,TLS 为客户端/服务器身份确认提供了便利。
- 用于 Web 服务器的 TLS
- 所有其他服务器的 TLS
启用入站 TLS/SSL 可以分为两类:
主机 Web 服务器的 TLS,与 HTTP 传输相关,包括使用 HTTP 的协议,如 AS2 和 AS4。 由于托管知行之桥的同一 Web 服务器用于处理这些请求,因此必须在 Web 服务器级别启用 TLS。
所有其他服务器的 TLS,与非 HTTP 传输相关,例如 FTP 和 OFTP。由于处理这些入站连接的服务器与托管知行之桥的 Web 服务器不同,因此必须在知行之桥的 个人设置 页面中启用这些选项(在相应协议的选项卡下)。
用于 Web 服务器的 TLS/SSL
在知行之桥EDI系统2023及以后的版本中,对于知行之桥Windows 版本,使用嵌入式服务器或者IIS以及跨平台版会有不同的操作步骤。
其他服务器的 TLS/SSL
为以下服务器列表启用 TLS/SSL:
- FTP服务器
- OFTP 服务器
- HL7 MLLP 服务器
这些服务器中在知行之桥 个人设置 页面中都有一个选项,可以启用或禁用 TLS/SSL。
用户和管理员管理以及访问 API
知行之桥为有权登录知行之桥 Web 界面和操作应用程序的用户提供一组用户凭据(用户名、密码)。 用户管理和用户角色(包括管理员角色)在 用户角色 中进行了详细介绍。
具有 Admin 角色的用户可以访问和更改其他用户的密码。更改首次运行知行之桥时创建的原始管理员用户的密码需要使用 Web 界面右上角,在红色方框中的图标,点击下拉菜单中的 修改密码 选项。
系统 API
用户可以通过调用系统 API 来执行所有应用程序管理任务,因此保护对该 API 的访问与保护对 Web 界面的访问同样重要。当创建知行之桥用户时,可以生成一个授权令牌,允许该用户访问 API(根据该用户在应用程序中的 权限 进行限制)。
创建用户后不会显示用户的身份验证令牌,因此应将其安全地存储在外部位置。
防火墙和使用 DMZ
为了让知行之桥发送和接收消息,它需要在相关发送和接收端口上不受防火墙干扰。 默认情况下,知行之桥的 Web 服务器侦听端口 8001,可以按照服务器管理部分中的说明进行配置。
非 Web 协议的端口可以直接在应用程序中配置,例如 OFTP 服务监听端口可以在个人设置页面的 OFTP 选项卡中配置。
DMZ
知行之桥的 Windows 版本支持建立反向 SSH 隧道以在 DMZ(即在云中)托管知行之桥,以避免直接在专用网络上打开防火墙。
将知行之桥的公共接口与 Web 界面分离
默认情况下,知行之桥使用相同的 Web 服务器端口来托管 Web 界面(可以在其中配置和管理知行之桥)和远程合作伙伴可以用来向应用程序发送数据的公共接收接口。
强化服务器安全设置
你可以通过在知行之桥配置文件中设置配置参数 ScriptingEngineHardeningLevel 来提高知行之桥服务器的安全性。默认情况下,此参数设置为 0,不会阻止任何运算器。你可以将其设置为 0 到 3 之间的值,其中每个较高的值通过禁用某些运算器来提高安全性。下面的列表显示了在每个强化级别禁用的运算器:
- 0:允许所有运算器。这是默认设置。
- 1:最易受攻击的运算器被禁用。这包括允许用户以任意方式与主机系统交互的任何运算器。
- 2:除了级别 1 中不允许的运算器外,此级别还禁止创建新用户、以非任意方式访问磁盘上的文件以及引入重复任务的运算器。
- 3:除了级别 1 和级别 2 中不允许的运算器外,此级别还禁用从服务器获取敏感信息或执行任意 HTTP 请求的运算器。
使用以下部分为你的安装设置强化级别:
Windows
使用文本编辑器打开安装目录的 www 文件夹中的 Web.Config 文件。 在底部的 标记内,添加如下所示的行并将 value 设置为所需的级别:
<appSettings>
<add key="ScriptingEngineHardeningLevel" value="0"/>
</appSettings>
Java
使用文本编辑器打开安装目录中的 arc.properties 文件。 为以下属性添加一行,并将数字设置为所需的级别:
cdata.initParameters=ScriptingEngineHardeningLevel:0
通过知行之桥保护数据
以下部分涉及知行之桥中数据的安全性,包括流经应用程序的消息/数据和流配置本身:
- 加密传输中的出站数据
- 加密本地文件
- 使用集中(安全)设置
- 验证 SSL 证书和 SSH 密钥
为出站流量启用 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 服务器证书 字段中配置的证书(或 SSH 连接的服务器指纹)中配置的证书匹配,则端口将信任服务器。
端口还可以通过将 TLS 服务器证书 字段设置为 任何证书 (Any Certificate) 来隐式信任服务器的身份。
EDI系统安全自查
在您的EDI系统稳定运维之外,知行软件运维团队同时也非常重视您的生产数据安全,在此提醒请您对于企业EDI系统进行以下三个方面的安全自查:
- 是否将EDI管理平台无保护的直接暴露于公网?
- 密码管理体系是否安全规范?
- 是否存留过多历史数据于EDI服务器?
- 服务器是否更新最新的安全补丁?
- 是否开启了TLS?
针对以上自查点,知行运维团队提供了一些方案参考,您可以根据您的EDI系统实际运行情况进行排查设置,或者您可以请您的网络安全部门进行评估、排查、设置。
保护EDI管理平台
- URL路径访问限制,外部只允许访问接收报文的URL路径,产品所有其它URL路径只能本地访问。如果需要暴露其它非HTTP端口(如OFTP,FTPServer,SFTPServer等),尽量使用DMZ模式。
扩展阅读:使用反向代理保护EDI管理平台
使用DMZ保护FTP/SFTP
- IP地址白名单。限定的IP地址可以访问,无论内网外网。
扩展阅读:使用IP白名单,提高网络安全
使用IP白名单功能,保护EDI系统API
安全的密码管理体系
- 所有用户密码最少使用12位以上。同时包含,大小写字母,数字和符号。并且定期(三个月)更新密码。用户专人专用,不共享使用。
扩展阅读:如何设置相对强壮且安全的管理员用户和密码–知行之桥
知行之桥2021版账号密码修改和重置指南
- 管理员账户避免使用默认或通用名称,比如: admin, administrator, manager等。
扩展阅读:自定义用户名称
- 避免使用管理员账户运行知行之桥服务。如:Windows上Administrators组用户,或Linux系统上的root用户。
扩展阅读:配置知行之桥服务运行账户
减少服务器上保存的业务数据数量
- 使用定时归档功能,减少服务器上的历史数据,降低风险。
参考方案/文档:知行EDI平台文件归档功能
了解更多 EDI 信息,请参阅: EDI 是什么?