范文一:Web应用系统的安全性设计
Web应用系统的安全性设计
摘 要: 探讨了Web应用系统的安全问题,阐述了防火墙技术、身份验证技术、ASP.NET程序安全性设计、数据加密技术等实现Web应用系统安全性设计的技术。关键词: Web应用系统;防火墙;身份验证;ASP.NET;数据库
随着Internet的飞速发展,Web服务的应用越来越广泛,企业信息系统的应用领域由传统的、小型业务系统逐渐向大型的、关键业务系统转变[1]。企业信息系统中的数据,包括业务处理信息、技术资料信息,以及涉及企业高层发展计划和企业决策信息,其中大部分信息极其重要且具有保密性质。伴随着社会信息化建设大步推进,人们对企业信息系统的使用依赖性也越来越强。因此企业信息系统出现任何故障或被破坏,都会对用户、企业乃至整个行业产生不可估量的影响。 本文以徐工筑路机械有限公司(以下简称徐工筑路)备件管理系统项目为背景,由于此系统是在徐工筑路企业内外Internet/Intranet范围内设计使用,系统安全性问题关系到备件管理系统的正常运行,以及企业的业务能否正常展开,因此徐工筑路备件管理系统的安全性设计就显得尤为重要了。1 系统面临的安全威胁 徐工筑路备件管理系统的安全威胁主要表现在非授权访问系统、伪用户登录系统、破坏数据的完整性、干扰备件管理系统正常运行等方面。它们主要利用以下途径:备件管理系统自身存在的漏洞、备件管理系统安全体系的缺陷、徐工筑路员工薄弱的安全意识及尚未健全的管理制度。备件管理系统的安全威胁主要有人为威胁和自然威胁。而人为威胁都是有目的的恶意攻击,攻击有主动和被动之分,因此可以将人为威胁分为主动性攻击和被动性攻击两大类。这些攻击对徐工筑路备件管理系统安全有着直接或潜在的破坏和威胁[2]。1.1 主动性攻击 主动攻击是指那些攻击者未经徐工筑路许可截获或篡改公司信息,冒充公司拒绝或中止某些用户对系统使用的行为。这方面攻击往往是对数据通道中正在传输的数据单元进行更改、删除、延迟、拷贝重发或插入、合成或伪造等各种恶意处理行为,并以更改报文流、拒绝报文服务、伪造连结初始化等形式实现攻击者的险恶用心。主动攻击通常易于探测但却难于防范,因为攻击者可以通过多种不同方法发起攻击。1.2 被动性攻击 被动攻击主要是指攻击者通过监听网络上传递的信息流,从而截获信息内容的行为。这类攻击仅仅为了获得信息流的长度、传输频率等数据要素,它不像主动攻击有直接恶意的破坏,而只是观察和解析出贯穿于一条连接通道上传输的数据单元所含的信息(包括用户数据的
内容,或协议控制信息),但不纂改或破坏数据单元的信息。攻击者正是通过这种看似“无恶意”的攻击行为来了解熟悉正在通信的双方详情,以便用其他方法达到窃取或破坏备件管理系统和企业资源的间接性攻击目的。因此,在信息发送者或接收者发现机密信息被泄漏之前,要发觉这种攻击是很困难的。然而通过对机密信息进行加密可以避免被动攻击的发生。 从上述分析可以看出备件管理系统所受到的攻击可能是多方面的,攻击形式也是多种多样的,而且往往是多种攻击同时存在。如何防范这些非法攻击是一项复杂而艰巨的任务,需要通过各种安全服务措施和健全企业机制来实现。2 对系统的安全措施 为了保证备件管理系统的安全运行,保护企业计算机的硬件、软件和系统数据不因偶然或恶意的原因而遭到破坏、更改或泄漏,本备件管理系统采用以下安全措施。2.1 使用防火墙技术 防火墙技术是一种建立在现代通信网络技术和信息安全技术基础上的网络应用安全技术,越来越多地被应用在专用网络与公用网络的互联环境之中,尤其是以接入Internet网络使用最为广泛[3]。 防火墙是指设置在不同网络(如可信任的企业内部网和不可信的外部公共网)或网络安全域之间的一系列器件的组合。防火墙是不同网络或网络安全域之间信息的唯一出入口,它能根据企业的安全政策(允许、拒绝、监测)控制出入网络的信息流,且本身还具有较强的抗攻击能力。防火墙可提供信息安全服务,是实现网络和信息安全的基础设施。在逻辑上,防火墙既是一个分离器、限制器,也是一个分析器,能够有效地监控内部网和因特网之间的任何活动,保证内部网络的安全[3]。 徐工筑路备件管理系统在使用防火墙技术主要体现在两个方面: (1)企业网络级防火墙,用来防止整个企业内部安全网络出现外来非法不可信网络的入侵。属于这类的有分组过滤和授权服务器,分组过滤检查所有流入本企业网络的信息,拒绝所有不符合企业事先制定好的一套准则的数据,而授权服务器则是检查系统使用用户的登录是否合法。 (2)企业应用级防火墙,企业从应用程序入手来进行备件管理系统的接入控制。通常使用应用网关或代理服务器来区分各种应用。如徐工筑路公司只允许通过访问万维网的应用,而阻止FTP应用的通过。2.2 应用系统的安全性 本系统可供徐工筑路的备件中心、备件代理商、市场部、特约维修站、服务部及销售部等多个部门员工同时使用,因此在系统安全性设计方案上,可采用角色管理和系统用户身份验证的安全策略。 (1)角色管理 角色管理
将系统不同模块权限和对象权限整合成一个集合,即角色。通过对系统功能模块的划分,不同的模块对不同的角色有着不同的访问权限控制。从而限制了那些没有该功能模块访问权限的用户访问该功能模块。本系统将操作用户分为7类角色:仓库管理员、备件系统管理员、服务处处长、服务系统管理员、特约维修站总经理、特约维修站信息接待处理员及销售系统管理员。 (2)系统用户身份验证 身份验证技术是目前广泛使用的企业信息系统的安全技术之一,它通过使用用户向系统出示自己身份证明、系统核查使用用户身份证明的有效性两个过程判明和确认通信双方的真实有效身份。 本备件管理系统主要依靠Internet信息服务(IIS)的身份验证技术和Windows NT文件访问系统的安全性,。使用用户的访问请求首先从网络客户进入IIS,IIS可以选择使用基本的、简要的或集成的Windows 身份验证技术对客户进行身份验证,如果客户通过了身份验证,那么IIS将根据验证后的结构生成新的对ASP.NET的请求后提交给ASP.NET应用程序服务器。之后ASP.NET应用程序使用从IIS传递来的访问标记模拟原始提出请求的客户,并验证该用户在配置文件中所给定的访问权限。最后通过验证,应用程序通过IIS返回所请求的页面[4]。此方案依赖了Windows集成的账户验证功能,同时可以尽量减少备件管理系统对ASP.NET程序本身在安全性方面的编程量,大大简化了备件管理系统设计过程中的工作量。
2.3 ASP.NET程序的安全性 在备件管理系统的程序设计过程中为了减少因程序设计漏洞而带来的安全性问题,在程序设计中采取如下措施来增加ASP脚本的安全性。 (1)防止SQL注入攻击,在编程的时候要禁止用户输入非法的危险字符,如单引号(‘或’),or,and,、,*,<,>,空格等危险字符[5];同时在客户端和服务器端都要对用户输入的信息进行验证;同时在编写程序过程中尽量使用存储过程技术,使用存储过程不仅可以防止某些类型的SQL注入式攻击,还可以提高SQL语句的执行速度;在程序出现异常的情况下,程序会自动跳转到固定的页面,而不是将错误信息显示给用户,这样可以防止部分别有用心的用户。 (2)在本备件管理系统中,由于访问权限的不同,用户可以访问的页面也不同,为了防止用户直接从网页的地址栏中输入链接地址进入某个超出该用户权限的页面,而出现越权的操作,。用户登录后输入选择角色并输入密码,验证通过进入导航页面,同时系统记录下该用户的角色。用户在访问页面时,系统将同时记录用户请求的路径,并进入数据库对其进行判断,如果该用户
的角色具有访问此页面的权限,则进入要访问的页面,否则进入错误提示页面。用户点击重新登录后将重新返回到登录页面,从而避免了用户采用直接输入网址的方式访问超出其权限的页面。由于系统不能够检测登录的账号是否被他人冒用,所以采取当用户长时间不在系统中进行操作时(本备件管理系统设置为20 min),用户在系统中的Session值过期,从而该登录的账号失去了再次使用系统的权利,必须重新登录系统。这样可以防止用户离开计算机时被他人冒名使用。
(3)本备件管理系统中具有文件的上传和下载功能,在上传文件时为了防止有些用户上传恶意文件破坏系统,因此需要在上传时对文件类型进行判断。除非是指定的文件类型外,其他的文件均不予上传,尤其是以.asp,.aspx或.exe等结尾的文件。2.4 数据库中数据加密技术 由于系统应用程序的关键信息和数据都存储在数据库中,所以数据库的安全性就显得尤为重要。在信息系统的开发过程中,加密技术是一种很常用的安全技术。它把重要的数据通过技术手段变成乱码(加密)后再传送信息,即通过将信息编码为不易被非法入侵者阅读或理解的形式来保护数据的信息,到达目的地后再用相同或不同的手段还原(解密)信息。根据加密密钥和解密密钥在性质上的不同,在ASP.NET应用中提供了两种加密算法,即对称加密算法和非对称加密算法[6]。 (1)对称加密是加密和解密使用相同密钥的加密算法。它的优点是保密程度较高、计算开销小、处理速度快、使用方便快捷、密钥短且破译困难。由于持有密钥的任意一方都可以使用该密钥解密数据,因此必须保证密钥不被未经授权的非法用户得到。在对称加密技术中广泛使用的是DES加密算法。 (2)非对称加密是加密和解密使用不同密钥的加密算法。它使用了一对密钥:一个用于加密信息;另一个用于解密信息,通信双方无需事先交换密钥就可以进行保密通信。但是加密密钥不同于解密密钥,加密密钥是公之于众,谁都可以使用;而解密密钥只有解密人知道,这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一密钥进行解密。它只可加密少量的数据。在非对称加密算法中普遍使用的是RSA加密算法。 基于上述分析,并结合徐工筑路备件信息网的特点,采用RSA与DES混合加密体制的方式实现数据信息的加密。可以用对称加密算法(DES加密算法)加密较长的明文;用非对称加密算法(RSA加密算法)加密数字签名等较短的数据,这样既保证了数据的保密强度,又加快了系统运算速度。 本文通过对信息系统安全威胁及系统安全的
防护措施的分析[7],使用户能够最大限度地保障Web应用系统的安全,并通过必要的安全措施,将可能发生的风险控制在可接受的范围之内。
范文二:FPGA设计的安全性
学术研究Academic Research
本栏目由保密通信重点实验室协办
FPGA 设计的安全性
苏先海,向红权,金东方
(中国电子科技集团公司第三十研究所,四川 成都 610041)
[摘 要]现场可编程门阵列(Field Programmable Gate Array,FPGA)可完成片上系统的硬件设计和实现,并具有可重复编程的优势,使其在现代电子系统设计中被广泛应用,并已经成为系统设计的核心。随着应用领域的不断扩展以及对电子产品快速增长的信息安全需求,FPGA设计的安全性越来越多地受到重视。简要说明了基于不同工艺的FPGA 的安全性特点,以及它们在设计和数据安全方面采取的主要措施,描述了主流FPGA 厂商新近推出的FPGA 芯片的安全性特点及应用方案。[关键词]FPGA;安全性;SmartFusion2
[中图分类号] TP393 [文献标识码] A [文章编号] 1009-8054(2013)07-072-03
Security of FPGA-based Design
SU Xian-hai,XIANG Hong-quan,JIN Dong-fang
(No.30 Institute of CETC,Chengdu Sichuan 610041,China)
[Abstract] FPGA(Field Programmable Gate Array) could achieve hardware design and implementation of on-chip system,and for its advantage in repeatable programming,becomes one of the most popular devices in modern electronic system design,and even the core of the system design. Along with the widely-extended apllication and the increasement of information security in fast growing electronic products,the design-security is regarded increasingly. This paper discussed the security characteristics of the main FPGA based on different technics,and the measures adopted on the design security and data security which they protect,discribed characteristics and security design scheme used in lastest FPGA of main FPGA manufacturers.[Keywords] FPGA;Security;SmartFusion2
0 引言
从纯硬件开发到可以用C、C++或System C来开发,从工艺的跟随到成为先进工艺的引领和3D IC的成功,从传统的通信、工业和军工等应用向消费电子、医疗电子、汽车电子、嵌入式市场等扩展,FPGA成为扩充人们想像力的“先锋”。现代电子信息系统日新月异的发展,既为信息交互和共享提供了便捷,也给不法分子通过信息系统窃取个人、商业和国家秘密提供了可乘之机,如何保证信息的安全是各行各业必须面对的挑战,特别是在与国家秘密和军事安全有关的领域如航天、军工等部门,均十分关注信息的安全性,它们需要更能保障设计和数据安全的FPGA 器件
[1-2]
1 FPGA的安全性特点
FPGA 的安全性包括设计安全性和数据安全性两类。设计安全性指设计意图、设计文件和相关位流文件的机密性,防止设计被克隆、篡改、盗版和伪造等,即知识产权保护。数据安全性指器件所管理数据的安全性,即FPGA 在终端应用中存储、处理和传输的信息的安全。首先应保证设计自身的安全性,否则就谈不上器件所管理的数据的安全性。基于SRAM 的FPGA 器件掉电后,SRAM中的配置数据丢失,FPGA内部逻辑关系随之消失,因此需要外部的配置器件,上电时将配置数据读入片内SRAM 中,在没有比特流加密的情况下,配置数据比特流在上电阶段暴露在外部,配置数据所包含的IP 完全不受保护,盗版者可能拦截并获取新的码流,就安全性而言,它们是很脆弱的,在国家和军事安全领域更可能造成严重后果。
与基于SRAM 的FPGA 不同,反熔丝FPGA 采用反熔丝阵列开关,设计者首先完成逻辑功能设计和实现,然后使用专用的编程器将实现所给出的数据文件烧录到FPGA 中,反熔丝开关被烧录后才形成实际的逻辑电路。因为具有耐高温、抗辐射和低功耗的特点,反熔丝FPGA 在航空
[3]
。
收稿日期:2013-05-28
作者简介:苏先海,1972年生,男,工程师,硕士,研究方向为信息安全与通信保密;向红权,1975年生,男,工程师,工程硕士,研究方向为信息安全与通信保密;金东方,1981年生,男,工程师,本科,研究方向为信息安全与通信保密。
72 信息安全与通信保密·www.cismag.net
Academic Research学术研究自主创新·重点跨越·技术发展·引领未来
航天等对可靠性、保密性要求高的领域得到广泛应用,缺点是它们不能再次编程,且性能和内存容量有限。
基于Flash 架构的FPGA 采用Flash 编程单元控制FPGA 内部的开关门,Flash开关的好处在于面积小、功耗低、可重复编程且非易失性。器件配置信息保存在Flash 中,用Flash 来加载SRAM,正常工作时则通过SRAM 完成对系统的控制。基于Flash 架构的FPGA 无需外部配置芯片,上述“敌我识别”的过程主要基于密钥进行,安全存储器和 FPGA 无法读取认证使用的密钥。并且因为配置数据没有规律可寻,即使当FPGA 加载时截取比特流也不能获取密钥,此外,比特流的数据量一般较大,对其进行分析需要耗费大量时间,因此几乎不可能通过对比特流的逆向工程来推测设计者的意图。2.2 莱迪思FPGA 的安全性设计
用户逻辑由Flash 晶体管的内容确定,即使把器件解体剥离也只能显示内部结构,不会暴露Flash 晶体管的实际内容,具有很高的安全性。
2 安全性设计
2.1 SHA-1质询-响应认证
SHA-1质询-响应认证用于基于SRAM FPGA的安全设计,被认为是最安全的方法。图1为硬件设计框架,采用1线(1-Wire)接口或I2C 接口的安全存储器件(如美信的DS28E01或DS28CN01),即可将质询-响应加入到基于SRAM 的FPGA 的系统设计中,当然也可以使用CPLD 来实现SHA-1引擎的功能[4]
。
图1 质询-
响应认证硬件设计框架
质询-响应认证过程的目的就是进行“敌我识别”,FPGA 判断输入信息是否可靠,从而决定是否执行所有设计定义的功能。FPGA产生一个质询(随机数) 发送给安全存储器,安全存储器使用此质询及器件唯一的识别码、密钥等参数计算信息验证代码(MAC2),并发送给FPGA,FPGA 采用与安全存储器同样的参数计算出预期响应(MAC1)并与MAC2进行比较,如果一致则认为信息可靠。图2为质询-响应认证的基本原理。
图2 质询-
响应认证的基本原理
虽然反熔丝和基于Flash 的FPGA 比SRAM FPGA更安全,但密度和存储容量一般较小,功能和I/O的速度也有限。为克服这些缺点,莱迪思半导体公司采用独特的flexiFLASH 技术,将SRAM 和Flash 整合在同一个FPGA 中,同时实现了位流配置、以最短的系统中断时间进行远程重新配置,以及数据保护和器件加锁等优点。LatticeXP2 FPGA 把SRAM 映射合并入同一块芯片,在FPGA 内采用的微软处理器LatticeMico32访问FPGA 的内部存储器组,而从外部却无法看到存储器组,因此,这些存储器组可以用来存储用户的敏感数据。此外,器件提供解扰器,从而允许将指令加密后存储在外部存储器,其基本架构如图3所示。莱迪思为几款FPGA 提供了128位AES 密钥来加密位流。
图3 莱迪思LatticeXP2 FPGA
的安全设计
当设计者认为系统功能已经达到预期要求时,就可以进入保护设计的工作阶段,可以选择两种密钥来加密位流,即128位密钥或一个ASCII 密钥,使用莱迪思的FPGA 开发工具ispLEVER 和编程工具ispVM System对位流加密,然后使用任何非加密的文件编码将该位流加载到配置存储器中,如图4所示。
图4 采用128位AES
密钥保护设计
由于用密钥对位流加了密,现在只能通过加密的位流对FPGA 进行配置。当数据进入FPGA 时,解码器读引导程序,FPGA检查引导程序,指出后面所有的数据应通过解码器,则将它直接发送到解码单元,一旦通过CRC 校验,即对SRAM 进行编程。DONE位被激活时,允许其他
JTAG 链元件接收配置数据。
2013.7·信息安全与通信保密 73
学术研究Academic Research
本栏目由保密通信重点实验室协办
2.3 基于艾特SmartFusion2器件的安全平台
艾特(ACTEL)新近推出的SmartFusion2 Soc芯片在安全能力方面具有突破性表现,该系列芯片采用非易失性快闪技术,提供先进的设计保护功能,可以有效保护设计的机密和价值,防止篡改、克隆、过度建造、反向工程和伪造,被认为是目前安全性与可靠性最高的FPGA 芯片。该芯片内部集成166 MHz的ARM Cortex-M3硬核处理器,配合先进的安全处理加速器,保护您的知识产权。在SRAM、PLL 等普通外设基础上,SmartFusion2集成了高速乘法器、DDR2/3、CAN、USB、SerDes,以及千兆以太网等高级外设,完全满足SoC 需求,并获得了高安全性、高可靠性。SmartFusion2芯片的基本架构如图5所示。
[5]
嵌入式SRAM 均可防止单事件翻转(Single Event Upset,SEU),从而避免由此造成的硬件失效。由于具有这些先进的安全设计,加上采用Flash 器件架构,SmartFusion2能够有效地保护用户的设计和数据,从而成为安全FPGA 器件的最佳选择。
[6]
3 结语
设计的安全性应该是设计过程的一部分,在设计初始阶段,就应该对硬件平台的器件选型进行充分调研和论证,特别是对安全性要求较高的应用场合,更需要充分对比各类型FPGA 芯片的安全性特点,确定安全性设计方案。不同类型的FPGA 在容量、速度、功耗和安全性方面都各具特色,应该在设计要求、实现难度、芯片成本、设计和数据的安全性等方面力求平衡。总之,无论选择哪种芯片和技术,设计的安全性都应该未雨绸缪,而不是事后再去考虑。参考文献
[1] 崔光耀. 信息安全内涵与外延的扩张[J]. 信息安全与通信保密,2007(11):1.
[2] 陈周国,陈浩. 星座卫星通信系统安全威胁分析[J]. 信息安全与通信保密,2007(8):148-150.
[3] conniede. 解读FPGA 的安全性[EB/OL]. (2010-10-10)[2013-5-23]. http://www.eechina.com/thread-31270-1-1.
[7]
图5 SmartFusion2
的基本架构
html.
[4] Linke.Bernhard. 有效保护基于SRAM 的FPGA 设计IP[EB/OL]. (2012-4-6)[2013-5-24]. http://wenku.baidu.com/view/1b420e2e4b73f242336c5f40.html.
[5] Microsemi Corporation. SmartFusion2 System-On-ChipFPGAs[EB/OL]. (2012-10-3)[2013-5-24]. http://www.actel.com.
[6] Microsemi Corporation. SmartFusion2 Reliability and SecurityUser Guide[EB/OL]. (2012-12-13)[2013-5-25]. http://www.actel.com.
[7] 段小芬,安红章,谢上明. 空间通信安全协议研究[J].
通信技术,2009,42(12):101-103.
在主要FPGA 厂商生产的SoC FPGA中,SmartFusion2的密匙登记和重建能力在物理上不能克隆其功能,使得设备具有安全密匙存储能力,从根源上大大提高了设备的安全性和可靠性。在抵御差分功率分析方面,仅有它采用了Cryptographic Research Incorporated(CRI)产品组合技术。芯片内置了多个加密处理加速器,为使设计者可以灵活地通过加密来保护数据,芯片提供了多种加密引擎,如先进的加密标准AES-256、常用于签名认证的安全散列算法SHA-256和384位的椭圆曲线密码引擎,还提供了随机数产生器,设计可以用来完成数据加扰等功能。通过使用单错校正、双错检测保护功能,SmartFusion2中的所有
《信息安全与通信保密》杂志启用科技期刊学术不端文献检测系统
为了提高来稿质量,杜绝学术造假,促进《信息安全与通信保密》的健康发展,从2009年1月起,本刊编辑将正式启用科技期刊学术不端文献检测系统,对所有来稿进行检查。对于检测出有不端行为的稿件,编辑部将直接退稿。在此,希望广大作者在撰写论文时,一定要本着实事求是的科学精神,引用他人的研究成果时务必在参考文献中列出,并在正文中相应位置进行标注。大家共同努力,维护学术研究的诚信,杜绝学术不端行为,促进《信息安全与通信保密》的可持续发展,为广大作者搭建一个更好、更高、更权威的学术争鸣和技术交流的平台。
《信息安全与通信保密》杂志社
二OO 九年一月一日
74 信息安全与通信保密·www.cismag.net
范文三:系统安全性设计报告
系统安全性设计报告
一:页面访问身份验证保护设计:
功能描述: 使用过滤器保护页面 防止未经登录直接访问其他页面
实现设计:
1: 将各个功能受保护页面打包.例如:student功能受保护的页面装在文件夹student目录下 同理处理teacher,instructor,administrator受保护的页面
2: 配置web-xml 文件
使/student/* /teacher/* /instructor/* /administrator/* 里面的所有文件都受到student/servlet/studentFilter 的保护
3:判断未经登录直接访问的jsp是 student ,teacher,instructor,administrator文件夹里的哪一个,用user变量保存起来
用HttpRequest.getServletPath()获取用户访问的受保护页面的上下文然后用StringTokenizer类截取由/符号隔开的代表访问页面输入哪个文件夹的字段 例如/student/ /teacher/
/instructor/ /administrator/ 然后把这些字段保存在user变量中
4: user的值所代表的就是受保护页面访问需要的权限 所以可以根据这个值做不同的是否已经登录的满足条件
二: 上课时间冲突问题和课程表显示 数据类型设计
功能描述: 解决选课上课时间冲突判断问题 和 页面课程表显示问题 实现设计:
1: 每门课的上课时间classTime格式:用32位int类型的后20位表示课程表 20 个格, 每个格用一个二进制位表示, 1表示这个时间要上这门课, 0表示不用上课. 2: 两门课的上课时间都用32位的int , 进行与运算结果不为0 表示两门课上课时间冲突
例如:
3: 将int类型的上课时间表示成通俗的文字表示
用0x80000与要显示上课时间的classTime类型 循环进行与运算 设置自增数据count每次循环自加1, 当循环结果不为0时,记录下count的数值 , 然后将count进行处理(count-1)/4+1得到星期几 count%4得到上课的时间段(例如1,2节)
4: 动态地在课程表上显示时根据classTime那一位为1 就在课程表的空格上显示出这门课的className
用0x80000与要显示上课时间的classTime类型 循环进行与运算 设置自增数据count每次循环自加1, 当循环结果不为0时,记录下count的数值 , count 的数值代表的就是课程表里的第几个空格
三: 用户输入类型验证设计
功能描述: 录入课程等要求和用户互动的界面时 对用户输入类型进行有效性验证 1: 要求用户输入非字符类型的int 或者float 类型的验证
设计思想: 首先调用DecimalFormat类的parse函数把用户输入转换成Number类型 然后调用Number如果成功转化表示用户输入类型符合要求 然后再检验转化后的Number类型的大小范围是否符合要求.
2: 用户没有输入时返回错误提示信息
通过验证String类型是否为null 来实现
范文四:基于Net框架的Web应用系统安全性设计
基于.Net框架的Web应用系统安全性设计
周雪萍 李华山 刘素星
新疆油田公司采油三厂信息所
摘 要:本文着重分析了在设计.Net Web应用程序就基于.Net Framework、数据库访问两个方面安全性进行了分析设计。
主题词:.Net Framework,安全性,验证,Web应用系统
随着计算机技术的广泛应用,它与人们的生活越来越密不可分。在现代企业管理中,网上办公已经在各行各业中不同程度的应用。然而网络给我们带来方便的同时,也给我们提出了较高的要求,那就是网络应用中的安全设计问题。
利用Internet和网络技术实现Web应用系统时需要解决好网络安全和信息安全问题。除了需要采用防火墙、防病毒和防攻击等网络安全措施外,还需要采取适当的信息安全技术来完成身份认证、信息加密传输、保障信息的完整性、准确性。本文主要就Web应用程序设计以及数据库访问设计等方面的安全性进行了分析设计。
1. 基于.Net Framework安全设计
.NET框架本身提供了全面的安全系统,能够满足现在已有的多数安全性问题。.NET的安全模型在系统的安全模型的上层,并且与一些服务器程序的安全特性结合的很好(目前这些产品还仅限于微软的产品,比如SQL Server和Internet Information Services
(IIS))。因此在安全控制方面较为容易方便,下面分几个方面分析基于.Net框架的安全设计。
1.1. 窗体身份验证
Microsoft? ASP.NET 类提供了几个用于验证用户身份的选项(即,使用一些凭据,如
用户名和密码,来确认给定用户的身份)。这些选项包括集成的 Windows 身份验证、基本身份验证、摘要身份验证、Microsoft? .NET Passport 以及客户证书等。当用户通过窗体身
份验证登录时,系统将创建一个加密的 cookie,用于在整个站点中跟踪用户。
如果用户在未登录的情况下请求一个安全页面,系统会将此用户重定向到登录页面,所有这些都只需要使用应用程序的基于 XML 的 Web.config 文件进行配置就可以实现。该文件由 Microsoft? Visual Studio? .NET(用于构建基于 .NET Framework 的应用程序的集成开发环境)自动生成,用于存储 ASP.NET Web 应用程序的配置。在应用程序的根文件夹中,我们向 Web.config 文件的 936 此顶层配置文件应用到此应用程序的所有页面。然后,用第二个 Web.config 文件创建子目录。此文件只应用到应用程序中的少数几个选定页面,以防未经身份验证的用户(即匿名用户)对其进行访问。第二个 .config 文件继承了顶层 .config 文件的身份验证信息。 <?xml version="1.0" encoding="utf-8" ?> 通过这种方式使用这两个 .config 文件,未经身份验证的用户只能访问主页和其他少数几个页面,而已通过身份验证的用户则还可以访问站点上那些需要用户登录的页面。 登录页本身包含供用户输入用户名和密码的字段,并通过安全套接字层 (SSL) 将其返回给 Web 服务器,从而防止某些用户“窃取”网络中传递的凭据。用户创建新帐户后,Web 应用程序将使用 Triple DES 算法将新密码加密,并将其与用户名一同存储在数据库中。以后登录时,Web 应用程序将使用 Triple DES 对在登录页输入的密码进行加密,然后与数据库中存储的加密密码进行比较。如果这两个密码匹配,Web 应用程序将使用 ASP.NET 库中的 System.Web.Security.FormsAuthentication 类生成一个包含用户的用户名和姓名的加密 cookie。此 cookie 将返回给用户并储存在用户的浏览器中,直到超时为止。用户此后向 Web 站点发送的任何请求都会包含此 cookie。所有涉及 cookie 的传输都使用 SSL 进行,以攻击者从网络中窃取到 cookie,然后使用它假冒用户进行操作。一般在通过公共网络发送可用于访问敏感信息的关键信息或一些凭据时使用 SSL。 1.2. 输入有效性验证 可以在应用程序中实现了不同级别、不同类型的有效性验证,以确定无法更改应用程序的操作。验证输入有效性是一个关键的安全设计,有助于防止缓存溢出、跨站点的脚本攻击以及其他潜在的在应用程序上下文中执行恶意代码的尝试。 第一道安全设计是由ASP.NET(特别是RegularExpressionValidator类和RequiredFieldValidator类)提供的有效性验证控制,可确保提供了所需的所有输入,且均为有效数据。只允许使用用于提供所需用户操作的字符,字符范围很有限。例如,某些字段只允许输入“[ ',\.0-9a-zA-Z_]*”,即空格、单引号、逗号、句号、字母和数字,其他可用于向 Web 站点发送恶意脚本的字符被禁止使用。 除文本框以外,应用程序还通过“查询字符串”接受某些输入,查询字符串是动态 URL 的一部分,包含用于生成页面的参数。通过 System.Text.RegularExpressions.Regex 类提供的 937 功能,用正则表达式对数据进行验证,如下所示: Regex isNumber = new Regex("^[0-9]+$"); if(isNumber.Match(inputData) ) { // 使用它 } else { // 丢弃它 } 正则表达式是用于匹配文本模式的字符和语法元素集合。在应用程序中,它们用于确保查询字符串内容是正确且无恶意的。任何数据在返回给用户前均采用 HTML 编码。这只需使用 System.Web.HttpServerUtility 类中的 HtmlEncode 方法即可实现,如下所示。 SomeLabel.Text = Server.HtmlEncode(username); HTML 编码有助于防止跨站点的脚本攻击。通过 HTML 编码,大多数脚本命令都自动转换为能够识别且没有危害的文本。 1.3. 存储机密信息 安全地存储机密信息很重要,这样可以防止攻击者访问并使用这些机密信息来读取、操作数据或重新配置解决方案。默认情况下,Visual Studio .NET 中的数据库连接向导将把连接字符串作为属性值存储在“内含代码”文件(此文件包含应用程序的核心逻辑,这与提供用户界面定义的文件不同)中。这为开发人员访问字符串提供了方便。但是,如果攻击者设法登录到包含源代码和 .config 文件的物理计算机上,便有可能读取连接字符串并用它来访问数据库以进行恶意破坏。 在实际应用程序环境中,对连接字符串和任何其他所需的凭据进行妥善地保护。一种是加密连接字符串,将其存储在注册表中,并使用访问控制列表 (ACL) 确保只有系统管理员和 ASPNET 辅助进程才能访问注册表项。在 Web 领域方案中,Web 服务器将使用自己的加密密钥,以防它们访问相同的加密数据。 因此,在 Web 应用系统中可以生成一个随机的 Triple DES 加密密钥和初始化向量。此功能是用 .NET Framework 的 System.Security.Cryptography 类中的 TripleDES 类提供的。这些密钥用于对称地加密存储在数据库中的密码和一些关键信息。为了存储关键信息,选择了加密性很强的随机第一块作为处理技术。生成密钥的备份副本后,我们使用 DPAPI 将其加密并存储到注册表中,然后又使用访问控制列表(ACL)将访问权限仅授予系统管理员和 ASPNET 辅助进程。将密钥加密,可确保当攻击者实际定位并访问数据时,如果不先将密钥解密,便无法解密数据。 2. 数据库访问安全设计 数据存储,如SQL Server 2000,在大多数分布式Web应用程序中起着至关重要的作用。数据存储可以包含各种类型的数据,包括用户应用程序参数、个人私密数据,甚至还包括用 938 户访问应用程序所需的凭据。这些数据都应该受到保护,不论是在存储期间还是在读/写的操作过程中,都要确保这些数据只能被拥有相应权限的用户访问。下图显示了与数据访问相关的重要安全性问题。 图1 2.1. 安全存储数据库连接字符串 数据库链接是一种关键的信息资源,特别是在多层Web应用程序中。因此需要一个可配置的、安全的位置。而对于数据库连接字符串可以使用多种方式、多个位置来存储,这些位置和方式的安全程度和配置灵活程度各不相同。对于ASP.NET Web应用程序,以加密格式将链接字符串存储在Web.config文件中是一种安全而可配置的安全设计。可以使用元素appSettings将数据库链接字符串存储在应用程序配置文件的定制设置部分。该元素支持任意关键字-值对,如下面的代码片段所示: uid= ;pwd= ;database=JGBS"/> 另外为了增加安全性,需将链接字符串以加密格式存储在配置文件中。虽然ASP.NET Internet 服务器应用程序编程接口(ISAPI)DLL阻止了客户直接访问带.config扩展名的文件,并且NTFS文件系统权限也用于进一步限制访问,但仍避免以明文方式将这些内容存储在前端的Web服务器上。 2.2. 从应用程序安全调用 SQL 在构建 SQL 语句时使用 Parameters 集合。 SqlDataAdapter myCommand = new SqlDataAdapter( "SELECT au_lname, au_fname FROM Authors WHERE au_id= @au_id", myConnection); SqlParameter parm = myCommand.SelectCommand.Parameters.Add( "@au_id", SqlDbType.VarChar, 11); parm.Value= Login.Text; 939 在调用存储过程时使用 Parameters 集合。 SqlDataAdapter myCommand = new SqlDataAdapter("AuthorLogin", myConnection); myCommand.SelectCommand.CommandType = CommandType.StoredProcedure; SqlParameter parm = myCommand.SelectCommand.Parameters.Add( "@LoginId", SqlDbType.VarChar,11); parm.Value=Login.Text; 在设计应用程序时如果使用 Parameters 集合,不管用户在输入中包含什么内容,该输 入都会被按文本处理。另外使用 Parameters 集合可以执行类型和长度检查。超出范围的值 触发异常。 3. 小结 保护网络资源的安全是一个涉及多种技术和整个开发周期的过程。通过对应用程序进行 周密的设计、实现、测试和部署,可以创建非常安全的应用程序。同时还需使用由 ASP.NET、 操作系统和 Web 浏览器提供的安全技术来保护应用程序的安全。 上面的分析设计并非适合每一个.Net Web应用系统安全性要求,这些安全性也并不能 代表开发人员和系统管理员在确保每个解决方案的安全性时应采取的所有方法。每个项目都 具有独特性,需要开发人员和管理员一起找出潜在的攻击因素及预防措施。上述的分析即使 不能全部直接应用到某一个实际的解决方案中,也应从中提取一些关键的好方案,以便在构 建安全解决方案时以一种形式或另一种形式加以应用。 参考文献 1 微软MSDN 2003 2 Microsoft Internet安全架构(http://www.microsoft.com/intdev/security/) 3 Asp.Net 高级编程(C#篇) 940 ● 系统的访问控制技术 8 . 2 访问控制技术 ISO 所定义的5 大安全服务功能是:认证、访问控制、数据保密性、数据完整性和防止否认服务。其中访问控制服务在系统安全体系结构中起着不可替代的作用。 访问控制是通过某种途径显式地准许或限制访问能力及范围的一种方法。它是针对越权使用资源的防御措施,通过限制对关键资源的访问,防止非法用户的侵入或因为合法用户的不慎操作而造成的破坏.从而保证系统资源受控地、合法地被使用。用户只能在自己的权限内访问系统资源,不得越权访问。访问控制技术通常和身份认证密切联系,但并不能取代身份认证,它是建立在身份认证的基础之上的,通俗地说,身份认证解决的是‘你是谁,你是否真的具有你所声称的身份”,而访问控制技术解决的是‘你能做什么,你有什么样的权限”这个问题。 访问控制系统一般包括主体(subject )、客体(object )及安全访问政策几个实体。访问控制的目的是:限制主体对访问客体的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么。 8 . 2 . 1 访问控制的实现方法 访问控制的常见实现方法有访问控制矩阵、访问能力表、访问控制表和授权关系表等几种。 1 .访问控制矩阵 从数学角度看,访问控制可以表示为一个矩阵的形式,其中行表示客体(各种资源),列表示主体(通常为用户),行和列的交叉点表示某个主体对某个客体的访问权限(如读、写、执行、修改、删除等)。 2 .访问能力表 访问控制矩阵虽然直观,但并非每个主体和客体之间都存在着权限关系,相反,实际的系统中虽然可能有很多的主体和客体,但主体和客体之间的权限关系可能并不多,这样就存在着很多空白项。为了减轻系统的开销与浪费,我们从主体(行)出发,用访问能力表达矩阵某一行的信息;也可以从客体(列)出发,用访问控制表(Access Control List )表达矩阵某一列的信息。 能力(capacity )是受一定机制保护的客体标志,标记了客体以及主体(访问者)对客体的访问权限。只有当一个主体对某个客体拥有访问的能力时,它才能访问这个客体。在访问能力表中,由于它着眼于某一主体的访问权限,并以主体为出发点描述控制信息,所以很容易获得一个主体所被授权可以访问的客体及其权限,但如果要求获得对某一特定客体有特定权限的所有主体就比较困难。在一个安全系统中,正是客体本身需要得到可靠的保护,访问控制服务应该能够控制可访问某一客体的主体集合,并能够授予或取消主体的访问权限,于是出现了以客体为出发点的实现方式― ACL(访问控制表),现代的操作系统大都采用基于ACL 的方法。 3 .访问控制表 访问控制表是目前采用最多的一种实现方式。它可以对某一特定资源指定任意一个用户的访问权限,还可以将有相同权限的用户分组,并授予组的访问权, ACL 的优点在于它的表述直观、易于理解,而目比较容易查出对某一特定资源拥有访问权限的所有用户,以便有效实施授权管理。在一些实际应用中还对ACL 进行了扩展,从而进一步控制用户的合法访问时间,是否需要审计等。 尽管ACL 灵活方便,但将它应用到网络规模较大、需求复杂的企业内部网络时,就暴露出了一些问题: 1.ACL 需对每个资源指定可以访问的用户或组以及相应的权限。当网络中资源很多时,需要在ACL 设定大量的表项。而且,当用户的职位、职责发生变化时,为反映这些变化,管理员需要修改用户对所有资源的访问权限。另外,在许多组织中,服务器一般是彼此独立的,各自设置自己的ACL ,为了实现整个组织范围内的一致的控制政策,需要各管理部门的密切合作。所有这些,都会使得访问控制的授权管理变得费力而繁琐,且容易出错。 2. 单纯使用ACL ,不易实现最小权限原则及复杂的安全政策。 4 .授权关系表 授权关系表弥补了基于ACL 和基于访问能力表的方法的不足,它的每一行(或称一个元组)都表示主体和客体的一个权限关系。如果该表按客体进行排序就拥有访问能力表的优势,如果按主体进行排序就拥有了访问控制表的好处。这种实现方式也特别适合采用关系数据库。 8 . 2 . 2 访问控制策略 自主访问控制、强制访问控制和基于角色的访问控制是系统中常用的3种访问控制策略,其中前两种(DAC 和MAC )属于传统的访问控制策略。 以上每种策略不是绝对互斥的,我们可以把几种策略综合起来应用,以获得更好、更安全的系统保护效果。当使用多重策略的时候,只有各种策略的交集策略被允许,访问才被许可。当然,在某些场合下,也可能存在着一些冲突,比如被某一策略许可的访问被另一策略所禁止,这样就产生了冲突,这种情况需要在管理层通过协商来协调。 1 .自主访问控制 自主访问控制(DAC )是目前计算机系统中使用最多的访问控制机制,它是在确认主体身份以及(或)它们所属组的基础上对访问进行限制的一种方法,称其为自主型是因为在DAC 系统中,一个拥有一定访问权限的主体可以直接或间接地将权限传给其他主体。其基本思想是:允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。Windows 、UNIX 系统都采用了自主型的访问控制技术。 自主访问控制根据访问者的身份和授权来决定访问模式,主体访问者对访问的控制有一定的权利。但正是这种权利使得信息在移动过程中的访问权限关系会被改变。如用户A 可以将其对客体目标O 的访问权限传递给用户B ,从而使不具备对0 访问权限的B 也可以访问O ,这样就很容易产生安全漏洞,所以自主访问控制的安全级别很低。 2 .强制访问控制 强制访问控制是“强加”给访问主体的,即系统强制主体服从访问控制政策。MAC 主要用于多层次安全级别的军事应用当中,它预先将主体和客体分级,即定义用户的可信任级别及信息的重要程度(安全级别,比如可以分成绝密级、机密级、秘密级、无密级等),然后根据主体和客体的级别标记来决定访问模式,用户的访问必须遵守安全政策划分的安全级别以及有关访问权限的设定。当用户提出访问请求时,系统对主客体两者进行比较以确定访问是否合法。 在典型应用中,MAC 的访问控制关系可以分为两种:用上读/下写来保证数据完整性以及利用下读/上写来保证数据的保密性。它们都是通过梯度安全标签来实现信息的单向流通的。 强制访问控制(MAC )的优势最主要在于它能阻止“特洛伊木马”。一个“特洛伊木马”是在一个执行某些合法功能的程序中隐藏的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄漏信息。一个“特洛伊木马”能够以直接与非直接泄漏两种方式泄漏信息。对于前者,“特洛伊木马”使信息的安全表示不正确并泄漏给非授权用户;对于后者,“特洛伊木马”通过编制返回给一个主体的合法信息中的方式非直接泄露信息,例如,可能表面上某些提问需要回答,而实际上用户回答的内容被传送给了“特洛伊木马”。 阻止“特洛伊木马”的策略是基于非循环信息流,所以在一个级别上读信息的主体一定不能在另一个违反非循环规则的安全级别上写。同样,在一个安全级别上写信息的主体一定不能在另一个违反非循环规则的安全级别上读。由于MAC 策略是通过梯度安全标签实现信息的单向流通,因而它可以很好地阻止“特洛伊木马”的泄密。 强制访问控制(MAC )的主要缺陷在于实现工作量太大、管理不便、不够灵活,而且MAC 由于过于偏重保密性,对其他方面如系统连续工作能力、授权的可管理性等考虑不足。 3 .基于角色的访问控制 20 世纪如年代出现的一种基于角色的访问控制(RBAC )技术有效地克服了传统访问控制技术的不足,可以减少授权管理的复杂性,降低管理开销,而且还能为管理者提供一个比较好的安全实现政策的环境,从而成为了实施面向企业的安全策略的一种有效的访问控制方式。 角色是一个或一群用户在组织内可执行的操作组合。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配,这正是基于角色的访问控制的基本特征、即依据RBAC 策略,系统定义了各种角色,每种角色可以完成一定的职能,不同的用户根据其职能被赋予相应的角色,一旦某个用户成为某个角色的成员,则此用户可以完成该角色所具有的职能。 RBAC 根据用户在组织内所处的角色进行授权与访问控制。也就是说,传统的访问控制直接将访问主体(发出访问操作、存取要求的主动方)和客体(被调用的程序或欲存取的数据访问)相联系,而RBAC 在中间加入了角色,通过角色沟通主体与客体。在RBAC 中,用户标识对于身份认证以及审计记录是十分有用的,但真正决定访问权限的是用户对应的角色标识。由于用户与客体无直接联系,他只有通过角色才能享有该角色所对应的权限,从而访问相应的客体,因此用户不能自主地将访问权限授予别的用户,这是RBAC 与DAC 的根本区别。RBAC 与MAC 的区别在于:MAC 是基于多级安全需求的,而RBAC 则不是,因为军用系统主要关心的是防止信息从高安全级流向低安全级,即限制“谁可以读/写什么信息”,而RBAC 的系统主要关心的是保护信息的完整性,即“谁可以对什么信息执行何种动作”.角色控制比较灵活,根据配制可以使某些角色接近DAC ,而某些角色更接近于MAC 。 角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色,而且授权规定是强加给用户的,用户只能被动接受,不能自主地决定,用户也不能自主地将访问权限转而赋予他人,这是一种非自主型访问控制。最后要指出的是角色和组的区别。组通常仅仅作为用户的集合,而角色一方面是用户的集合,另一方面又是权限的集合,作为中间媒介将用户和权限连接起来。当然角色可以在组的基础上实现,这样就对保持原有系统非常有利。此时角色就成为了一个策略部件,与组织的授权、责任关系相联系,而组成为实现角色的工具,两者间是策略与实现机制的关系。 ● 数据的完整性 8 . 4 数据完整性 数据完整性要求禁止未经授权的数据篡改,它同数据机密性紧密相连,也是更进一步的信息安全目标。保护数据完整性的方法有很多:可以通过访问控制的方法阻止数据未经授权的篡改;可以通过时间戳来判断数据最后一次修改的时间;可以通过数据校验或消息摘要的方法来判断数据是否已经被篡改。Biba 修改了Bell-Lapadula 模型,针对数据完整性建立了Biba 数据完整性模型。本节首先简要介绍Biba 模型,然后详细介绍报文摘要算法。 8 . 4 . 1 Biba完整性模型 Biba 模型规定: ( l )如果主体的安全级别高于或等于客体的安全级别,那么主体可以对该客体写访问。 ( 2 )如果一个主体仅可以读访问一个客体。则对于另外一个客体p 来说,如果p 的安全级别低于或等于o 的级别,那么该主体对于p 可以有写访问的权限。 Biha 模型可以概括为: ( l )读访问策略同Bell-Lapadula 模型一样: ( 2 )主体不能够更改安全级别比它高的客体。这也就保证高级别客体的完整性。Biba 模型同Bell-Lapadula 模型一样,虽然都可以从理论上证明其安全性,但在实际应用中很难完全满足模型的要求,所以Biba 模型也仅是一个理论上的模型。 8 . 4 . 2 杂凑函数与消息摘要 所谓杂凑函数H 是一个公开的函数,杂凑函数可以将任意长的消息M 映射为较短的、固定长度的一个值H(M),我们称H(M)为杂凑码或消息摘要。因为杂凑码是消息中所有比特的函数,所以杂凑函数可以提供错误检测的能力,改变消息中任何一个比特或几个比特都会使杂凑码发生改变。这种错误检测方法可以判断数据是否被篡改,从而保护数据的完整性。 使用杂凑函数提供消息认证有5 种基本方法: (l)消息与杂凑码链接后使用对称加密算法加密,所用密钥仅为收发双方共享。这种方法可以确保接收的消息来源于消息发送方,且没有被篡改,同时这种方法还能够提供数据机密性保障。 (2)用对称加密算法仅对杂凑码加密。这种方法同(l )类似,有更快的速度但不提供数据机密性保障。 (3)采用非对称加密算法,使用发送方的私钥对杂凑码进行加密。由于只有发送方能够产生这样的消息,所以这种方法可以提供数字签名功能。 (4)消息发送方同时使用对称加密和非对称加密两种算法,在(3)的基础上使用对称密钥加密消息和使用私钥变换过的杂凑码。这种方法同时提供数字签名和数据加密的功能。 (5)消息收发双方共享-特定秘密S ,消息发送方将消息M 和秘密S 链接在一起并产生杂凑值,发送消息时仅发送M 和杂凑值。由于发送过程中不含有S ,即使该消息被截获,由于杂凑值并非仅仅由M 产生,而消息截获者不知道S 的内容,所以仍然无法篡改消息内容。 我们可以通过杂凑算法来判断数据是否已经被篡改。设计巧妙的杂凑函数可以保证: (l)不同的数据几乎不可能具有相同的摘要。 (2)通过消息摘要难以猜测消息本身。我们可以通过这个杂凑函数来为数据打上标记,如果有人篡改了数据,消息摘要就会变化,新的消息摘要会与篡改前生成的摘要不同。通过比较摘要是否发生变化就可以判断数据是否已经被篡改。 12 . 4 . 2 数据库的完整性设计 数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS 或应用程序来实现,基于DBMS 的完整性约束作为模式的一部分存入数据库中。通过DBMS 实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计。 1 .数据库完整性设计原则 在实施数据库完整性设计时,需要把握以下基本原则。 ( l )根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。 ( 2 )实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。 ( 3 )要慎用目前主流DBMS 都支持的触发器功能,一方面由于触发器的性能开销较大;另一方面,触发器的多级触发不好控制,容易发生错误,非用不可时,最好使用Before 型语句级触发器。 ( 4 )在需求分析阶段就必须制定完整性约束的命名规范,尽量使用有意义的英文单词、缩写词、表名、列名及下划线等组合,使其易于识别和记忆。如果使用CASE 工具,一般有默认的规则,可在此基础上修改使用。 ( 5 )要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。 ( 6 )要有专职的数据库设计小组,自始至终负责数据库的分析、设计、测试、实施及早期维护。数据库设计人员不仅负责基于DBMS 的数据库完整性约束的设计实现,还要负责对应用软件实现的数据库完整性约束进行审核。 ( 7 )应采用合适的CASE 工具来降低数据库设计各阶段的工作量。好的CASE 工具能够支持整个数据库的生命周期,这将使数据库设计人员的工作效率得到很大提高,同时也容易与用户沟通。 2 .数据库完整性的作用 数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面。( 1 )数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。 ( 2 )利用基于DBMS 的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS 的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。 ( 3 )合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。例如装载大量数据时,只要在装载之前临时使基于DBMS 的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。 ( 4 )在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。 ( 5 )数据库完整性约束可分为6 类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束和关系级动态约束。动态约束通常由应用软件来实现。不同DBMS 支持的数据库完整性基本相同,Oracle 支持的基于DBMS 的完整性约束如所示。 3 .数据库完整性设计示例 一个好的数据库完整性设计,首先需要在需求分析阶段确定要通过数据库完整性约束实现的业务规则。然后在充分了解特定DBMS 提供的完整性控制机制的基础上,依据整个系统的体系结构和性能要求,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式。最后,认真测试,排除隐含的约束冲突和性能问题。基于DBMS 的数据库完整性设计大体分为以下几个阶段。 l )需求分析阶段 经过系统分析员、数据库分析员和用户的共同努力,确定系统模型中应该包含的对象,如人事及工资管理系统中的部门、员工和经理等,以及各种业务规则。在完成寻找业务规则的工作之后,确定要作为数据库完整性的业务规则,并对业务规则进行分类。其中作为数据库模式一部分的完整性设计按下面的过程进行,而由应用软件来实现的数据库完整性设计将按照软件工程的方法进行. 2 )概念结构设计阶段 概念结构设计阶段是将依据需求分析的结果转换成一个独立于具体DBMS 的概念模型,即实体关系图.在概念结构设计阶段就要开始数据库完整性设计的实质阶段,因为此阶段的实体关系将在逻辑结构设计阶段转化为实体完整性约束和参照完整性约束,到逻辑结构设计阶段将完成设计的主要工作。 3 )逻辑结构设计阶段 此阶段就是将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化,包括对关系模型的规范化。此时,依据DBMS 提供的完整性约束机制,对尚未加入逻辑结构中的完整性约束列表,逐条选择合适的方式加以实现。 在逻辑结构设计阶段结束时,作为数据库模式一部分的完整性设计也就基本完成了。每种业务规则都可能有好几种实现方式,应该选择对数据库性能影响最小的一种,有时需通过实际测试来决定。 ● 数据与文件的加密 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为原来数据的过程。 根据加密原理的不同加密方式可分为对称式加密和非对称式加密,对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”,这种加密技术目前被广泛采用;非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件,我们所熟悉的EFS 加密便属于此种加密方式。 根据加密方式不同可以分为软件加密和硬件加密,软件加密顾名思义,基于软件层面的加密,由软件利用加密算法,对文件进行加密,需要通过加密时设置的密码才可访问文件,此类加密方式较常见,诸如OFFICE 办公文档加密,RAR 加密等等。而硬件加密则是利用外接的硬件设备的唯一特征对数据进行加密,比如加密狗,指纹加密,虹膜加密等。 根据加密算法不同,又分为以下多种:DES 、3DES 、RC2、RC4、IDEA 、RS 、DSA 、AES 、BLOWFIS 、MD5、SSF33、SSF28、SCB2、ElGamal 、Deffie-Hellman 、新型椭圆曲线算法ECC 等。 对于一个加密的数据来说,它具体被分为以下三个部分:数据部分、加密算法、密钥。数据部分由于加密已被彻底改变为不可读写的乱码,当然也有极少数软件只对文件入口地址加密而不对文件本身加密,此部分为解密的主要目的;加密算法则是数据加密时采用的一种算法的一些公式、法则或程序的组合;密钥则是加密是设置的口令密码,或者硬件特征代码。 根据以上所述我们可以看出,对于解密需要做的一是破解密码,这是最常见的方法,大多数文件的都采取了对称性加密,只有一个密钥,这个密钥大多会以暗文的形式存放在文件的某个位置,利用专门的软件和直接手工提取这串代码,而后进行专业破解,破解出的密码,在绝大多数情况下是可以解除文件的加密的。 当然如果使用了非对称加密,那么我们就必须要知道公钥和私钥,大多数情况下非对称加密的难度颇高,因为此类加密的解密密文存放在公钥中,而私钥则是用来从公钥里配对提取解密密文的,两者缺一不可,所以恢复难度十分大,一般来说如果公钥丢失多采用重建虚拟公钥,接着使用私钥进行解密,如果私钥丢失则利用特殊软件手工从公钥中提取解密的密文,但是这两种方法的成功率并不太高。 至于使用了硬件加密的文件,由于设备和精力有限,目前看来只有国外的极少数专业团体以及国家级的安全机构才具备破除此类密码的能力。 系统密码加密,此类加密破解难度不大,网上介绍的文章和工具也不少,因为系统的密码是存放在硬盘上一个特殊文件中的,只要删除该文件,绝大数情况便可以清除掉系统的密码,但也不排除该文件清除后非法登陆系统的情况。 最后是特殊的硬盘加密,硬盘加密其实是基于硬盘固件加密的一个子安全系统,被加密后的硬盘无法正常读写,需要使用专业的软件才能进行解密或者密码清除的工作。 ● 通信的安全性 8 . 5 通信与网络的安全性 8 . 5 . 1 网络环境下危及安全的因素 在网络环境下可能危及信息安全的因素包括如下几个方面。 (1)伪装欺骗:指非法用户假冒合法用户身份获取敏感信息的行为。 (2)非法存取:窃取、篡改或破坏网络中存储的信息。 (3)否认抵赖:指通信方事后否认曾参与某次活动的行为。 (4)服务拒绝:指合法用户的正当申请被拒绝、更改或延迟等。 (5)截取破译:指以不正当手段获取门令或密钥,或者对加密信息与加密机制进行分析破译或篡改等。 危及路由安全方面的因素包括如下几个方面。 (1)侦听窃密:在通信信道中窃听所传输的信息。 (2)指定路由:非法用户精心设计一些绕过安全机制的路由或将信息误导向不正常的路由。 (3)身份攻击:指用户的身份或口令在通信时被非法截取。 (4)截取破坏:非法截取通信过程中的数据或者伪造、篡改与破坏信道中传输的信息。 (5)中继攻击:非法用户截取信息后延迟时间再发送。 (6)阻塞通信:利用网上的软硬件漏洞,发送大量无效信息使网络过载,或者设法使一些路径或网上关键互联设备瘫痪。 8 . 5 . 3 通信与网络的信息安全技术 1 .IP 层安全性 在TCP/IP网络中,IP 层实现的安全技术通常包括IP 过滤技术和IP 加密传输信道技术。其中IP 过滤技术被路由器和防火墙产品所广泛采用,是最常见的Internet 安全技术。在IP 加密传输信道技术方面,IETF 指定IPSEC 制订IP 安全协议(IPSP, IP Security Protocol)和对应的Internet 密钥管理协议的标准。IPSP 的主要目的是使需要安全服务的用户能够使用相应的加密安全体制。该体制应该是与算法独立的,可以自己选择和替换加密算法而不会对应用和上层协议产生任何影响。此外,该体制必须能支持多种安全政策,并且对其他不使用该体制的用户完全透明,IPSEC 技术能够在两个网络节点间建立透明的安全加密信道。现在一些防火墙产品使用AH(Authentication Header ,认证头部)或ESP ( Encapsulating Security Payload,安全内容封装)支持IPSEC 来实现IP 层的加密,一些主要的路由器厂商也声称支持IPSEC 。 IP 层安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。它的最主要的缺点是:IP 层一般对属于不同进程的包不作区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理,这会导致性能下降。针对面向主机密钥分配的这些问题,RFC1825推荐使用面向用户的密钥分配,其中不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核进行比较大的改动。 IP 层非常适合提供基于主机的安全服务。相应的安全协议可以用来在Internet 上建立安全的IP 通道和虚拟专用网。例如,利用它对IP 包的加密和解密功能,可以方便快捷地强化防火墙系统的防卫能力。 2 .传输层安全性 最常见的传输层安全技术有SSL 、SOCKS 和安全RPC 等。 网景公司(Netscape )设计的安全套接层(SSL )协议分为两层,上面是SSL 协商层,双方通过协商层约定有关加密的算法、进行身份认证等;下面是SSL 记录层,它把上层的数据经分段、压缩后加密,由传输层传送出去。SSL 采用公钥方式进行身份认证,但是大量数据传输仍使用对称密钥方式。通过双方协商,SSL 可以支持多种身份认证、加密和检验算法。它提供3 类基本的安全服务:信息加密服务(在客户机与服务器之间的所有业务都使用握手协议、协商密钥与算法进行加密)、信息完整性服务(采用机密共享与HASH 函数组确保SSL 业务可正常全部到达目的地)、相互认证服务(采用公开密钥技术编码标识符,使客户机与服务器在SSL 握手时交换各自的标识符以实现相互认证)。 传输层安全机制的主要缺点就是对应用层不透明,应用程序必须修改以使用SSL 应用接口,而且要对传输层建立安全机制。同时公钥体系存在的不方便性SSL 也同样存在,例如用户很难记住自己的公钥和私钥,必须依靠某些物理设备如IC 卡或者磁盘来存储,这样对用户终端就有一定的要求,再有就是服务方和客户方必须依赖一个证书授权(CA ) 中心来签发证书,双方都必须将CA 的公钥存放在本地。为了保持Internet 上的通用性.目前一般的SSL 协议实现只要求服务器方向客户方出示证书以证明自己的身份,而不要求用户方同样出示证书。在建立起SSL 信道后再加密传输用户名和口令以实现客户方的身份认证。 同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务和加密传输信道,利用公钥体系进行身份认证,安全强度高,支持用户选择的加密算法。这一成果再加上应用级的安全服务,就可以提供更加安全可靠的安全性能了。 3 .应用层安全性 IP 层和网络层(传输层)的安全协议都无法根据所传送内容不同的安全要求区别对待。如果确实想要区分每个具体文件的不同的安全性要求,就必须在应用层采用安全机制。本质上,这意味着真正的(或许再加上机密的)数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个个具体文件的安全性要求。比如说,如果一个主机与另一个主机之间建立起一条安全的IP 通道,那么两个进程间传输的所有报文都会自动被加密。提供应用层的安全服务实际上是最灵活的处理单个文件安全性的手段。例如,一个电子邮件系统可能需要对要发出的信件的个别段落实施数据签名。较低层的协议提供的安全功能一般不会知道任何要发出的信件的段落结构,从而也不可能知道该对哪一部分进行签名。应用层是惟一能够提供这种安全服务的层次。 4 .访问控制与目录管理 资源的合法使用主要依靠网络管理员进行必要的访问控制与目录管理,用以保证网络资源不被非法用户使用或破坏,也可保证数据资源不被非法读出或改写。 根据企业的安全策略,网络管理员应当使用由网络操作系统、数据库管理系统或相应的网络安全软件等提供的手段,进一步实施访问控制与目录管理方面的措施。 5 .数据加密 随着密码技术的进步,现在己发展了许多种数据加密算法与技术。 6 .身份验证与鉴别 除了对用户身份进行验证与鉴别,也可以对信息的真实可靠性进行验证与鉴别,用来解决冒充、抵赖、伪造或篡改等问题,除了标识用户加口令的机制外,最常用的是“数字签名”技术: 数字签名可以采用秘密密钥或公开密钥技术实现,也可以使用“消息摘要”方式配合实现。签名算法可用RSA 、DSS 数字签名标准等。考虑到身份验证与鉴别时可能采用相当复杂的算法或技术,目前已开始流行委托专业认证鉴别机构或公司进行身份鉴别与验证,目的是采用更先进的技术做好认证与鉴别这一关键性的安全保卫工作。 RADIUS (远程拨入用户认证服务)是一种管理标准,可为分布式网络上的认证服务器提供管理服务,用来实现集中管理方式下的用户认证、口令加密、服务选择、信息过滤以及账户核对等有关任务。一个单独的RADIUS 数据库服务器可能在多个网络上同时管理多个安全系统,其中保存有与网内所有用户有关的认证信息(如存取限制、特定的路由表、数据分组过滤规则或约定、可供核对的账户信息等),可以用来维护成千上万个用户的信息安全。 7 . Kerberos协议 Kerberos 是为分布式系统提供的认证方案,能为每种服务提供可信任的第三方认证服务。在Kerberos 系统中,只有事先在其中登记过的客户才可以申请服务。客户希望得到某一服务,需要向认证服务器申请一张能使用此服务的入场券(ticket) ,然后该客户把入场券传给入场券分配服务器(TGS )实施入场券的检查,在得到证实后才能使用相应的服务。其中加入了个人身份确认机制以及客户与服务器通信中的数据加密,通过系统维护数据库的方式,保存着客户、服务、权限与密钥等方面的相应信息。 8 . 5 . 4 防火墙技术 防火墙不只是一种路由器、主系统或一系列向网络提供安全性的系统。防火墙是一种运行专门的计算机安全软件(称为防火墙软件)的计算机系统,即通过软件与硬件相结合,在企业内部网络与外部网络之间的交界处构造起的一个“保护层”。所有的企业内部网络与外部网络之间的通信都必须经过此保护层检查与连接,只有授权允许的通信才能获准通过保护层。换句话说,防火墙相当于一个安全网关,它能在一定意义下阻断或隔离企业内部网络与外部网络,防止非法的入侵行为或破坏行为。用防火墙可以阻止外界对内部网资源的非法访问,也可以防止内部对外部的不安全访问。 实现防火墙的产品主要有两大类:一类是网络级防火墙,另一类是应用级防火墙。现在的应用往往是把这两种技术结合起来。 ( l )包过滤技术。包过滤技术是防火墙根据数据包中的包头信息有选择地实施允许通过或阻断。依据防火墙内事先设定的过滤规则,检查数据流中每个数据包的头部信息,根据数据包的源地址、目的地址、TCP/UDP源端口号及数据包头中的各种标志位等因素来确定是否允许数据包通过,其核心是安全策略即过滤规则的设计。一般来说,不保留前后连接信息,利用包过滤技术很容易实现允许或禁止访问。相应的防火墙软件工作在传输层与网络层。 例如,基于特定的Internet 服务的服务器驻留在特定的端口号的事实(如TCP 端口23用于提供Telnet 服务),使包过滤器可以通过规定适当的端口号来达到阻止或允许特定服务连接的目的,也可以通过规定协议号,阻止或允许协议的连接,并可进一步组成一套数据包过滤规则。 包过滤技术在防火墙上的应用非常广泛,因为CPU 用来处理包过滤的时间相对很少,而这种防护措施对用户透明,所以合法用户在进出网络时,根本感觉不到它的存在,使用起来很方便:但是因为包过滤技术是在TCP/IP层实现的,所以包过滤的一个很大弱点是不能在应用层级别上进行过滤,所以防卫方式比较单一。现在已经有一些在底层重组应用层数据的技术,可以对应用层数据进行检查,进而辨认一些入侵活动,也收到了很好的防护效果。 包过滤技术作为防火墙的应用有两类: 1. 路由设备在完成路由选择和数据转发之外,同时进行包过滤,这是目前较常用的方式。 2. 在一种称为屏蔽路由器的路由设备上启动包过滤功能。 (2)应用网关技术。目前大多采用代理服务机制,即采用一个网关来管理应用服务,在其上安装对应于每种服务的特殊代码(代理服务程序),在此网关上控制与监督各类应用层服务的网络连接。比如对外部用户(或内部用户)的FTP 、TELNET 、SMTP 等服务请求,检查用户的真实身份、请求合法性和源/目的地的IP 地址等,从而由网关决定接受还是拒绝该服务请求,对于可接受的服务请求由代理服务机制连接内部网与外部网。代理服务程序的配置由企业网络管理员完成。 目前常用的应用级防火墙大致上有3 种类型,分别适合于不同规模的企业内部网:双穴主机网关、屏蔽主机网关和屏蔽子网网关。它们的共同点是需要有一台主机(称之为堡垒主机)来负责通信登记、信息转发和控制服务提供等任务。 ① 双穴主机网关:由堡垒主机作为应用网关,其中装有两块网卡分别连接外部互联网和受保护的内部网,该主机运行防火墙软件,具有两个IP 地址,并且能隔离内部主机与外部主机的所有可能连接。 ② 屏蔽主机网关:也称甄别主机网关。在外部因特网与被保护的企业内部网之间插入了堡垒主机和路由器.通常是由IP 分组过滤路由器过滤或甄别出可能的不安全连接,再把所有授权的应用服务连接转向应用网关的代理服务机制。 ③ 屏蔽子网网关:也称甄别子网网关,适合于较大规模的网络使用。即在外部因特网与被保护的企业内部网之间插了一个独立的子网,比如在子网中有两个路由器和一台堡垒主机(其上运行防火墙软件作为应用网关),内部网与外部网一方各有一个分组过滤路由器,可根据不同的甄别规则接受或拒绝网络通信,子网中的堡垒主机(或其他可供共享的服务器资源)是外部网与内部网都可能访问的唯一系统。防火墙能提供较好的安全性防护,但也带来了一些问题,比如: · 堡垒主机或路由器本身的安全性至关重要,也可能成为影响网络性能的瓶颈。 · 防火墙在一定程度上限制了服务的类型和用户应用的灵活性,有时会阻断一些常用的服务。 · 防火墙难以防止内部人员的攻击,也不能防止从后门进入内部网的非法访问(如通过拨号SLIP / PPP 连接)。对一些人们不熟悉的应用或软件(包括病毒),防火墙也缺乏防护的方法。 系统的安全性设计 8 . 6 系统安全管理与安全工程 8 . 6 . 1 安全管理的必要性 各类安全技术和产品(如防火墙、安全审计、入侵检测、病毒防治、数据加密、漏洞扫描、身份认证、访问控制等)在计算机应用系统中逐步得到应用,并且在不断得到丰富和完善,但仅通过技术手段获得的安全能力是有限的,主要体现在以一下3个方面。 (l)许多安全技术和产品远没有达到人们需要的水准。例如UNIX 、Windows NT 等常见的企业级操作系统,大都只达到了美国国防部TCSEC C2级安全认证,而且核心技术和知识产权都掌握在外国人手里,不能满足国家涉密信息系统或商业敏感信息系统的需求。再如,在计算机病毒与病毒防治软件的对抗过程中,经常是在新的计算机病毒出现并已经造成大量损失后,才开发出查杀该病毒的软件,也就是说,技术往往落后于新风险的出现。 (2)即使某些安全技术和产品在指标上达到了实际应用的某些安全需求,如果配置和管理不当,还是不能真正满足安全需求。例如,由于风险分析欠缺、安全策略不明或是系统管理人员培训不足等原因,虽然在网络边界设置了防火墙,但如果防火墙的配置出现严重漏洞,其安全功效也将会大打折扣。 ( 3 )目前大部分单个的网络安全管理工具比较分散,各项安全功能需要分别进行配置,不同的管理工具之间缺乏连通性。例如,防火墙设备需要用厂商提供的专用配置管理软件进行管理,IDS 系统要采用厂商的控制端软件实现系统状态监控,身份验证系统需要采用相应的控制中心进行管理。管理员如果要实现整体安全策略还需要对不同的设备分别进行设置,并根据不同设备的日志和报警信息进行管理,难度较大,特别是当全局安全策略需要进行调整时,很难考虑周全和实现全局的一致性。 传统的网络管理系统所支持的协议大多以SNMP 为主,因而存在下面的一些问题:( l )很多的安全设备、安全设施,并不支持SNMP 协议。 ( 2 )多数安全设备、安全设施并不存在管理信息库MIB ,或者说并不存在这样的标准。 ( 3 ) SNMP协议本身并不适合大数据量的传输,很多安全事件、日志等安全信息不适合用SNMP 来传送。 ( 4 ) SNMP 不支持联动和协同特性,而这一点随着网络的日趋复杂而显得更加重要。特别是最后一点,在各类安全技术与产品逐步走向成熟的同时,在系统建设时就必须考虑各种安全产品、安全技术之间的协作与联动,使得安全技术与产品能够形成一个有机的整体。 安全管理系统。 在现有的计算机网络应用系统中加入计算机全面安全管理职能单元的必要性在于:( 1 )实现各类计算机安全技术、产品之间的协作与联动,实现有机化。( 2 )充分发挥各类安全技术和产品的功能,大幅度提高整体安全能力。( 3 )实现计算机安全手段与现有计算机网络应用系统的一体化。 ( 4 )使全网安全事件的准确定位以及全网安全策略的制定成为可能。 8 . 6 . 2 系统安全管理 我国的信息安全标准化工作也得到了相关部门的重视。目前,该委员会已正式成立了以下4个工作组。 (1)信息安全标准体系与协调工作组(WGI) :研究信息安全标准体系;跟踪国际信息安全标准发展动态;研究、分析国内信息安全标准的应用需求;研究并提出新工作项目及设立新工作组的建议;协调各工作组项目。 (2) PKI/PMI 工作组(WG4) :国内外PKFPMI 标准体系的分析;研究PKI/PMI 标准体系;国内急用的标准调研;完成一批PKI/PMI基础性标准的制定工作。 (3)信息安全评估工作组(WG5) :调研国内外测评标准的现状与发展趋势;研究提出我国统一测评标准体系的思路和框架;研究提出信息系统和网络的安全测评标准思路和框架;研究提出急需的测评标准项目和制定计划。 (4)信息安全管理工作组(WG7):信息安全管理标准体系的研究;国内急用的标准调研;完成一批信息安全管理相关基础性标准的制定工作。 2 .安全管理模型 安全管理的最终目标是将系统(即管理对象)的安全风险降低到用户可接受的程度,保证系统的安全运行和使用。风险的识别与评估是安全管理的基础,风险的控制是安全管理的目的,从这个意义上讲,安全管理实际上是风险管理的过程。安全问题是动态的,是随着新的风险和系统的安全需求的不断变化而变化的。因此,安全管理应该是一个不断改进的持续发展过程。安全管理模型遵循管理的一般循环模式,即计划、执行、检查和行动的持续改进模式,简称PDCA 模式。每一次的安全管理活动循环都是在已有的安全管理策略指导下进行的,每次循环都会通过检查环节发现新的问题,然后采取行动予以改进,从而形成了安全管理策略和活动的螺旋式提升。计算机信息系统安全管理也遵循PDCA 持续改进模式。安全管理策略包括管理的任务、目标、对象、原则、程序和方法。安全管理活动包括制定计划、建立机构、落实政策、开展培训、检查效果和实施改进等,简要说明如下。 ( l )制定计划:制定信息安全管理的具体实施、运行和维护计划。 ( 2 )建立机构:建立相应的安全管理机构。 ( 3 )落实措施:选择适当的安全技术和产品并实施。 ( 4 )开展培训:对所有相关人员进行必要的安全教育和培训。 ( 5 )检查效果:对所构建的信息安全管理体系进行综合性检查。 ( 6 )实施改进:对检查结果进行评审,评价现有信息安全管理体系的有效性,针对存在的问题采取改进措施。 3 .安全管理策略 系统的安全管理策略应包括系统安全管理的任务、目标、对象、原则、程序和方法等内容。 ( l )安全管理的任务 信息系统安全管理的任务是保证信息的使用和信息载体的运行安全。信息的使用安全是通过实现信息的机密性、完整性和可用性这些安全属性来保证的。信息载体包括处理载体、传输载体、存储载体和输出载体。其运行安全就是指计算系统、网络系统、存储系统和外设系统能够安全地运行。 ( 2 )安全管理的目标 信息安全管理的目标是达到信息系统所需的安全级别,将风险控制在用户可接受的程度。 ( 3 )安全管理的对象 信息系统安全管理的对象从内涵上讲是指信息及其载体― 信息系统,从外延上说其范围由实际应用环境来界定。 ( 4 )安全管理的原则 信息系统安全管理遵循如下基本原则: · 策略指导原则:所有的信息系统安全管理活动都应该在统一的策略指导下进行。 · 风险评估原则:信息系统安全管理策略的制定要依据风险评估的结果。 ·预防为主原则:在信息系统的规划、设计、采购、集成和安装中要同步考虑信息安全问题,不可心存侥幸或事后弥补。 · 适度安全原则:要平衡安全控制的费用与风险危害的损失,注重实效,将风险降至用户可接受的程度即可,没有必要追求绝对的、高昂代价的安全,实际上也没有绝对的安全。 · 立足国内原则:考虑到国家安全和经济利益,安全技术和产品首先要立足国内,不能未经许可、未经消化改造直接使用境外的安全保密技术和产品设备,信息安全方面的关键技术和核心技术尤其如此。 · 成熟技术原则:尽量选用成熟的技术,以得到可靠的安全保证。采用新技术时要慎重,要重视技术的成熟程度。 ·规范标准原则:安全系统要遵循统一的操作规范和技术标准,以保证互连通性和互操作性,否则,就会形成一个个安全孤岛,没有整体安全可言。 ·均衡防护原则:安全防护如同木桶装水。一方面,只要木桶的木板有一块坏板,水就会从里面泄漏出来;另一方面,木桶中的水只和最低一块木板看齐,其他木板再高也没有用。所以,安全防护措施要注意均衡性,注意是否存在薄弱环节或漏洞。 · 分权制衡原则:关键部位的管理权限不应交给一个人管理,否则,一旦出现问题将全线崩溃.分权可以相互制约,提高安全性。 ·全体参与原则:安全问题不只是安全管理人员的事情,全体相关人员都有责任。如果安全管理人员制定的安全制度和措施得不到相关人员的切实执行,安全隐患依然存在,安全问题就无法得到真正解决。 · 应急恢复原则:安全管理要有应急响应预案,并且要执行必要的演练,一旦出现问题就能够马上采取应急措施,阻止风险的蔓延和恶化,将损失降低到最低程度。此外,要在灾难不能同时波及的地区设立备份中心,保持备份中心与全系统数据的一致性。一旦主系统遇到灾难而瘫痪,便可立即启动备份系统,使系统从灾难中恢复,从而保证系统的连续工作。 · 持续发展原则:为了应对新的风险,对风险要实施动态管理。因此,要求安全系统具有延续性、可扩充性,并能够持续改进,始终将风险控制在用户可接受的水平。 ( 5 )安全管理的程序 信息系统安全管理的程序遵循PDCA 循环模式的4 大基本步骤介绍如下。① 计划(Plan ) :制定工作计划,明确责任分工,安排工作进度,突出工作重点,形成工作文件。 ② 执行(Do ):按照计划展开各项工作,包括建立权威的安全机构,落实必要的安全措施,开展全员安全培训等。 ③ 检查(Check) :对上述工作所构建的信息安全管理体系进行符合性检查,包括是否符合法律法规的要求,是否符合安全管理的原则,是否符合安全技术的标准,是否符合风险控制的指标等,并报告结果。 ④ 行动(Action ):依据上述检查结果,对现有信息安全管理策略的适宜性进行评审与评估,评价现有信息安全管理体系的有效性,采取改进措施。 ( 6 )安全管理的方法 安全管理根据具体管理对象的不同,采用不同的具体管理方法,信息系统安全管理的具体对象包括机构、人员、软件、设备、介质、涉密信息、技术文档、网络连接、门户网站、应急恢复、安全审计、场地设施等。 5 .安全管理系统实现的功能 安全管理系统是信息系统安全的必要组成部分,它为系统管理员和用户提供了对整体安全系统的监管,在技算机网络应用体系与各类安全技术、安全产品、安全防御措施等安全手段之间搭起桥梁,使得各类安全手段能与现有的计算机网络应用体系紧密结合,实现无缝连接,促成计算机网络安全与计算机网络应用的真正一体化。 一般,安全管理系统需要实现以下功能。 ( l )实现对系统中多种安全机制的统一监控和管理 根据网络中各种不同的安全系统,有针对性地进行统一的监控管理,包括监视各种安全机制的各个部件的运行状况;发现各种安全机制的运行异常情况;向各种安全机制发布相应的总体安全策略;通过安全管理系统,实现对各种安全机制的实时操控;收集各种安全机制执行安全策略的结果等。 安全管理系统对各种安全机制的监控和管理可以利用各个安全子系统中已有的信息采集和控制机制来实现,也可以采用直接与安全设备交互的方式进行,主要取决于各个安全子系统自身的构架以及提供的管理接口。 ( 2 )实现各类安全设施之间的互动和联动 安全管理系统可提供自动响应功能,在网上实现对各类相关的安全设施之间的互动和联动,并对联动情况进行监控。 一个系统中的不同安全机制通常通过两种方式来实现安全设施之间的联动。 1. 利用原有的设备之间的互动功能,例如,入侵检测系统与防火墙之间的互动,以及审计系统与身份验证系统之间的互动等。安全管理系统根据原有安全系统之间能够实现的互操作功能来统一设置联动的策略,并监视这些设施之间的联动情况。 2. 安全管理系统通过收集各个安全系统中产生的各类数据,并采用自动或手动响应引擎,根据设定的安全策略以及规则,对相关的安全子系统以及安全设备进行设置和操控,以实现间接的联动。 ( 3 )实现基于权限控制的统一管理和区域自治 安全管理系统能够提供统一的安全管理,并为不同级别和性质的管理员提供不同层次和性质的管理视图。由于大型系统通常是一个复杂的分布式大规模网络,因此运行管理中心、汇接层以及接入单位的网络管理员具有不同的职责。系统不但能够为运行管理中心的管理员提供针对所有安全系统的宏观管理视图,也能够为各个接入单位和区域分管的管理员对自己管辖区域内的安全设备和安全系统部件进行区域自治管理,此外,还能够通过安全管理系统对分布于整个网络的某个安全子系统进行整体安全策略的部署和状态监侧及管理。 ( 4 )实现安全事件事务管理 安全管理系统根据从各种安全机制收集的资料进行安全事件的事务处理,包括对重复安全事件的合并处理;对相互关联的安全事件进行的合并处理;根据相近零碎的历史事件集合对安全事件进行确认;以智能方式判断事件的真正起因,并提供人工修正判断的机制;根据管理员的职责将合并与确认后的事件通知响应责任人,并提供处理建议;根据责任人处理事件的情况以及结果,确定是否对事件性质进行升级等。 ( 5 )实现各类实时报警措施 系统将实现各类实施报警措施,如管理员控制台声音报警、管理员控制台界面报警、E-mail 报警、寻呼机报警、手机中文短消息报警、Yahoo Message 报警、ICQ 报警、MSN 即时信息报警等。 ( 6 )实现安全事件和数据的宏观统计分析和决策支持 系统支持对长期积累的数据进行宏观统计、分析和决策支持。宏观统计分析主要是在长期积累的大量数据的基础上,对安全事件进行综合分析,包括对安全事件的类型、来源、目的、产生的效果、起因、发生的时段进行综合分析,得到宏观规律;对重要事件的来源进行综合查证,定位到个人;对相近时段发生的各种事件进行相关性分析,得出各类不同事件相互联系的规律,并指导自动联动规则和安全策略的制定;根据宏观统计的结果,提供决策支持,并进行知识积累,为各类安全事件提供处理建议等。 ( 7 )支持应急响应 系统支持在紧急情况下的应急响应,包括系统设计充分考虑备份措施和应急措施,以备紧急状态下使用;系统支持制定应急情况预案,采用基于综合条件设置和响应动作设置来定义应急情况以及应急响应措施;在发生紧急情况时,能够根据事件的综合,发现系统处于严重异常状态中,并以各种方法通知责任人员;在确认所处紧急状态的前提下,启动预案中己经设定的整套响应措施,系统将自动调用各类外部系统和备份机制,实现应急预案中设定的批量操作,并对整个操作的过程进行跟踪和记录等。 转载请注明出处范文大全网 » Web应用系统的安全性设计范文五:系统的安全性和保密性设计