[英]What are the pros and cons of reusing an AFHTTPRequestOperationManager?
[英]What are the pros/cons of using JWE or JWS
我正在尝试实现身份验证令牌系统,所以我想知道使用JSON Web加密(JWE)或JSON Web签名(JWS)的优点/缺点,以及是否有必要同时使用两者(JWS中的JWE )。
JSON Web签名(JWS)声明使用签名进行签名,服务器可以使用秘密签名密钥对签名进行签名。 这样可以确保在客户端和服务器之间传递声明时不会对其进行调整。 JWS令牌的内容是Base64编码的,并且未加密( 请记住编码与加密不同! )。 Base64编码的数据看起来像是垃圾文本,因此看起来像是经过加密的,但是转回可读数据实际上很简单。 因此,始终建议不要在JWT中包含任何敏感信息。 建议仅在要在两方之间(或在客户端和服务器之间)交换信息并且不将任何敏感数据作为令牌中的有效负载传递时,才使用JWT。
但是,如果您想在令牌中包含任何私人信息怎么办? 您不希望您的敏感信息出现在仅由Base64编码的令牌中,而任何攻击者都可以轻松解码该令牌。 幸运的是,有一种方法可以用另一个更安全的保护级别JSON Web Encryption(JWE)来加密和保护声明数据。 它定义了一种对您的索赔数据(基本上是基于JSON的数据结构)进行加密的方法,以便只有预期的接收者才能读取令牌中存在的信息。
处理网络令牌的最佳方法是 :
我们有一些Java可用的优秀库可以加密您的JSON Web令牌:
以上两个库都是JWT和JOSE(Javascript对象签名和加密)规范套件的开源(Apache 2.0)实现。 它们都是高质量的库,您真的不能做出错误的选择。 但是,JWT.IO有一个不错的UI,可以显示每个可用库的差异。
JWS用于签名数据,使其受到完整性保护,这意味着:
JWE用于加密数据并使其具有完整性保护
JWS和JWE之间的目标是不同的。 JWS用于签署声明,JWE用于传输敏感数据。
如果要实现认证系统,那么必须使用JWS来验证声明的真实性。
如果JWS中的某些声明包含敏感信息,您还可以使用JWE加密JWS。
但是在您的上下文中仅使用JWE是没有意义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.