摘要:系统涉及一种基于Saa S平台的安全系统框架, 包括客户端和数据库集群设备, 客户端和数据库集群设备可以进行数据交互, 在客户端和数据库之间架设多层防火墙设备, 形成不同的使用区域, 实现数据分层通信的保护过滤, 以及实现更好的权限分配, 并增强安全性的使用。
关键词:SaaS模式,网络安全
1 引言
系统安全是每个系统能否正常运转的关键, Saa S的基本特征决定了系统安全的重要性。在传统模式下, 数据由用户管理, 企业用户的所有业务数据都存储在作为企业核心数据的Saa S供应商上, 数据的安全性完全取决于系统的设计和为此建立的安全保证体系。但用户选择Saa S服务提供商托管数据, 却是低价享受高安全保障, 普通企业数据库如果受到客观, 不可逆等灾难因素的破坏, 一般难以修复数据破损, 借助Saa S模式服务, 企业可以以较低的价格享受全面的多机备份保护。
2 安全设计总体架构
本次系统安全设计系统架构如图1所示。
2.1 防火墙
整个系统通过防火墙将系统应用分为四个区域:客户端、DMZ区 (虚拟化区) 、应用服务区和数据库服务器区。第一级防火墙充当隔离客户端和服务器, 允许服务器仅在外部打开HTTP和HTTPS服务, 并减少暴露。第二级防火墙将系统内核的应用程序服务与Web静态资源分离, 使其仅用于DMZ和外部接口。第三层防火墙起到隔离数据的作用, 通过第三层防火墙将数据从系统的其它模块中分离出来, 在其它模块被入侵和破坏时试图保护数据。
2.2 认证服务器
认证服务器实质上是一个HTTP和HTTPS拦截和代理服务器, 它会拦截所有HTTP和HTTPS请求, 并从中获取用户认证信息, 然后通过用户信息与LDAP服务器进行数据匹配, 识别用户的合法信息, 如果用户是合法, 该请求被转发到后端的HTTP服务器, 如果该请求不合法, 则请求被终止并且相应的状态码被发送到客户端。
2.3 用户信息LDAP服务器
这种服务器用于提供外部用户信息的访问和认证, 以便高效地读取用户信息, 使用LDAP (轻量级目录访问PROTOC01) 协议, LDAP是轻量级目录访问协议, 其优点是提供了一种快速读取服务一个简单直接的目录结构, 非常适合用户信息进行身份验证。
2.4 安全策略服务器
安全策略指的是角色、资源和权限之间的关系, 通过定义安全策略来界定某种角色对某种资源有何种权限。安全策略服务器配置了系统所有的安全策略, 并从用户信息LDAP服务器取用户信息, 从应用服务器取资源信息, 结合安全策略提供安全服务。
2.5 安全授权服务器
安全授权服务器通过安全策略服务器提供的用户信息, 资源信息和安全策略判断出某个用户的某个请求是否有相应的权限, 并给予授权。
3 安全上的威胁
概括起来系统会有几个安全上的威胁和隐患: (1) 角色权限设计的威胁,(2) 业务逻辑结构上用户认证与授权的安全威胁,(3) 数据储存上的安全威胁,(4) 数据传输链路上的安全威胁,(5) 来自页面级别的安全威胁,(6) 用户意识上认为Saa S模式不安全。
4 提高安全性的解决方案
4.1 系统角色和权限设计
为系统设置不同权限的用户, 对不同用户的权限进行严格划分, 从而使该系统符合企业客户管理机制, 不仅有信息工具, 而且有权利防止未经授权的操作, 同时防止内部人员造成的信息被盗和销毁。用户只能控制具有适当权限的信息, 有效防止因故意或不正确操作而导致其他人的信息被盗窃和破坏。
4.2 认证与授权安全设计
系统资源和业务流程的安全性主要是通过用户的认证和授权来完成的。认证和授权是两个最基本的安全机制。为了提高系统集成度和用户认证效率, 采用LDAP统一管理用户认证信息, 认证服务器为前端拦截器, 通过访问LDAP服务器, 对客户端进行认证, 用户认证信息和用户对后端服务器的实际请求。安全策略服务器根据用户认证信息和对系统资源的请求从授权服务器中提取授权信息, 并在整个集群环境下监控Web层和应用服务层的资源。具体的设计和开发, 使用Java认证和授权。
J a a s (J a v a认证和授权服务) 中, J a a s通过安全策略服务器识别的配置文件来定义认证和授权机制, 并生成适当的安全策略。Jaas首先使用Login Context类来查找可用于初始化Loginmodules的配置文件的内容。所有Login Context未指定的初始化参数都包含在配置文件中。Login Context还将一个回调处理程序, 回调处理程序传递给Loginmodule, 然后调用相应的应用程序以获取其他身份验证信息。配置文件还可以指定不需要的可选Loginmodule的配置。
Loginmodule完成两阶段登录过程:第一阶段是登录过程调用Loginmodule login 0方法;第二阶段是调用Commit () 或Abort () 方法来完成登录过程。在所有其他loginmodule完成它们的login () 方法后, 调用commit () 过程, 然后最后一个Loginmodule调用Commit方法, 接着调用下一个, 等等。如果登录0方法未成功执行, 则会调用Abort方法来清除已执行的操作。如果所有必要的Commit0方法都成功完成, 则登录过程已成功完成。授权的过程需要使用在登录过程中得到的认证信息。
Subject类使用Privilegedaction类来执行授权过程。
4.3 数据存储安全设计
企业用户的数据主要存储在系统的数据库中, 数据存储的安全性主要体现在三个方面。
(1) 应用服务器与数据库服务器应分别部署与不同区域。并在之间部署防火墙等形式对数据库实现更进一步安全保障。
(2) 数据库服务器实现集群。在保证高可用性和高负载的同时, 也保证了在数据遭到破坏或篡改的情况下, 可通过备份的数据来得以恢复。
(3) 在数据持久层中, 对关键数据进行加密存储。关键信息不能以明文形式存储在数据库中, 而应该在数据库存储之前进行加密, 数据提取和解密处理, 当通过非法手段获取数据库时, 通过加密的方式对关键数据进行保护。使用Java加密 (Java加密体系结构, jca) 和Java密码扩展 (Java加密扩展, jce) 来加密和解密关键数据。JCA和JCE提供独立于实现的加密函数API, 简化了数据加密和解密的编程, 有效地将加密解密算法与实际的业务编程分离开来。
4.4 数据传输安全设计
使用SSL (安全套接字层) 协议保护数据传输。SSL协议位于TCP/IP协议和各种应用层协议之间, 为数据在网络传输过程中进行加密, 保障传输过程中的安全。数据传输的具体设计是在服务器端生成Key Store和数字证书, 当客户端通过HTTPS协议向服务器发送请求时, 客户端将数字证书和公钥发送给客户端, 客户端通过验证服务器通过安装的公共CA证书。客户端通过服务器发送的公钥将私钥发送给服务器, 服务器使用自己的私钥对客户端的私钥进行解密, 并在连接完成后使用该对称私钥对数据传输进行加密和保护成立。这种设计的目的是在保证可靠性和安全性的前提下将安全因素对系统性能的影响降至最低。在服务器内, S S L还用于保护D M Z和非DMZ之间的数据传输。
4.5 严格控制从客户端提交上的数据
基于页面的攻击可能导致大量的用户数据和客户端受到攻击, 这就是所谓的XSS攻击。XSS也被称为CSS (跨站脚本) , 跨站脚本攻击。它是指恶意攻击者将恶意HTML和Java Script代码插入到网页中, 当用户浏览到该页面时, 嵌入在Web中的HTML和Java Script代码将被执行以实现恶意用户的特殊目的。防止此类安全威胁的解决方法是严格控制重客户端提交的各种数据的类型和格式, 并对每个非固定格式数据进行HTML和Java Script特殊字符代码转换, 防止用户将可执行的代码提交给服务器。
参考文献
[1]张伟洋, 佘名高.基于Saa S模式的电子政务架构研究[J].计算机与数字工程, 2011.
[2]袁志俊, 夏红霞.基于Saa S模式在线软件系统开发方案的研究[J].计算机工程与设计, 2009.
[3]李鹏.基于Saa S模式的客户关系管理系统的研究[J].山东大学, 2009.
[4]林杰.基于Saa S模式的电子政务应用系统构建与设计[J].电子设计工程, 2016.
[5]王舜燕, 黄芬, 刘万春.基于Saa S模式的软件设计方法讨论[J].计算机与数字工程, 2008.
[6]王会林.中小企业ERP中Saa S模式的应用研究[J].信息与电脑 (理论版) , 2012.