龙空技术网

信息系统安全——Web Service的安全调用

山东等保测评 244

前言:

今天各位老铁们对“webservice前端调用”可能比较注意,咱们都想要了解一些“webservice前端调用”的相关内容。那么小编在网络上网罗了一些关于“webservice前端调用””的相关文章,希望小伙伴们能喜欢,你们快快来了解一下吧!

前言

信息化已经深入国家行政机关、企事业实际业务之中,下属机构通过信息系统服务接口,定期向上级单位或监管部门提供业务数据、调查数据。在实际调用过程中,比较常用的是Web Service方法来传递数据,本篇就讨论此接口的安全调用。

了解Web Service

这里涉及到软件开发的知识,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。简单的说就是在两个不同的软件项目间,搭建数据传输的方法。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。

威胁Web Service

Web Services是在开放的Internet上运行的,这种环境即使受到防火墙的保护,也依然会受到黑客、计算机病毒的攻击。而且在商业环境中,每个Web服务的状态都可能涉及经济利益和商业机密,如网络购物服务中有电子货币信息;信息查询服务中有商业机密(如价格、货物种类等)。在Web Services运行过程中,对其状态的非法读取和恶意修改都将对安全性构成严重的威胁。

众所周知,Web服务是使用XML进行数据交换的,而XML在默认情况下是明文编码的;同时,大部分Web服务使用HTTP协议作为传输协议,同样,HTTP也是使用明文方式来传输数据的。这就造成了在不加密的传输协议上传输不加密的信息,从而使信息传输的保密性受到威胁。比如,接口服务被非法调用,通过接口服务对数据进行篡改、信息系统入侵。尽管在生产环境中,大多数都建立VPN通道来承载接口调用,但依托于VPN机制进行内部攻击的情况还是无法杜绝。所以,关键应在Web Service服务端建立认证机制,从源头上解决非法调用的漏洞。

那么,从哪些方面来保障调用的安全性呢?我们来参下《网络等级保护标准2.0》,Web Service的调用,已经跨越了网络和通信安全范畴,对它安全技术的参考范畴主要集中在设备和计算安全、应用和数据安全层级上。上图中,在技术要求部分,通过身份鉴别和访问控制方面,进行对访问Web Service资源权限的控制。本篇也会通过列举身份鉴别和访问控制两个方案,来部署安全的Web Service调用。如果你对软件工程了解,更加容易理解本篇内容。

访问控制

在这里,我叫它代码安全。完全通过代码的方式来建立访问控制认证。最常用的是使用 SoapHeader(SOAP 标头)自定义访问控制,SoapHeader 多数情况下用来传递用户身份验证信息。下面,我将介绍如何编写访问控制。

首先,我们先部署一个Web Service服务,这里用到Windows IIS。

1、Web Service站点部署

>编写一个Web Service服务代码,两三年没写过代码了,好亲切啊!

>在IIS建立站点:

把先前生成的代码,复制到站点目录中。同时将身份验证改为匿名认证。

>在浏览器中打开.asmx文件,如果显示下图,Web Service部署成功

2、编写Web Service访问控制

>在Web Service项目中,建立MySoapHeader.cs类文件,用以初始化登陆信息

>在调用服务前,加入用户访问控制

上图中,只有用户名和密码都为test,才可以调用,这里也可以扩展为生物识别方法。

3、客户端调用

这里,我们分别使用正确和错误的信息

只有提供正确的登录信息才能调用相应服务。

身份鉴别

这种方案,是基于 Windows身份验证为Web services 配置传输层安全机制。当你通过 HTTP 协议去访问一个使用 Windows身份验证保护的资源时,服务器通常会在 HTTP 请求的 Response 中加入一个"401 需要身份验证"的 Header,来通知客户提供用户凭证,以使用资源。如果你正在使用 Internet Explorer 或者 Mozilla Firefox 这样的可视化浏览器来访问需要认证的资源,浏览器会弹出一个窗口,让你输入用户名和密码,如果所输入的用户名在资源使用者的验证列表,并且密码完全正确,此时,用户才可以访问受限的资源。

>认证基本流程

>Web services 客户端访问受限 Web services 服务流程

下面就介绍下如何部署基于Windows身份验证的Web Service服务。

>首先,需要在操作系统建立一个用户,用来做身份验证。本例用户名为wsuser。

>在IIS管理器中配置身份验证为Windows身份验证

>客户端编写服务认证

> 客户端调用

这里,我们使用正确window用户信息

标签: #webservice前端调用