相关疑难解决方法(0)

如何保持OAuth消费者的安全,以及如何在受到损害时做出反应?

这个问题是关于尝试了解在Android等移动平台上实现oauth所涉及的安全风险.这里假设我们有一个Android应用程序,其中包含嵌入在代码中的消费者密钥/秘密.

假设一个消费者的秘密受到了损害,并且黑客已经掌握了它,这会带来什么后果?

妥协的消费者秘密假设
我正确地指出,受损的消费者秘密对用户的安全性或用户正在与之交互的OAuth启用的提供商中存储的任何数据没有影响.数据本身不受损害,黑客无法检索.

黑客需要获得一个有效的用户访问令牌,这是很难得到的.

一个黑客可以用一个妥协的消费者秘密做什么?
我在说明以下内容时也是正确的:

  • 黑客可以设置/发布模仿我的应用程序的应用程序.
  • 黑客可以吸引将通过OAuth流程的用户,通过黑客OAuth舞蹈(使用受损的消费者密钥/秘密)检索访问令牌.
  • 用户可能认为他正在处理我的应用程序,因为他将在授权过程中看到熟悉的名称(使用者密钥).
  • 当消费者通过黑客发出请求时,黑客可以轻松拦截访问令牌,并且与消费者秘密相结合,现在可以代表我签署请求以获取对我的资源的访问权限.

最终用户的影响
在假设中

  • 黑客使用我的消费者秘密设置了一个应用程序/站点
  • 我的一个用户被欺骗授权访问该应用程序/站点

可能发生以下情况:

  • 最终用户可能会注意到一些可疑的东西,并通知服务提供商(例如谷歌)有关恶意应用程序的信息
  • 然后,服务提供商可以撤销消费者密钥/秘密

OAuth使用者(我的应用程序)影响:
我的应用程序(包含消费者秘密)需要更新,否则我的所有客户都无法授权我的应用程序代表他们做请求(因为我的消费者秘密将不再是有效的).

委派所有OAuth流量
尽管可以通过中间网络服务器委派大量OAuth交互(进行OAuth舞蹈并将访问令牌发送给用户),但也必须代理所有服务交互,作为消费者密钥签署每个请求需要/ secret.这是将消费者密钥/秘密保留在移动应用程序之外,并存储在中间网络服务器上更安全的地方的唯一方法吗?

替代
方案此代理有替代方案吗?是否可以将消费者秘密存储在中间网络服务器上,并且具有某种机制,即Android应用程序(在市场上发布并正确签名)可以向中间网络服务器发出安全请求以获取消费者秘密并存储它应用程序内部?可以实现一种机制,中间网络服务器"知道"这是一个请求获取消费者秘密的官方Android应用程序,并且中间网络服务器只会将消费者秘密分发给该特定的Android应用程序吗?

security android oauth

75
推荐指数
1
解决办法
9794
查看次数

标签 统计

android ×1

oauth ×1

security ×1