基于J2EE的农机社会化服务系统安全问题研究
2016-09-23刘波平施炜利
刘波平, 孙 丹*, 裘 锋, 施炜利, 付 康
(1.江西省计算技术研究所,江西南昌 330003; 2.江西省软件工程技术研究中心,江西南昌 330003)
基于J2EE的农机社会化服务系统安全问题研究
刘波平1,2, 孙 丹1,2*, 裘 锋1,2, 施炜利1,2, 付 康1,2
(1.江西省计算技术研究所,江西南昌 330003; 2.江西省软件工程技术研究中心,江西南昌 330003)
研究了基于J2EE的Spring框架的MVC架构下农机社会化服务系统的实现,及在J2EE模型下,该应用系统存在的各种安全问题,如身份认证、访问控制、数据传输安全及J2EE部分组件安全问题等。针对这些安全问题,结合J2EE安全机制,提出了SSL安全代理服务器、基于EJB方法的访问控制、使用单点登录方法等相应的解决措施。
J2EE;SSL安全代理服务器;EJB方法;单点登录方法
目前农机各服务实体经营粗放,缺乏数据共享交换,造成农机作业盲目流动,出现生产效率低下、资源浪费严重等问题,急需建立一个综合信息服务系统,汇集农机管理部门、农机生产企业、农机手等农机生产、经营相关信息于一体,实现农机信息查询、购置补贴申报、在线报修、二手在线交易等各类农机社会化服务。笔者研究了基于J2EE结构框架下的农机社会化服务系统的实现,及在J2EE模型下,该应用系统存在的各种安全问题,并提出了相应的解决措施。
1 J2EE架构在农机社会化服务系统中的实现
1.1农机社会化服务系统设计与实现针对基于B/S结构的综合信息服务系统,该研究设计的农机社会化服务系统采用基于J2EE的Spring框架的MVC架构实现[1]。
MVC架构是“Model-View-Controller”的缩写,MVC由“模型-视图-控制器”3部分构成。视图(View)代表用户交互界面,对于农机社会化服务Web应用系统,这里对应的是HTML页面。模型(Model)用于业务流程的处理,模型接收视图请求的数据,并返回最终的处理结果,农机社会化服务系统采用目前最流行的EJB模型。控制(Controller)用于接收用户的请求,并将模型和视图匹配在一起,共同完成用户的请求。农机社会化服务系统采用Servlets作为控制器,用于接收用户HTTP请求, 并且负责请求的数据传送给模型,然后通过JSP脚本解析模型处理的结果,最终通过html页面展示给用户,其模式图见图 1 所示。
图1 MVC架构模式 Fig.1 MVC infrastructure Mode
1.2农机社会化服务系统的构成该系统服务器端选用Apache+Tomcat作为J2EE中间件平台,选用MySQL作为数据库服务器。客户端使用简单的常用浏览器访问即可。在多层结构的应用中,Apache+Tomcat可以提供开发和利用服务器端业务逻辑的基本框架,支持分布式编程模型,提供一定程度的透明性。以下使用相关的例子都是以Apache+Tomcat+MySQL为例来说明的,其设计结构见图2。
图2 基于J2EE的农机社会化服务系统设计结构 Fig.2 Design structure of agricultural machinery socialization service system based on J2EE
2 农机社会化服务系统中安全问题探讨
2.1系统中身份认证安全问题用户在提出访问请求时,如果该用户是非法用户而没有对其进行任何限制,对于整个应用系统的危害非常巨大,因此需要对用户身份进行验证。身份认证是一种识别用户是否具有访问特定资源的权限的身份鉴别技术[2]。该技术保障了合法用户访问和获取信息的权限,同时又阻止了非法访问者的访问请求,是应用系统安全性的关键入口。目前常见的身份认证技术主要分以下3种:基于密码的认证、基于数字证书加密认证、基于指纹特征认证[3]。
2.2系统中访问控制安全问题身份验证是系统设置的第一道安全关卡,如果用户已经通过身份验证,且是合法用户,一旦其不小心进行了其他的错误操作,导致应用系统敏感数据丢失或者受破坏,同样对应用系统危害也是巨大的[4]。因此需对合法用户进行访问控制,限制用户访问资源的最小权限。访问控制指通过一些安全策略的方式,限制用户对重要资源的访问范围,主要为了防止非法用户盗取受保护的重要数据或者防止合法用户对受保护的资源进行非授权访问[5]。
2.3系统中数据传输安全问题很多时候,Web应用系统都是基于HTTP协议进行通信的,该协议是明文传输的,数据很容易受到破坏。数据完整性指存储在数据库中的数据的精确性和可靠性,它是衡量数据质量的一种标准;数据保密性是指数据在传输过程中不泄露给非授权访问的用户、实体,或被非法利用[6]。因此,数据传输时,其保密性和完整性是整个应用系统信息传输过程中的前提和保障,必须保障数据在传输中不被监听、篡改和伪造,以保证数据的准确性。
2.4系统J2EE中JSP组件安全问题
2.4.1JSP源代码任意下载问题。JSP源代码任意下载问题主要指客户端访问JSP代码时,服务端自动将JSP源代码返回给客户端用户浏览器上。通常JSP代码只是在服务器端执行,执行后将解析的结果通过HTML代码的形式返回到用户浏览器客户端[7]。但在实际访问请求过程中,可能由于如Apache、Tomcat等服务器内部配置不当或者配置错误导致未能返回错误定制页面,会引起JSP等服务端应用程序源代码直接返回给用户浏览器,如在程序文件名后加些特殊的字符就有可能获得JSP代码[8]。例如在Tomcat3.1版本下,浏览器访问http://localhost:80/index.jsp,服务器可以正常执行,但如果访问http://localhost:80/index.JSP,则浏览器会提示是否要下载该文件,下载的文件就包含整个文件的源代码。由于JSP对大小写敏感,而Tomcat只会将小写的JSP后缀文件名当作正常的JSP文件来执行,如果换成大写的话,Tomcat未能识别正常的文件名传给JSP进行解析,导致直接将该文件当成下载的文件直接返回给用户下载,这样直接引起JSP文件源代码任意下载,导致敏感信息泄露。
2.4.2远程执行任意命令问题。如果用户请求的URL链接中含有“/servlet/”字符,则JSP解析执行功能被打开,这时只要在URL链接后面添加“../”需要访问的目标文件,则有可能访问到服务器其他目录的文件,特别是系统一些敏感文件,这就严重威胁到目标主机系统的安全。
3 农机社会化服务系统中安全问题解决方法
3.1使用单点登录方法进行身份验证用户身份鉴别是农机社会化系统中最开始的一道安全防线,当用户访问农机社会化服务系统时,首先需要登录系统验证自己的身份,然后才能进入系统进行下一步的访问和操作。在农机社会化系统中包括不同的子系统,这些应用系统都需要用户输入账号密码进行身份验证成功后才能访问。这样不仅使用户必须为每个农机社会化子系统设置登录凭证,而且增加管理员对各个系统用户信息库的库的维护[9]。不但增加了工作量,而且还存在一定的安全风险。因此,在农机社会化系统中采用单点登录方法[10]进行多个子系统的一次性身份验证。
3.2基于EJB方法的访问控制农机化社会平台采用的是基于J2EE的Web应用架构开发的,EJB是J2EE框架中的服务器端组件模型。EJB是一个被管理的组件,存在于J2EE容器中,并且为用户分配不同的角色,服务器根据用户的不同角色分配不同的访问控制资源[11]。在农机社会化平台中,我们定义了4个角色[12]:company、agriculture、database、admin。在农机社会化平台中安全角色的定义描述如下:
此角色包括允许查看农机信息,申报农业产品等农产品销售商
………
上述代码描述了农机社会化平台中定义的4种安全角色,且每一种角色都定义其可以访问bean及其方法[13]。多种方法的访问权限设定是通过method-permission元素来确定的,每个method-permission元素包括一个或多个role-name元素,以及一个或多个EJB及其对应的每种方法,只有采用正确的语法格式调用的方法才能实现访问控制策略。
3.3采用SSL安全代理方式实现加密传输在农机社会化平台的Web应用系统访问中,用户和服务器之间数据传输过程中,数据安全需得到最大的安全保护,从而实现数据保密性及完整性的安全需求。采用SSL安全代理服务器能够保证数据的安全性。
SSL安全代理服务器包括3个部分:客户端代理、服务器代理、访问控制[13]。SSL安全代理服务器是浏览器和Web服务器之间的安全管理者,促使浏览器和Web服务器之间建立安全可靠的数据传输。SSL安全代理服务器工作原理:当用户需与远程Web服务器建立连接时,首先向SSL安全代理服务器发送HTTP请求,由SSL安全代理服务器与远程Web服务器建立连接;建立连接后,浏览器与服务器之间传输的数据都是通过SSL安全代理服务器采用1 024位非对称算法RSA[14]进行高强度加密转发完成的,这样可以保证通信数据的完整性及保密性,其SSL安全代理服务器工作原理如图3所示。
图3 SSL安全代理传输过程Fig.3 The SSL secure proxy transmission process
4 结语
该研究采用J2EE体系结构对农机社会化平台进行开发,使系统能够支持分布式事务处理,且可使系统能够达到良好的可伸缩性、扩展性和重用性,是企业的首选构造平台。首先介绍了农机社会化平台的结构模型,探讨了在J2EE架构下该系统开发中存在的一系列安全问题,如身份认证、访问控制、数据传输安全、J2EE组件等安全问题,并针对这些问题采取了相应的措施来确保系统的安全性。
[1] 尹汉东,任邵东,周生炳.基于J2EE的Web应用的MVC架构实现[J].计算机仿真,2004,21(11):133-136.
[2] 刘如太.基于J2EE平台的益智类游戏开发中安全问题的研究[D].北京:华北电力大学,2007.
[3] 陈斌.基于J2EE平台的Web系统安全研究与实现[D].北京:北京邮电大学,2014.
[4] 张云峰.基于J2EE架构的电子政务系统的安全问题研究[D].天津:天津工业大学,2008.
[5] 梁娜.基于J2EE的Web安全技术应用研究[D].青岛:山东科技大学,2003.
[6] 裴德志.基于J2EE的Web安全研究[D].武汉:武汉理工大学,2006.
[7] 张志立,张鹏,齐德昱.基于J2EE的Web应用开发中安全问题的研究[J].武汉理工大学学报 (交通科学与工程版),2005,29(2):300-303.
[8] 洪丹丹.基于J2EE轻量级框架的安全Web架构研究与应用[D].成都:电子科技大学,2009.
[9] 刘玉,葛忠宝,赵越.基于Web方式单点登录的几种实现方式[C]//2006年电力信息化高级论坛论文集.扬州:中国电机工程学会,国电信息中心,2006.
[10] 王颖.单点登录技术在J2EE企业Web中的研究与应用[J].长春大学学报,2010,20(8):70-73.
[11] 陈景霞,李萌.基于J2EE的Web信息系统开发方法的定义[J].制造业自动化,2012,8(16):31-33.
[12] 武蕾娜,殷兆麟,张丽丽.基于AOP的EJB访问控制功能的实现[J].计算机应用与软件,2007,24(9):63-65.
[13] 曲波,吴兆芝.面向安全Web服务的SSL代理服务器的设计与实现[J].华中科技大学学报(自然科学版),2003,31(S1):114-116.
[14] 饶兴.基于SSL协议的安全代理设计[D].武汉:武汉理工大学,2011.
SecurityProblemsResearchonSocializedServiceofAgriculturalMachineryBasedonJ2EE
LIUBo-ping1,2,SUNDan1,2*,QIUFeng1,2etal(1.JiangxiInstituteofComputingTechnology,Nanchang,Jiangxi330003; 2.SoftwareEngineeringandTechnicalResearchCenterofJiangxiProvince,Nanchang,Jiangxi330003)
TherealizationofsocializedserviceofagriculturalmachineryundertheJ2EEframeworkwasresearched,aswellasthesecurityproblemsinapplicationsystemunderJ2EEmodel,includingidentityauthentication,accesscontrol,datatransmissionsecurityandJ2EEcomponentssecurity.Basedonthesesecurityproblems,thecorrespondingsolutiontotheSSLsecureproxyserverundertheEJBaccesscontrolandsinglesign-onoptionwasputforwardbycombiningwiththeJ2EEsecuremechanism.
J2EE;SSLsecureproxyserver;EJBmethod;Singlesign-onoption
国家科技支撑计划项目(2014BAD10B00,2014BAD10B05)。
刘波平(1963- ),男,江西吉安人,教授级高级工程师,博士,从事农业信息化、图像处理研究。*通讯作者,助理工程师,硕士,从事信息系统安全研究。
2016-05-31
S126
A
0517-6611(2016)22-233-03