代码之家  ›  专栏  ›  技术社区  ›  Jamie Rumbelow

RESTful数据库服务器的最佳身份验证解决方案

  •  1
  • Jamie Rumbelow  · 技术社区  · 15 年前

    我正在写一个名为phoenix的RESTful数据库服务器。作为一个到整个应用程序数据的简单接口,安全性是一个非常重要的问题,我对你们中的任何人都能提出什么样的身份验证解决方案感兴趣。

    它需要:

    • 安全的 -一定很难打破。签名请求可能是一个很好的方法,但是考虑到它是休息的,没有很多参数被发送,所以我不知道什么好的唱歌会做。
    • 极小值 -我宁愿不使用四个请求来比较HMAC签名请求中的六个令牌——服务器的USP是简单的,所以来自客户机的身份验证必须很容易。
    • 可实施的 -它必须适合系统,这是一个数据库服务器。所以,例如,OAuth不会在这里工作。

    我很想听听你的建议-谢谢!

    杰米

    2 回复  |  直到 15 年前
        1
  •  1
  •   Karl Anderson    15 年前

    这里没有太多关于您的安全性或实现需求的信息。快速回答是基本的,或者通过SSL或签名请求进行摘要。有没有理由不使用这些?

    签名请求通常添加一个时间戳和/或一个nonce,因此任何请求都可以进行身份验证。有关说明和库,请参阅Amazon AWS身份验证文档。

        2
  •  0
  •   ZZ Coder    15 年前

    我有一个类似的服务器。我选择使用OAuth签名是因为它简单,

    http://oauth.net/core/1.0#signing_process

    我们不强制使用nonce,只需将时间戳限制为一个短窗口(30秒)即可阻止重播。

    OAuth库在许多平台上都可用,因此您不必编写太多代码来实现它。不知道为什么你认为OAuth不可实现。

    对于每个允许访问数据的客户机,都分配了一个客户机密钥和一个客户机密钥。所有的请求都是用消费者机密签名的,因此只有知道该机密的客户机才能访问。

    我们还考虑了其他选择。基于SSL的HTTTP基本身份验证过于昂贵。HTTP摘要身份验证太慢,因为它需要等待挑战。