上篇:国家信息系统安全技术系列标准解读(一) 主要讲解了国家信息系统安全技术一系列标准的相关情况和SqlServer2008如何满足国家第四级结构化保护级标准,接下来我们再结合国家标准解读一下应用软件系统的安全规范。
附下载:国家信息技术安全系列pdf
本文阅读目录如下:
应用软件系统是信息系统的重要组成部分,是信息系统中对应用业务进行处理的软件的总和。业务应用的安全需求,是信息系统安全需求的出发点和归宿。信息系统安全所采取的一切技术和管理措施,最终都是为确保业务应用的安全。这些安全措施,有的可以在应用软件系统中实现,有的需要在信息系统的其它组成部分实现。
3、1、1国家身份鉴别规定
对应用软件系统的注册用户,按以下要求设计和实现标识功能:
——凡需进入应用软件系统的用户,应先进行标识(建立注册账号);
——应用软件系统的用户标识一般使用用户名和用户标识符(UID),并在应用软件系统的整个生存周期实现用户的唯一性标识,以及用户名或别名、UID等之间的一致性;
对登录到应用软件系统的用户,应按以下要求进行身份的真实性鉴别:
——采用强化管理的口令和/或基于令牌的动态口令和/或生物特征鉴别和/或数字证书等相结合的方式,采用多鉴别机制,进行用户的身份鉴别,并在每次用户登录系统时和重新连接时进行鉴别;
——鉴别信息应是不可见的,并在存储和传输时应按要求用加密方法进行安全保护;
——通过对不成功的鉴别尝试的值(包括尝试次数和时间的阈值)进行预先定义,并明确规定达到该值时所应采取的动作等措施来实现鉴别失败的处理;
对注册到应用软件系统的用户,应按以下要求设计和实现用户-主体绑定功能:
——将用户进程与所有者用户相关联,使用户进程的行为可以追溯到进程的所有者用户;
——将系统进程动态地与当前服务要求者用户相关联,使系统进程的行为可以追溯到当前服务要求者用户。
3、1、2开发身份鉴别解决方式
1) 用户身份鉴别可采用密码匹配方式,密码经过不可逆的加密算法加密之后存入数据库,并可根据实际情况选用多种加密算法。在统一授权管理和统一的用户身份认证管理系统中,用户对应用系统的访问权限存放在统一的权限信息库中。用户在访问应用系统的时候,应用系统通过统一授权系统的接口查询、验证该用户是否有权使用该功能,根据统一授权管理和统一的用户身份认证管理系统返回的结果进行相应的处理。
用户身份鉴别这一块我们基本上采用md5加密,但是基本上对密码加密了一次,虽然说md5基本上是不可逆的,很多人认为比较安全,其实并不是这样,像md5.com这样的碰撞库,其规模已经非常巨大,常规的密码的破解几率大于95%,那我们怎么做最安全呢?那就是两次或多次Md5加密,这种方法很好的避免了加密后的密码在类似cmd5.com这样庞大的碰撞库中出现。
基于常规的用户身份鉴别,如果要做到符合国家结构化保护级标准,我大体上列出如下研发标准:
1)、用户口令强化(复杂度、验证码)
2)、用户口令周期性强制更换
3)、用户输入错误口令次数限制
4)、用户并发登录限制
5)、本次登录时显示上次成功登录情况
6)、本次登录时显示上次成功登录以后登录失败记录
后续文章中我会专门针对用户身份鉴别进行设计,并提供研发Demo下载。
2) 用户身份鉴别还可方便地与具有更强安全性的CA 认证系统集成,兼容第三方的CA 认证系统,支持用户认证,数字签名,时间戳,数据加解密等。
图 数字证书认证
如上图所示:应用客户端不能直接访问或登录Web服务器,只能利用用户数字证书,通过访问SSL安全网关来访问Web服务器。
当用户需要用浏览器的SSL与SSL安全网关进行连接时,首先发出请求,先与SSL安全网关建立高位数加密强度(高于128位)的握手,SSL安全网关要求用户递交用户证书,从而验证用户的身份。身份验证通过后,SSL安全网关与客户端建立数据传输安全通道,然后将请求发送给Web服务器。数据传输时,客户端用户(一般位IE浏览器)先将数据加密,然后将密文发送给SSL安全网关,SSL安全网关收到密文后,将密文解密为明文,发送给Web服务器。同理,Web服务器返回数据给SSL安全网关,SSL安全网关先将明文加密为密文,再转发给客户端用户。
数据加解密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。
加密的基本功能包括:
1. 防止不速之客查看机密的数据文件;
2. 防止机密数据被泄露或篡改;
3. 防止特权用户(如系统管理员)查看私人数据文件;
4. 使入侵者不能轻易地查找一个系统的文件。
加密类型可以简单地分为四种:
1. 根本不考虑解密问题;
2. 私用密钥加密技术:对称式加密(Symmetric Key Encryption):对称式加密方式对加密和解密使用相同的密钥。如:RC4、RC2、DES 和 AES 系列加密算法。
3. 公开密钥加密技术:非对称密钥加密(Asymmetric Key Encryption):非对称密钥加密使用一组公共/私人密钥系统,加密时使用一种密钥,解密时使用另一种密钥。公共密钥可以广泛的共享和透露。当需要用加密方式向服务器外部传送数据时,这种加密方式更方便。如: RSA
4. 数字证书。(Certificate):数字证书是一种非对称密钥加密,但是,一个组织可以使用证书并通过数字签名将一组公钥和私钥与其拥有者相关联。
3、2、1国家数据加密性和完整性规定
数据完整性(S4)
本项要求包括:
a) 应能够检测到系统管理数据、鉴别信息和重要业务数据在传输过程中完整性受到破坏,并在检测到完整性错误时采取必要的恢复措施;
b) 应能够检测到系统管理数据、鉴别信息和重要业务数据在存储过程中完整性受到破坏,并在检测到完整性错误时采取必要的恢复措施;
c) 应对重要通信提供专用通信协议或安全通信协议服务,避免来自基于通用通信协议的攻击破坏数据完整性。
数据保密性(S4)
本项要求包括:
a) 应采用加密或其他有效措施实现系统管理数据、鉴别信息和重要业务数据传输保密性;
b) 应采用加密或其他保护措施实现系统管理数据、鉴别信息和重要业务数据存储保密性;
c) 应对重要通信提供专用通信协议或安全通信协议服务,避免来自基于通用协议的攻击破坏数据保密性。
3、2、2 开发数据加密性和完整性规定解决方式
数据加密技术
在保障信息安全各种功能特性的诸多技术中,密码技术是信息安全的核心和关键技术。通过数据加密技术,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。在数据加密系统中,密钥控制加密和解密过程,一个加密系统的全部安全性是基于密钥的,而不是基于算法,所以加密系统的密钥管理是一个非常重要的问题。
数据加密过程就是通过加密系统把原始的数字信息(明文),按照加密算法变换成与明文完全不同的数字信息(密文)的过程,如图所示。
推荐的两种加解密算法
对称加密之DES加密与解密
对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。因此,通信双方都必须获得这把钥匙,并保持钥匙的秘密,如图:
非对称加密之RSA加密和解密
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。如下图:
数据加解密开发应用场景
l URL传参加解密;
l 所有包含敏感数据的配置文件加解密;
l 业务系统保密数据加解密;
l 用户密码MD5加密;
3、3、1国家标记和访问控制规定
自主访问控制:
a) 命名用户以用户的身份规定并控制对客体的访问,并阻止非授权用户对客体的访问;
b) 提供用户按照确定的访问控制策略对自身创建的客体的访问进行控制的功能,包括:
——客体创建者有权以各种操作方式访问自身所创建的客体;
——客体创建者有权对其它用户进行“访问授权”,使其可对客体拥有者创建的指定客体能按授权的操作方式进行访问;
——客体创建者有权对其它用户进行“授权传播”,使其可以获得将该拥有者的指定客体的访问权限授予其它用户的权限;
——客体创建者有权收回其所授予其它用户的“访问授权”和“授权传播”,并对授权传播进行限制,对不可传播的授权进行明确定义,由系统自动检查并限制这些授权的传播;
——未经授权的用户不得以任何操作方式访问客体;
——授权用户不得以未授权的操作方式访问客体;
c) 以文件形式存储和操作的用户数据,在操作系统的支持下,按GB/T 20272-2006中4.4.1.2的要求,可实现文件级粒度的自主访问控制;
d) 以数据库形式存储和操作的用户数据,在数据库管理系统的支持下,按GB/T 20273-2006中5.4.1.2的要求,可实现表级/记录、字段级粒度的自主访问控制;
e) 在应用软件系统中,通过设置自主访问控制安全机制,可实现文件级粒度的自主访问控制。
标记
从以下方面设计和实现主、客体标记功能:
a) 用户的敏感标记,应在用户建立注册账户后由系统安全员通过SSOASS所提供的安全员界面操作进行标记;
b) 客体的敏感标记,应在数据输入到由SSOASS安全功能的控制范围内时,以默认方式生成或由安全员通过操作界面进行标记;
c) 将标记扩展到应用软件系统中的所有主体与客体;对于从SSOASS控制范围外输入的未标记数据,应进行默认标记或由系统安全员进行标记;对于输出到SSOASS控制范围以外的数据,如打印输出的数据,应明显地标明该数据的安全标记。
强制访问控制
从以下方面设计和实现应用软件系统的强制访问控制功能:
a) 按确定的强制访问控制安全策略,设计和实现相应的强制访问控制功能;
b) 以文件形式存储和操作的用户数据,在操作系统的支持下,按GB/T 20272-2006中4.4.1.4的要求,可实现文件级粒度的强制访问控制;
c) 以数据库形式存储和操作的用户数据,在数据库管理系统的支持下,按GB/T 20273-2006中5.4.1.4的要求,可实现表级/记录、字段级粒度的强制访问控制;
d) 在应用软件系统中,在PMI(授权管理基础设施)的支持下,可实现文件级粒度的强制访问控制;
e) 将强制访问控制的范围应扩展到应用软件系统的所有主体与客体;
f) 将系统的常规管理、与安全有关的管理以及审计管理,分别由系统管理员、系统安全员和系统审计员来承担,按最小授权原则分别授予它们各自为完成自己所承担任务所需的最小权限。
3、3、2 研发标记和访问控制规定解决方式
访问控制是针对越权使用资源的防御措施。基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么。
企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:1.减小授权管理的复杂性,降低管理开销;2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
RBAC 几大特点:
(1)访问权限与角色相关联,不同的角色有不同的权限。用户以什么样的角色对资源进行访问,决定了用户拥有的权限以及可执行何种操作。
(2)角色继承。角色之间可能有互相重叠的职责和权力,属于不同角色的用户可能需要执行一些相同的操作。RBAC 采用角色继承的概念,如角色 2 继承角色 1,那么管理员在定义角色 2 时就可以只设定不同于角色1 的属性及访问权限,避免了重复定义。
(3)最小权限原则,即指用户所拥有的权力不能超过他执行工作时所需的权限。实现最小特权原则,需要分清用户的工作职责,确定完成该工作的最小权限集,然后把用户限制在这个权限结合的范围之内。一定的角色就确定了其工作职责,而角色所能完成的事物蕴涵
了其完成工作所需的最小权限。用 户要访问信息首先必须具有相应的角色,用 户无法饶过角色直接访问信息。
(4)职责分离。一般职责分离有两种方式:静态和动态。
(5)角色容量。在一个特定的时间段内,有一些角色只能有一定人数的用户占用。在创建新的角色时应该指定角色的容量。
构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的。权限管理系统是管理信息系统中可代码重用性最高的模块之一。任何多用户的系统都不可避免的涉及到相同的权限需求,都需要解决实体鉴别、数据保密性、数据完整性、防抵赖和访问控制等安全服务(据ISO7498-2)。
权限系统是一个完善项目的基石,权限控制可以分为两部分内容:功能权限控制和数据权限控制。介绍权限控制,必须了解什么是RBAC,RBAC 模型是目前最为广泛接受的权限模型。
基于角色的访问控制(RBAC)是实施面向企业安全策略的一种有效的访问控制方式。其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。如下图:
该模型由三个实体组成,分别是:用户(U)、角色(R)、权限(P)。其中用户指自然人;角色就是组织内部一件工作的功能或工作的头衔,表示该角色成员所授予的职责的许可,系统中拥有权限的用户可以执行相应的操作。
用户与角色之间以及角色与权限之间用双双箭头相连表示用户角色分配 UA 和角色权限分配 PA 关系都是多对多的关系,即一个用户可以拥有多个角色,一个角色也可被多个用户所拥有。同样的,一个角色拥有多个权限,一个权限能被多个角色所拥有。用户建立会话从而对资源进行存取,每个会话 S 将一个用户与他所对应的角色集中的一部分建立映射关系,这个角色会话子集称为会话激活的角色集。于是,在这次会话中,用户可以执行的操作就是该会话激活的角色集对应的权限所允许的操作。
3、4、1 国家 数据审核审计 规定
a) 应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计;
b) 应保证无法单独中断审计进程,无法删除、修改或覆盖审计记录;
c) 审计记录的内容至少应包括事件的日期、时间、发起者信息、类型、描述和结果等;
d) 应提供对审计记录数据进行统计、查询、分析及生成审计报表的功能;
e) 应根据系统统一安全策略,提供集中审计接口。
3、4、1 开发数据审核审计解决方式
大型的行业系统,尤其是涉密的信息子系统都要实现特定层面上的安全审计功能,主要针对的审计对象有:网络通信系统、重要服务器主机操作系统、重要服务器主机应用平台软件、重要数据库操作的审计、重要应用系统的审计、重要网络区域的客户机等。
充分利用了Filter技术,实现了管道式的过滤机制。通过Filter链的配置,可以根据用户对服务器的不同请求达到特定的身份认证、访问控制、访问跟踪、审计日志记录等功能。同时,基于对CC标准的研究,我们提出了如下的审计模型,见下图:
规则设置:为保证系统在有安全保障的条件下有效运行,我们为审计管理员提供了详细的规则管理,包括对来访IP的过滤,对特定注册用户的过滤,对恶意刷新(可自定义设置次数/秒数)的屏蔽等。
审计事件鉴别:在实施审计过滤体系前,我们需要对审计事件进行鉴别,以确定哪些事件需要重点审计,据此来配置相应的过滤器链,开发相应的审计事件记录组件等。
报警处理及报警行为:对于违规访问及恶意刷新,系统会进行报警处理,自动提取来访IP或用户名,将其置入危险IP库或者拒绝服务用户库,再次地访问将被服务器拒绝,同时,系统将向审计管理员发出短信或Email以提示系统可能潜在的危险。
审计事件处理:审计事件处理完成了安全审计的核心功能。主要实现了在线日志采集和离线日志显示。在线日志通过访问者的SessionID可以得到用户访问的序列,而离线日志则会利用Filter过滤器组件或者数据库层触发器,存储审计日志于数据库中。
审计记录:审计事件记录采用数据库存储,重要包括用户的访问日志,如会话标识符、用户名、IP地址、资源URL等主要信息,以供审计使用。
安全审计报告:安全审计模块要为管理员提供各种查询统计的接口,以做到有效的追踪,对具体操作的有据可考。具体包括:对各类别日志的自定义模糊查询、提取高频率信息流、对大量访问日志的挖掘分析、对海量日志的转储方案等。
同时,日志作为安全审计系统得到的核心数据,考虑其安全性也是十分必要的,方案中通过数据库系统设置和文件过滤器的配合,来控制对日志物理文件的访问,以确保日志文件不被非授权访问和篡改。
数据审核审计也业务系统的研发中也是非常重要的,后续我会分享一个数据安全审核审计的设计和研发的Demo。