我的方法在Web服务安全性中实现一次性密码是否安全

时间:2012-11-25 08:15:56

标签: web-services security

我有两个系统(A& B),我需要使用Web服务相互集成,所以我想实现以下安全机制: -

  1. 系统B将向系统A发送包含用户名和密码的请求,要求输入一次64个字符的密码。

  2. 系统A将向系统B发送包含64个字符的一次性密码。

  3. 系统B将使用64个字符的密码调用系统A Web服务。

  4. 系统A将检查64 -char密码是否有效。

  5. 系统A将响应系统B请求。

  6. 系统A将从有效密码中删除64密码(因此,如果系统B或其他系统使用先前生成的64-char密码调用系统A Web服务,则呼叫将失败)

  7. 系统A将生成一个新的64-char密码,并在需要时将其发送给系统B.

  8. 系统B使用新的64密码调用系统Web服务。

  9. 所以我的问题是这种方法是安全的,因为我将实现两个系统之间的通信在https下。 最诚挚的问候

1 个答案:

答案 0 :(得分:1)

需要考虑许多安全注意事项。让我们开始吧:

  • 这两个系统是否可公开访问?
  • 两个系统WS是否可公开访问?
  • 你想实现加密吗?在运输或访问控制?

据我所知,我认为您的系统WS不可公开访问,并且假设代理包含某种证书身份验证,只是作为额外的控制层,以及某种形式的访问控制列表来限制客户端系统的IP范围。

第二件事是您可能想要进行某种访问控制而不是加密,即用户 A 可以查看doc aa ab 并且您的系统A知道这些规则,但系统B不知道,但他保存实际数据。

分析您的协议如果系统A针对系统B进行身份验证并获得有效的OTP,则需要考虑一些事项

  • 这种otp的有效期是什么?
  • 你将如何提供公正?
  • 他们会依赖上下文吗?

所有这些都是必需的,因为你不会想要,除了avarage用户替代数据标识符和有效的OPT访问,他/她不应该这样做。安全是一个很滑的话题我会推荐安德鲁·安德森(Ross Anderson)和计算机安全公司(Computer Security)作为首发的安全工程:)。