[英]Combining JWE and JWS
只要了解JOSE,我就會知道JWE用於加密,JWS用於簽名。 我似乎無法找到示例的是經過加密和簽名的有效負載。
假裝我有一個有效載荷hello world
。 做這樣的事情是正確的嗎? 使用加密的JWE作為JWS的有效負載的JWS(JWE('hello world')
?
JSON Web令牌 (JWT)是一種開放標准,它定義了一種緊湊且自包含的方式,用於在各方之間作為JSON對象安全地傳輸信息。 JWT是以下令牌類型的通用名稱 :
JSON Web簽名 (JWS):對有效負載進行編碼和簽名,以便可以驗證聲明的完整性 。
JSON Web加密 (JWE):它們的有效負載已加密,因此對其他方隱藏了聲明。
該圖像是從此頁面中提取的。
做這樣的事情是正確的嗎? 使用加密的JWE作為JWS的有效負載的
JWS(JWE('hello world')
?
它是一個嵌套的JWT ,其概念在RFC 7519中定義:
一個JWT,其中使用了嵌套的簽名和/或加密。 在嵌套JWT中,JWT分別用作封閉的JWS或JWE結構的有效負載或純文本值。
您可以添加JWE作為JWS有效負載的聲明,但是建議采用另一種方法: 首先對消息簽名,然后對結果進行加密 ,如同一文檔中所述:
雖然在語法上可以按任何順序應用嵌套JWT的簽名和加密操作,但是如果簽名和加密都必須,通常生產者應該對消息簽名,然后對結果進行加密(從而對簽名進行加密)。 這樣可以防止剝奪簽名的攻擊,僅留下加密消息,並為簽名者提供隱私。 此外,在許多轄區中,加密文本上的簽名被認為無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.