关于安全方面的架构

没来过这灌水,其实一直都有写。今天开始陆续把自己以前的东西往这里搬。
关于安全方面的架构,基于手里的资料和掌握的技能点, 从应用架构和系统架构两方面整理成为以下方案:
应用的安全功能为:
严格遵循JAVA EE规范,采用JAVA EE标准的三层体系架构,分别为客户端、应用服务器、数据库服务器三层架构,客户端只能访问应用服务器,采用防火墙、数据加密、权限管理、身份认证等多重安全机制,最大限度地保证系统的系统安全。


系统安全性包括:
 完善的权限体系,系统权限模型包括三个基本要素(组织、功能权限、用户),支持功能权限、数据权限(行级和字段级);具有灵活的授权机制,支持角色授权、用户授权、功能权限的可转授、功能权限的禁止权(禁止权优先于任何权限)、支持特殊数据权限(主管权限、创建者权限、离散权限 )、支持行级权限、字段级权限等。
 支持多种认证:系统除了提供传统认证外,支持LDAP认证、AD活动目录认证、 ActivCard动态密码认证、USB Key认证、指纹认证等。
 密码策略:根据不同敏感程度的用户,设置不同级别的密码策略,使安全策略应用到了用户级别,系统可以设置的密码控制项包括:密码的最小长度、密码复杂度(必须包含英文字母和数字)、密码有效天数、首次登录必须修改密码等。
 账户锁定策略: 账户锁定是指在某些情况下(例如账户受到采用密码词典或暴力猜解方式的在线自动登录攻击),为保护该账户的安全而将此账户进行锁定。账户锁定策略
包括:
 锁定阀值,即允许使用错误密码的最大登录次数,可按不同用户设置不同阀值,超过阀值则锁定账户;
 锁定期,使其在锁定的时间内,就算是正确的密码也不能登录。一旦该账户被锁定后,即使是合法用户也就无法使用了。只有管理员才可以重新启用该账户,这就造成了许多不便,提供锁定期功能,以便锁定期过后可自动解锁;
 用户在线监控策略:系统系统提供在线用户的实时监控功能,对所有的在线用户账户(身份)、客户端的IP和机器名、在线时间、操作功能等信息进行实时监控,对非法用户在线进行破坏或者在线用户进行违规操作时,可以立即进行阻止。对在线用户进行的危险操作,管理员也可以发送提示信息或者警告信息,达到预防危险发生的目的。
 重复登录提醒,用户可选择踢出对方:系统系统支持一个账户多点登录,但是会给出提示。如果是独享的账户,则用户可以选择立即将对方的登录账户踢出系统,并立即修改密码,以减少账户被盗用带来的后果。
闲置账户自动踢出:系统系统中,提供自动踢出闲置账户的功能,系统管理员可以根据系统的应用情况设置自动踢出闲置账户的闲置时间阈值,一旦某个账户的闲置时间超过了阈值,那么系统会自动将该账户踢出系统,该账户必须重新登录才能继续进行操作。
 数据加密:建议使用基于TCP/IP协议上的远程对象自定义的请求协议,可以与第三方具有公信力的权威认证相结合,提供数据加密传输;其数据加密传输的实现原理与SSL相类似。结合PKI/CA的数据加密/解密传输过程说明:
 首先,用户基于证书进行双身份登录认证,若认证通过,且服务端要求进行数据加密传输时,将在服务端产生会话密钥,并用用户个人公钥进行加密,返回给客户端;
 其次,客户端获取到加密后的会话密钥后,将使用个人私钥进行解密;
 然后,在本次用户会话周期内,以后每次的数据传输,都将使用该会话密钥进行数据的加密/解密;
 以上数据加密/解密过程是与PKI/CA体系相结合的,是类似SSL的一种实现,但与系统结合的更紧密,且降低了SSL的部署复杂度,是能够灵活满足不同客户的安全需要的。
上机日志:系统用户上机日志能详细记录用户的操作时间、功能点、IP等信息,为系统管理和系统安全提供分析数据。


1.2. 系统登录认证安全方案
系统除了提供传统认证外,还可以提供动态密码认证、智能钥匙(USB Key)认证、指纹认证,电子印章等多种安全方式。


基于证书的双身份认证 
 对于资金等安全性要求较高的系统,为提高身份认证的安全级别,需要支持基于第 三方CA证书的用户身份认证; 
 为保护证书和私钥,应采取USB KEY存储证书和私钥;  为了防止内部安全漏洞,需要执行双管理员机制:  安全管理员和超级管理员必须由不同人员担当; 
 USB KEY的管理(包括用户绑定等等)应交由安全管理员处理,超级管 理员则无权处理; 
 用户的创建和权限分配可由超级管理员管理,但安全管理员不允许 处理此项业务; 
 为了防止内部安全漏洞,需要结合双安全管理员机制,在证书身份认证的基础上, 增加另一维度的身份认证,如:传统命名身份认证;
智能钥匙( USB Key)身份 登录认证
系统提供各种安全策略来保证系统达到不同的安全级别,除了普通的密码策略、部署策略、权限与用户监控等策略,可以采用标准安全方案PKI(Public Key Infrastructure)体系的安全方案:
系统应该集成USBKEY方式进行登录,同时对于关键业务可以采用USBKEY进行用户身份认证,对于调用银企的数据进行签名验证处理,通过签名能够保证数据放篡改,从而保证重要数据的安全性。
 USB Key身份认证介绍: 
 基于USB Key的身份认证方式是近几年发展起来的一种方便、安全、可靠的硬件
身份认证技术,很好地解决了用户个人私钥的安全可靠存储,并提供USB接口与现今的电脑通用。 
 它的内部结构不简单,它内置了CPU、存储器、芯片操作系统(COS),可以存储
用户的密钥或数字证书。  利用USB Key内置的密码算法实现对用户身份的认证。  USB Key是一个二次硬件加密功能,在经过系统的软加密验证通过后,还需经过
一次第三方的硬件加密,主要用于部分客户关心的关键功能。  
 USB Key的优点: 
 是基于系统外的第三方硬件,可以由用户自由选择具体的供应商,对于系统
而言,多了个第三方的保证。 
 是一种方便、安全、可靠的身份认证技术,甚至很多银行都使用这种身份认证技术。  USB Key又叫智能密码钥匙 ,可以绑定具体的操作功能,例如,可配置只对使用
银企直联功能时检查用户的Key,使用总帐功能或其他功能时不需要Key,这样,可以减少Key的使用人,大大节约成本。 
 因为使用其他功能不需要Key,也简化了用户的操作流程。  使用方便,价格便宜。 
智能钥匙认证方式能帮助我们确认身份,又能防止别人盗用和恶意攻击。智能钥匙安全主要表现为双保险,用户必须同时拥有智能钥匙的密码和智能钥匙才能用自己的身份登录系统,缺一不可。而且钥匙的密码存放在钥匙内,外部系统无法读取或者复制到钥匙内的任何信息。钥匙发放到用户手中后,连管理员都没有办法清空或者篡改用户的密码,有效的防止了管理员的作弊行为。
 
数据加密传输 
 基于TCP/IP协议上的远程对象请求协议,可以与第 三方具有公信力的权威认证相结合,提供数据加密传输;其数据加密传输的实现原理与SSL相类似。 
 结合PKI/CA的数据加密/解密传输过程说明: 
 首先,用户基于证书进行双身份登录认证,若认证通过,且服务端要求进行数据加 密传输时,将在服务端产生会话密钥,并用用户个人公钥进行加密,返回给客户端; 
 其次,客户端获取到加密后的会话密钥后,将使用个人私钥进行解密; 
 然后,在本次用户会话周期内,以后每次的数据传输,都将使用该会话密钥进行数 据的加密/解密; 
 以上数据加密/解密过程是与PKI/CA体系相结合的,是类似SSL的一种实现,但 与系统结合的更紧密,且降低了SSL的部署复杂度,是能够灵活满足不同客户的安全需要的。  业务单据的数字签名 
 对于资金等敏感数据需要保障其完整性,比如:需要防止直接通过数据库工具进行 系统外的修改;而对于用户在系统内的修改,也需要提供不可抵赖的证据;显然这些需求都可通过数字签名来实现。系统主要业务对象为单据,通过对业务单据进行数字签名,可确保数据的完整性和不可抵赖。 
 后续将进一步提供签名数据的审计功能,以便对存在疑问的数据进行签名审计,通 过审计对系统安全进行审查,并尽早发现问题。 
 业务单据提交银企互联的时候,由于是真正付款出去,对某些字段比如付 款账号、收款账号、金额、币别等的安全性要求比较高,从审批到提交银企互联的环节之间,进行了关键字段的防篡改处理,以付款单为例,实现思路如下实现思路如下: 
 付款单审批的时候对要防篡改的字段进行加密处理,得出加密字符串保存到付款单 记录加密字段中。 
 付款单提交银企互联的时候对要加密的字段用相同加密算法重新进行加密得到新 的加密字符串,与付款单记录加密字段中保存的加密字符串进行比较,如果不相同,则说明被加密的这几个字段中有字段数据被修改过,否则就说明没被篡改。
 
业务功能与二次身份认证方式的绑定 
管理员对资金关键业务功能可以设置是否进行二次身份认证,然后再设置哪些功能分别使用哪种验证方式,设置好了之后,每个用户在操作这些功能时,系统会自动增加二次认证,如果用户符合二次身份认证设置的条件,那么用户就会没有任何感觉的继续操作功能,如果不符合二次身份认证设置的条件,那么即使该用户有操作权限,也不允许使用该功能。

机器码验证
机器码是计算机的唯一编号一般是由计算机的硬件(CPU硬盘网卡)信 息生成的唯一识别码。系统的机器码认证功能可以保证用户只能在通过认 证的机器上进行登录。这种认证方式适用于企业对信息系统的访问和使用范围有
较严格的控制对信息系统的安全性有很高要求的应用场景。机器码认证的安全 性主要体现在通过这种认证方式可以实现只允许通过认证的计算机访问系 统从而可以轻易的防止任何非法的用户以任何途径访问或攻击系统因
此很大程度的提高了系统的安全性降低了安全隐患。

业务总线
对系统内部和外部请求统一管理,完成请求的路由,解析,过滤和数据的转换。本部分从安全角度来看,实现的功能有:
防止csrf,xss,sql注入, 防止业务视图注入。在tcp上实现自定义的加密通讯协议,完成不同业务,不同应用的安全策略实现。


系统应用分层大体为:

系统架构拓扑图为:


其中数据库和缓存因图太大,只简单的用数据库服务器代替服务器的拓扑,实际的情况如下。
图都没显示出来。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值