【问题标题】:Is it safe to encrypt my JWT authentication token client side if I don't store the key?如果我不存储密钥,加密我的 JWT 身份验证令牌客户端是否安全?
【发布时间】:2019-02-13 10:05:32
【问题描述】:

我计划加密我的 JWT 访问令牌并将其存储在 AsyncStorage (React Native) 中。我将使用 PIN 码加密令牌并在每次应用启动时请求 PIN 码。我将使用 PIN 码解密访问令牌并将其存储在我的状态以供以后使用。

这是一种安全的方法吗?

【问题讨论】:

  • 使用这种方法,您的 JWT 机密可能会通过 API 调用或您的应用代码(取决于您希望如何访问它)而受到损害。
  • 为什么要在客户端加密 JWT?它是否存储了应用必须读取的敏感数据?
  • 当用户登录时,他会得到一个访问令牌。我有一个“记住我”功能,我想重新使用访问令牌。然后我会询问 PIN 码而不是密码来解密访问令牌。
  • @Niel 你管理好了吗?我也面临同样的问题

标签: security react-native cryptography


【解决方案1】:

首先,JWT 不加密数据(即令牌的 Header 和 Payload 部分)。它只使用Base64Url进行编码,无需任何密钥即可解码。

JWT 用于网络请求,其中签名部分被签名/加密,以确保头和有效负载数据不会在途中被操纵。

因此,如果您想安全地存储访问令牌,JWT 无法帮助您。您可以尝试使用 bcrypt 加密您的数据并将 PIN 用作 crypt-salt。

【讨论】:

    猜你喜欢
    • 2021-02-02
    • 2013-08-19
    • 2010-10-24
    • 2012-10-29
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2016-02-19
    相关资源
    最近更新 更多