我有一个网站,我正在为其构建一个Drupal模块,允许该Drupal站点的用户直接从Drupal站点导航到我的网站。
我打算向每个Drupal站点管理员分发秘密API密钥,他们需要在Drupal模块的副本中输入这个值。
当这个Drupal站点向它的用户显示我的模块时,单击某些链接应该将用户带到我的站点,以及我的站点可以用来验证这个导航的一组机密数据。将有一个表单呈现给用户和一个链接呈现,所以点击链接‘提交’表单通过POST和重定向用户以及。
我需要使用这个秘密的‘api-键’来生成某种有时间限制的/一次性的代码,这些代码将提供给用户的浏览器。任何复制此生成代码的智能用户都不能重用它,以便稍后进入我的站点。
(从https://stackoverflow.com/questions/5549411/generating-one-time-tokens-from-api-key搬来)
发布于 2011-04-10 08:44:07
首先,也是最重要的是,永远不要将MD5用于与安全有关的任何事情。这是一个非常坏的算法。您应该使用SHA2家族的任何东西,SHA256是一个很好的选择。实现这种身份验证的一种方法是使用HMAC,API密钥可以作为算法中的秘密密钥K。拥有秘密API密钥的服务器必须接受post并提供身份验证令牌。生成的消息必须具有ID和该POST请求的消息身份验证代码。ID可以是API用户的主密钥,身份验证代码将由使用此API的服务器生成。
在这种情况下,公钥密码学是过火的,对称密码(“加密”)根本没有帮助。
发布于 2011-04-26 14:30:20
很久以前,我为Joomla实现了一个OTP (一次密码)插件。
源代码是这里。
我计划要做的是,在有效的会话中生成OTP,在特定的时间内对某些操作进行身份验证。OTP将通过一个频带外的通道发送,例如SMS.不幸的是,该项目失败了,但我认为这个代码库可能对您有所帮助。
https://security.stackexchange.com/questions/2950
复制相似问题