SaaS安全技术与最新进展
由于SaaS(Software as a Service软件作为服务、软件即服务)的出现,软件行业正在经历一场深刻的变革。SaaS在西方国家已经流行并进入了普及阶段。在中国,虽然近年增长迅速,但大多数企业对SaaS这种新的交付模式还缺乏认识. SaaS的安全技术日新月异, 越来越多的企业开始认可SaaS安全性和可靠性。
SaaS 的安全从机房开始。机房的安全性包括气体灭火、恒温恒湿、联网电子锁防盗、24小时专人和录像监控、网络设备带宽冗余、口令进入机房等。服务器和防火墙的负载平衡、数据库集群和网络存贮备份在近几年也成为标准安全性技术。主流SaaS运营商多采用双数据中心运营,其中一个机房数据中心为冗余备份。多城市多机房的模式可提高访问速度,但因大大增加安全管理隐患和维护成本,很少被成熟的SAAS企业采用。
伴随着J2EE和.NET等基于互联网浏览器软件开发技术的诞生,真正意义上的SaaS模式企业管理软件技术起始于2003年前后。基于互联网的特点,SaaS软件有许多区别于前一代软件的独特性,从服务器端软件和数据库、数据传输、到客户端浏览器都出现了许多新技术。
开发SaaS 软件系统和开发传统企业应用系统之间有重要区别,标准SaaS 系统是多重租赁的(Multi-tenant),也就是一套软件和数据库平台,经过软件和数据库的隔离及保密技术,多个企业同时使用。虽然不是多重租赁的 SaaS产品不一定是“假SaaS”产品,多重租赁大大提高了运营效率、稳定性,降低运营商的维护和升级成本,变相的说最终消费者得到了价格上的实惠。其他重要的SaaS 需求,如自定义、SOA集成接口、离线客户端等,也都会影响 SaaS 应用程序的体系结构。
数据库
SaaS 运营商普遍采用大型商用关系型数据库和集群技术。在数据库的设计上,多重租赁的软件会有三种设计,每个客户公司独享一个数据库instance,或独享一个数据库instance中的一个schema, 或多客户公司以隔离和保密技术原理共享一个数据库instance的一个shema. 几乎所有SaaS软件开发商选择后两种方案,也就是说,所有公司共享一个数据库license,从而降低了成本。
数据库隔离的方式经历了instance隔离、schema隔离、partition隔离、数据表隔离、到在应用程序的数据逻辑层提供根据共享数据库进行用户数据增删改授权的隔离机制, 从而在不影响安全性的前提下实现效率最大化。应用程序
应用程序的安全围绕Web服务器展开,比如Apache、IIS等。基于这些Web服务器,主流厂商多采用J2EE或.NET开发技术并会采用特殊的Web 服务器或服务器配置以优化安全性并优化访问速度和可靠性。而有些厂商会采用PHP、Ruby等开发技术,相比之下,J2EE和.NET集成了更多更成熟的安全技术。同样,Oracle、SQL Server和DB2在数据库层面相比MySQL等数据库也更加成熟。
身份验证和授权服务是系统安全性的起点,J2EE和.NET自带全面的安全服务。J2EE提供Servlet Presentation Framework, .NET 提供.NET Framework,并持续升级,因多重租赁带来的整体升级效应使所有使用者共同受益并不需要支付额外的升级费用。应用程序通过调用安全服务的编程接口 (API),来对用户进行授权和上下文继承。
在应用程序的设计上,安全服务通过维护用户访问列表、应用程序Session、数据库访问Session等进行数据访问控制。并需要建立严格的组织、组、用户树的建立和维护机制。
SaaS 平台是近年来的商业模式热点。一种模式是单一厂商基于SaaS应用程序平台提供多种SaaS应用,并通过Web Service接口提供与其他厂商产品集成。另一种模式是SaaS运营平台,平台厂商提供用户认证,其他软件厂商提供SaaS应用程序。在安全性上,SaaS应用程序平台有着先天的优势。SaaS运营平台的出现,为应用程序的开发带来了新的挑战,产品的安全由平台上SaaS软件厂商链条中最弱的一个决定,也就是短板效应。
平台安全的核心是用户权限的在各个SaaS应用程序中的继承,厂商的SaaS产品自带成熟的权限树继承技术,自2006年以来已经实现大规模商业运营。而第二种运营平台模式类似的集成需要专业的定制开发,相应的中间件技术或SOA总线技术还未成熟。
ACL 和密码保护策略也是SaaS软件成熟度的标志。客户可在自己系统中修改相关策略。有些厂商还推出了浏览器插件来保护客户登录安全。而在最近半年,国外厂商频繁地开始让用户登录后回答自己预设的秘密保护问题和答案,也是一种为了安全的保护策略,因中国人对这种密码保护策略没有使用习惯,所以在国内还没有广泛的推广开来。数据传输和客户端
SaaS通过互联网而非企业局域网来传输数据和表格。SaaS和已经普及的网上银行和网银支付都采用SSL加密技术,加密位数随着硬件速度的提升而提升。主流厂商通常也会花大笔资金购买专用SSL加密设备。八百客、金蝶等国内厂商也提供类似网上银行的U盾客户端认证技术。
SaaS软件都采用浏览器来访问使用,普遍采用的安全技术包括Cookie加密、URL随机码、SQL等代码的注入防范等技术。当然,浏览器及时升级也非常重要。
成熟SaaS厂商也推出了可离线使用的客户端软件。虽然Salesforce用“不用软件”的口号吸引了很多关注,但其需要下载安装的离线版也得到了10%左右的使用率。而像RightNow等其他厂商,在客户端上做了更多的开发和实施工作。
结语
不论是SaaS软件还是传统软件,企业安全事故多发生于在密码安全管理松懈的企业,虽然U盾会在会在很大程度上避免此类安全事故发生。
与网上银行和邮件快递服务类似,优秀SaaS服务商承诺的安全和可靠性也将被更多企业用户接受。 安全是一个优秀SaaS厂商的长期承诺。