论信息系统的安全性与保密性设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/topofyou/article/details/78937202

论信息系统的安全性与保密性设计

摘要:

        2015年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动信息化发展为契机,采用”平台+应用”的模式解决现有应用的集中移动化需求。平台整体的逻辑复杂,对系统的高可用和高扩展能力提出了较高的要求。

本文以平台安全体系架构为例,讨论了信息系统的安全性与保密性的设计。在该项目中,我结合实际需要,通过防止信息窃取、防止暴力破解、防止密码泄露等方面综合应用了各种技术手段以保障系统的安全性与保密性。平台的研发耗时10个月,目前,系统已稳定运行了近两年时间,实践证明,些技术手段有效的提高了系统的安全性和保密性,顺利通过了集团的安全检测,运行至今,未发生安全事故。

正文:

        随着移动信息化技术的迅猛发展,我所在的某集团公司的在信息化建设中发现,随着业务系统移动化的需求越来越多,内部移动应用的数量也随之激增,使用起来十分繁琐。为了解决这一问题,集团制定了移动信息化发展战略,根据这一战略要求,移动信息化开放平台应运而生。2015年初,我所在的分公司承担了集团移动信息化开放平台(以下简称MIOP)的建设工作,我有幸参与了项目前期的一些工作,担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。MIOP采用”平台+应用”的模式,立足于集团总部管理域各应用,覆盖全国各省分应用,实现移动应用的统一入口、统一认证、统一鉴权、统一管理,将总部与省分的各种有移动化需要的应用进行有效整合,降低了集团内部移动应用的使用难度,使用户可以无感知的在多个应用间进行切换使用。平台的主要用户是集团全国40多万管理域员工,其中首要保障的是集团领导和省分领导对移动应用的使用,其中涉及公文管理、合同管理、财务报账、ERP和CRM等多个复杂系统,业务流程复杂,系统可靠度和可扩展性要求较高,影响的范围比较广。在部署模式上,MIOP采用集团统一私有云集中部署,各省分系统与MIOP做网络对接,是一个典型的跨城际系统。在系统认证上采用既有4A系统结合自建应用商店作为权限入口,对使用者的权限进行划分。

        作为集团唯一的移动信息化门户,信息的安全是首要的保障任务,系统承载了集团40万用户的信息,账户安全十分重要;同时,系统中运行的各应用流转了敏感业务数据,其中不乏涉及决策层的商业信息,信息的保密尤为重要;从移动信息化系统的特点来看,通信方式的安全同样至关重要。针对以上情况,我首先选定了可以附加增强安全手段的多层分布式架构来提供安全与保密保障的基础可能。我根据架构特点,将安全保障方案分为物理层级和软件层级。在物理层级,我通过私有云提供的隔离手段,将各层之间通过防火墙进行了物理隔离,并在DMZ中只保留了必须的接入服务器,以最大程度的在物理层次上降低安全风险。在物理层级提供了足够的安全保障之后,系统主要的安全性和保密性设计集中在了软件层级的设计上,下面,我结合项目实际情况就软件方面所采取的防窃取、防破解、防泄露等技术手段进行详细说明。

        第一,通过HTTPS、敏感数据加密、数据不落地的方式实现了通信数据的防窃取。平台作为移动信息化系统,决定了数据需要从内部网络流经移动互联网到达移动终端,在内部网络到外部网络部分,通过集团私有云提供的DMZ机制以及审计能力,可以提供足够的安全保障。但是数据需要在移动互联网上流转,这就要求数据流转的通道必须是安全的,同时敏感信息也必须是安全加密的。通道的安全,经过论证分析,最终我们采用了HTTPS作为通信方式。HTTPS技术通过在HTTP协议附加SSL的方式实现,其非对称方式加密的特点既保证了通信数据的防窃取,又满足了使用和实现简单的要求。同时作为增强安全手段,我们在传输过程中,单独对密码等敏感数据进行了非对称加密,以达到更好的安全性和保密性。作为软件设计手段,我们在客户端的设计上采用了数据不落地的形式,即所有客户端流经的数据,除了账号用于免输入以外,其他数据都不存储到客户端本地,终端的所有业务数据都从服务器获取,最大程度的避免了客户端被反编译和沙盒入侵所带来的安全风险。

        第二,通过验证码、手势密码、锁定账户等手段防止系统入口的暴力破解。系统以移动APP形式提供服务,用户的必须登陆后才可以使用系统功能,密码的防暴力破解成为这方面的关键点。通过调查分析,单纯的使用账户、密码方式登陆系统,可能出现面对暴力破解时的泄露问题,为了解决这个问题,我在系统的认证环节引入了验证码技术和手势密码技术。验证码技术可以提高登陆业务的复杂程度,加大针对密码的暴力破解的难度。而手势密码技术通过其生物识别技术特点,可以既保证使用的便捷,又满足安全的需要。同时,我在系统中采取了密码失败多次锁定账户一定时间的机制,具体为,用户密码或手势密码输入三次,系统自动锁定账户三十分钟,这三十分钟内,该账户无法登陆系统,这就进一步加大了破解账户密码的时间,基本上可以认为这些手段屏蔽了密码暴力破解的可能。最终我选择的方式是将这三种技术手段根据场景结合使用,用户初次登陆系统时采用普通密码方式,登陆成功后,强制设置手势密码,并将密码存储于服务端,用户后续的登陆将只能使用手势密码登陆,密码三次错误锁定账号的机制则贯穿两种登陆方式,既满足了系统的易用性,又提高了登陆的安全性。

        第三,使用增强的密码保存手段保障密码的保密性,降低了密码的泄露风险。用户的密码或手势密码是存储在服务端的,这就要求在服务端,这些数据需要有足够的安全机制保障。在数据存储方面,我将数据库的用户进行了权限细分,管理账号不能远程登陆数据库管理系统,管理的维护只能在数据库所在机器本地进行,应用所使用的账号单独分配远程访问能力,并进行数据库、表的权限控制。在数据本身的存储安全方面,我采用加盐的信息摘要方式存储密码,信息摘要采用单向Hash方式在获取,既可以保证密码信息的可比较要求,又保证了存储入库的数据的不可逆要求,防止了数据库明文存储密码带来的一旦数据库被窃取密码随之丢失的问题。同时,因为普通的信息摘要技术对相同的密码会产生相同的摘要,为了避免多个账户使用同一个密码而造成的密码泄露,在摘要的生成上,采用了加盐的方式实现,将账号作为盐信息,将盐附加到原始密码,再进行实际的摘要生成,这样每个用户即使使用了相同的密码,也不会存储为同样的密码摘要。

        综合使用了如上的硬件和软件安全技术手段之后,平台于2015年末顺利通过了安全部门的安全检测正式上线,至今已稳定运行了接近2年时间,运行过程中未发生过一起安全事故。系统所采用的通信防窃取、防暴力破解、密码防泄露等技术手段发挥了重要的作用,获得了领导和同事的好评。但是在系统运行过程中,我也发现了技术手段存在的一些不足。首先是单纯的HTTPS通信并未将信道进行有效隔离,可以考虑增加VPN或VPDN的手段实现。其次是密码摘要的盐采用了用户账号,使得盐固化到了客户端,有一定的安全风险,可以采用客户端验密时先从服务端获取与账号不同的盐,再进行严验密的方式解决。以上这些问题将是我以后在安全架构设计上需要重点考虑的问题。

猜你喜欢

转载自blog.csdn.net/topofyou/article/details/78937202
今日推荐