汪新建 韩 俗 庞子轩
(四川大学华西公共卫生学院/华西第四医院信息化建设部 成都 610041)
在信息化建设发展进程中,医院网络通常按照局域网结构进行设计和构建。医院信息管理部门为了保障网络安全,防止和避免遭受病毒和木马袭击,通常将局域网与互联网进行物理隔绝。与此同时医院为方便患者就诊,提供互联网问诊等服务。为杜绝外来电子设备对医院网络的威胁,大多数医院禁止使用USB接口或限制外接移动设备接入,导致医院工作人员难以实现文件共享和转移[1-2],给业务工作开展造成阻碍。医院日常工作还包括办公、科研、管理等,通常需要文件共享与转移,对此网络管理人员开放部分电脑USB接口或解除外接移动设备限制,但不便于管理,给医院网络安全带来严重隐患。因此医院需要一个既能实现数据跨网络共享又能保障网络安全的文件存储机制。四川大学华西第四医院充分利用现有网络安全设备,自主设计和研发医院网盘系统,有效解决医务人员自由存储文件问题,工作人员可以通过网盘便利地存储、浏览、分享、管理文件。网盘系统为智慧医院建设提供数据共享存储方案,同时有助于提升网络安全管理水平。
医院网盘系统不仅要考虑网络资源安全性和稳定性,还要考虑经济性。充分利用医院现有软、硬件资源,为用户提供安全、便捷的服务。系统总体架构分为4层,见图1。
2.2.1 概述 为实现网盘共享功能,使用户便捷地通过网络环境上传或下载资料文档,需要在物理层配备网络安全设备以构建医院局域网与互联网互通的安全网络。防火墙是医院网络安全架构中的必要设备,其主要功能是防护互联网对内部网络的攻击,同时对内部网络访问互联网行为进行控制[3]。
2.2.2 防火墙+网闸的网络安全架构 为提升系统安全性,排除非安全因素,网盘系统采用防火墙+网闸的网络安全架构,在传统防火墙隔离方式上增加网闸设备,网闸隔离接近物理隔离,网络层之间断开,通过摆渡完成数据交换[4]。网闸通过硬件实现所有逻辑控制,且网闸内实现数据静态化,无法被执行、修改,网闸采用无协议的GAP隔离反射技术实现开放网络通讯协议的剥离与重组,有效阻断来自网络层的各类攻击,提高系统安全性、可靠性[5],见图2。
2.2.3 数据转换 按照网络安全架构,互联网IP数据通过防火墙网络地址转换协议(Network Address Translation,NAT)转换为网闸传输控制协议(Transmission Control Protocol,TCP)服务端地址,再通过网闸将TCP服务端地址转换为客户端地址。数据通过一系列地址和端口转换才能从互联网进入医院局域网。同时防火墙设置适当防御安全策略,可以抵御网络攻击、限定数据传输类型并有效阻止病毒及木马等恶意程序的攻击,提升网盘系统安全稳定性。
2.3.1 数据层 为充分利用医院现有数据资源,将网盘系统准入机制与医院内部集成平台系统相结合,利用集成平台完成网盘系统单点登录。在外网中通过与集成平台相同的账号和密码进入系统,以便于统一管理人员身份信息。
2.3.2 服务层 采用Tomcat网络服务器,易于扩展,同时具备更好的安全性。同时将文件服务器与应用服务器分离,提高系统存储数据的安全性。
2.3.3 应用层 采用成熟稳定的SpringMVC框架进行设计。SpringMVC提供一整套完善的组件,易于配置管理,具有很好的灵活性和拓展性。其最大特点是具备清晰的角色划分、控制器、视图解析器、模型对象、处理器映射等,每个角色都可以用对象来实现,使程序设计更加高效。
考虑到工作人员会在内外网多环境下使用系统,在网络架构上采用浏览器/服务器(Browser/Server,B/S)架构,无需在客户端进行安装,减轻操作者负担,网盘系统同时支持Windows、Linux、Android等操作系统。
软件系统以JAVA的SpringMVC作为基础框架,SpringMVC 使用Model(模块)、View(视图)、Controller(控制器)的架构模式,各部件分工明确。其中控制器用于接收请求、响应结果;处理器映射器作用是基于请求的统一资源定位系统(Uniform Resource Locator,URL)寻找 Handler,用于处理不同用户请求;视图解析器对视图进行解析和渲染,将视图展示给用户[6]。SpringMVC利用注解驱动,节省大量配置工作,且数据模型、参数的引用便于页面层与逻辑控制层之间数据传输[7],见表1。
表1 系统应用配置参数
3.3.1 概述 网盘利用医院现有的Oracle数据库系统,建立独立的Owner存放相关数据库对象并设置访问权限。数据库访问采用Hibernate框架,通过事务控制保持数据表与上传文件的一致性[8]。网盘空间大小根据服务器资源进行分配,存储路径与服务路径分离,避免数据文件更新时对网盘数据造成影响。
3.3.2 用户权限设计 对用户设定登录权限和网盘使用空间。普通网盘作为一个独立的应用系统,具有单独的用户管理功能模块。考虑到医院集成平台或医院信息系统(Hospital Information System,HIS)已经存在完整的用户管理功能[9],为方便用户进行账号管理,系统通过集成平台提供的账号验证接口对用户登录账号和密码进行验证,减少功能冗余,提升用户体验。网盘空间与服务器存储容量有关,为合理分配利用服务器资源,需要对用户网盘空间进行统一分配。空间资源的分配属于逻辑划分,并不是物理划分,只需要设计账号与空间分配表。如果用户上传文件容量大于剩余空间,系统将给予提示,提高系统可靠性。
3.3.3 文件上传 系统利用SpringMVC中的MultipartFile工具,以表单形式实现文件上传。为提升用户体验,系统利用FormData将表单数据序列化进行Ajax异步传输[10]。由于系统使用文件名为主键,文件上传前除了判断剩余空间大小,还要判断当前上传文件名是否与已上传文件重复。另外系统需要引用到commons-fileupload-1.3.2.jar与commons-io-2.5.jar文件。为提高文件服务器安全性和稳定性,设置网络安全防御策略,对上传文档进行扫描、多重防护,以有效防止病毒、木马等恶意程序对服务器的攻击,保护网盘系统和用户数据文件安全。
3.3.4 文件下载 系统利用JAVA的IO流实现文件下载,执行过程中对文件路径及文件等信息进行核查,页面需要以表单形式提起下载,否则浏览器不能弹出下载界面。
3.3.5 文件管理 用户上传的文件不能无规则地存储在服务器上,否则可能导致存储空间逻辑混乱、影响文件归属。系统将账号设置为主键,为每个账号创建单独文件夹,所属文件放置在各自文件夹内,避免不同账号同名文件情况发生。系统对上传文件在数据库中都有对应记录,按照文件名、类型、大小、上传时间在页面中展示,提供文件删除功能,上传和删除功能均通过事务来控制数据一致性。同时系统提供文件查询功能,通过输入文件名关键字模糊查找所需文件。
3.3.6 日志管理 系统将用户操作统一纳入日志管理,详细记录操作时间、主要内容及操作设备IP等信息,提高系统完整性和可靠性,有效解决用户实际应用过程中误操作引起的事件,降低系统风险[11]。
防火墙默认禁止全部端口,根据需要开放设置,如果内网与外网端口不同映射则需要开放两个端口,如果仅开放1个端口会造成内部或外部网络无法访问网盘。
部分浏览器设置有自保留端口,服务器Web端口不能设置相同,否则将出现冲突,无法访问网盘。例如Chrome浏览器对6665、6666、6667、6668、6669等端口进行自保留[12]。
由于各类应用系统默认的字符编码不同,因此系统在设计应用过程中要对部门字符编码进行转换,否则会出现中文乱码现象。页面中文数据传入oracle数据库乱码应对方法:对字符进行转换,需要将“iso-8859-1”的字符编码转换为“UTF-8”。中文数据传入页面乱码应对方法:注解时执行字符转换,将“produces”设置为“text/html;charset=UTF-8”。下载中文文件名乱码应对方法:对传输文件Header中的文件名进行字符“UTF-8”的转换。
网盘系统满足了医院工作人员对文件管理的需求,系统启用后受到广大工作人员的关注,现拥有存储文件账户320余个,各类型文件1 700余个,占用存储空间约3.5G。由于系统支持移动终端设备浏览器,医院工作人员可以利用手机浏览器进行文件上传、下载和浏览,为移动办公提供便利,同时改善医院网络安全环境。院内工作站采取严格禁止使用USB移动存储接口的措施,经过近1年的持续改进和运行,医院工作站故障率和感染病毒率大幅下降,由于感染病毒导致全盘杀毒或系统重装次数从原来的日均1~2次降低到基本清零。
医院信息化建设要围绕解决实际工作中的痛点与难点实施开展,医院网盘系统改变了以往在网络安全条件限制下文件难以实现跨网共享与传输的困境,消除违规操作存储设备带来的网络安全隐患,为医院工作人员提供独立数据存储空间,可以在内外网环境下便捷存取文件,为多地开展医疗办公、科研、管理等工作带来便利。医院网盘系统建设为未来医院业务智能化、移动化提供重要的数据载体支持,对医院信息化建设和发展具有重要意义。