在客户端应用程序中安全地存储OAuth2 client_id和client_secret

时间:2013-10-24 01:32:20

标签: security oauth oauth-2.0

是否有任何聪明的解决方案可以在客户端应用中安全地存储client_idclient_secret

这可能是一个反编译的Android / iOS应用。或者是以纯文本形式显示的Chrome扩展程序。

如果攻击者受到攻击并冒充你的应用程序,可以依靠它的声誉来鼓励用户授权访问,对吗?

很好奇这里有什么解决方案。谢谢!

1 个答案:

答案 0 :(得分:2)

对于移动应用,建议不要使用“授权代码授权”方案,因为将client_secret存储在移动应用中并不安全。这就是该标准在机密客户和公共客户之间产生差异的原因(参见2.1)。

您应该使用“隐式授权”方案(为javascript和嵌入式应用程序创建)。它不包含client_secret,因为客户端无论如何都无法正确保护它,客户端只使用其client_id。由于移动客户端被认为可能不安全,因此服务器不得发出刷新令牌,只能发出短期访问令牌。