【发布时间】:2016-07-04 12:38:38
【问题描述】:
我们使用 IBM Worklight 开发了自己的移动应用程序,该应用程序与 Maximo 交互。目前,所有用户都必须拥有一个在创建时使用默认密码设置的 Maximo 帐户。当移动用户登录到应用程序时,他们的凭据将通过 Maximo 进行验证,并酌情授予/拒绝访问权限。
我想要做的是强制用户在首次登录时(通过移动应用)更改密码,然后每隔 (x) 天更改一次。
有谁知道是否存在可以调用的现有服务/方法来执行此操作? (这将是我的首选方法)。
我知道用户密码作为加密字符串存储在数据库中,如果可以复制相同的加密方法,我可以用新的字符串覆盖现有字符串。但是,使用的加密方法是什么?它是如何实现的?
欢迎任何建议/信息。
非常感谢,克里斯。
【问题讨论】:
-
1.要求用户每 (x) 天更改一次密码是一种可怕的方法,会导致密码非常糟糕,当想出并记住密码的努力经常无效时,用户会放弃创建好的密码。 2. 不要存储加密密码,这是攻击者想要的,所以当他们获得数据库和加密密钥时,他们将拥有所有密码。相反,您需要保存已用随机盐处理并迭代长达 100 毫秒的密码。使用方法,例如 PBKDF2、bcrypt、password_hash、脚本或类似函数。
-
以下是一些最佳实践链接:请参阅 OWASP(开放式 Web 应用程序安全项目)Password Storage Cheat Sheet。请参阅 Security Stackexchange 上的 How to securely hash passwords, The Theory。
-
嗨 zaph - 感谢您的信息。我应该指出,这是一个仅供内部员工使用的企业应用程序,并且只能从私人应用程序商店获得。因此,它必须遵守公司密码策略,因此需要强制更改密码。否则,出于您上面指出的原因,我会实施其他方法。主要的加密例程(必须匹配 Maximo,除非我可以以某种方式调用 Maximo 例程?)将在服务器端实现。这使他们远离用户并在几层安全之后......
-
啊,我明白了,这个概念是攻击者永远不会想要这些信息,因为它仅限于企业。不允许攻击者访问仅限企业的数据。永远不会发生。
-
这不是我的意思。该应用程序是端到端安全的(至少尽可能安全),我们让第 3 方对所有内容进行笔测试以确保。我需要做的是强制根据公司政策更改密码(这很容易)。但是,我需要在服务器端调用 Maximo 密码加密方法,或者自己复制它(这是我目前缺少的部分)。
标签: ibm-mobilefirst maximo maximo-anywhere