【问题标题】:Is the password hashing algorithm SAP uses known?SAP 使用的密码哈希算法是否已知?
【发布时间】:2014-06-16 13:53:36
【问题描述】:

使用的版本:SAP B1 9.0

背景

我们希望为外部用户提供一个简单的身份验证 Web 表单,并希望使用 SAP B1 用户管理来管理用户(当然还有密码)。

由于我们无法找到密码哈希背后的算法,我的老板还考虑使用与 SAP 用户不同的字段,例如 Mobile Device ID 并在那里存储密码。将它作为纯文本存储在那里,并且可能以各种形式被其他用户看到,但对我来说似乎是一个非常糟糕的主意,这就是我在这里寻求想法的原因。

最好有人知道散列算法,盐是否单独存储等:-)

信息

Web 应用程序可以访问存储 SAP 数据的 SQL 数据库,但不能与 SAP 进行“直接”通信。

实际问题

  • SAP 使用什么样的哈希算法
  • 或者是否有其他解决方法,如果不知道的话

【问题讨论】:

  • 我对 B1 了解不多,所以我不会添加答案,但我同意你的看法 - 以纯文本形式存储密码是一个糟糕的主意。

标签: authentication cryptography passwords sapb1


【解决方案1】:

这是一个有趣而困难的问题。

我尝试了一些方法,但没有找到可行的解决方案。 但在这里我的结果,也许它有帮助:

密码哈希似乎是带盐的 SHA1。

密码盐存储在OUSR.STData。还有一个字段OUSR.NoSTPwdNum,但我不知道它是如何一起工作的。

DIAPI-SDK-Helpfile对字段的描述如下:

  • STData:用户密码 Salt | nVarchar(40)
  • NoSTPwdNum:密码加密无盐(加密)| Int(6)

我尝试了一些方法,但都没有奏效。例如。密码前后加盐,hash密码加盐,hash/salt为大小写等等。

【讨论】:

  • +1 感谢分享!这至少是第一步...... :-)
  • 可能他们使用了额外的胡椒和多个散列轮(不仅仅是一个)。
【解决方案2】:

虽然我不知道该算法是否为公众所知,但有一种解决方法:您可以使用提供的用户名和密码并尝试使用这些凭据打开与 DI-API 的连接。通过这种方式,您可以确保 SBO 施加的所有访问限制实际上都得到遵守(如非活动用户)。

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 2011-10-10
    • 2012-07-19
    • 2020-09-16
    • 2012-05-24
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多