使用 cookie/会话进行移动应用程序身份验证?

Posted

技术标签:

【中文标题】使用 cookie/会话进行移动应用程序身份验证?【英文标题】:Using cookies/sessions for mobile application authentication? 【发布时间】:2011-06-01 10:29:06 【问题描述】:

我有什么理由不应该将 cookie/会话用于本机移动应用程序(通常由浏览器使用)来向我的服务器进行身份验证和后续 API 调用?

澄清:移动客户端上事实上的身份验证方法似乎是基于令牌的系统,如 OAuth/XAuth。为什么传统的浏览器方法不够用?

【问题讨论】:

【参考方案1】:

这取决于您的应用程序(更准确地说是您的威胁场景)。

一些最常见的威胁是 - 窃听(-> 应该加密) - 中间人(-> 必须验证另一方) - ...你的是什么? (你的 cookie 存储有多安全……)

一开始,cookie 只保存一个令牌,作为您成功进行身份验证的证明。如果 cookie 的有效时间足够长或传输未加密,则很有可能有一天有人会发现...

此外,您必须考虑采取了哪些额外的安全措施,首先也是最重要的 SSL。

您的身份验证方法是什么(客户需要什么凭据才能登录)?您是否有可能使用基于 PPK 基础架构的身份验证,或者通信是“临时”的?

编辑

写。对 OpenAuth:据我了解协议,它主要关注的是身份验证委托。您授权代理代表另一个身份执行某些非常具体的任务的场景。这样您就不会在整个网络上散布您的凭据。如果您有 OpenAuth,客户端也可以直接使用该协议。那么为什么还要添加另一个。但是 OpenAuth 明确指出,在直接客户端方案中,您再次遇到安全问题,因为现在令牌在设备上可用,并且必须得到相应的保护(就像您必须使用 cookie 一样)。

【讨论】:

感谢您的回复。假设我们使用安全传输 (SSL) 和合理的过期策略,就像使用 Web 浏览器一样,您似乎在说这应该没问题?我们只发送用户/通行证,就像通常使用 POST 请求一样。 另外,我不确定我理解您所说的“临时”是什么意思。似乎接受的方式是使用基于令牌的东西,如 OAuth/XAuth,但这个问题的目的是看看 cookie 是否足够,如果没有,为什么不呢? 如果会话/cookie窃取对您来说不是问题,那似乎很好。 “ad hoc”是指移动场景中非常流行的场景。不属于“静态”PPK 基础架构的两个设备进行通信(配对)。如果没有信任基础,您必须找到其他一些身份验证方式。

以上是关于使用 cookie/会话进行移动应用程序身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

禁用 cookie 时如何验证用户身份?

会话结束后从用户浏览器中删除 cookie。我使用 Passport-twitter 对用户进行身份验证。

使用更多 cookie 而不仅仅是会话哈希进行身份验证的原因是啥?

通过 Okta 进行身份验证后,会话 cookie 不会发送到 Spring Boot 应用程序

Web 身份验证状态 - 会话与 Cookie?

使用BASIC身份验证创建会话