【问题标题】:Use alternate authentication in twisted's Perspective Broker在 twisted 的 Perspective Broker 中使用备用身份验证
【发布时间】:2013-09-28 08:21:00
【问题描述】:

我正在将 twisted 的 Perspective Broker 用于网络应用程序。我遇到了它自动使用 MD5 质询-响应方案进行身份验证的问题。理想情况下,由于存在许多安全漏洞,我不希望将 MD5 哈希存储在服务器端。或者,scrypt、bcrypt 或 pbkdf2 提供更安全的算法。

然而,虽然这些算法在 python 中很容易获得,但我不太清楚是否可以使用 Perspective Broker 实现自定义身份验证方案。从源码来看,MD5似乎在系统中集成得非常紧密。

所以我的问题是针对更有经验的扭曲用户:有没有一种方法可以使用自定义身份验证方案而无需重写整个内容?

(另外,请纠正我,如果我对扭曲或密码学的任何假设是错误的。我对两者都很陌生。)

【问题讨论】:

    标签: python authentication hash cryptography twisted


    【解决方案1】:

    要为 Perspective Broker 实现自定义身份验证方案,您需要做的就是在根对象上实现一组方法调用,这些方法调用在完成后提供对所需应用程序级对象的访问。

    您将无法重复使用 PB 的内置 login 方法及其随附的有线协议消息,但这没关系;这就是你打算替换的东西:)。

    注意when you construct a PBServerFactory,您提供了一个根对象。如果您想调用该对象上的方法,而不是执行“标准”PB 登录并在返回的头像(即每个用户/每个连接对象)上调用方法,请在 PB 客户端工厂上使用 call getRootObject 并使用 @987654327 @结果。

    【讨论】:

    • 感谢您澄清这一点。不知何故,我有这样的印象,即值得重用所有信誉的东西,如门户、头像和领域。
    • 您仍然可以在自己的身份验证实施中重复使用门户、头像和领域;事实上,我建议你这样做。虽然它们都非常抽象(如果它们可以使用 IMAP - 他们确实可以使用 - 它们当然可以使用稍微修改的 PB)。
    • 只需将您的新根对象包裹在Portal 周围并实现一个新的ICredentials 提供程序,您就应该准备好了。
    • 嗯...我看不到新的根对象必须如何调用门户的方法。我尝试实现NewRoot.remote_login(self, user, pw) 调用Portal.login 添加回调并返回结果Deferred。但在客户端我只得到一个Unpersistable。我假设,remote_... 方法不应该返回 Deferreds,是吗?
    • 最终我最终还是没有使用 cred 系统。我的用例似乎不值得麻烦。
    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多