在移动应用程序中签署 jwt 是不是安全?

Posted

技术标签:

【中文标题】在移动应用程序中签署 jwt 是不是安全?【英文标题】:Is it safe to sign a jwt in mobile apps?在移动应用程序中签署 jwt 是否安全? 【发布时间】:2018-10-23 06:41:20 【问题描述】:

当用户在移动应用程序(iosandroid 或 Windows 应用程序)中输入用户名和密码时,它会调用第三方 oAuth 登录 Web 服务,该服务会返回 oAuth 访问令牌和刷新令牌。现在应用程序生成一个 JWT 并使用存储在应用程序中的密钥进行签名。此 jwt 用于在一组内部 API 上进行身份验证

在这种情况下,信任此 AUTH 模型是否安全?由于一般 JwT 是在服务器端生成的,因此保持了完整性。

在移动应用中签署 jwt 有哪些陷阱?存储在应用程序中的秘密签名密钥会被泄露吗?

【问题讨论】:

这个问题的更好的地方是:security.stackexchange.com 【参考方案1】:

存储在应用程序中的秘密签名密钥会被泄露吗?

是的,签名密钥可能会被泄露。这可以通过反编译您的应用程序可执行文件来完成。

您可以利用每个平台提供的安全存储,而不是将令牌存储在 sqlite 数据库或本地文件中。

对于 iOS,您可以简单地使用 Keychain,这是一个专门用于此目的的安全存储。

对于 Android,Keystore 提供了类似的功能。

【讨论】:

以上是关于在移动应用程序中签署 jwt 是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中签署 PDF

如何在单个.JAR中签署和部署JavaFX应用程序?

如何在 Xcode 中签署归档应用程序

发布时在 clickonce 应用程序中签署可执行文件

在Visual Studio和InstallShield中签署所有需要的文件

JWT 是不是总是需要访问令牌和刷新令牌?