`

实战webservice安全策略

阅读更多
前些日子公司的应用要和合作方对接,我参与了webservice这块的工作,在访问量很小的情况下基本上完成了功能,但安全这块没有找到合适的方案,所以自己做了些旁门左道的设想,不一定合理和完善,希望能起个抛砖引玉的作用。

大家都知道,Webservice中的安全策略的实施主要从以下三个方面考虑:
1.传输时安全。通常采用SSL/HTTPS 对连接加密,而不是传输数据。
2.数据安全。通常采用数据加密(XML Encryption) 数字签名(XML-DSIG)。
3.底层架构提供的安全策略,利用应用服务安全机制。


对于传输时的安全,比较容易地加入到Webservice应用。可以利用HTTPS协议,就可以获得连接过程中的安全。

a.我们目前这个项目没有计划采用https。当然我是很希望采用这种策略,因为系统的安全性越高越好啊,但是没采用我也没办法。


传输过程中数据的保护是对于消息本身的保护。你可以使用已有的XML安全扩展标准,实现数字签名的功能,从而保证你的消息是来自特定方并没有被修改过。XML文件的加密技术从大程度上加强了Webservice的安全,它能够定制数据传输到后,能否被接受者所查看,进一步完善了传输后的安全,业界也在不断的制定Webservice的安全标准,比如SAML 和WS-Security。

a.数据的加密。目前采用了对XML文件中部分数据加密的策略。原因很简单,http上不能传明文吧,而且实现起来也不是很困难。只要客户端和服务端约定好一种加解密的算法,加上适当的密钥就可以了。当然实现过程中,如果两端的语言和平台不同,例如客户端是.net,服务端是java,.net的某些算法的具体模式需要清楚才行,否则调试起来会有些小麻烦。


b.数字签名可以确保传递的数据没有被第三方恶意修改过。数字签名这块理论上了解一点,具体的实施没有做过,听前辈高人说,可以采用伪签名机制,没有深入学习。整体上的设想是,将来用户量上来了,可以购买正式的数字签名产品,来避免数据被篡改的危险。目前针对数据可能会被篡改的危险,采用了消息摘要的策略,因为它确实具备这种能力,也因为这种策略被广为采用。

c.想到的另一种危险,恶意的重复发送问题。如果恶意用户截获了正在传输的数据,反复不断的重复发送,这种情况该如何处理。这种情况对整个系统来说,危险系数太高了,会造成数据的混乱,业务处理的错误,后果非常之严重,所以必须要预防。目前的策略是,因为数据是要保存到DB中的,正好表中的时间字段和其他的几个字段可以组成数据的唯一标识,这样就很容易的预防了这种情况的发生,呵呵,还不错。


最后一层保护就是依靠底层架构的安全,这更多的来自于操作系统和某些中间件的保护。比如在J2EE中,主持Webservice的应用服务器。目前很多的J2EE应用服务器都支持Java Authentication and Authorization Service (JAAS),是被加入到J2SE 1.4当中的。利用主持Webservice的服务器,实现一些安全机制这是很自然的做法。另一种利用底层架构的安全方法就是,做一个独立的负责安全的服务器,Webservice的使用者和创建者都需要与之取得安全信任。


对于server的安全策略,目前还没有想好怎么处理。

http://moppet.taobao.com/

分享到:
评论
11 楼 taelons 2008-08-16  
最近研究了一下ws-security,摸出些门道,其实也很easy:)

使用apache上的xml security或wss4j
apache axis上有一个example,目录名叫security,就是使用xml security,在
web services的handler中对soap进行签名/加密解密

wss4j是xml security更进一步的封装,不需要自己写handler了,wss4j提供现成的
handler,在wsdd文件中配置handler就可以了
10 楼 fanfuxin 2008-07-24  
          [i][/i][u][/u]
引用
[img][/img][url][/url]
9 楼 charles751 2008-07-11  
多谢taelons
8 楼 taelons 2008-07-11  
charles qi 写道

有时间去看看WS-Security规范

请问:taelons ,你参与过这样的实施马,能具体说说马


偶也没用过WS-Security,既然是webservices安全,最先想到的就是WS-Security,
偶们项目的webservices还没有考虑安全问题,不过将来会考虑
你上ibm 的developerworks看看,那里有很多WS-Security的文章
7 楼 charles751 2008-07-11  

有时间去看看WS-Security规范

请问:taelons ,你参与过这样的实施马,能具体说说马
6 楼 taelons 2008-07-10  
WS-Security规范
5 楼 charles751 2008-07-10  
http上跑明文?数据被篡改了怎么办,如果涉及到资金的话,岂不要出大问题?
4 楼 melin 2008-07-10  
基于加密的方式,对性能影响很大的。不如不要求非常严格。可以基于http base的方式。使用spring security。再方法层面上进行拦截认证。
3 楼 charles751 2008-07-10  
哪位有比较成熟的方案,指点下思路也行啊,谢谢
2 楼 charles751 2008-07-09  
请问啥意思?
1 楼 cyberblue 2008-07-09  
@RolesAllowed

相关推荐

    webservice cxf 开发实战

    综上所述,"WebService CXF 开发实战"涵盖了从基础概念到高级特性的全面内容,包括但不限于CXF的环境配置、服务创建、数据绑定、RESTful支持、安全性配置以及性能优化。同时,通过源码分析和工具使用,开发者可以...

    WebService视频教程大全

    7. **安全性与性能优化**:讨论WebService的安全性措施,如WS-Security,以及如何优化服务性能,如缓存策略、负载均衡等。 8. **应用实例**:通过实际业务场景,展示WebService在企业级应用中的应用,如B2B集成、跨...

    javaWebService 关于讲解java调用webservice的知识

    - 性能优化可能涉及缓存策略、消息压缩、减少网络往返次数等技术。 6. **实战应用** - Java WebService广泛应用于企业级应用集成,例如B2B交易、跨系统数据交换、移动应用与后端服务器的通信等。 通过学习这个...

    webservice视频教学

    9. 高级主题:可能涵盖WS-Security(Web服务安全)、WS-Policy(Web服务策略框架)、WS-ReliableMessaging(可靠消息传递)等,以提升服务的安全性和可靠性。 文件"WorkFlow.xls"可能包含与工作流相关的示例或案例...

    webservice-client-demo.rar

    6. **错误处理**:在与Web服务交互时,可能遇到网络错误、服务异常等情况,客户端需要有适当的错误处理机制,比如异常捕获和重试策略。 7. **测试**:为了确保Web服务客户端的正确性,通常会编写单元测试和集成测试...

    Xng Webservice操作手册

    3. **错误处理**:详细阐述可能遇到的错误情况及对应的解决策略,确保开发者在遇到问题时能及时定位并修复。 4. **最佳实践**:分享使用WebServices的最佳实践,提高开发效率和系统性能。 5. **安全机制**:讲解如何...

    webservice05讲

    6. 安全最佳实践:可能涵盖了一些安全最佳实践,如使用HTTPS以加密通信,防止中间人攻击,以及如何定期更新和审核验证和授权策略。 7. 示例和实战演练:视频可能通过具体的代码示例和步骤演示了如何实现和测试这样...

    西安野马计算机培训学校WEBSERVICE讲义

    - 安全与性能优化:涵盖Web Service的安全考虑,如WS-Security,以及性能调优策略,如缓存、负载均衡等。 - SOAP与RESTful API的比较:分析SOAP与现代API风格(如REST)的区别,帮助理解何时选择哪种服务模型更为...

    MESWebService.zip

    4. **安全性和可靠性**:在设计WebService接口时,必须确保数据传输的安全性,例如通过HTTPS进行加密,以及防止非法访问和篡改。此外,良好的错误处理和重试机制也是确保系统可靠性的关键。 5. **版本管理**:随着...

    Spring应用开发实战Web Service WS

    8. **使用WS-Security安全策略**:在Web服务中,安全性是一个重要考虑因素。WS-Security是一种安全标准,它允许在SOAP消息中加入安全性元素,例如数字签名和加密,从而保护消息在传输过程中的安全。 9. **Spring-WS...

    webService 期末大作业(大作业报告 源代码)(可以直接提交)

    Web服务(WebService)是一种基于开放标准的互联网协议,它允许不同系统之间进行数据交换和业务交互,不受操作系统、编程语言的...通过阅读源码,可以学习到Web服务的实际编码规范、异常处理和错误处理策略等实战技能。

    5天学会jaxws-webservice编程

    2. **WS-Policy**:理解如何使用策略来表达服务的要求和能力,如安全性、可靠性和性能。 3. **异步调用**:了解JAX-WS中的异步处理模型,如何处理回调和Future对象。 **第五天:实战项目** 1. **构建完整Web服务...

    AXIS2入门+进阶+webservice实例

    本资料集合包括了“AXIS2入门”、“AXIS2进阶”以及一个具体的“WebService实例”,旨在帮助初学者和有经验的开发者深入理解AXIS2及其在Web服务中的应用。 入门篇可能涵盖了以下内容: 1. **AXIS2基础概念**:介绍...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...

    基于CXF的webService本地数据交互----PC端(四)

    5. **安全性**:学习如何添加安全层,如WS-Security,以保护Web Service免受未经授权的访问。 6. **性能优化**:探讨如何优化服务性能,如缓存策略、数据压缩、连接池等。 7. **监控与日志**:了解如何配置CXF的...

    flex + asp.net web应用开发实战详解 code p3

    此外,还会介绍最佳实践,如代码优化、性能调优,以及如何将应用部署到生产环境,包括IIS配置和安全策略。 总的来说,这部分内容旨在帮助开发者充分利用Flex的图形界面优势和ASP.NET的强大功能,构建出具有高度互动...

    cxf2.7.1.jar全量包

    7. **插件架构**:CXF的插件架构允许开发者根据需求添加或扩展功能,如添加新的数据绑定机制、消息格式或者安全策略。 8. **工具集**:CXF提供了一系列工具,如WSDL到Java的代码生成器,以及用于调试和服务测试的...

    Manning EJB3 in Action

    3. **WebService支持**:EJB3还支持与WebService的集成,可以通过`@WebService`注解将EJB3组件暴露为Web服务,实现跨平台的远程调用。此外,JAX-WS(Java API for XML Web Services)为创建、部署和消费Web服务提供...

    ASP.NET深入编程技术

    - **安全性**: 深入探讨了ASP.NET应用的安全性问题,包括身份验证、授权机制、安全策略等。 - **缓冲机制**: 分析了ASP.NET中的缓存机制,包括输出缓存、数据缓存等,以及如何优化应用性能。 #### 四、XML技术及其...

Global site tag (gtag.js) - Google Analytics