代码之家  ›  专栏  ›  技术社区  ›  Eamon Nerbonne

认证服务器-什么是好方法?

  •  1
  • Eamon Nerbonne  · 技术社区  · 14 年前

    编辑

    感谢您的建议;为了澄清,我们已经使用了SSL,但这通常不会对请求方进行身份验证,只对响应方(IIRC?).我会马上研究其他想法,谢谢你的头脑风暴!

    背景

    我为之工作的组织有一组异构的服务器,它们在整个网络中提供各种服务。它们都是以自己独特的方式编写的,并且有自己的查询和修改数据的协议。不出所料,这些系统之间的通信不断增长,保持所有东西的同步和通信能力变得越来越困难。为了提高可维护性,我们希望在内部使用Web服务;这将有助于提高 一些 一种可移植的、标准化的数据交换+消息传递格式。随着通信量的增加,还需要信任其他服务器及其发送的消息。

    问题

    我们有许多服务器通过Web服务(即SOAP)提供相互关联的服务。所有HTTP流量都通过SSL。请求服务器如何确保与正确的响应服务器通信?默认情况下,ssl会对发送方的接收者进行身份验证。例如,假设网络被黑客攻击,或者有人想在未经授权的情况下更改某些信息(通过调用方法)。我们怎样才能阻止这样一个代理简单地欺骗发送者呢?

    来自不同厂商的WS-Security实现(例如.NET和Java)似乎彼此不太好,特别是当服务变得更复杂(比如事务支持之类的东西)时,不幸的是解决方案可能不是一个好的解决方案。

    我们有一个(可信的)LDAP服务器, 用户 是经过身份验证的;在这里存储服务器身份验证是很自然的——但是怎么做呢?拥有一个服务器的用户名/密码是没有意义的,因为如果你需要将它们发送到另一个服务器来验证你自己,那么这个服务器可能不是它声称的那个服务器,而且在任何情况下,如果它被黑客攻击,那么它现在可以假装是你……

    也许我们缺少一个明显的解决方案,所以我现在还不会用我们自己的想法来混水-什么会 怎么办?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Andrew McGregor    14 年前

    你需要一个pki。你可以用 stunnel ,包装服务器。然后可以使用stunnel检查证书和进行身份验证,而不必更改服务器代码。然后,当您在服务器上工作时,您可以以自己的速度移动它们SSL/TLS,甚至不必同时执行两端操作。

        2
  •  1
  •   Noon Silk    14 年前

    这里显而易见的答案是证书(某种内部的pki)。但是让他们使用您的各种语言等等可能很复杂;仅仅管理它本身可能是一个安全噩梦。

    因此,作为一种“欺骗”的方式,我想知道您是否不能让它们全部写到某种类型的集中式“同步”服务器上,然后它们都查询它。至少通过这种方式,您可以使认证过程简单得多,并且可以获得集中数据的好处。我不知道这是否与你有关,但在这种情况下,这是我首先要做的事情。

        3
  •  1
  •   Paolo    14 年前

    在Web服务级别,您有WS-Security和WS-Trust之类的东西,但从您的描述中听起来,这些东西可能是您遇到问题的地方?

    在较低的级别上,您可以通过SSL访问Web服务,并使用SSL基础结构来确保服务器是他们所说的服务器。

    因为这是内部的,所以您可以使用Tinyca等工具对自己的证书进行签名,并在每台服务器上手动安装CA根证书,而不是支付Versign/Thawte证书的费用。

        4
  •  1
  •   deamon    14 年前

    我会尝试使用TLS证书。每个平台都应该能够处理这个HTTP标准机制。