我们有一个移动应用程序,通过RESTful HTTPS与我们的服务器进行通信。我们也有一个攻击者假装是我们的应用程序,同时试图与我们的web服务API通信。
我们假设我们在野外的应用程序可以进行反向工程,以获得任何API密钥、共享秘密、私钥等。
我的问题是: OAuth2能帮助验证应用程序吗?我不是在问这个人的身份。这与移动应用程序的安全性无关。我们必须假设移动应用程序可能会被破坏。
换句话说,在服务器端,如何区分来自应用程序的合法请求和冒充应用程序的攻击者?
有人建议OAuth2会有所帮助。我不认为是这样的。我不认为OAuth2与我描述的问题相关。
我看了RFC 6749隐式格兰特流。当然,它不需要客户端的秘密。但它的全部目的是登录一个地方,并在其他地方使用该授权。我们已经通过我们自己的API实现了这一点。我们不是在尝试OpenID连接之类的东西,只是保护我们的API免受攻击者的攻击。
从等式的服务器端,有人能确认OAuth2对我们没有帮助吗?或者,如果我搞错了,请解释一下!
发布于 2015-09-14 19:08:48
您是否将用户密钥和用户机密提供给应用程序?如果您这样做,那么您可以禁用访问受损的密钥和禁用访问。API密钥管理可以不使用OAuth2完成。但是使用OAuth2将允许您组合密钥管理并使用不同的身份验证提供程序。为了检测哪些密钥被破坏,您需要API分析或使用情况报告。OAuth2不附带身份验证提供程序。保护您的API不受攻击者攻击需要一种全面的方法。我建议从API密钥管理开始,然后与身份验证提供者一起查看OAuth2。
发布于 2015-09-24 14:37:55
我同意OAuth2是一个授权框架,为了完全安全,必须考虑身份验证。我建议您查看设备注册和证书钉扎,以实现移动注册的“三位一体”(用户ID、设备ID和有效证书)。您可以添加基于地理位置的基于“风险”的升级多因素身份验证(OTP,SMS),或者撤销设备证书以阻止不良行为者。
发布于 2015-09-28 18:32:23
一些额外的想法。在移动应用程序中,我认为,我们需要考虑三个身份
https://security.stackexchange.com/questions/100276
复制相似问题