【问题标题】:Hiding oauth secrets隐藏 oauth 秘密
【发布时间】:2012-08-06 01:34:39
【问题描述】:

我正在构建一个使用 Twitter API 的(业余)应用程序,它支持通过 OAuth 协议进行身份验证。

OAuth 登录过程的一部分涉及为每个应用程序分配一个消费者密钥和消费者秘密(均为字符串),用于生成与 Twitter 服务器通信的签名。

Twitter 开发指南明确指出,应该“将“消费者秘密”保密。此密钥在您的应用程序中永远不应该是人类可读的。'。这显然很重要,就像恶意个人获取了您的凭据一样,他们可以冒充您的应用。

但是,我看不出这是如何实现的。为了让应用程序使用该字符串,应用程序必须能够以某种方式访问​​它(直接编码到应用程序中、存储在捆绑的数据库中或通过链接的 Web 服务访问) - 如果应用程序可以访问它,它用户必须可以访问。它可以通过拆分、字符转换等来混淆,但不能(据我所知)以任何无法撤消的方式。

This SO 回答证实了我的怀疑,即这是一个问题 - 我想知道自 09 年 12 月发布以来是否有任何进展?

【问题讨论】:

    标签: security encryption oauth


    【解决方案1】:

    移动设备的问题在于用户手中。只要有足够的时间/精力,用户就可以从设备中提取任何数据。这不是 OAuth 安全问题,而是真正没有答案的整体安全问题。

    【讨论】:

    • 我明白你的意思——但这在桌面设备上不是更大的问题,可以安装自定义软件来嗅探通信吗?
    • 只要机密信息(例如客户端 ID 和客户端机密)在用户的机器(台式机或移动设备)上,就可以找到它。
    • 客户端密码的问题在于,一旦用户拥有它,他们不仅可以访问设备所在的帐户,还可能访问所有其他帐户(如果可以嗅探相应的访问令牌)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2012-08-11
    • 2013-10-18
    • 2017-04-18
    • 2020-02-10
    • 2012-04-20
    相关资源
    最近更新 更多