安全扩展(共12篇)
安全扩展 篇1
艾默生过程管理已经收购了Net Safety Monitoring———生产固定式有毒气体和可燃气体探测器、火焰探测器、以及其它安全产品的全球供应商。该收购扩展了艾默生的能力, 使其可以为最严苛的工业环境, 提供全面的过程控制和安全监测。
“艾默生和Net Safety怀有同样的热情, 为用户提供产品和解决方案, 帮助他们在严格的安全标准下进行生产。”艾默生过程管理分析集团的总裁Ken Biele表示, “两者的结合使我们不仅可以帮助用户管理、控制生产过程, 而且可以确保用户的人身、设备和财产的安全。”
Net Safety和它位于卡尔加里、休斯敦、阿布扎比、北京和新加坡的全球销售和技术支持办事处将作为艾默生过程管理分析集团内一个独立运营的业务部门。
安全扩展 篇2
SQL Server 的扩展存储过程,其实就是一个普通的 Windows DLL,只不过按照某种规则实现了某些函数而已,
编写安全的SQL Server扩展存储过程数据库教程
。
近日在写一个扩展存储过程时,发现再写这类动态库时,还是有一些需要特别注意的地方。之所以会特别注意,是因为DLL运行于SQL Server的地址空间,而SQL Server到底是怎么进行线程调度的,却不是我们能了解的,即便了解也无法控制。
我们写动态库一般是自己用,即便给别人用,也很少像SQL Server这样,一个动态库很有可能加载多次,并且都是加载到一个进程的地址空间中。我们知道,当一个动态库加载到进程的地址空间时,DLL所有全局与局部变量初始化且仅初始化一次,以后再次调用 LoadLibrary函数时,仅仅增加其引用计数而已,那么很显然,假如有一全局 int ,初始化为0,调用一个函数另其自加,此时其值为1,然后再调用LoadLibray,并利用返回的句柄调用输出函数输出该值,虽然调用者觉得自己加载后立即输出,然后该值确实1而不是0。windows是进程独立的,而在线程方面,假如不注意,上面的情况很可能会程序员带来麻烦。
介绍一下我的扩展存储过程,该动态库导出了三个函数: Init,work,Final,Init读文件,存储信息于内存,work简单的只是向该内存检索信息,Final回收内存。如上所说,假如不考虑同一进程空间多次加载问题,两次调用Init将造成无谓的浪费,因为我第一次已经读进了内存,要是通过堆分配内存,还会造成内存泄露。
我使用的引用计数解决的该问题,代码很短,直接贴上来:
#include “stdafx.h”
#include
using namespace std;
extern “C” {
RETCODE __declspec(dllexport) xp_part_init(SRV_PROC *srvproc);
RETCODE __declspec(dllexport) xp_part_process(SRV_PROC *srvproc);
RETCODE __declspec(dllexport) xp_part_finalize(SRV_PROC *srvproc);
}
#define XP_NOERROR 0
#define XP_ERROR 1
HINSTANCE hInst = NULL;
int nRef = 0;
void printError (SRV_PROC *pSrvProc, CHAR* szErrorMsg);
ULONG __GetXpVersion{ return ODS_VERSION;}
SRVRETCODE xp_part_init(SRV_PROC* pSrvProc){
typedef bool (*Func)();
if(nRef == 0){
hInst = ::LoadLibrary(“part.dll”);
if(hInst == NULL){
printError(pSrvProc,“不能加载part.dll”);
return XP_ERROR;
}
Func theFunc = (Func)::GetProcAddress(hInst,“Init”);
if(!theFunc()){
::FreeLibrary(hInst);
printError(pSrvProc,“不能获得分类号与专辑的对应表”);
return XP_ERROR;
}
}
++ nRef;
return (XP_NOERROR);
}
SRVRETCODE xp_part_process(SRV_PROC* pSrvProc){
typedef bool (*Func)(char*);
if(nRef == 0){
printError(pSrvProc,“函数尚未初始化,请首先调用xp_part_init”);
return XP_ERROR;
}
Func theFunc = (Func)::GetProcAddress(hInst,“Get”);
BYTE bType;
ULONG cbMaxLen,cbActualLen;
BOOL fNull;
char szInput[256] = {0};
if (srv_paraminfo(pSrvProc, 1, &bType, (ULONG*)&cbMaxLen, (ULONG*)&cbActualLen, (BYTE*)szInput, &fNull) == FAIL){
printError(pSrvProc,“srv_paraminfo 返回 FAIL”);
return XP_ERROR;
}
szInput[cbActualLen] = 0;
string strInput = szInput;
string strOutput = “;”;
int cur,old = 0;
while(string::npos != (cur = strInput.find(’;’,old)) ){
strncpy(szInput,strInput.c_str() + old,cur - old);
szInput[cur - old] = 0;
ld = cur + 1;
theFunc(szInput);
if(string::npos ==strOutput.find((string)“;” + szInput))
strOutput += szInput;
}
strcpy(szInput,strOutput.c_str());
if (FAIL == srv_paramsetoutput(pSrvProc, 1, (BYTE*)(szInput + 1), strlen(szInput) - 1,FALSE)){
printError (pSrvProc, “srv_paramsetoutput 调用失败”);
return XP_ERROR;
}
srv_senddone(pSrvProc, (SRV_DONE_COUNT | SRV_DONE_MORE), 0, 0);
return XP_NOERROR;
}
SRVRETCODE xp_part_finalize(SRV_PROC* pSrvProc){
typedef void (*Func)();
if(nRef == 0)
return XP_NOERROR;
Func theFunc = (Func)::GetProcAddress(hInst,“Fin”);
if((--nRef) == 0){
theFunc();
::FreeLibrary(hInst);
hInst = NULL;
}
return (XP_NOERROR);
}
我想虽然看上去不是很高明,然而问题应该是解决了的,
还有一点说明,为什么不使用Tls,老实说,我考虑过使用的,因为其实代码是有一点问题的,假如一个用户调用xp_part_init,然后另一个用户也调用xp_part_init,注意我们的存储过程可是服务器端的,然后第一个用户调用xp_part_finalize,那么会怎样,他仍然可以正常使用xp_part_process,这倒无所谓,然而第一个用户调用两次xp_part_finalize,就能够影响第二个用户了,他的xp_part_process将返回错误。
使用Tls 似乎可以解决这问题,例如再添加一个tls_index变量,调用 TlsSetValue保存用户私人数据,TlsGetValue检索私人数据,当xp_part_init时,假如该私人数据为0,执行正常的初始化过程,(即上面的xp_part_init)执行成功后存储私人数据为1,假如是1,直接返回,xp_part_finalize时,假如私人数据为1,则执行正常的xp_part_finalize,然后设私人数据为0,假如是0,直接返回。
生命意义的扩展 篇3
1987年9月在美国新墨西哥州的洛斯阿拉莫斯召开的第一次国际人工生命会议把生命的内涵和外延做了极大的扩展。当把生物生命和信息技术结合,并用信息技术来模拟自然生命时,生命的功能和本质就有了重大的改观,兰顿对人工生命的思想做了归纳和总结,集中体现在《人工生命》的报告中。
人工生命是关于一切可能的生命形式的生物学。今天我们每个人以同样的方式和本质出现在地球上,并不是必然的,这仅仅是因为原先地球上存在的那些物质和进化的结果。然而,进化可能建立在更普遍的规律之上,但这些规律人类可能还没有认识到。所以,今天的生物学仅仅是实际生命的生物学。
而现在利用计算机技术创造人工生命所用的是集成的方法,而不是用分析的方法。对传统生命的理解是解剖和分析现有生命的物种、器官、细胞、细胞器和分子,而人工生命是用综合集成的方法将简单的零部件组合在一起,使之产生类似生命的行为、甚至思想。传统的生物学研究一直强调根据生命的最小部分分析生命并解释它们,而人工生命研究试图在计算机或其他媒介中合成生命的过程和行为。
不管实际的生命,还是可能的生命,都不由它们所构成的具体物质决定。生命当然离不开物质,但是生命的本质并不取决于具体的物质。生命是一个过程,恰恰是这一过程的形式而不是物质才是生命的本质。因此可以忽略物质,从其中抽象出控制生命的逻辑或规律。如果能够在另外一种物质中获得相同的逻辑,人类就可以创造出不同材料的另外一种生命,如硅基生命。
人工生命与人工智能有区别。合成人工生命的最好方法是通过以计算机为基础的被称为“自下而上编程”的信息处理原则来进行:在底层定义许多小的单元和几条关系到它们内部的、完全是局部的相互作用的简单规则,从这种相互作用中产生出连贯的“全体”行为,这种行为不是根据特殊规则预先编好的。
自下而上的编程与人工智能(AI)中主导的编程原则是完全不同的。在人工智能中,人们试图根据从上到下的编程手段建构智力机器:总体的行为是先验地通过把它分解成严格定义的子序列编程,子序列依次又被分成子程序、子子程序……
人工生命中的自下而上的方法是模仿或模拟自然中自组织的过程,力图从简单的局部控制出发,让行为从底层凸现出来。按兰顿的说法,生命也许确实是某种生化机器,但要启动这台机器,不是把生命注入这台机器,而是将这台机器的各个部分组织起来,让它们产生互动,从而使其具有“生命”。
人工生命研究在国际上已经召开过7次学术会议,涉及人工生命的方方面面。
研究生命的自组织和自我复制,包括研究天体生物学、宇宙生物学、自催化系统、分子自装配系统、分子信息处理等;探讨发育和变异,研究多细胞发育、基因调节网络、自然和人工的形态形成理论。目前人们采用细胞自动机等进行研究;研究系统复杂性,从系统角度来看待生命的行为,首先在物理上可以定义为非线性、非平衡的开放系统。生命体是混沌和有序的复合。非线性是复杂性的根源,这不仅表现在事物形态结构的无规律分布上,也表现在事物发展过程中的近乎随机变化上。然而,通过混沌理论,却可以洞察到这些复杂现象背后的简单性。非线性把表象的复杂性与本质的简单性联系起来。
人工生命也探讨进化和适应动力学,包括进化的模式和方式、人工仿生学、进化博弈、分子进化、免疫系统进化、学习等,遗传算法和进化计算是目前极为活跃的研究领域。研究智能主体。智能主体是具有自治性、智能性、反应性、预动性和社会性的计算实体。研究智能主体的形式化模型、通信方式、协作策略、集体行为、协作、社会语言系统等。
人工生命还探讨自主系统,即有自我管理能力的系统,自我管理具体体现在四个方面。自我配置:系统必须能够随着环境的改变自动地、动态地进行系统的配置;自我优化:系统不断地监视各个部分的运行状况,对性能进行优化;自我恢复:系统必须能够发现问题或潜在的问题,然后找到替代的方式或重新调整系统使系统正常运行;自我保护:系统必须能够察觉、识别和使自己免受各种各样的攻击,维护系统的安全性和完整性。
人工生命也探讨机器人和人工脑,研究生物感悟的机器人、自治和自适应机器人、进化机器人等。
人工生命的上述种种问题又产生了很多挑战,包括:生命的转变、生命的进化潜能和生命与思想和文化之间的关系。这些问题又细分为;
1.命是怎样从非生命中出现的:在生物体外产生第一个分子有机体:用人工化学的方法以硅的形式达到生命的转变;确定新的生命组织能否根本存在:模拟单细胞组织的整个生命周期;解释规则和符号如何从生命系统的物理动力学中产生。
2.生命系统的潜力和极限是什么:确定在生命的未确定的进化过程中什么是不可避免的;确定进化过程中从具体到一般的响应系统的最小条件;为各种情况下的合成动力的层次创建一个正式的框架;确定利用组织和生态系统的进化结果的预言性;建立一个有关信息处理、信息流和信息生成的进化系统的理论。
3.生命是如何与思想、机器和文化相关的;论证人工生命系统中智能和思想的出现;评估下一代主要的生命进化转变对机器的影响程度;提供一个文化和生物进化之间的相互影响的定量模型;为人工生命建立伦理原则等。
尽管高级人工生命的创造存在很多困难,但未来这样的生命创造出来后将不仅是对生命的扩展,而且是对人类自身的挑战。
安全扩展 篇4
目前,在各种企业级的应用中,Spring作为构造Java应用程序的轻量级框架,正在得到广泛的应用[1]。对于企业应用中普遍关注的安全性问题,Spring以提供Acegi安全框架来予以很好地解决。Acgi是基于Spring的声明式安全框架,通过在Spring的应用上下文中配置一系列的Bean完成安全设置,并且实现了Spring提供的依赖注入和IoC编程方式[2]。任何一个安全系统都包括Authentication(认证)和Authorization(授权)两部分,Acegi也采用了这样的方式。但为保证应用的更加安全,Acegi采用过滤器拦截servlet请求的方式达到认证和授权的目的,这也正是Acegi安全框架的最大亮点。
本文通过应用和扩展,说明使用Spring Acegi对资源进行认证和授权的一般过程,所设计的应用与扩展程序在运行期能够动态改变权限分配,弥补了资源和权限必须通过配置文件配置的缺陷,大大增强了程序的灵活性。
1 Acegi安全框架结构
Acegi安全框架由Authentication和Authorization组成。
1.1 认 证
Acegi安全框架通过AuthenticationProcessingFilter拦截login请求获取Principal(用户名)和Credential(密码)信息,然后fileter调用认证管理器AuthenticatiomManager进行验证。AuthenticatiomManager本身并不具备验证的功能,它是一个验证控制器, 由它来调用一个或多个Provider(认证提供者,比如dao、jaas,cas,x509,ldap等)[3],并逐一遍历每个Provider,直到某个Provider能成功验证用户的身份。Provider成功验证用户身份后,会返回一个认证, 其中包括Principal、Credentials、Authorities(该用户所拥有的权限)。如图1所示。
1.2 授 权
当Acegi安全框架获得认证后,也就确定了用户所拥有的权限。每当用户请求访问某受保护资源时,Acegi会调用AccessDecisionManager(访问决策管理器)来决定用户是否有当前所访问资源的权限,如果有则授权通过;没有则抛出异常,以达到访问控制的目的。
无论较高层次的Web应用的安全,还是较低层次的方法级安全,Acegi安全框架都可以通过四个主要组件完成安全需求。如图2所示。
(1) SecurityInterceptor 用于拦截那些需要访问受保护资源的请求,拦截请求后根据不同需求交给AuthenticationManager、AccessDecisionManger和RunAsManager进行处理。
(2) AuthenticationManager 用于验证登录用户的身份,根据登录时输入的Principal和Credential进行验证,它不具备验证功能,实际的验证是由Provider来完成的。
(3) AccessDecisionManager 用于决定已验证通过的用户是否有访问受保护资源的权限。AccessDecisionManager采用民主决策机制判断用户是否有权访问目标程序资源,它包含多个AccessDecisionVoter。在访问决策时,每个AccessDecisionVoter都拥有投票权,AccessDecisionManager统计投票结果,并按照某种决策方式根据这些投票结果决定最终是否向用户开放受限资源的访问。
(4) RunAsManager 尽管用户通过验证并得到授权可以访问资源,但对于这些访问资源中某些对象的访问,可能还会有更多的安全约束。例如,用户可能得到了查看某个Web页面的权力,但是页面中可能还有比Web页面安全级别更高的对象。这些验证功能就由Run as manager 来完成。
2 Acegi的应用与扩展
Acegi作为一个很好的安全框架,能够在企业应用中最大限度地发挥作用,其关键是能够灵活配置并根据应用进行相应的扩展。以下应用过程以图3所示的数据模型为基础,包括过滤器、认证、鉴权、事务、异常处理等配置。
2.1 数据模型
由图3可以看出user(用户)和role(角色)是多对多的关系,role和resource(功能资源)是多对多的关系。当对用户进行认证的时候,是通过loginid去找所对应的角色,当对用户进行鉴权的时候,是通过resourceid去找所对应的角色。
2.2 web.xml配置
首先在web.xml里配置Acegi Filter Chain Proxy。
FilterChainProxy主要提供安全认证中所需要的全部filter,这些filter配置于其filterInvocationDefinitionSource属性中,针对FilterChainProxy以及其他Acegi的filter配置都放在applicationContext-acegi-security.xml配置文件中[4,5]。
2.3 applicationContext-acegi-security.xml配置
2.3.1 FilterChainProxy过滤器配置
先配置FilterChainProxy的filterInvocationDefinitionSource属性值。
2.3.2 认证配置
1) 进入登录页面,输入用户名密码,提交form,这里form的action必须设为以上配置中属性filterProcessesUrl的值即security_check.zzml。
2) 由authenticationProcessingFilter 进行处理,这里扩展了一个类,主要是对用户名及用户其他信息做额外处理(比如在这里可以把用户信息放入session中),扩展类为UserResolveAuthenticationProcessingFilter,对用户名处理之后,把用户名和密码交给认证管理器即authenticationManager进行认证处理。
3) 认证管理器再把认证交给认证提供者进行处理,在这里用的是数据库认证提供者即DaoAuthenticationProvider,数据库提供者把用户名和密码交给jdbcDaoImpl以获得该用户的认证信息。
4) 数据库提供者把认证结果也就是Authentication(包括用户名、密码、权限)返给authenticationProcessingFilter,然后将结果保存在上下文中并且返回到目的页面。通过getContext().setAuthentication(authResult)获得上下文,最后通过sendRedirect(request,response, targetUrl)来返回目的页面。
5) passwordEncoder是加密器,使用加密器对用户输入的明
文进行加密。Acegi提供了三种加密器:PlaintextPasswordEncoder(默认、不加密、返回明文)、ShaPasswordEncoder(哈希算法加密)和Md5PasswordEncoder(消息摘要MD5加密)。
6) jdbcDaoImpl是用于在数据中获取用户信息。Acegi提供了用户及授权的表结构,但是开发人员也可以自己去实现。通过usersByUsernameQuery这个SQL得到开发人员的用户ID、密码和状态信息;通过authoritiesByUsernameQuery这个SQL得到开发人员的用户ID和授权信息。
在这个认证过程中会出现几种异常情况:ProviderNotFoundException(没有认证提供者)、BadCredentialsException(用户不存在)、AuthenticationService Exception(授权失败)、DisabledException(非活动用户)、AccountExpired Exception(授权已过期)、LockedException(用户被锁定)和Credentials ExpiredException(授权已过期)。
2.3.3 鉴权配置(对filterInvocationInterceptor拦截器的调用)
进入FilterSecurityInterceptor后,首先进行以下几步操作:
首先要去找你所访问的URL对应的角色也就是ConfigAttributeDefinition,如果ConfigAttributeDefinition不是null,说明访问这个URL的时候需要认证和授权,而这个找角色的任务是由objectDefinitionSource来完成,但是在Spring Aecgi中URL和角色的对照关系只能在配置文件中进行配置,这样大大降低了灵活性,这里要做的就是能够通过数据库对URL和角色进行灵活配置,也就是在原来的基础上进行扩展。
Spring Acegi默认的配置如下:
扩展后的配置方式:
这里获取URL的角色主要是通过EhCache机制由类DBFilterInvocationDefinitionSource的lookupAttributes方法来完成的,此类继承于AbstractFilterInvocationDefinitionSource。首先是根据访问URL去匹配数据库中定义的所有URL资源,匹配工作是由Perl5Compiler通过正则法则进行匹配,所以说在resource表的res_string字段中配置资源的时候要充分利用正则法则。接下来如果匹配到那么根据匹配到的resourceid去找对应的角色,如果角色找到,则返回定义角色的对象ConfigAttributeDefinition,主要代码如下:
1) 找到URL对应的角色之后,接下来要判断用户是否已经登录,如果用户没有登录则进入异常处理,由过滤器exceptionTranslationFilter来完成,并且会强制进入登录页面,登录页面地址为/indexLogon.zzml,配置如下:
2) 进入登录页面,输入用户名和密码,即进入认证流程,如果认证成功,在getContext()的Authentication属性中就会有授权信息。
3) 如果已经登录了,在getContext().getAuthentication 中就会获得认证信息包括用户名、密码、角色等,然后通过accessDecisionManager.decide来判断本用户是否允许访问此URL。
4) accessDecisionManager.decide需要两个参数,一个是所访问资源对应的角色,一个是登录用户的所有角色。然后经过投票机制来决定是否可以访问某一资源(URL或方法)。allowIfAllAbstainDecisions为false时如果有一个或以上的decisionVoters投票通过,则授权通过。
2.3.4 httpSessionContextIntegrationFilter过滤器配置
每次request前 HttpSessionContextIntegrationFilter从Session中获取Authentication对象,在request完成之后,又把Authentication对象保存到Session中供下次request使用,此filter必须在其他filter前使用,使之能跨越多个请求。
2.3.5 exceptionTranslationFilter过滤器配置
这是异常转换过滤器,主要是处理AccessDeniedException和AuthenticationException,将给每个异常找到合适的"去向" 。
3 结 论
目前Spring框架越来越多地应用在各种项目中,因此基于Spring应用的系统安全性的研究就显得非常重要。Acegi提供了对Spring应用安全的支持,然而 Acegi本身提供的实例并不能满足大规模的复杂的权限需求,本文在Acegi基础上进行扩展,扩展后的框架能够使开发者更快更好地管理应用资源,也使程序的维护更加方便。
参考文献
[1]Rob Harrop,Jan Machacek.Spring专业开发指南[M].Redsaga翻译小组译.北京:电子工业出版社,2006.
[2]罗时飞.精通Spring[M].北京:电子工业出版社,2005.
[3]Rod Johnson,Juergen Hoeller.Expert One-on-One J2EE Developmen without EJB[M].Wrox,2004.
[4]林信良.Spring技术手册[M].北京:电子工业出版社,2005.
扩展语句2 篇5
[ 2010-1-29 7:06:00 | By: hyllm ]
0 推荐扩展语句
复习目标:
学会用一定的表现手法和表达方式,将结构简单、内容贫乏、达意欠明确、表达欠具体、描述欠生动的语句扩充得丰富、充实、鲜明、形象起来。
提升联想和想象能力。
复习方法:
联系把一组词语扩展成一句话或者一段话;或者把一句话的意思加以扩充或者合理地扩展成几句话。
课时安排:3-4课时
一、扩展语句题型的命题特点:
1、着眼于对语言运用能力的考查,重视语言表达的基础能力。
2、在内容上呈开放性特征,同时紧密结合学生学习和生活的实际。
3、为学生提供广阔的思维空间,有利于学生充分发挥个人特长,展现自己的能力。
4、情景既有一定的限制,又有很大的自由发挥空间。
5、答案丰富多彩,有较大的弹性,有利于激发学生的热情,对培养和提高学生的创造思维能力大有益处。
二、扩展语句的七种类型:
1、枝繁叶茂型——在句子的主干上添加修饰、限制成分,使句子表达的意思更具体、更准确、更生动。
例:把“李登辉下台了”扩展成50个字以内的一句话,要交代出李登辉的本质、身份、下台的背景、原因及情态。
答案:处心积虑地想把宝岛分裂出去的卖国贼台湾“总统”李登辉,在台湾广大民众的抗议与斥骂声中灰溜溜地下台了。
例:把“我散步回来。”扩展成具体形象的句子。
答案:傍晚,收获满心喜悦的我,披着满天火红的晚霞,从海边散步回来。
2、改造完美型——对已有的(或是已给出的)句子进行改造,从而使句子完美起来的一种类型。
(这种类型基本上不需要去发挥想像,只需要进行合理的组装,只要找准句子的中心和理清句与句间的关系,安排好句与句的位置就行了。)
例:利用提供的材料将“车队在公路上呼啸而过”这句话丰富起来。
公路:一边是大海,一边是稻田。大海:白浪滔天。
稻田:碧波万顷。车队:几十辆“奥迪”。
答案:几十辆“奥迪”组成的浩浩荡荡的车队,在一边是白浪滔天的大海,另一边是碧波万顷的稻田的公路上呼啸而过。
3、补充完善型——原句或原语段并不完整,需要对它进行补充。补充的语句既符合原句段的情境,又有灵活的发挥。
例:根据下列文字提供的语境,在横线上填入与上文相衔接的文字。
当你端着满满一杯咖啡行走时,如果你的眼睛老是盯着液面,心中总是设法使之平衡,结果你会发现咖啡液面的波动会越来越剧烈,以致溅出杯子。相反,如果你不过分地小心翼翼,大胆地走,它反而不会溅出杯子。政府对经济的干预也是这样。
答案:过分地通过干预追求平衡往往会出问题,而放开手脚让经济在市场中自由发展反而容易达到平衡。
4、想像创造型——原句段只设定了一个比较笼统的情境,在这个设定的情境中可以任意地想像创造,进行扩展。
例:在下面的横线上填上几句话(不超过60个字),突出“复杂”一词。
周朴园并不简单地是一个冷血的野兽,面对鲁侍萍,他表现出了十分复杂的性格特征。
答案:他面对侍萍感到恐慌,保住自己的身份地位压倒了一切,表现了他的冷酷,但他对侍萍的怀念却也并不一定完全是假的,只不过他的温情是浸泡在利己主义的冰水中的。
5、逻辑推理型——根据一定的条件或者语境进行逻辑思维,从而合理地推导出一定结论的类型。
续写式(结论式)
例:完成下面的一句话。
汉字是用来记录汉语的文字,是世界上历史最悠久的文字之一。几千年来,汉字对保存、传播和发展祖国的优秀文化起了巨大作用。现在和今后一个长时期,汉字仍是。
解析:“仍是”是一个主要的提示,它代表了一种延续,于是再上溯原文,看看“文字”的哪些具体作用是要“延续”的,我们可以找出“记录汉语”、“传播文化”。
答案:我们记录汉语、交流思想、传播文化的工具。
填补式:
例:你我是朋友,各拿一个苹果,彼此交换,交换后仍然是各有一个苹果,倘若你有一种思想,我也有一种思想,那么,我们每个人就有两种思想了。这句话的意思很明白,就是提醒人们在交朋友时,不要,而要。
解析:交换苹果是一个比方,是把抽象道理形象化的一种手段,由苹果到思想,道理不断深化,最后得出结论。
答案:朋友之间彼此交流思想
着眼于物质的交流
着眼于思想等精神方面的交流
6、重点丰富型——提供某种特定情景,以某一对象或内容为重点进行扩展。
例:以“秋天·思乡”为背景,以“色彩”为重点,扩展成一段话。
解析:这种类型的扩展,关键在于对扩展要求中所蕴涵的隐蔽信息的捕捉、挖掘。本题的要求中可明确这样几个信息:(1)“秋天·思乡”决定了语段的抒情氛围;(2)“色彩”明确了描述的特定对象的特征;(3)运用的表达方式应以描写为主,语言的风格应是悠远而舒缓的。
答案:我爱秋天那深邃、湛蓝的天空。放眼望去,头顶上仿佛不是天,而是一块瓦蓝的碧玉。南飞的雁阵,巧妙地给这单纯的底色添上了一丝灵动的色彩,一点思乡的情调。蓦然间,我想起了故乡的蔚蓝的海面上,一队扬帆出海的渔船。
7、图表转换型——提供图表或数字,让考生熟读深思后把图表所表示的内容用文字方式予以扩展。
例:将下列图表的内容用一段叙述性文字表述出来。
全国注册的私营企业增长情况比较表
企业户数
从业人数
注册资金
万户
1458万人
6554亿元
153%
124%
123%
100%
100%
100%
1997.6
1998.6
1997.6
1998.6
1997.6
1998.6
答案:截止1998年6月,全国注册的私营企业达104万户,从业人员1458万人,注册资金6554亿元,分别比1997年同期增长23%、24%和53%。
三、扩展语句典型题例:
例
1、(2003·北京)根据要求写两段话。每段话都要包含下面三个词语,且不少于40字。
道路
身影
足迹
(1)
描绘一种情景
(2)
表达一种感悟
解析:(1)要求写一个场面,语境可设置为“道路上”或者“操场上”,“身影”可以是“青年学生”,也可以是“外出务工者”,“足迹”是实写。
(2)要求提取一种感悟,是引导我们以(1)中描绘的具体场景为基础,从中升华出某种精神内涵。
参考答案:(1)在道路旁的操场上,活跃着一群青春的身影,他们有的踢足球,有的打篮球,有的跑步,还有的坐在一旁的草地上专心地读着书。他们把欢快的足迹撒遍操场上的每一个角落。
(2)在我看来,在一条通向成功的道路上,闪现的是探索者汗与泪交织的疲惫的身影;留下的是跋涉者不屈不挠、顽强拼搏、勇敢向前的足迹。
例
2、(2002北京)以下面给出的文字为开头,以“路”为中心,分别写一段话。(每段续写不少于50字)
(1)
北京的路平直而宽阔,(2)
人生的路漫长而多彩,解析:考查扩展语句的能力,前者是实写,后者是虚写。要突出以“路”为中心,不能写成以“路”为切入点而谈与“路”有关的其他内容。
参考答案:
(1)(北京的路平直而宽阔),有三环,有四环,除了绕弯处,都是笔直的,像一把长长的尺子,丈量着大地。
(2)(人生的路漫长而多彩),人生的路却不同于笔直的路。它漫长,很难用尺子丈量;它多彩,处处充满迷茫与坎坷,如同山间小路,有鲜花的芳香,也有泥泞的跋涉。幸福与不幸会伴你一生。
例
3、(2001春招)根据以下规定的情景,以“起跑线”为重点,分别扩展成一段话。每段不少于30个字。
情景一:田径场上
情景二:人生某阶段
解析:首先要注意“情景”,也就是说,“田径场上”必须描写的是田径场上的情景,不管是
怎样的比赛。一般适合在“田径场上”前面加一定语。“人生某阶段”则必须设想一个特定的阶段,比如中学阶段,青少年时期。此句不同于一般的扩写,不能在“人生某阶段”的基础上去扩写。
其次要注意必须“以‘起跑线’为重点”,要描写“起跑线”可进行联想、展开想像,或赋予其象征意义。切不可以人为描述重点。
参考答案:
情景一:学校春运会的田径场上,雪白的起跑线笔直地横在严阵以待的运动员面前,仿佛在说:“跨过去吧,成功就在前面。”
情景二:跨进高中的大门,我又站在了新的起跑线上。这条起跑线是我人生的新的起点,它给我展示了新的征途。
例
4、(2000全国)根据下列两种情景,以“歌声”为重点,分别扩展成一段话。每段不少于30个字。
情景一:毕业典礼上
同学们
歌声
情景二:考试前夕
我 歌声
解析:本题要求依托不同情景,将关于“歌声”的记叙,扩展成一段话。扩展的着眼有二:一是必须以歌声为记叙重点,二是渗透于其中的感受必须符合规定的情景,并且要体现出两种不同情景对人的关于歌声的感受不同的影响。这将是本题考查的最主要的着眼点。当然,记叙过程中构思的新颖,表达的生动形象也都在评分的视野之中。
参考答案:
情景一:在毕业典礼上,同学们兴致勃勃,心情激动,高唱《毕业歌》。这歌声,唱出了同学们的爱国心,也唱出了大家的责任意识:献身祖国,振兴民族。这歌声,是告别母校的誓言,也是报效祖国的志愿的表白。
情景二:考试前夕,我日夜复习,常常感到疲惫。这时,我就打开VCD,或细嚼慢品歌星动情的演唱,或自己也轻哼轻唱。歌声,放松了我紧张的神经;歌声,激发了我的斗志,增强了我求战的欲望。
四、扩展语句的注意点:
1、扩展后的语句应体现完整而明确的思想,使原语句的意思表达得更充分、更丰富,并符合题目要求。
2、内容要前后衔接自然,连贯有序。扩展后的语句应很好地与原文保持基本意思的一致,做到话题的一致。叙述角度合理,并使语句间层次严密。若偏离了原话题或基本观点,都是
不合要求的。
3、情感色彩一致,语境统一。扩展语句比原语句内容更丰富,表情达意更具体、真切,但必须注意情感色彩的统一,否则就会背离原句主旨。另外,有些原句表意单纯,或只有一个主干句,情感色彩并不明显。这种情况下,就要求扩展语句中的情感要自然和谐,做到文意顺畅,情理通达。在这里,讲究语境的协调很重要。
4、语言形式符合要求。要做到扩展合理,语言连贯、得体是重要一环。语言连贯方能文意贯通,语言得体才会情调氛围一致。有时,题目还会对语言形式有具体的要求,要结合这些要求进行扩展。
五、课堂演练,交流订正:
1、将下面句子加以扩展,要求进一步表现人物心胸的开阔。
他坐在窗下,凝视着前方的原野。
解析:本题要求扩展语句,还要求通过扩展的内容进一步表现人物心胸的开阔。首先分析:这个句子哪些地方可以扩展。“窗”和“原野”前可以加定语,“凝视”前可以加状语。那么从哪些地方可以表现人物心胸的开阔呢?可以从两个地方,一是从“窗子”,如果窗子洁净敞亮,人物心胸就显得开阔愉快了;二是从“原野”,如果原野开阔无边,那么人物心胸也就显得开阔了。另外,如果凝视时间长久,也可显得对开阔境界的向往之深。
参考答案:他坐在洁净透明的玻璃窗下,长久地凝视着前方那辽阔的无边无际的原野。
2、将下面短句扩展为不少于30个字的长句,扩展后的语句要包括时令、范围、形状、色泽等四个要素,语序安排要合理。
葡萄熟了。
参考答案:立秋时节,满园的葡萄熟了,一嘟噜一嘟噜挂在架上,像翡翠,像琥珀,像珍珠,真让人馋涎欲滴。
3、根据下面两种情景,以“下雨”为中心,分别扩展成一段话。(每段不少于40个字)
情景一:春天野外下雨
情景二:夏天校园下雨
参考答案:
情景一:如丝的细雨飘飘洒洒,如轻纱,如薄雾,远处的绵绵山峦,近处的漠漠田野,都笼罩在这一片茫茫的春雨中。
情景二:天黑得像夜晚,教室里闷得如同蒸笼一般。突然,一阵惊雷响起,随着雷声,豆大的雨点泼洒下来。雨越下越大,越下越急,像是天河突然决口。不一会儿,整个校园就成了茫茫的一片湖泊了。
4、顺着下面几句话的思路,讲究一点幽默,续写两三句话,组成一个语意完整的语段。(不少于30个字)
中国有了不起的“吃文化”:吃蛇、吃鳖、吃猫、吃鼠,也吃河豚、吃果子狸,这总还与人体的消化器官有关系。但也有“吃黄牌”、“吃官司”„„
参考答案:
(一)这“吃”是“遭遇”“承受”,由身体而至精神;吃请、吃回扣,则身体精神兼而有之。中国的语言形象,也够厉害,当吃不当吃,还真要想一想。
(二)最古怪的是“吃一堑,长一智”,连“堑”也讲究“吃”,你说中国人思维中有多少是不能吃的?
(三)“吃一刀”“吃不消”,碰上就倒霉;“秀色可餐”,人美、景美,赏心悦目,以“餐”代之,清丽可人,要是译成外语,岂不吓坏了我们的少男少女?
5、以“好文章”为主体,分别从来源和作用两方面扩展成一段话。(每段不少于30个字)
来源:
作用:
参考答案:(来源)好文章必须来自生活,必须有自己的真情实感,与众不同的见解,要写别人没有写或不能写的东西。
(作用)好文章不仅可以使人得到启发,受到教益,而且能引起读者丰富的联想和想像,激起强烈的情感共鸣。
6、扩展下面一句话,使内容更加具体、形象、生动。(70个字左右)
踏春归来,襟袖间还飘逸着春天的气息。
答:
参考答案:沐浴着明媚的阳光,怀着对春姑娘的深深眷恋,我挥挥衣袖,告别了青山绿水,衣襟上还残留着小草的新绿,散发着泥土的清香,飘逸着春天的气息。
7、根据所给情境,以“感情”为描写重点,分别扩展成两段话。(不少于30个字)
情景一:第一次独自远行
车站上
我 感情
情景二:在课堂上
老师突然点名表扬
我感情
参考答案:情景一:第一次独自远行,置身于陌生的车站上,我的感情如涌动的潮汐,翻滚不停;如猛烈的骤雨,下个不停;如漫天的飞雪,飘个不停。
情景二:课堂上,老师突然点名表扬思想正在开小差的我,我的感情如跳动的波浪,是高兴,是惭愧,还是内疚?说不清,道不明,理不顺。
8、观察下图,展开想像或联想,拟定一个题目加以描写。(50个字左右)
图形:外面是圆,圆里面是正方形
题目:
描写:
参考答案:(题目)包容
(描写)圆好比一个谦恭、平和的老者,不急不躁;方,恰似一个血气方刚的少年,有棱有角。做人少不了要有棱角,讲直率,但更多的时候,不妨在你的直爽中吸收些圆的气质——包容。
9、扩展下面的句子,使其形象、生动。(不少于50个字)
帆的一生充满了曲折困苦,它以坚强不屈的意志年年月月与怒涛巨澜搏斗着。
参考答案:帆的一生充满了曲折困苦,它呼啸在暴雨中,腾跃在波谷中,喧嚣在狂浪中,穿行在礁石间,以坚强不屈的意志年年月月与怒涛巨澜搏斗着。
10、阅读下面语句,按句意适当扩展。要求运用联想,语意连贯。(不少于五个方面)
君子是用水来比喻自己的德行修养的。
参考答案:它遍布天下,并无偏私,有如君子的道德;所到之处,万物生长,有如君子的仁爱;水性向下,随物赋形,有如君子的高义;浅处流动不息,深处遥不可测,有如君子的智慧;奔赴万丈深渊,毫不迟疑,有如君子的临事果决;渗入曲细,无微不至,有如君子的明察秋毫;蒙受恶名,默不申辩,有如君子包容一切的豁达胸怀。
11、根据下列两种情景,以“月亮”为重点,分别扩展成一段话。(每段不少于40个字)
情景一:将离开家门
我月亮
情景二:回到家中
我 月亮
参考答案:(情景一)走出家门,我不禁又回头望了一眼,深深地吸了一口气,抬头望星空,月儿弯弯,像一艘独木船,欲载我同行。
(情景二)推开家门,我兴奋地环顾着这曾经熟悉而今有点陌生的家,蓦地眼角掠过一丝余晖,抬头一瞧,一轮圆月当空高悬,流溢的清辉,激荡着家人喜出望外的心。
12、根据下列两种情景,以“下雪”为重点,分别扩展成一段话。(每段不少于30个字)
情景一:北方
冬季
下雪
情景二:南方
冬季
下雪
参考答案:(情景一)铺天盖地的大雪,纷纷扬扬,从天而降。极目远望北方,莽莽原野,白雪皑皑;巍巍群山,银妆素裹。好一个粉妆玉琢的琼瑶世界!
(情景二)梅花花蕊般大小的雪花,慢悠悠地飘下来,给南方山顶的矮松披上了一层微薄的白纱,飘落山涧的雪花随即溶入清澈的水流,无声无息地随水流去。
13、下面是基础研究功能模式图示,读图后,请从“单线模式”角度用一句话阐述其弊端。(不超过30个字)
↗培养人才
↗多线模式
→ 人(科学家)→ 学术环境
基础研究
↘ 科学理念
↘单线模式 →
研究成果 →
科学实验→ 发展生产
答:单线模式强调以成果为中心,但是
参考答案:(单线模式强调以成果为中心,但是)忽视了以人为本的培养人才、学术环境、科学理念等方面的研究。
14、发挥你的丰富想象,以“假如古人有手机”为前提,给下面三种情景各补写一段话。(要求字数在70-100字之间)
(1)那么大禹治水时,()
(2)那么唐僧取经时,()
(3)那么汉代苏武出使匈奴,匈奴谎称苏武已死时,()
分析:补写的一段话一定要与假设的情景相吻合,既要与历史故事或神话传说一致,又要发挥想象,还要语言幽默风趣。
参考答案:
(1)那么大禹治水时,(就没有“三过家门而不入”的传说。大禹只需要拿着手机给老婆打个电话:“亲爱的,我工作太忙,脱不了身,下次回来和你团聚。别哭,别哭,我这不是挺好的吗?来,笑一个„„”)
(2)那么唐僧取经时,(一旦有了危险就可以赶紧掏出手机报警:“喂,110吗?我是玄奘,我现在在某山下,发现了一个不知是从哪个动物园里跑出来的青面獠牙的怪兽,情况非常危急„„”)
(3)那么汉代苏武出使匈奴,匈奴谎称苏武已死时,(苏武就不必鸿雁传书,只需要给大汉天子打个手机:“喂,老大,是我。”“哦,苏武啊,单于那小儿怎么说你死了呢?”“别听他胡说,他把我囚禁在北海,想让我拜他为老大,不然就把我关到公羊生小羊那天,老大,您快动用外交手段吧„„”瞧,这样一来,苏武19年的异域之苦就免了。)
六、作业:《核按钮》P44
扩展思维向度 篇6
一、文言文教学为什么要扩展学生思维向度
(一)放飞学生思维,课堂才会精彩无限
文言文课堂教学,由于知识点相对难一些,许多教师就直接给学生讲,讲参考答案,讲教师自己的思路,这样做的问题就是学生思维容易受限,教师一步一步引导学生赞同自己的观点,学生被参考答案或是教师的观点淹没了,他们失去了自我,课堂当然就没有活力了。如果学生的思维受限,课堂的生成性问题就不会有,课堂就不会精彩,当然也就只能是风平浪静了。
当我们教师放飞学生思维,让他们尽情地去想、去展示时,你会发现学生的潜能是无限的,许多东西是教师无法做到或是想到的,课堂本身就应该是百花齐放、百家争鸣的地方,我们应让学生尽情去表达交流,因为每个人所想的不一样,才会产生观点的碰撞,才能促进大家的思考,才能得出不同的结论或是方法,因为不同所以丰富,因为丰富所以精彩,因为精彩所以有趣。
比如我教柳永《雨霖铃》时让学生充分发挥想象,将课文改写成散文诗,学生的思维被放飞,学生的积极性非常高,改写出来的散文稿一篇比一篇精彩。有的同学以男子角度来写“当树梢上的秋蝉发出最后一声凄凉低吟,当骤雨之后乌云慢慢散开,当你我依依不舍在傍晚的长亭下送别,当你强颜欢笑与我在都门帐外举杯饯行……”有的同学以女子角度来写,笔法各有特色,仅就借景抒情的用法,就各不相同,学生相互借鉴,相互启发,最终共同进步。
(二)设置不同向度,学生才会自由选择
学生怕学文言文是因为难懂,因为文言文学习是一个长期积累的过程,许多知识点、考点如果老师只是从某一方面或以某一方法来讲解可能只让一部分学生明白了,而另一部分学生未必清楚。教师布置文言文的某一项任务,可能有的学生能轻松完成,而的有学生则无法完成。同一种思维方式,同一种解题方法,同一种主题思想,不一定所有学生都接受,也就是说不一定能满足所有的学生,在教学中尤其是基础差、底子薄的学生往往被教师忽略了,这样会使两极分化越来越严重。解决差生问题我认为最好的办法就是设置多个向度,让学生根据自己的情况作出适当的选择。
比如教学李煜《虞美人》时,在理解鉴赏阶段,为了考虑和照顾到不同的学生,我提供了诗词理解鉴赏的多个向度。①说说你喜欢的好字好词,为什么;②从本词的意象意境方面谈谈你的理解;③你认为的经典名句是哪句,为什么;④谈谈读了这首词后的感想感悟;⑤这首词对你的写作有什么帮助……学生可自由选择其中的1-2个角度来谈谈。这样更多的向度,就能照顾到不同层次的学生,课堂当然就会精彩纷呈。
(三)扩展思维向度,考试才会灵活应变
当今的高考试题,灵活度更大,对思维能力的要求更高,很多时候,知识点学生已掌握,但缺乏多向度思维的能力,结果只能是错误越来越突出。我常给学生讲“同我者死,似我者俗,超我者巧”,要让我们的课堂精彩起来,让学生适应新高考,就必需扩展学生思维向度,让方法或答案丰富多彩。
比如在积累和复习文言虚词和实词时,不要死记硬背、生搬硬套,应结合具体语境,比如搭配、词性等情况灵活应变,毕竟考查的是理解“在文中的含义”,如此方可提高文言文阅读的解题能力。一种方法解不了,再换另一种方法;一种思路行不通,再从另一种思路着手。在多种方法中,在多向度思考中总有一种是能顺利而正确解题的。有多向度思维习惯的学生不会一条道走到黑,他们懂得灵活应变。我们常给学生讲采分点和对应采分点答题,这里的采分点一是要有条理性,更重要的一个方面是要会从不同角度来答,那么答到的点才会更全面,得分才会更高。
二、文言文教学怎样做到扩展学生思维向度
在文言文字词、翻译的教学上,可以设置多向度;学生可能对同一人物的看法不一,对同一人物的关注点不一样,所以对人物形象的分析答案也就能更丰富;从写作素材的运用上也可扩展学生思维向度,对同一个材料,我们可以选取它的不同角度应用于不同的话题或是主题中。
(一)尽量给学生一种最适合自己的方法
我经常给学生讲,同一件事至少有100种以上不同的解决办法,如果只有一种方法就意味着死路一条。达成同一目标,可以有不同的方法,在众多方法中学生可以选择自己认为最容易或是最喜欢的方法。比如在讲“而”字用法时可用口诀记为“你的修假并因转承递”谐音为“你的休假病因专程递”可以这样联想“你生病要休假,病假要写明病因,专程递给你的班主任”;也可用口诀记忆为“‘而的用法要记得,代、并、顺承、修、转折”;还可记为口诀“而你像并蒂莲,因羞却成假”;我还给学生这样讲“‘而象形字,小篆字形像胡须,上面的‘一表示鼻端,‘|表示人中;下面分内外两层,外层像两腮的胡子,内层像生在嘴下的胡子。胡须美观有修饰作用,胡须柔软有转折作用,胡须会变长有递进作用,胡须会变白是因为人老了所以有因果关系”等。对“而”字的讲解我提供了多种方法,学生可任选其中一种来记忆。
对人物形象的分析,往往是课堂最精彩的地方。又如有这样一段文言文:“肃宗为太子,常侍膳。尚食置熟俎,有羊臂臑。上顾太子,使太子割。肃宗既割,余污漫刃,以饼洁之,上熟视不怿。肃宗徐举饼啖之,上大悦,谓太子曰:‘福当如是爱惜。”我们可以引导学生从多角度分析这则故事的含义,可以从玄宗的角度看,也可以从肃宗角度看。第一,唐玄宗有心于培养自己的儿子爱惜物力的美德,善于从寻常小事考察太子;第二,唐玄宗自己骄奢淫欲,而对他人却严格要求;第三,唐肃宗爱惜物力已成习惯;第四,唐肃宗善于窥探父皇用心,因而小心翼翼,在各种小事方面也力图自保。
从写作素材的运用上扩展学生思维向度。我们不是缺乏写作材料,我们缺乏的是发现材料的眼力。对同一个材料,我们可以选取它的不同角度应用于不同的话题之中。面对材料《曹刿论战》,我们可从多角度来挖掘写作素材:第一,关心国家大事,要有强烈的参政意识;第二,要积极创设民主参政的环境;第三,位卑未敢忘忧国。
(二)尽量给学生一项最适合自己的任务
学生的个性不同,能力不同,在听、看、讲、想、做等要素中每个学生的能力是有差异的,教师对学生的要求也应该因人而异。教师布置任务时,应尽量照顾不同的学生,让不同兴趣爱好者、不同特长的学生都能选择适合自己的任务——也就是说在任务选择上,如果学生不是被迫的而是自主的,那么学生在完成任务时就会很投入、很认真。比如在教学荀子的《劝学》时,我给学生布置了如下作业:或说或写或抄一段二百字左右的有关劝学的说理性的文字,可从以下内容任选一个方面来完成,要求用比喻及正反论证的方法。①珍惜时间;②勤奋努力;③学习方法;④学习态度;⑤读书作用……这时学生会根据自己的情况作出选择并努力完成任务。
(三)尽量给学生一些交流展示的机会
当学生根据自己的情况选择了适合的方法和适合自己的任务后,为了相互启发,分享彼此的思维成果,非常有必要进行交流和讨论,我常给学生说,“你有一个苹果,我有一个苹果,咱们交换各得一个苹果;说你有一种思想,我有一种思想,咱们交换各得两种思想;说你有一种方法,我有一种方法,咱们交换各得两种方法”, 学生思维在碰撞中产生火花,思维的火花点燃思维的灵感。在我的语文课堂上,学生互相交流、讨论、合作,互听、互看、互评、互测,阵地始终是学生的,以学生为主体的理念得以体现,所以学生说40分钟的一节课不知不觉就过去了,因为课堂本身充满了兴趣与活力。我在教学中碰到以下情况时,经常要求学生交流讨论:①学生对问题的意见不一致时;②一题多解时;③学生思路打不开时;④需要增大信息量时;⑤需要增加强化次数时。通过交流与讨论,许多生成性问题也就出来了,课堂自然就会精彩无限。
比如教学张若虚的《春江花月夜》时,讲到“月亮”“江水”“落花”这三个意象时,为了增大信息量,增加强化次数。我让每个同学先收集和思考分别有“月亮”“江水”“落花”意象的诗词1—3首,在课堂上交流展示,统计结果是有关“月亮”意象的诗词,学生共找了45首,有关“江水”意象的诗词,学生共找了26首,有关“落花”意象的诗词,学生共找了25首。通过这样的交流展示学生对这三个意象,就有了更深的理解和印象。
总之,文言文教学一定要改变课堂上教师把持讲台的现象,在课堂上一定要注意多向度设置问题,注意扩展学生的思维向度,让学生有自主选择的权利,让学生有交流展示的机会,让学生共享思维成果,让不同层次的学生都能在原来的基础上有所进步,文言课堂教学自然就精彩纷呈了。
物联网安全需要可扩展的解决方案 篇7
会话长度的差异
当今, 一些项目旨在鼓励创业来解决物联网安全问题, 但是物联网设备和传统计算系统之间还是存在一些明显的差异。科技行业正在大力克服新引入设备的复杂性, 以确保未来物联网不会受到安全缺陷的侵扰。基于目前的安全协议, 控制和保护之间的数据流是短暂的, 因而造就了会话的不连续性。
物联网安全企业幻影公司的CEO肯·托拉 (Ken Tola) 认为, “在物联网领域, 设备是长时间连接在一起的, 在这些长期运行的会话中使用相同的保护方式收效甚微, 已经出现很多通过记录加密通信实施重放攻击的事例了。”
幻影公司表示, 他们通过同名安全软件降低重放攻击的风险, 这能对各个级别的物联网系统进行安全认证, 从而开展实时的在线环境保护。托拉表示, 幻影公司通过添加随机性和关注随时变化的数据, 来解决会话长期运行的安全问题。幻影通过在会话期间随机切换算法, 防止黑客通过验证设备入侵通信。
幻影还涉及物联网的另一项挑战, 即系统资源的稀缺性。托拉解释道:“几乎所有的现代保护方式都依赖高端操作系统和使用大量资源, 但物联网不具备这些特征。这就是为什么幻影在设计上是非常轻量级的, 同时对操作的要求很低, 几乎能在所有设备上保持高效运行。”
处理能力和存储容量的差异
与电脑和智能手机相比, 由于物联网设备缺乏操作系统或支持相关应用程序所需的基础设施, 所以相当比例的物联网设备不能运行反恶意软件。他们缺乏应对更复杂的网络攻击所必需的先进技术, 同时, 面对不断扩大的恶意软件数据库, 也没有足够的存储空间。
物联网生态系统需要集中的、基于云的解决方案, 为用户提供直观的界面来控制设备和保护他们免受恶意软件的攻击。芬兰科技公司F-Secure推出的一款和软件相结合的智能路由器Sense, 可以实现这一目标。这款产品是一个小工具, 可以安装在所有设备的上方, 连接家用路由器, 然后分配其整个处理能力来发现和打击针对家庭网络的恶意活动。
为了检测设备是否受损或被挟持, Sense还监视网络的内部活动。F-Secure首席技术官米卡·施塔尔贝尔格 (Mika Stahlberg) 解释道:“这一特性旨在防止物联网设备成为其对网络带来更大漏洞的桥头堡。”
Sense可以实时读取传输至所有设备的数据, 并采用F-Secure的云安全网络分析数据, 通过分析引擎和信息存储库可以辨认出恶意软件和其他各种威胁。当Sense检测到冗余数据或者恶意数据时 (例如检测到想要连接到智能电视的僵尸网络) , 它就会封锁该网络。Sense将所有的物联网设备放在一个受保护的网络之下, 利用安全云服务器的力量来执行高级的任务行为分析, 探测、分类和阻止新威胁。这是一种超出物联网设备功能的能力。
这一方案对解决长期困扰行业的网络安全问题大有裨益。
设备行为的差异
与电脑和智能手机相比, 物联网设备是为特定目的建造的, 拥有的功能有限。
“实际上, 就安全而言这是一件好事。”科技创业公司Dojo-labs的联合创始人兼首席执行官约西·阿蒂亚斯 (Yossi Atias) 解释说:“每一个物联网设备有一组有限的功能, 这使我们能够从一个完全不同的视角来解决物联网的安全问题。通过分析设备网络模式和行为特征, 可以检测到超出预期行为的网络活动, 那就表明可能有设备受损或是遭到恶意攻击。这在物联网设备上是可行的, 因为与通用的计算机设备不同, 物联网只专注小范围内的功能。”
Dojo是Dojo-labs公司研发的一个智能网络设备, 保护联网智能家庭的安全。这款设备在网络层面建立一个简单易用的安全与控制接口, 工作内容是发现和阻止来自家庭联网设备的异常行为。
Dojo云平台不断更新与各种行为信息和网络安全相关的知识。当用户在家中使用电脑或手机访问恶意网址时, 这台网络监控设备还可以发出警告。同时, Dojo的恶意行为警报系统采用了类似交通灯的颜色信号对用户进行指示——其中只有红色警报才需要用户即时处理。
不同的传输方法
Apcera首席安全架构师吉姆·雷诺 (Jim Reno) 认为, “物联网传输媒介的多样性比传统的计算机更明显。物联网设备发送的每条消息必须通过各个节点才能到达目的地。这些节点依赖于完全不同的技术和协议, 其中许多节点是容易受到攻击的。”
雷诺还表示, 大量物联网设备使用不适当的加密密钥存储方法以及遗留的安全协议着实令人担忧, 解决方案是建设一个可扩展的消息传递基础设施, 可以集成各种硬件和软件组合, 确保交换媒介和技术的安全。
这是NATS的想法, 一个由Apcera赞助的灵活的轻量级消息传递系统, 可用于包括物联网生态系统在内的各种环境。
NATS的社区和生态系统经理布莱恩·弗兰纳里 (Brian Flannery) 解释说:“NATS是一个基于文本的协议, 延时率非常低, 在各种编程和脚本语言中很容易实现。NATS每秒能处理数以百万计的消息, 这使得它在许多涉及设备和对操作时序要求严格的物联网环境中能有效运行。”
安全扩展 篇8
基于亲密伙伴的安全信道配置方案[1]提供了在IPv6网络中的IP层配置IPSec端到端安全通信的一种方法, 有效的解决IPsec[2]配置过程复杂、使用困难的问题。该方案的设计思想为移动IPv6网络的安全通信问题提供了新的参考。但是如果将该方案直接运用在移动IPv6网络中, 还有很多问题需要解决。
在原方案的基本设计思想上, 本文用IKE移动性支持协议[3] (MobileIKE, MOBIKE) 替代了原方案中的IKE[4]协议, 解决了地址改变引起原有SA不能被索引的问题。同时提出构造动态分布式管理节点的方法对节点进行认证和状态管理, 缩短了“在线成员发现”过程, 为安全组在移动IPv6网络环境下的扩展提供了一个比较合理的解决方案。最后对该方案进行了仿真分析。
1基于亲密伙伴的安全信道配置方案
该方案的目的是在一组相互信任的终端计算机之间, 建立端到端的安全通信信道。这些通信终端隶属于同一个关系密切的团体 (如同一个部门团队或一个办公室的工作小组) , 称为“亲密伙伴” (closedmembers) , 他们构成了一个安全组。亲密伙伴之间享有相同的IPSec/IKE安全策略和配置参数, 如安全协议 (AH[5]或ESP[6]) 、安全认证方式、安全加密算法等等。网络拓扑如图1所示。
安全组的创建由一个节点发起申请, 经证书认证服务器验证之后, 返回给申请节点包含节点自身公钥的数字证书及安全组ID, 申请节点成为安全组中的第一个成员。其他的节点加入安全组也要经过认证服务器的认证。通过认证的节点, 服务器返回一份申请节点自身的数字证书、安全组ID以及安全组成员列表。节点之间通过“在线成员发现”过程确认在线的成员, 形成在线成员列表, 初步交换IPSec/IKE策略。之后, 节点间通过交换IPSec策略构建IPSec安全信道。一旦节点加入安全组, 就不再和认证服务器联系, 仅和在线的成员进行通信。
在线成员列表形成后, 在线成员之间周期性的发送存在通告信息, 维护在线组员列表, 协商更新IPSec/IKE策略。组内的某个成员离开组时, 向其它在线成员发出一条离线通告信息。其他成员删除本机中保存的离线成员的IPSec/IKE策略。如果各个组员在一定时间内始终没收到某个成员的存在通告, 则默认其离线。
2 安全信道配置方案的移动扩展分析
基于亲密伙伴的安全信道配置方案最大的特点就是成员之间可以随时、方便、安全的从其它成员那里获取IPSec/IKE策略, 实现端到端的安全通信信道的协商配置。方案本身是针对固定IPv6网络设计的, 节点在通信过程中保持着一个不变的Ipv6地址。
实际上, 移动IPv6通信正面临着更为严峻的安全威胁, 如何提高移动IPv6的安全性成为研究的热点[7]。如果将该方案在移动IPv6领域中推广, 在很大程度上可以缓解安全问题。但要在移动IPv6网络中运用该方案, 还有一些问题需要解决。最大的问题就是节点移动后引起的地址改变问题。
原方案中使用IPSec来保护通信安全。安全关联 (SA) 是构成IPSec的基础, 是两个通信实体经过协商建立起来的一种协定, 主要商定用来保护数据安全的IPSec协议 (AH或ESP) 、模式、算法及密钥、生存期等参数。SA由安全参数索引 (SPI) 、目的IP地址和传输安全协议 (ESP或AH) 标志符构成的一个三元组唯一标识。SA通过IKE协议建立和维护。由于SA需要通过IP地址索引, IP地址的改变将会引起新的SA的协商。在移动网络中, 节点的移动会引起IP地址的改变, 而传统密钥管理IKE协议产生的SA不能被改变后的新地址索引到。IKE协议的改进版本IKEv2[8]规定必须协商新的SA。但是, 重新协商SA, 不仅浪费了宝贵的计算资源, 还增加了移动切换的延时, 明显降低了业务服务质量, 使移动安全和移动效率两者不可兼得。
接下来, 考虑身份认证和状态管理问题。原方案中的身份认证是由一个证书服务器来负责的。证书服务器承担分发和管理组成员证书, 不参与IPSec/IKE策略的协商以及安全组成员状态的管理。组成员之间的状态管理通过状态消息公告来实现。在线/离线成员发布存在消息公告/离线消息公告, 告知其他节点自身的在线情况, 各个节点根据状态消息公告更新本地在线成员状态列表。
由于只有一个认证服务器, 这样会造成相对远离认证服务器的成员认证延时过长, 不利于该成员快速建立安全信道通信。而且, 一旦认证服务器失效或被攻破, 整个安全通信组的认证系统必然瘫痪, 这显然成了网络的隐患。
另一方面, 各个节点在本地维护一份在线成员列表, 与在线的成员进行IPSec/IKE策略的协商。而节点从认证服务器获取到的却是安全组成员列表。由于节点加入安全组之后就不再和认证服务器联系, 服务器无法得知组员加入组后的在线、离线情况, 安全组成员列表不是实时的, 之前加入组的成员可能在某一时刻已经离线。后加入组的节点从认证服务器获取到的组成员列表到本地在线成员列表的更新, 需要与其他节点的 “在线成员发现”过程以及存在通告消息公告来实现。这样, 不仅给节点之间迅速建立IPSec安全信道带来了较大的时延, 也必然造成网络中带宽被大量的状态消息公告所占用, 减小了带宽的利用率。
3 基于安全信道配置方案的移动解决
3.1 对节点移动后存在问题的解决
节点移动后IP地址会发生改变。传统IKE协议产生的SA不能被改变后的新地址索引到, IKE协议的改进版本IKEv2[8]规定协商新的SA虽然解决了原有问题, 但是SA的协商过程复杂耗时, 不仅浪费了宝贵的计算资源, 还增加了移动切换的延时, 明显降低了业务服务质量。用IKEv2替代IKE并不是一个很好的解决办法。
Eronen P提出的IKE移动性支持协议MOBIKE是针对IKEv2在移动性支持方面的简单扩展。它支持用户移动时与通信端保持IPSec安全参数而无需重新协商一个新的SA, 只需对原有的SA进行修改即可。当用户移动到外地网络或切换到另一网络时, 移动用户主动发起一个地址更新报文。对端通信节点接收到这个地址更新报文后立即更新与SA关联的Ip地址。更新后的Ip地址仍可以检索到原有的SA, 而无需协商一个新的SA的所有参数。
综上分析, 用MOBIKE替代原有安全方案中的IKE协议, 不仅可以解决原有方案中节点Ip地址改变后SA无法索引的问题, 同时还减少了网络开销, 降低了移动切换延时。
3.2 对节点身份认证和状态管理方法的改进
针对唯一的认证服务器成为网络认证服务的瓶颈以及网络中存在着组成员列表与在线成员列表不一致的问题, 本文提出了一种分布式认证和状态管理的思想, 用多个管理节点来代替原方案中的认证服务器。每个管理节点负责自己管理域内的新加入组的节点的认证, 同时维护一份改进的安全组成员列表。节点获取到该列表后, 可以从列表中了解到组成员的在线情况, 避免了原方案中节点从组成员列表到在线成员列表的更新, 减少了成员节点建立安全信道的等待延时, 提高了网络带宽的利用率。图2是选举出了3个管理节点时的物理拓扑图。
3.2.1 管理节点的选举
管理节点的作用是替代原有的认证服务器, 对节点进行认证、负责证书的分发, 同时还要维护一张包含着组成员状态的组成员列表。因此, 管理节点应该有着较高的可信赖程度及稳定性。
初始管理节点人为选出。考虑到节点的移动性, 我们用网络内驻留时间最大的标准作为能否担任管理节点的判断。
规定每个节点都维护一份记录文件, 记录该节点在过去的网络中的驻留时间及相关数据。根据记录的历史驻留时间数据, 每个节点可以预测出自己在下一时刻的驻留时间[9]。本文在预测驻留时间计算上采用文献[10]提出的计算方法。具体计算公式如下:
其中, 目前所在网络的预测驻留时间为T
Tacc为移动节点最近经过的n个网络内的驻留时间总和。
每个节点将自己的预测驻留时间计算出之后, 通过状态消息传递给初始管理节点。初始管理节点根据驻留时间最大的标准判断自己是否继续担任管理节点。
最大驻留时间也是选举备份管理节点的标准。当管理节点离线时, 备份管理节点成为管理节点。
3.2.2 身份认证和状态管理机制
节点向距离自己最近的管理节点发出加入安全组的申请。管理节点对该节点身份验证, 通过验证则向该节点返回一个安全证书, 包含自己的数字签名、安全组ID和安全组成员列表。节点根据安全组成员列表中的信息与其他成员节点通信, 协商建立IPSec安全信道。
节点加入安全组后, 定期向自己的管理节点发出存在状态消息通告自己的存在, 并将自己的预测驻留时间一并上报给管理节点。管理节点由此获得自己管理域内各节点的驻留时间情况, 并根据下级节点的存在状态消息实时的更新维护安全组成员列表, 对离线的成员做出标记。另一方面, 管理节点之间也通过状态消息公告向其他管理节点通告自己的存在, 交换安全组成员列表。通过管理节点之间的相互通告, 所有的管理节点都获得了一份记录着全网离线成员的安全组成员列表。当有新的安全组成员列表形成时, 管理节点就会向自己的下级节点发布新的安全组成员列表。这样保证了节点获得的组成员列表的实时性, 减少了“在线成员发现”过程的耗时, 可以更快速的交换IPSEc/IKE策略。
成员节点之间的管理机制如图3所示。
另外, 根据驻留时间的大小, 管理节点在本管理域范围内选出可以代替自己的下级节点, 作为自己的备份管理节点。
3.3 新的安全配置方案
3.3.1 初始化管理
在一组亲密伙伴中, 首先随机的选出若干个在线的分散节点充当初始管理节点负责新节点的加入和认证、维护安全组成员列表、汇集下级节点的存在状态报告及预测的驻留时间。
各初始管理节点在本域内根据收集到的预测驻留时间, 判断自己是否合适作为管理节点。若存在驻留时间比自身大的节点, 则选出具有最大驻留时间的节点担任新的管理节点, 自己退位成为新管理节点的下级节点, 同时将保存在本地的证书和安全组ID等信息发送给新选举出的管理节点。
为减少网内管理节点的频繁选举或更换, 管理节点一旦被选举出来后会一直担当, 直到该节点移出该网络或是离线。
3.3.2 创建组
某个亲密伙伴希望创建安全组时, 首先向管理节点发出申请, 申请中包含自己的公钥。管理节点检验其身份。给合格的申请者发布一个含有自己数字签名的证书, 其中包含安全组ID号 (由管理节点随机随机生成的一个序列号) 以及申请者的公钥。
3.3.3 加入组
亲密伙伴要加入安全组时, 向管理节点发出加入申请, 申请中包含自己的证书。管理节点验证其身份, 给通过检验的申请者添加到安全组成员列表中, 并告知申请者安全组ID和安全组成员列表。安全组成员列表用成员的身份标示, 如用MAC地址来区分不同的组成员。
3.3.4 成员状态管理与备份管理节点的选举
节点加入安全组后, 定期向自己的管理节点发送存在状态报告。当W*T时间后 (T为定期通告间隔时间, W为等待限度参数) 没有收到节点的存在报告, 管理节点默认该节点离线, 在安全组成员列表中对其做标记, 并向其他下级节点发送一个更新的安全组成员列表。
每个节点只向自己的管理节点发送状态消息报告。管理节点之间定期的交换自己管理域内的安全组成员列表, 形成一个关于全网的安全组成员列表。全网安全组成员列表一旦形成, 管理节点也会向自己的下级节点发布一个全网安全组成员列表, 以便节点实时了解到全网的安全组成员情况。
节点向管理节点发布状态消息的同时, 将自己的预测驻留时间通告给管理节点。各管理节点根据自己域内节点的预测时间, 选举出具有最大驻留时间的节点作为备份管理节点。
3.3.5 在线成员发现与策略的获取
原方案的“在线成员发现”过程主要是为了发现在线的安全组成员, 生成在线成员列表, 初步交换IPSEC/IKE策略。新方案中, 由于增加了管理节点对组成员节点的状态管理功能, 管理节点保存的安全组成员列表是实时的, 包含了成员的在线情况。因此新方案中的在线成员发现的目的主要是和其他成员协商安全策略SA。这个过程用IKE移动性支持协议MOBIKE来协商。图4显示了两个成员节点之间获取IPSec策略的过程。
节点A首先向安全组成员B发出建立安全的申请, 申请中包含自己的IP地址, 组ID和数字签名。由于经过了管理节点的安全认证, 节点B回应A的请求并告知自己的组ID和数字签名。A检验B的组ID与数字签名是否可信。通过验证后, 通信双方做好协商IPSec策略的初步准备。节点A再次向B发出一个含有自己的IPSec策略版本号的策略获取请求, 请求得到B的安全策略。B返回给A一个关于自己的策略版本号及具体策略文件的回应。策略版本号越高, 表明策略越新。节点A在其中选择具有最高策略版本号的配置策略做为与B通信时安全策略, 据此建立IPSec安全信道。
3.3.6 节点移动后的策略协商
节点间端到端安全信道建立后, 节点的移动使IP地址发生改变, SA也会需要做相应的改变。由于使用了MOBIKE来协商SA, 无需重新协商一个新的SA, 只需通信对端对原有的SA进行修改即可。
当节点移动到外地网络 (IP地址发生改变) 时, 移动节点主动发起一个地址更新报文给通信对端节点。对端接收到这个地址更新报文后, 立即更新与原SA关联的IP地址。这样, 更新后的IP地址仍可以检索到原有的SA, 避免了重新协商一个新的SA的过程。
4 分析与仿真
4.1 管理节点与状态消息数量关系分析
设m个亲密伙伴节点动态的分布在n个网络内, 每个网络设置一个管理节点。在某一时刻, 每个移动网络内有mi (i=1, 2, 3, …, n) 个节点。假设节点不离线。
设每隔时间T节点向管理节点发送状态消息通告, 管理节点之间安全组成员列表的交换时间也设为T。设T为单位时间。
原方案中的节点采用相互通告模式确定在线成员, 则单位时间网络内的状态消息数量为:m (m-1) 。
新方案的分布式管理节点的管理模式单位时间内n个网络内共发生的状态消息数量为
设m=15, 单位时间内网络可能的状态消息数如图5所示。
曲线C代表原方案的网络中产生的状态消息数。n代表亲密伙伴所分布的网络数, 我们分别讨论了n=1, n=6, n=10三种情况下的状态消息数。
从图中可见n取值越小, 网络内状态消息报文数越小。如果所有的节点都集中在一个网内, 网络内的状态消息量最少。节点的分布越分散, 网络内的状态消息报文数越多。当所有的节点都分布到不同的网络时, 网络的状态消息报文数量将与原方案中的状态消息报文数量相同。
4.2 节点移动性仿真
本文在移动Ipv6网络中对新方案进行了仿真验证。
在NS2.31仿真平台下, 模拟一个拥有4个AR (接入路由) 覆盖的移动IPv6网络。每个AR的覆盖区域为50 m×50 m, 网络内有15个安全通信组成员。
设初始管理节点为4。各个节点在初始网络的预测驻留时间值均设为120 s。在成员节点间分发一个大小为3 M的数据文件来模拟安全策略的分发过程。
具体过程分为:成员节点静止状态下的分发和随机移动状态下的分发。经过50次实验取节点之间建立通信的平均值作为最终的统计数据, 结果如图6。
从图6中看到, 移动状态与静止状态相比, 安全策略的实施存在着较大的时间差。节点移动后, 安全策略的实现要晚于静止状态。其中的延时主要是在线成员列表的更新延时, 以及节点移动后地址的改变触发移动节点发送一个地址更新报文给通信对端节点由此引发的SA更新延时。
5 总结
本方案用IKE移动性支持协议MOBIKE替代原方案中的IKE协议协商SA, 解决了原方案不能应用于移动环境的问题。同时提出了一种分布式认证管理的思想, 减少了网络中的状态消息报文数, 缩短了原方案“在线成员发现”过程, 使节点之间可以更快速的建立安全信道, 提高了安全性。
由仿真可见, 新方案基本实现了亲密伙伴安全通信方案在移动IPv6网络中的扩展运用。
参考文献
[1]Kent S, Atkinson R.Security architecture for the internet protocol (IPsec) .RFC2401.November1998
[2]Hei Y, Yamazaki Y.Aproposal of configuring IPv6end-to-end secure channels for closed members.In:Proceedings of SAINT2005Work-shops, Jan, 2005
[3]Eronen P.RFC4555:KEv2Mobilty and Multihoming Protocol (MO-BIKE) , June2006
[4]Harkins D, Carrel D.RFC2409:the internet key exchange (IKE) , November1998
[5]Kent S, Atkinson R.RFC2402:IP Authentication Header (AH) , No-vember1998.
[6]Kent S, Atkinson R P.RFC2406:Encapsulating Security Payload (ESP) , November1998
[7]Hagen S.IPv6精髓.北京:清华大学出版社, 北京.2004
[8]Kaufman C.RFC4306:The Internet Key Exchange (IKEv2) , De-cember2005
[9]孙为, 刘小甜.一种基于双层管理机制的MIPv6安全通信方案.计算机工程与应用, 2008; (06) :150—153
安全扩展 篇9
关键词:访问控制,基于角色的访问控制,SAML,XACML
0 引言
当越来越多的系统通过Web服务、门户和集成化应用程序彼此链接后, 用户可以通过统一的入口, 访问不同平台、不同机构的服务。这样, 一个统一的认证系统成为必需。统一管理用户身份及口令, 不但可以简化用户操作, 方便管理, 更有利于Web信息集成的发展。
认证服务器将用户的信息统一管理, 并与各Web应用达成约定, Web应用信任认证服务器的判断结果, 不再对认证服务器认证过的用户认证, 直接为他提供服务。访问控制规定了主体对客体访问的限制, 并在身份识别的基础上, 对资源访问的请求加以控制。
访问控制可以基于一定的访问控制模型和访问控制语言实现。访问控制模型规定了网络中各安全控制模块的组织形式, 访问控制语言则对在各个模块间传递的认证、授权信息进行标准化描述。本文首先对控制模型和控制策略语言进行分析, 最后提出一个扩展的基于角色的访问控制模型。
1 技术介绍
1.1 RBAC基于角色的访问控制系统
访问控制模型有很多种, 大致可分为三类:自主访问控制、强制访问控制和基于角色的访问控制三种。自主访问控制基于用户, 拥有资源的用户可以随时授予、收回资源的访问权, 灵活性高, 但安全性差;强制访问控制以主体的安全等级和客体敏感度为判断依据, 因此比自主访问控制安全性有了提高, 但灵活性差;基于角色的访问控制将用户、角色、权限分层控制, 为用户赋予角色, 角色拥有权限。用户、角色、权限间可以是多对多的关系。角色管理系统相比前两个模型, 更适合分级管理, 具有良好的灵活性, 更适合大规模实现, 因此, 现在的RBAC模型已经被大多数访问控制系统所采用。图1表示了基于角色的访问控制的基本控制思想。
1.2 SAML和XACML介绍
SAML (安全声明标记语言) 是一种基于OASIS标准的可扩展XML框架, 用于交换身份验证和授权信息, 它可以绑定在SOAP协议 (web服务通讯协议) 中。SAML并不是一种身份认证模式, 它是一种基于XML的描述语言, 目的是允许不同安全系统产生的信息进行交换, 提供进行验证和授权断言以及传递断言的机制。而XACML则提供了定义进行必要的授权决策所需规则的语言。它们都由OASIS制定, 并且基于XML, 可以同时被机器和人读懂。
典型的访问控制和授权场景包括三个主要实体:主体、资源和动作以及它们的属性, 主体请求得到对资源执行动作的权限。在SAML的定义中提供了PEP和PDP两个功能模块。XACML从被OASIS组织制定以来, 已经被广泛的应用, PEP、P D P和策略是X A C M L的重要组件, 可见SAML和X A C M L在访问实体的定义上有相互重叠的部分, 为它们的结合使用提供了前提。OASIS制定了一个基于RBAC的XACML模型, 如图2所示。
整个模型基于RBAC基本思想, 包括认证和授权两部分。认证模块独立于各应用服务, 统一对用户进行身份认证, 授权模块分散存在各应用服务器中。认证模块完成用户到角色的分配, 授权模块完成角色到权限的分配。
在访问请求到达策略执行点PEP后, PEP将请求转交给上下文处理器, 上下文处理器收到请求后, 创建一个XACML请求并发送到策略决策点PDP, PDP根据请求中携带的用户角色信息, 评估请求并返回一个响应。
PDP评估请求的过程中, 要用到相关策略和规则做出决策, PDP中并没有策略。为了获得策略, PDP要用到策略访问点PAP, PAP负责编写策略和策略集供PDP使用。PDP也可以调用策略信息点PIP服务检索与主体、资源或者环境有关的属性值。
在这个模型中, 用户/角色信息由认证服务器统一管理, 各Web应用中只保存角色和权限的对应信息, 用户-角色, 角色-权限的分配都是事先制定存放在特定的数据表/库中。而在实际Web环境下, 由认证服务器统一分配/管理用户的角色信息很难满足准确性和灵活性的要求, 认证服务器管理员不一定清楚用户在各个应用系统中的角色也不能对用户角色做出准确的分配。而且, 当Web应用的管理者希望添加一个新的角色或对角色做出修改时, 认证服务器和Web应用数据库的同步更新就成了问题。这为访问控制的动态应用带来很多的不便。经过研究, 我们对基于RBAC的XACML访问控制模型进行了扩展, 以达到更好的适应动态网络的要求。
2 系统设计模型
2.1 系统结构
图3给出了整个访问控制系统的网络结构, 本访问控制系统由两部分组成:认证模块、授权模块。认证部分和授权部分间的消息传递, 如, 认证请求、属性声明、授权声明等以SAML格式传递, 授权部分采用扩展了的XACML访问控制模型。
在扩展的XACML访问控制模型中, 我们将用户的角色信息管理权限分配到各Web应用, 身份认证服务器仅管理用户在整个系统中的身份注册信息, 这就是本系统的基本思想。图4展示了整个系统的各个模块组织结构和数据流。
2.2 认证流程
当用户要访问Web应用时, 首先登录或被重定向到身份认证服务器。用户向认证服务器提交身份信息 (用户名/密码形式) , 认证服务器做出身份判断, 如果用户通过验证, 返回用户一个SAML身份认证声明, 表明用户通过验证, 并同时在URL中插入一个叫做Artifact的固定长度的信息一起返回给用户。Artifact仅仅是一段信息, 它与用户的属性声明对应, 属性声明被保存在认证服务器中。
用户访问应用时, 将Artifact提交给Web应用, Web应用根据这个Artifact向认证服务器请求与这个Artifact对应的属性声明。认证服务器将查找到的属性声明返回给Web应用, 这个属性声明中包含着用户的全局ID、用户组等属性。Web应用收到这个声明后, 并不直接将这个用户属性值直接交给PDP, 而是先将它交给策略信息收集点PIP, 策略信息收集点再将信息分别将请求交给角色确认权威、上下文确认权威、动作确认权威, 对请求信息中的主体、环境和动作信息进行确认。确认就是将请求中与主体动作相关的实际值与预先定义的列表中的值进行比较, 转换为列表中存储的抽象概念。经过了这步处理的请求和主体信息一起返回到PIP, PIP将包含有具体和抽象信息的请求发给PDP。PDP做出最后的授权决策, 并返回给PEP, PEP决定是否给用户提供服务。
2.3 访问控制权威机构
可以看到, 在策略信息点下面, 我们在添加“角色确认权威”的同时, 还添加了“上下文确认权威”、“动作确认权威”两个权威机构。箭头表示了请求不是先被送到PDP, 而是先被送到以上提到的三个权威机构。角色确认权威完成用户到角色的转换, 上下文确认权威将收集和主体、环境有关的信息, 如, 主体的历史信息、系统空间、时间等。用户请求的动作也是可以被归类, 所以动作确认权威就是将用户的具体动作映射到定义的抽象概念中。可以把这些抽象的概念统称为属性, 各个权威机构中分别保存了实体到抽象属性的映射清单。
结合了三个属性的请求信息, 和主体的属性值一起返回到PDP策略决策点, PDP根据PAP提供的规则做出授权决策。在三个权威机构中存放着相应的确认策略。如果需要, 管理员可以很方便的修改、添加的转换策略语句。例如, 管理员要临时创建一个用户角色, 或者修改一个用户角色, 他只要在修改角色确认权威中的策略就可以。这点可以很好的弥补原始模型中不能适应动态网络环境的缺点。
3 总结
在这个模型中, 我们对XACML模型进行了扩展, 将角色的分配分散到Web应用中完成, 并引入了上下文概念。该模型提出了在授权模块进行用户/角色转换, 并同时增加了上下文和动作的权威机构, 能过更灵活的创建和修改用户-角色, 角色-权限等转化策略, 更适应动态、分布的网络环境。
参考文献
[1]Sandhu R, Coyne E, Feinstein H, et al.Role-based access control mode[J].IEEE Computer.1996.
[2]SAML2.0profile of XACML v2.0Standard.OASIS.Februry.2005.
[3]XACML v3.0administrative policy.Work draft10.OASIS.December2005.
[4]Sandhu R, Coyne EJ, Feinstein HL, Youman CE.Role-Based ac-cess control models.IEEE Computer.1996.
安全扩展 篇10
关键词:Acegi安全框架,认证,授权,动态权限管理
0 引言
随着电子商务、网上银行等Web应用的发展,系统访问安全控制越来越被人们所重视,系统的安全性正成为除业务功能外的另一个重要的系统需求之一[1]。Acegi安全系统是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context、拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。
1 Acegi安全框架
1.1 Acegi体系结构介绍
Acegi通过两个组件对象完成系统安全问题的处理,它们是认证管理器(AuthenticationManager)和访问控制管理器(AccessDecisionManager)。
AuthenticationManager就像一个安检入口,对用户身份进行核查,用户必须提供身份认证的凭证(一般是用户名和密码)。在进行身份认证时,AuthenticationManager将身份认证的工作委托给多个AuthenticationProvider,因为不同的用户信息安全系统(如RDBMS、CAS、LDAP服务器)有不同的认证提供者,所以在验证过程中可以选一个或者多个(通常一个即可),然后由AuthenticationProvider执行诸如用户信息查询、用户身份判断和用户授权信息获取等工作。如果可以识别用户身份则认证通过,AuthenticationManager将用户授权信息存储在SecurityContext中[2]。
AccessDecisionManager在用户通过了身份认证,当试图访问系统受限的资源时就粉墨登场了。它采用民主决策机制判断用户是否有权限访问目标资源,它包含了多个AccessDecisionVoter,在访问决策时每个AccessDecisionVoter拥有投票权,访问控制管理器统计投票结果,按某种决策方式根据投票结果决定是否向用户开放受限的资源。
1.2 Acegi认证
Acegi支持的认证策略是由过滤器驱动的,以基于HTTP表单(FORM)认证为例,Acegi提供了AuthenticationProcessingFilter过滤器来对所有URL请求进行拦截处理,从HttpServletRequest请求中抽取出用户名、密码等用户凭证信息[3]。
那它究竟如何对用户信息进行合法性认证呢?其实此过滤器只负责获取需要认证的用户信息并根据结果完成转向,真正的用户认证工作交由后台的AuthenticationManager完成。
下面我们揭开认证管理器的庐山真面目,它的定义如下:
可以看出该接口只包含一个authenticate方法,该方法需要一个Authentication对象作为参数,此参数是Acegi认证过程中一个非常重要的对象,它表示用户认证请求,在AuthenticationManager未处理Authentication对象以前,它仅仅表示认证请求而已,通常它存储在SecurityContext对象中。Authentication接口定义如下:
AuthenticationManager的实现类ProviderManager将用户认证的工作委托给AuthenticationProvider,认证管理器通过providers属性配置了多个认证提供者(如图一所示),AuthenticationProvider的实现具体完成从不同用户信息安全系统(如RDBMS,LDAP,JASS)中搜索用户,查看密码是否匹配的操作。
如DaoAuthenticationProvider从数据库中获取用户信息进行认证,它首先从SecurityContextHolder的Authentication中得到待认证的用户名,并根据该用户名获取保存在数据库中代表真正系统用户的UserDetails对象,紧接着比较Authentication和UserDetails的匹配关系。如果匹配则认证成功,并将UserDetails的权限信息复制到Authentication中,如果不匹配则认证失败,抛出AuthenticationException异常。
Acegi认证时序图如图二所示:
URL资源授权时序图如图三所示。FilterSecurityInterceptor过滤器用来拦截已认证用户请求的URL资源是否允许能被该用户访问,它引入了AuthenticationManager和AccessDecisionManager,并协调它们的工作,以确保URL的安全性得到满足。
AccessDecisionManager是Aeegi的一个接口,在授权过程中起到了关键作用,该接口的主要方法如下:
AffirmativeBased类是对AccessDecisionManager接口的一个实现,它采用了只需有一个投票赞成即可通过的投票策略,通过调用AccessDecisionVoter来实现具体的投票过程。
AccessDecisionVoter接口负责具体的投票过程。RoleVoter是对该接口的一个实现,通过它的一个属性rolePrefix可以设置有效角色的前缀,如设置角色前缀为ROLE_,那么只有前缀为ROLE_角色才是系统的有效角色[4]。
RoleVoter会对以ROLE_开始的任何ConfigAttribute进行表决。如果一个GrantedAuthority返回的字符串表示精确的与一个或者多个以ROLE_开头configAttributes,则它将被授权允许,否则则弃权。AccessDecisionManager然后根据“投票”评估决定用户是否有权访问该资源[8]。
2 Acegi在Web系统中的应用
2.1 构建数据模型
将用户权限信息存储在数据库中,用t_user、t_role和t_user_role三张表来存储用户信息、权限信息以及用户和权限关联信息。
用户信息表t_user(id,username,password,disable,email,phone,…)
权限信息表t_role(id,name,description)
用户权限表t_user_role(user_id,role_id)
2.2 搭建Acegi运行环境
(1)下载相应的jar包,本应用使用spring2.5相关jar和Acegi 2.0相关jar包。与1.x版本相比,2.0提供命名空间来进行配置[7],使得配置量大大减少,同时对2.0的jar包进行了修改。
(2)修改web.xml配置文件,增加Acegi安全控制过滤链。
springSecurityFilterChain这个名称是由命名空间默认创建的用于处理Web安全的一个内部的bean的id,所以Spring配置文件中,不应该再使用这个id作为其它的bean。
(3)在配置文件applicationContext-acegi-security.xml中配置过滤链。
使用Acegi2后,过滤链的配置使用
上述的配置中已经加入了httpSessionContextIntegrationFilter,authenticationProcessing Filter和ex-ceptionTranslationFilter,FilterSecurityInterceptor.
http://www.springframework.org/schema/security/spring-security-2.0.4.xsd文档。
(1)
(2)
(3)login-page表示用户登录时显示自定义的登录页,authentication-failure-url表示登录失败时将跳转的页面,default-target-url表示登录成功后跳转的的页面;
(4)对其它没有指定的URL,将会默认使用系统内置的过滤器链进行权限认证。所以,并不需要在http/intercept-url中额外定义一个类似/**的匹配规则。
(4)创建登录页login.jsp
参数说明:自定义form时,要把form的action设置为/j_spring_security_check,j_username,输入登录名的参数名称,j_password输入密码的参数名称。
这些参数名称都采用了Spring Acegi中默认的配置值,如果有特殊需要还可以通过配置文件进行修改。
(5)配置认证管理器和基于DAO认证的提供者(基于数据库存储用户信息认证)
3 URL资源动态权限管理的不足与扩展
3.1 URL资源动态权限管理的不足
查看上面应用步骤(3)中的配置信息,发现它将URL资源访问权限死写在配置文件中,可是既然角色是用户自己添加的,又如何能写在这里呢?这种操作在实际项目中是不能容许的,它存在着局限性,不利于权限的动态管理。
3.2 URL资源动态权限管理的扩展
为了能在实际项目中充分发挥Acegi安全框架的作用,其关键是能灵活地配置,包括对URL资源、业务类方法和领域对象权限的配置。下面提供一种基于数据库的策略来解决这个问题。
(1)建立新的数据模型[6]
在上面应用第(2)步的模型上添加用于保存需要保护的资源的t_res表,关系模型如图四所示。
(2)从数据库装载URL资源授权信息的运行机理
通过对Acegi的类结构(如图五)的分析,发现FilterSecurityInterceptor对Web资源的授权过程是在它的父类AbstractSecurityInterceptor中的beforeInvocation方法中执行的。该方法首先去调用子类提供的obtainObjectDefinitionSource方法,以获得目标资源的授权需求,在Web层中被组装为DefaultFilterInvocationDefinitionSource对象,而这个组装是由其内部的propertyEditor来完成。所以,为了能够通过数据库维护Web资源授权信息,我们必须提供自身的FilterInvocationDefinitionSource子类。
(3)实现基于RDBMS的FilterInvocationDefinitionSource
查看API,DefaultFilterInvocationDefinitionSource是唯一被实现的子类,并且提供了入参构造,它的构造函数的签名如下:
publicDefaultFilterInvocationDefinitionSource(UrlMatcher urlMatcher,LinkedHashMap requestMap);
参数urlMatcher表示构造的样式(ANT或者正则),参数LinkedHashMap表示权限的信息。我们可以通过从数据库读取资源的信息并封装为LinkedHashMap对象,从而达到了扩展的目的。那么如何构造这两个构造参数呢?
为了从数据库中动态获取资源的信息,可以创建一个接口IResource及它的实现类,实现类完成从数据中得到资源的信息,在应用中结合Hibernate使用将资源信息封装成Map对象。
获取资源的方法签名如下,Map中Key和Value分别为资源URL名和访问该资源的角色。
public Map
这里重点介绍DefaultFilterInvocationDefinitionSource入参的构造。
(1)LinkedHashMap参数的构造。
(2)UrlMatche参数的构造
构造出DefaultFilterInvocationDefinitionSource对象后,对于扩展就变得非常简单了,这里不在列出。在本应用中扩展后的类为:
(4)修改配置文件
利用custom-filter标签,将filterSecurityInterceptor放在框架原来的FILTER_SECURITY_INTERCEPTOR过滤器之前,这样新的过滤器会先于原来的过滤器执行。因为它的功能与老过滤器完全一样,所以这就等于把原来的过滤器替换掉了。
4 结束语
本文分析了Spring Acegi对资源进行认证和授权的一般过程,详细分析了如何通过扩展使得应用程序在运行期能够动态改变权限分配,弥补了资源和权限必须通过配置文件配置的缺陷,大大增强了程序的灵活性。
参考文献
[1]陈雄华.精通Spring2.X企业应用开发详解[M].北京:电子工业出版社,2007.
[2](美)Craig Walls Ryan BreidenBach.李磊,程立,周悦虹译.Spring in Action中文版[M].北京:人民邮电出版社,2007.
[3]罗时飞.敏捷Acegi、CASE构建安全的JAVA系统[M].北京:电子工业出版社,2007.
[4]Ben Alex Acegi Security Reference Documenta-tion[EB]http://www.acegisecurity.org/guide/spring-security.pdf
[5]Spring Security安全权限管理手册[EB]http://www.family168.com/oa/springsecurity/html/
[6]范玉涛,苏桂平,王永涛等.Spring Acegi的安全应用与扩展[J].计算机应用与软件,2008,25(12).
[7]孙鑫.XML、XML Schema、XSLT2.0和Xquery开发详解[M].北京:电子工业出版社,2009.
扩展无线覆盖 篇11
WDS的意义
对于普通用户来说,WDS是一种简单、高效扩展无线覆盖范围的方法(如图1)。实现的方法也很简单,只需另外购置一台无线路由器,在现时无线路由器价格非常便宜的情况下,使用WDS的成本并不高,并且由于WDS通过路由器间MAC地址通信,安全性也得到保证。
轻松实现WDS桥接
WDS需要两个无线路由器都支持WDS功能,下面以NetGear WGR614(已刷DD-WRT固件)和华硕RT-N13U路由器为例来组建。由于WGR614已经设置PPPOE上网,因此其它设置不用改动,只需要在无线选项中选择WDS选项,然后填入华硕RT-N13U路由器的MAC地址,并且将MAC地址前的disable设置为LAN即可(如图2)。
华硕RT-N13U路由器的设置方法和DD-WRT类似,将RT-N13U的IP地址设置为和WGR614同一网段的其它地址,例如192.168.1.2,并且关闭DHCP(如图3)。接下来在RT-N13U的无线设置中选择Bridge,然后将AP模式设置为WDS Only,信道和WGR614设置为相同(最好手动设置,以确保有相同的信道),最后添加WGR614的MAC地址,保存设置即可(如图4)。
设置WDS最重要的就是保证两个路由器的加密方式一致、密钥一致,以确保WDS无线网络的正确连接。至于两个路由器的SSID,可以相同,也可以设置为不相同。
实现无线自动漫游
如果将两个无线路由器的SSID设置成相同,那么无线设备可以根据信号强度来自动选择连接哪个路由器,从而实现无线设备在整个无线网络中的自动漫游。如果设置为不相同,则需要手动选择无线设备连接的无线路由器。
WDS的设置技巧
对于两台品牌不同的路由器,最好在组建WDS之前,选择不加密的模式,以保证不会因为加密方式不兼容导致WDS不能联通。在WDS连接成功后,再根据需要选择加密模式和设置密钥。在网络加密方式上,推荐使用WEP加密,这样主路由器在断电或者重启之后,在信道相同、加密类型和密钥相同的情况下,副路由器会自动连接,而选择WPA模式加密,则副路由器必须手动连接。
WDS的另类应用
安全扩展 篇12
安全关键系统是指系统的失效可能导致人员死伤、环境损害或者巨大经济损失的系统[1]。航空、铁路和汽车等领域的安全关键系统一般需要经过严格的安全评估过程。其中一种常用评估方法就是安全认证, 一般通过发证机构或者监管机构完成。安全认证的目的就是提供系统将会在存在已知危害的情况下安全工作的正式保证。安全认证可以和产品评估、流程评估或者人员评估具有关联。对于软件密集型安全关键系统, 产品认证和流程认证属于最具挑战的认证。
进行系统安全评估和保证, 需要树立对于系统在工作环境下安全工作的充足信心。树立充分信心, 往往通过满足可以缓解系统在生命周期中可能导致的潜在安全风险的安全目标实现。确定安全目标, 往往基于一套行业认可的准则实现, 现有的准则一般都是标准。安全标准的例子包括针对一类可编程电子系统的IEC 61508[2]、航空领域的DO 178C[3]、铁路领域的CENELEC标准 (例如[4]) 和汽车领域的ISO 26262[5]。
证明系统符合安全标准, 需要收集可以表明系统满足安全标准的有关安全准则的证据[6]。尽管安全标准规定证明标准符合性的流程, 但是完成证明标准符合性的流程对于系统供应商而言是个非常具有挑战的任务, 因为规定安全标准的文件篇幅过于冗长, 文字存在不同解读。总体而言, 可以将证据定义为“现有的表明观点或者主张正确或者有效的事实或者信息体系”[7]。但是, 对于现实的大型系统, 很少可以主张证据可以明确证明安全主张的正确性或者有效性, 一般仅仅可以主张证据是否足以树立对于安全主张的 (充分) 信心。因此, 将安全认证的证据定义为“促进树立对于系统安全工作的信心、表明满足一个或者更多安全标准的要求的信息或者痕迹”。安全证据其中一些通用例子包括测试结果、系统规范和人员能力。
缺乏对于标准的唯一解读, 可以导致对于证据要求的误解。缺乏对于系统评估的证据要求的清楚理解, 可以导致两个主要问题[8]:第一, 系统开发阶段供应商可能未能记录此后认证机构需要的关键细节, 事后构建缺失的证据既费钱, 又费力;第二, 无法事先知道认证机构将会收到证据的内容, 可能影响认证活动的计划和组织。基于前述内容, 如果并未和供应商协商并且商定证据要求, 认证机构可能感觉树立对于认证系统的足够信心尤其困难[9]。
除了理解、准确定义证据要求, 还需注意安排证据结构以及评估证据是否充分的方式。如果未能恰当安排证据的结构, 由于证据数量巨大、结构复杂, 可能影响安全论据的清楚性。此外, 需要可以确定证据的确定性和可信性。尽管安全标准规定证明标准合规性需要充分证据, 但是为了具有概括性, 往往有意避免明确说明“充分”在特定情况下的意义。
本文的主要目的就是概括在学术文献中有关安全证据的现有知识, 主要关注以下三个方面:构成证据的信息;安排证据的结构;进行证据的评估。此后使用“证据提供”作为上述三个方面的统称。同时分析安全证据提供的挑战和要求, 并且进行应用领域分析[9], 从而为了上述目的识别不同应用领域的共性。
上述目的通过进行系统性文献综述 (SLR) 实现, 系统性文献综述是指审查特定领域的文献、记录当前知识的状态的过程, 这个过程有案可查、可以重复[10]。系统性文献综述相比专项调查的主要优势在于, 提高覆盖有关文献的置信度, 从而最大限度降低主观性和偏差性。
本文的系统性文献综述利用从4 873份出版物中选择的218份经过同行审查的出版物, 选择过程包括多个阶段。上述系统性文献综述其中一个主要特点就是, 并未局限在特定领域或者安全标准上。采用广泛的检索范围, 有助于深入理解研究现状。此外, 有助于理解不同应用领域在看待、组织、评估证据的方法上的共性, 从而有助于完善尚未执行严格的认证要求的领域, 例如汽车领域。
本文对于属于安全标准符合性证据的各种信息和痕迹进行分类, 建立分层的分类体系。上述分类体系包括49个基本的证据类型, 在笔者已知的对于安全证据的分类体系中, 上述分类系统是迄今为止最为全面的分类体系。上述分类体系有助于理解并且更进一步阐述特定标准、特定系统的证据要求。
上述系统性文献综述的其他成果包括调查组织以及评估证据的方法、概述挑战和要求以及为了识别共性进行领域分析, 将会促进提供对于这个领域的详细描述, 以及定义未来的安全认证研究计划。值得注意的是, 本文表明, 调查的绝大多数方法尚未在现实场景中进行确认, 因此几乎无法提供有关实用性的信息。因此, 笔者对于未来的安全认证研究提出的一个建议就是, 更加关注实证视角、更加着眼行业需求。
上述系统性文献综述属于安全关键系统演进认证开放平台 (OPENCOSS) 项目[11]的组成部分, OPENCOSS项目是指欧洲有关铁路、航空和汽车领域的安全认证的大型研究项目。本文属于基于此前一篇会议论文[12]的扩展论文。相比会议论文, 本文扩展的主要内容包括: (1) 增加新的数据来源, 谷歌学术搜索 (Google Scholar) , 从而增加原始研究数量; (2) 大幅扩展有关研究方法和研究结果的描述; (3) 进行领域分析 (如上所述) 。
论文其他部分的安排如下所述:第1部分讨论有关研究工作;第2部分描述采用的研究方法;第3部分介绍系统性文献综述的研究结果。
1 有关研究工作
笔者认为, 此前讨论在特定情况下的证据的理念、组织以及评估证据的方法的论文并非有关研究工作, 而是本文的系统性文献综述利用的原始研究。因此, 本节的讨论更加关注将本文和对于安全证据的更加通用的分类体系、现有的有关系统性文献综述相对比。
此前一些研究工作, 例如通过关注IEC 61508等安全标准的方法, 讨论安全证据的分类体系的问题。还有一些研究工作, 例如[13], 讨论组织安全案例证据的方法。安全案例是指提供表明系统在特定工作环境下, 在特定应用中可以安全工作的令人信服、全面、有效案例的结构化论点[14]。在安全案例中往往既包括论点, 又包括可以支持论点的证据。此后, 目标管理组织 (OMG) 提出“结构化保证案例的元模型 (SACM) ”倡议, SACM倡议的目的就是, 确定安全保证证据和论点的理念和有关概念的标准[15]。上述研究工作有助于当前的系统性文献综述, 但是不是过于具体 (仅仅涉及一个标准或者应用领域) , 就是未能全面、充分、详细分析可能的证据类型以及证据组织和评估方法。
在现有文献中, 一些系统性文献综述的部分研究范围和本文重叠, 重叠的研究范围包括测试[16]、需求规范[17]和可靠性[18]。但是现有的系统性文献综述并未具体讨论安全证据的主题。此前一些研究工作为了识别不同应用领域的安全标准的异同, 试图比较不同应用领域的安全标准。但是上述比较的研究范围有限, 不像本文那样基于系统性文献综述。
简而言之, 迄今为止几乎没有通过全面综合、概括安全证据的研究现状进行的有关研究工作。因此, 并不存在分析以及介绍安全证据的统一框架。由于得出上述发现, 笔者认为需要采用系统性文献综述, 获得有关规定、组织以及评估安全证据的方法。
2 研究方法
系统性文献综述是指识别、评价、解读现有的有关特定研究问题或者主题领域的研究的方法[10]。促进进行系统性文献综述的各项研究称为原始研究。系统性文献综述属于二次研究。
系统性文献综述具有三重目的[10]: (1) 通过严谨、系统的研究方法, 提供对于研究主题的公平评价; (2) 促进识别当前的研究的各个空白, 从而建议未来的改进方法; (3) 概述并且提供新的研究活动的背景信息。
2011年10月开始进行本文介绍的系统性文献研究的设计。经过进行多次完善和改进之后, 2012年1月开始进行出版物检索。
以下各节介绍上述系统性文献综述的研究问题、数据来源、研究策略、出版物选择以及质量准则。
2.1 研究问题
笔者提出以下研究问题 (RQ) :
RQ1.构成安全标准合规性证据的信息都有哪些?
上述问题的目的就是, 识别系统认证阶段属于安全证据或者用于提供安全证据的各种信息, 包括痕迹、工具成果和技巧。获得的研究结果用于建立证据分类体系。
RQ2.用于组织表明对于安全标准的标准合规性的证据的技巧都有哪些?
上述问题的目的就是, 确定为了采用恰当方式证明安全标准符合性组织、提供系统生命周期各个阶段收集的证据可以采用的方法。
RQ3.用于评估证据充足性的技巧都有哪些?
上述问题的目的就是, 确定对于收集的证据进行证据充分性评估、以及建立对于收集的证据满足特定标准的安全要求, 从而建立对于系统的整体安全性的信心可以采用的方法。
RQ4.有关安全证据的研究关注的挑战和需求都有哪些?
上述问题的目的就是, 识别在现有文献中有关安全认证的证据提供的各种挑战。获得的研究结果将会有助于识别新兴的趋势, 并且提供在现有文献中讨论的问题的概述。
RQ5.不同应用领域有关RQ1至RQ4的共性都有哪些?
上述问题的目的就是, 通过进行领域分析识别不同应用领域存在的有关安全证据提供的共性。上述研究问题, 和参与用于多个应用领域的部件的跨领域认证的人员, 或者参与将此前用于其他领域的产品使用在当前研究的领域的可行性分析的人员尤其相关。
2.2 来源选择
为了查找有关上述综合性文献综述的研究范围的出版物, 笔者进行两种类型的检索。
第一种检索就是在以下出版商数据库中进行的自动检索:ACM检索 (portal.acm.org) 、IEEE检索 (ieeexplore.ieee.org) 、Springer检索 (springerlink.com) 、Elsevier检索 (sciencedirect.com) 和Wiley检索 (onlinelibrary.wiley.com) 。此外, 笔者采用谷歌学术检索 (scholar.google.com) 。
第二种检索就是对于以下研讨会、会议和期刊进行手动检索:澳大利亚安全关键系统和软件研讨会、高保证系统工程 (HASE) 研讨会、工程技术学会 (IET) 系统安全会议、有关利用形式方法、验证和确认的应用的国际研讨会 (ISoLA) 、软件可靠性工程国际研讨会 (ISSRE) 、计算机安全性、可靠性和安防性国际会议 (SAFECOMP) 、安全关键系统研讨会、可靠性工程和系统安全期刊、IEEE可靠性学报和IEEE软件工程学报。上述数据来源就是, 试验性自动检索阶段笔者多次发现有关上述系统性文献综述的出版物的会议、研讨会和期刊。有关进行手动检索考虑的数据来源的决定, 是在基于试验性自动检索阶段, 在精心设计检索策略过程中、在最终确定检索字串前, 笔者的集体发现。笔者并未考虑进行手动检索的会议的卫星研讨会。
此外, 在出版物选择过程中采用专家知识。本文包括笔者自己知晓或者由于同事告知而知晓, 但是未能通过自动检索和手动检索识别的出版物。上述出版物主要就是进行自动检索的时候已经中选但是出版商尚未出版的研究。无论笔者自己知晓, 还是由于同事告知知晓的出版物, 只要是通过采用专家知识选择的出版物, 都适用和进行自动检索和手动检索选择相同的标准。
2.3 检索字串
笔者通过规定研究现象的主要术语, 确定检索字串。为了完善检索字串采用的关键词, 通过不断摸索进行一系列的试验性检索。然后删除在自动检索过程中并未发现额外的论文的术语。多次重复上述过程之后, 确定以下检索字串。上述检索字串, 包括以下三个联合使用的组成部分, 用于对于出版物进行关键词、题目、摘要和全文检索:
1) 第I部分:“关键软件”, 或者“关键系统”, 或者“关键设备”, 或者“关键应用”, 或者“嵌入系统”, 或者“嵌入软件”。
2) 第II部分:“安全认证”, 或者“安全评价”, 或者“安全保证”, 或者“安全评估”, 或者“安全鉴定”, 或者“安全分析”, 或者“安全标准”, 或者“安全要求”。
3) 第III部分:“证据”, 或者“安全案例”, 或者“安全论点”, 或者“保证案例”, 或者“可信任性案例”。
上述检索字串的第一部分包括有关安全关键系统的关键词。第二部分涉及安全认证。在此, 不仅仅考虑“安全认证”, 还考虑几个额外的关键词。上述额外的关键词包括有时和“认证”相互替换的术语 (例如“安全评价”) 、和“认证”采用相同的根本原则的活动 (例如“鉴定”) , 以及作为认证的主要前提条件的元素 (“安全标准”和“安全要求”) 。上述检索字串的第三部分涉及安全证据。在此, 还需考虑一个重要情况, 就是安全案例和论点, 在这个情况下, 出现安全证据的时候往往不必提到“证据”这个术语。因此, 根据试验性检索的发现, 笔者考虑一个事实, 就是许多论文将范围更为广泛的“保证案例”和“可信任性案例”两个概念作为安全案例的近义词使用, 尽管上述范围更为广泛的概念不仅仅参照安全性准则, 还参照其他的可信任性准则, 包括安防性和可靠性准则。
2.4 原始研究的选择策略和中选准则
笔者规定选择原始研究过程的中选和落选准则。基本的中选准则的目的就是, 识别并且选择有关安全关键计算机系统的安全评估或者认证、讨论表明对于安全标准的标准符合性的安全证据的经过同行审查的研究。笔者检索、采用提供属于安全认证的证据的信息、痕迹、工具成果或者技巧的英文出版物。进行手动检索的时候, 笔者仅仅考虑自动检索并未识别的研究。对于期刊, 笔者仅仅考虑从1990年开始到进行自动检索和手动检索的日期 (2012年1月) 结束的各卷期刊。1990年是采用自动检索以及对于会议和研讨会采用手动检索发现的时间最为久远的论文的出版年份。
此外, 笔者采用以下落选标准, 排除满足以下任何一个准则的出版物: (1) “灰色文献”, 例如技术报告、工作论文、项目可交付物和博士论文; (2) 图书、教辅材料或者广告出版物; (3) 讨论通用安全分析技巧 (例如故障树分析 (FTA) ) , 但是并未讨论安全认证的证据提供的出版物; (4) 有关安全关键非计算机系统的论文; (5) 无法获得正文的出版物。
原始研究的选择过程包括两个主要过程。在第一个过程中, 包括除了Google Scholar以外的所有数据来源 (数据来源参见2.2) , 详见[12]。在第二个过程中, 考虑Google Scholar和采用专家知识识别的额外的论文。
第一个过程包括四个阶段。上述四个阶段参见表1 (在表1中被表示为P1、P2、P3和P4) 。在第一阶段中, 在电子数据库中使用上述检索字串, 提取出来2 200个结果。在第二阶段中, 第一作者阅读提取出来的出版物的摘要, 从而确定对于系统性文献综述的研究范围的相关性。这个阶段基本的中选准则就是, 摘要是否提到用于评估或者认证的安全证据信息, 或者包括“证据”或者规定证据的某种方式 (安全案例、保证案例或者可信任性案例, 或者安全论点) 。在第二阶段中, 第一作者对于选择的会议和期刊进行手动检索。手动检索和自动检索的中选准则相同。首先从通过自动检索获得的2 200项研究中, 选择出来151份出版物。然后通过手动检索, 选择出额外的65项研究。这样, 在下个阶段中, 共有216项研究需要审查。
在第三阶段中, 深入审查上述研究。各个作者进行分工, 其中第一作者负责审查绝大多数的研究。其他作者给予帮助、提供指导。最初, 笔者并未在其中56项研究中发现证据信息, 排除上述65项研究。
在第四阶段中, 第二作者进行两次可靠性检查。第一次, 通过阅读摘要, 随机检查第一阶段提取出来的大约10%的研究。第二次, 检查第三阶段排除的所有56项研究。在这个阶段中, 笔者认为重复的论文是指拥有至少一个共同作者、对于研究问题提供等价答案的论文 (例如基于此前论文的扩展的论文) 。在所有情况下, 为了获得最多的信息选择扩展的论文和最新版本的论文, 再次讨论并且审查此前排除、但是此后认为可能有关的论文。通过上述讨论, 增加8项研究, 并且从上述8项研究中提取出来有关数据, 详见表1。此外, 排除4项属于重复的论文的研究。在这个阶段中, 通过采用专家知识, 增加7项研究。上述7项研究都是笔者认为在上述系统性文献综述的研究范围内, 但是并未通过此前的任何自动检索或者手动检索提取出来的文献。这样, 在这个阶段中, 共有171项原始研究通过审查。
为了最大限度提高上述系统性文献综述的可靠性, 完成第一个出版物选择过程、从在第一个过程中识别的出版物中提取出来有关数据之后, 笔者进行第二个出版物选择过程。在第二个过程中, 采用Google Scholar作为自动检索的数据来源。上述第二个过程属于确认性措施, 可以提高对于通过第一个过程 (在第二个阶段前) 获得的发现的概括性的信心。具体而言, 通过第二个阶段确认通过第一个阶段获得的主要观察具有稳定性, 换句话说, 上述观察并不因为新的发现而丧失有效性。
第二个出版物选择过程包括四个阶段。上述四个阶段详见表2 (在表2中被表示为S1、S2、S3和S4) 。在第一个阶段中, 使用上述检索字串, 获得5 430项研究。由于增加Google Scholar作为数据来源的目的就是更进一步缓解未能检索出来有关出版物和信息的风险, 笔者仅仅检查一半略多的研究 (2 763项研究) 。在第二个阶段中, 排除来自此前检查的出版商网站的出版物, 以及满足落选准则的出版物 (灰色文献、技术报告等) 。这样, 共有97项研究中选。在第三个阶段中, 第二作者阅读摘要之后, 选择49项研究。上述49项研究在第一个出版物选择过程中并未识别出来, 但是属于经过同行审查, 并且出现在大学、机构、研究会、小型出版商的网页上的出版物。在第四个阶段中, 第一作者对于上述49项研究进行全文审查, 选择其中39项研究作为原始研究。此外, 在第二个出版物选择过程中, 通过采用专家知识, 增加7份论文。
这样, 完成上述两个出版物选择过程之后, 共有218项 (171项加47项) 研究通过审查, 可以用于上述系统性文献综述。
2.5 数据提取和质量准则
笔者设计一个用于收集回答上述研究问题的信息的数据提取模版 (电子表格) 。除了从每项原始研究中提取参考文献信息 (题目、作者、年份和出版商信息) 以外, 提取有关评估或者认证系统的应用领域的信息、用于表明标准合规性的基本安全标准的信息、用于提供证据的信息、痕迹、工具、技巧的信息、有关证据组织技巧的信息、对于收集的证据的信心的评估技巧的信息、有关证据提供的需求和挑战、有关从所有原始研究中提取出来的数据的所有信息。
此外, 为了进行出版物质量评估, 笔者更进一步提取数据。为此, 笔者定义三个尺度:
1) 证据抽象水平:证据抽象水平基于特定研究提供的证据的具体性确定。证据抽象水平可以衡量通过分析原始研究识别证据的质量。证据抽象水平从最为抽象的等级到最为具体的等级依次包括:通用层面、领域层面、安全标准层面、一类系统层面、一个系统层面。基于证据分类使用的证据类型, 具有非通用层面的证据抽象水平的证据示例包括领域层面 (例如核能领域) 的危害规范、安全标准层面 (例如DO 178B) 的源代码、一类系统层面 (例如商业通用系统) 的系统历史服务数据规范和一个系统层面 (例如起搏器软件) 的模型检验结果。“通用层面”的证据抽象水平是指, 在原始研究中提到但是并未在特定应用领域、标准、一类系统或者一个系统的研究范围内出现的证据。一般而言, 笔者认为抽象水平较低的证据比较有用, 也就是说, 比较具体的证据比较有用, 因为上述原始研究更有可能包括一些实际的建议。
2) 确认方法:确认方法基于特定原始研究的确认方法确定。研究类型包括:案例研究 (项目执行期间通过作者以外的专业人员进行确认) 、实地研究 (通过真实项目的数据确认, 但是不在项目执行期间进行确认) 、行为研究 (真实项目实施期间通过作者本人进行确认) 、调查 (基于专业人员的观点和视角进行确认) 、其他研究。需要注意, “确认”是指广义的确认。具体而言, “确认”并不一定是指在受控环境 (例如受控试验的环境) 下进行的确认。笔者的确并未发现任何表明采用受控试验的原始研究。尽管如此, 笔者认为经过确认的研究工作收集的信息更能反映实践情况, 因此更加有用。
3) 工具支持:工具支持有助于用于认证或者安全保证的证据提供 (证据收集、组织和评估) 。笔者认为, 工具支持的可获得性属于基础技巧的重要成熟度因素, 以及基础技巧产业应用的必要步骤。
3 研究结果
本节介绍上述系统性文献综述的研究结果, 通过从22年出版的218项研究中提取出来的数据逐一回答上述研究问题。针对上述原始研究提到的应用领域和安全标准, 笔者总共识别出来8个应用领域、16个安全标准。
图1表明: (1) 从1990年到2011年出版的原始研究数量; (2) 有关每个应用领域的论文数量; (3) 有关现有文献提到的每个安全标准的论文数量。图1 (a) 并不存在2012年出版的出版物, 因为2012年就是检索年份, 仅仅可以显示部分月份的出版物数量。在上述原始研究中识别出来的8个应用领域如下所述: (1) 航天领域 (讨论大气层和外层空间飞行器的内部系统) ; (2) 航空领域 (讨论对流层飞行器系统) ; (3) 汽车领域 (讨论公路机动车辆的内部系统) ; (4) 航海和 (近海) 能源领域 (讨论船舶和近海钻井平台的内部系统、用于石油、天然气和近海自然资源开采的系统) ; (5) 医学领域 (讨论医药和医疗领域的系统) ; (6) 核能领域 (讨论核电站和控制器的内部系统) ; (7) 铁路领域 (讨论轨道交通系统) ; (8) 机器人领域 (讨论机器人的设计、制造、工作和应用) 。
需要注意在图1中并未包括提到一个以上应用领域或者一个以上安全标准的原始研究。尽管上述研究提到的部分应用领域或者安全标准在上述系统性文献综述的研究范围内, 但是笔者无法最终确定有关信息 (证据信息、技巧和工具) 对应的应用领域或者安全标准。
1) RQ1.构成对于安全标准的标准合规性证据的信息都有哪些?
笔者基于在原始研究中发现的各种证据示例、痕迹、工具和技巧, 建立有关数据类型的分类体系。分类体系可以提供基于直觉, 但是内容全面的介绍并且概括有关证据信息要求的部分研究成果的方法, 尤其是考虑到在原始研究中识别的信息数量巨大。此外, 分类体系可以作为有效的采用更加有序的方法介绍研究成果的方法。上述分类体系的当前结构最终确定之前, 曾经进行多次迭代。系统安全和认证专家曾经对于提取出来的证据类型进行审查, 并且提供反馈。
上述分类体系包括49个基本的证据类型。上述分类体系的每个叶节点, 在至少2项原始研究中提到。此外, 提供词汇表, 作为上述分类体系的补充。上述词汇表提供澄清, 确保更好认识上述分类体系和构建方法。此外, 上述词汇表提供了: (1) 每个基本的证据类型的定义; (2) 上述定义采用的 (除了安全标准以外的) 数据来源; (3) 在现有文献中识别的每个证据类型的近义词; (4) 在现有文献中属于证据的或者用于提供证据的工具、技巧、痕迹和信息。从每项原始研究中提取的数据和引用的完整列表。
表3提供有关识别出来每个证据类型的研究的数量和占总数的百分比的信息。由于不同原始研究包括的信息具有不同的证据抽象水平 (第3.5节) , 在表3中标注每个证据类型的最低证据抽象水平。
研究结果表明, 在现有文献中, 频率最高的证据类型包括:危害原因规范 (总共218份论文, 在其中111份论文中出现, 占总数的51%) 、风险分析结果 (51%) 、危害规范 (43%) 、事故规范 (34%) 、需求规范 (24%) 、危害缓解规范 (23%) 、设计规范 (20%) 。频率最低的证据类型包括:沟通计划 (1%) 、系统测试结果 (1%) 、目标代码 (1%) 、非运营性测试结果 (1%) 、项目风险管理计划 (2%) 、正常工作范围测试结果 (2%) 。只有沟通计划并未在经过确认的原始研究中提到。
图1中: (a) 每个出版年份的研究数量; (b) 有关每个应用领域的研究数量; (c) 有关每个安全标准的研究数量
2) RQ2.用于组织表明对于安全标准的标准符合性的证据的技巧都有哪些?
在选择的218项研究中, 笔者从其中117项研究中识别出来安全证据组织技巧。笔者将上述技巧划分成三个大类。有关每个大类的百分比是指一个大类的论文占105份有关论文的百分比。其中一些研究提到一项以上技巧。
(1) 论证导致的证据结构 (92%) 。论证是指介绍系统被认为是具有可以接受的安全性的原因的方法。论证结构导致出现特定的证据结构, 因为论点需要得到直接证明论点的证据的支持。论证导致的证据结构可以通过图表的形式, 或者文字的形式表现。在通过图表的形式表现的小类中, 笔者识别出来以下技巧。
(1) GSN:GSN可以用于明确记录论点的组成元素和结构以及论点和证据的关系。在GSN中, 将论点的主张记录为目标, 将证据记录在解决方案中; (2) CAE:CAE促进类似GSN的三层方法。在CAE中, 包括在论点中提出的顶层主张、用于支持上述主张的论点的描述、用于支持上述主张或者论点的证据的介绍; (3) BBN:BBN导致在有方向性的非循环性图表中的证据结构, 上述图表表明组成元素的有条件性依赖关系; (4) KAOS:KAOS是指可以用于安全案例规范的目标建模语言:KAOS通过与或操作, 采用类似论证的方法分解顶层目标, 直到可以提供实现目标的证据; (5) SSG:SSG是指将安全规范表现为节点、将证据和相互关系表示为边缘的线性图表。
对于采用文字的形式表现的小类, 笔者选择通过结构化方法采用文字的形式提供论点和支持论点的证据的研究。在采用文字的形式表现的小类中, 笔者识别出来以下技巧。
(1) 信任案例:信任案例导致包括安全主张、论断、将上述安全主张和论证表现为假设的证据、进行文件引用的结构化文本格式; (2) 结构化HTM:结构化HTML使用HT-ML标签表明作为安全证据的各种痕迹的联系, 并且安排上述安全证据的结构; (3) 结构化文本:结构化文本提出几个可能的方法, 包括结构化散文 (结构化散文通过要求明确标注论点的关键部分, 将特定结构使用在正常散文中) ;论点概述 (论点概述通过概述的格式, 采用缩进、编号和不同的字体安排论点和证据的结构) ;数学证据 (数学证据采用在数学中使用的几何证据结构 (条件、陈述、原因1) ) ;LISP方式 (LISP方式采用LISP编程语言的句法结构, 对于证据和论点使用简称和括号) 。
(2) 基于模型的证据规范 (5%) :对于上述大类, 笔者采用模型对于影响安全证据结构的技巧进行分类。在上述原始研究中, 笔者识别出来以下方法: (1) 针对特定领域的UML元模型和特别针对DO 178B和IEC 61508等标准制定的UML概要文件; (2) 数据建模:数据建模采用实体—关系图表, 安排大型安全案例的数据内容 (包括证据方面数据内容) 的结构; (3) 流程模型:流程模型包括产生证据痕迹的活动或者流程, 并且采用树形结构介绍上述活动或者流程。
(3) 文本模版 (3%) :文本模版采用预先定义的文本格式, 提供预先定义的段落或者表格以及安排证据的结构的限制。笔者识别出来以下方法: (1) CENELEC模版:CEN-ELEC模版在铁路领域中使用, 用于安排在质量管理报告和安全管理报告等一系列报告中的证据的结构; (2) ACRu DA模版:ACRu DA模版用于按照预先定义的安全案例结构安排证据的结构; (3) 模版附件[PS19]:模版附件提供用于在不同系统开发和安全保证阶段中产生的预先定义的一系列文件的模版。并且提供有关文件编制、半形式化描述、确认和验证流程需要的方法的建议。
3) RQ3.用于评估证据充足性的技巧都有哪些?
在选择的218项研究中, 笔者从其中105项研究中识别出来证据评估技巧。将上述技巧划分为四个大类。有关每个大类的百分比是指一个大类的论文占105份有关论文的百分比。其中一些研究提到一项以上技巧。
(1) 定性评估 (68%) :对于上述大类, 笔者对于采用非数字性方法的证据评估技巧进行分类。论证属于“定性评估”项下发现的使用最为广泛的技巧。论证可以基于无限制性自然语言、 (半) 结构化自然语言或者GSN等图表形式的论证结构。图表形式的论证结构一般具有比较方便理解、审查、定位的优势。论证可以通过涉及证据的可信性等级的“定性标签”完善。笔者识别的属于上述大类的方法包括: (1) 安全证据保证等级 (SEAL) :SEAL提供涉及安全证据的置信度的四个等级, 最高的安全证据保证等级是“不容否认”, 之后就是“有信服力”和“有说服力”, 最低的安全证据保证等级是有证明力; (2) 安全保证等级 (SAL) :SAL类似SEAL, 但是讨论论点和分论点的置信度传播规则。
此外, 笔者识别出来并不基于论证的定性证据评估方法, 包括: (1) 基于活动的质量模型:基于活动的质量模型采用质量矩阵评估对于IEC 62304标准的标准合规性证据; (2) 证据—置信度转换过程:证据—置信度转换过程通过导致规定对于系统的安全性的信心的审查过程评估安全证据。
(2) 核对清单 (16%) :对于上述大类, 笔者对于采用包括审查证据的时候需要回答或者检查的一系列有引导性的问题的“待办事项清单”进行分类。举例来说, 上述问题可以是为了提高收集的证据的置信度、检查收集的证据的充分性必须满足的一系列条件。笔者在现有文献中识别出来以下种类的核对清单: (1) 设计核对清单:设计核对清单基于系统设计评估证据; (2) 基于GQM的核对清单:基于GQM的核对清单基于目标/问题/度量 (GSM) 框架[19]。基于GQM的核对清单定义评估产品和流程证据的顶层目标、为了实现上述目标需要回答的问题、提供进行分析可以依据的可测量性基准的度量标准; (3) 基于论证的核对清单:基于论证的核对清单通过将核对清单和论证相结合评估证据; (4) 基于分类体系的调查问卷:基于分类体系的调查问卷包括讨论在软件安全风险分类体系和软件安全风险评估过程中的安全属性和痕迹的305个问题[20]; (5) 其他核对清单:其他核对清单是指并不属于上述更加具体的各种核对清单的核对清单。
(3) 定量分析 (10%) :对于上述大类, 笔者对于采用定量证据评估方法的技巧进行分类。上述技巧包括: (1) BBNs:BBN在存在不确定性的情况下, 采用有条件性的可能性分布分析证据。BBNs和证据组织技巧BBN相结合使用。在有关证据评估的现有文献中, BBNs属于使用频率第一的定量技巧; (2) 程序方法:程序方法属于定量评估结构和形式论证结构的结合。程序方法基于采用用于评估安全案例的总体目标的目标模型 (KAOS) 、专家启发和可能性仿真的定量推理; (3) 证据数量方法:证据数量方法允许内部专家确定描述每个证据的相对重要性的权重系数。然后为了计算被称为是证据数量的一个数量, 选择有关确定权重的证据的求和函数, 基于证据数量选择结果 (接受或者拒绝) 。
(4) 基于逻辑的评估 (6%) :针对上述大类, 笔者为了表明、验证各项证据受到关注的属性和上述各项证据的关系, 对于采用一阶逻辑语句等逻辑公式的技巧进行分类。基于逻辑的技巧最为适合检查证据信息的结构良好性和一致性约束。例如, OCL[21]已经用于确保针对特定系统的各项证据之间存在一致的联系, 并且存在安全标准要求的各项证据。
4) RQ4.有关安全证据的研究关注的挑战和需求都有哪些?
笔者识别出来几个大类的有关提供安全证据的信息、安排安全证据的结构、进行安全证据的评估的一般挑战和需求。其中一些原始研究提到一类以上需求或者挑战。尽管对于每个大类, 并未提到对应的所有原始研究, 但是为了深入了解对于上述原始研究的分类方法, 进行举例说明。在现有文献中讨论的几个大类的挑战和需求如下所述:
(1) 对于证据内容的规定:提到频率第一的挑战 (总共218份论文, 在其中60份论文中出现) 就是, 在特定应用领域中采用系统性方法确定需要作为特定一套适用标准的标准合规性证据提供的信息的内容。例如, 哈布力 (Habli) 和凯利 (Kelly) 讨论确定基于产品的安全认证证据和基于流程的认证证据之间的正确平衡的挑战。还有贝特等人 (Bate et al.) 研究在当前安全关键系统中使用现代的超标量处理器的时候识别支持证据的挑战。笔者认为, 针对RQ1建立的证据分类体系可以有助于应对上述挑战。
(2) 安全案例的构建:提到频率第二的挑战 (在57份论文中出现) 和制定安全案例有联系, 主要包括为了采用更加准确、经济的方法证明标准合规性, 提供对于安全案例的构建、论点和证据的分解的方法指南。对于主张、论点和证据的结构良好性的要求和RQ2识别的证据组织技巧有联系。例如, 比索普等人 (Bishop et al.) 承认安全案例的结构良好性对于最大限度降低安全和商业风险的重要性。并且提出从上到下的安全案例制定方法, 为了适应安全案例的变更, 对于安全案例进行分层。还有费泽尔 (Feather) 和马克思恩 (Markosian) 讨论制定美国航空航天局的安全关键航天软件的安全案例、提供帮助类似软件系统的安全案例制定人员的指南的挑战。
(3) 证据置信度或者相关性的确定:笔者发现在31份论文中, 研究人员承认, 根据证据来源, 不同的证据可以具有不同的置信度, 或者对于满足不同的标准合规性要求具有不同的贡献度。为了确定置信度或者相关性, 可能需要对于各项证据或者对于各项证据和安全论点或者主张之间关系分配权重。例如, 布依苏等人 (Bouissou et al.) 采用BBN技巧帮助评估人员通过采用可能性分布函数, 对于提供的证据分配权重。还有柯泽妮等人 (Czerny et al.) 讨论在汽车领域中提供“转向系统”令人信服的安全证据的挑战。这是一个主要的技术挑战, 需要更高水平的分析、设计和验证。RQ3识别的证据评估技巧和上述需求有关联。
(4) 更好的开发流程的确定以及更好的流程合规性证据的提供:在选择的原始研究中, 共有30份原始研究提到为了方便采用严格的方法验证开发流程对于适用安全标准的标准合规性, 确定安全关键系统更好的开发流程的挑战。例如, 哈布力和凯利采用基于模型的方式定义, 通过自动验证对于安全标准的标准合规性, 描述生命周期过程以及可靠性保证过程的一个可扩展性元模型。在另外一项原始研究中, 霍尔 (Hall) 和拉帕诺蒂 (Rapanotti) 介绍“用于系统开发的安全保证驱动的设计”概念, 上述概念认为保证论点或者保证案例和产品本身一样重要。
(5) 安全标准的歧义:笔者发现共有25项原始研究提到标准在应用中的歧义 (或者问题) , 例如对于标准的证据要求存在不同的解读。此外, 上述原始研究提供证明对于一个标准或者一系列标准的标准合规性的指南。例如, 伊万等人 (Evans et al.) 研究英国国防标准DS 00-56的证据要求和上述证据要求的充分性, 并且将DS 00-56的证据要求和DO 178B、ARP4754、ARP4761和IEC 61508等民用标准的证据要求相比较。狄特尔 (Dittel) 和阿若思 (Aryus) 讨论确定对于ISO 26262标准的标准合规性的安全案例的时候解读、采用、识别正确的详细程度的挑战。
(6) 多个部件和子系统组成系统的认证:共有17份论文提到有关重复利用既有或者商业通用 (COTS) 软件等现有部件或者子系统组成的系统的证据构建、组织以及评估的挑战。例如, 范 (Fan) 和凯利 (Kelly) 提出用于证明安全关键系统使用COTS部件具有合理性的一个基于合同的方法。上述基于合同的方法按照基于COTS部件获得的保证要求, 评价针对具体应用的安全要求。埃斯波西托等人 (Esposito et al.) 提出用于鉴定、选择COTS部件的另外一个系统性方法, 上述系统性方法基于可以指导并且评价COTS部件的选择的定制质量模型。
(7) 提供论证的需求:共有9份论文讨论通过论证表明收集的证据支持安全主张的方法并且证明上述方法的合理性的重要性。例如, 林凌 (Linling) 和凯利 (Kelly) 研究飞行器认证领域提供清楚、正当的论点以及基于论证的保证的潜在问题的需求。克莱格 (Clegg) 讨论可以将故障和失效引入到FPGA的方法、可以采用的可能的缓解技巧和采用论点表明FGPA满足安全要求的方法的需求。
(8) 新型技术的标准合规性的证明:共有7份论文提到有关采用安全关键领域的新型技术的系统的认证证据的证据提供方面的挑战。例如, 丹尼尔 (Daniel) 和马里奥 (Mario) 讨论普适计算等新兴的计算趋势为了对于环境和用户需求的动态变化做出恰当反映需要具有适应性的方法。并且提供用于评价可适应性系统的安全性的有条件安全证书的细节。还有拉什比 (Rushby) 讨论可适应性系统在运行时期内修改以及集成各个功能的方法, 并且提出采用运行时期验证的一个框架, 从而可以在运行时期内进行部分认证。
(9) 首次认证或者“经过使用验证”系统的重新认证:总共7份论文强调对于此前并未进行认证的系统进行认证, 或者对于此前采用但是现在无法采用“经过使用验证”原则 (例如, 由于加强监管, 或者上次按照“经过使用验证”原则进行验证之后, 出现系统演进) 的系统进行重新认证的挑战。在此, “经过使用验证”是指基于此前的系统工作情况, 存在系统满足安全标准有关安全要求的令人信服的证据。例如, 卡梅隆等人 (Cameron et al.) 提供通过证明对于无人飞行器系统 (UAS) 有关“经过使用验证”试航性规定的标准合规性, 对于无人飞行器进行认证的方法。在另外一项原始研究中, 米查姆等人 (Meacham et al.) 讨论为了对于既有系统进行重新认证, 原有安全关键系统采用传统软件安全标准的问题。并且提出包括修改前的软件和修改后的软件之间关系的模型, 以及提供有关对于经过修改的既有软件进行适航性认证的方法的指南。
摘要:航空、铁路和汽车等领域的关键系统往往需要经过正式的安全认证过程。正式的安全认证过程的目的就是确保上述关键系统将会安全工作, 对于用户、公众或者环境并不产生任何不当风险。对于安全性的保证一般通过对于安全标准的标准符合性实现。证明对于安全标准的标准符合性包括提供表明符合安全标准的安全准则的证据。为了应对大型关键系统的结构复杂性和由此产生的证明标准符合性需要证据信息的数量巨大性, 安全人员需要有助于将证据信息划分成各种证据类型, 以及安排证据的结构、进行证据的深入评估。本文建立对于属于安全证据的信息、痕迹进行分类的分类体系, 并且审查现有安全证据组织和评估技巧, 然后研究作为学术文献研究对象的有关挑战。此外本文分析不同应用领域的研究结果的共性, 讨论研究结果对于研究和实践的影响。