Web services 加密身份令牌有什么意义吗?

Web services 加密身份令牌有什么意义吗?,web-services,rest,encryption,cryptography,Web Services,Rest,Encryption,Cryptography,我正在开发一个restful web服务,它需要安全保护。我使用一个令牌系统来实现这一点,其中客户端通过请求头传递一个唯一的令牌。必须通过HTTPS调用该服务 我看过一些文章对令牌进行加密,但是这样做有什么真正的好处吗,因为令牌自然会通过HTTPS进行加密 重新阅读以上内容后,我意识到我的意思并不完全清楚 我看到的文章给了客户端一个预加密的令牌,该令牌使用公钥加密。然后,他们在收到请求时解密该令牌,并对照存储的未加密令牌进行检查。对我来说,这似乎比简单地给客户端一个未加密的令牌并节省整个解密开

我正在开发一个restful web服务,它需要安全保护。我使用一个令牌系统来实现这一点,其中客户端通过请求头传递一个唯一的令牌。必须通过HTTPS调用该服务

我看过一些文章对令牌进行加密,但是这样做有什么真正的好处吗,因为令牌自然会通过HTTPS进行加密


重新阅读以上内容后,我意识到我的意思并不完全清楚


我看到的文章给了客户端一个预加密的令牌,该令牌使用公钥加密。然后,他们在收到请求时解密该令牌,并对照存储的未加密令牌进行检查。对我来说,这似乎比简单地给客户端一个未加密的令牌并节省整个解密开销没有任何好处……

我认为这是一个广泛的问题,答案将取决于您的要求。但是,在大多数情况下,您的身份令牌不需要加密

标识令牌(用于执行身份验证)可以是不透明的(除了值本身之外不显示任何细节的令牌,如随机字符串),也可以是自包含的(如JSON Web令牌)

有关详细信息,请参见以下内容:

随机字符串 可以通过生成随机字符串并将其持久化到具有过期日期和关联用户标识符的数据库来发布令牌

JSON Web令牌(JWT) 由定义,它是在双方之间安全地表示索赔的标准方法。JWT是一个自包含的令牌,允许您在有效负载中存储用户标识符、过期日期和任何您想要的内容(但不存储密码),有效负载是一个编码为Base64的JSON。客户机可以解码和读取有效负载

使用JWT,您可以执行无状态身份验证,也就是说,如果您不需要跟踪JWT令牌,就不需要持久化它们。只需通过在服务器端验证令牌的签名来检查令牌的完整性

尽管如此,通过持久化令牌,您将有可能使它们失效并撤销对它们的访问。为了跟踪JWT令牌,如果需要,可以持久化令牌标识符(声明)和一些元数据(为其颁发令牌的用户、过期日期等),而不是持久化整个令牌。要找到一些与JWT合作的好资源,请查看



对于使用加密技术的令牌,请查看JSON Web加密(JWE),它在中定义。当您需要保密时,请使用JWE,以便客户端需要密钥来解密令牌的内容。

谁在创建令牌?客户机还是服务器?对于已签名但未加密的令牌,一种很好的方法是。在文章中,令牌在分配给客户端之前是预加密的。谢谢,这正是我的想法。在我的情况下,不需要加密令牌,因为它们实际上只是一个密码,不受任何时间验证等的限制。奇怪的是,有许多web文章在将令牌交给客户端之前对其进行了加密,因为这些令牌似乎毫无用处。@coolblue2000在最常见的情况下,您不需要加密您的令牌。只需确保在通过网络发送敏感数据时使用HTTPS即可。