我一直在閱讀JSON Web加密(JWE)規範,latest draft being 08,因爲我們正在考慮在我們的身份驗證服務器中支持JSON Web令牌(JWT)。驗證使用JSON Web Encryption(JWE)加密的安全令牌的頒發者?
使用它定義的非對稱加密方法,所述對稱密鑰(內容主密鑰)使用接收者的公鑰加密。這是有道理的,這樣只有收件人可以解密它,並且確保該標記是爲他們設計的。
通常我也希望看到一些證明是從(例如,使用發行者的私鑰創建的簽名,可以使用他們的公鑰進行驗證。但是,簽名似乎也是從內容主密鑰或接收方的公鑰中派生出來的,沒有提及發行者的私鑰。
沒有這一點,在我看來,像 - 只要該預期被稱爲令牌的格式 - 任何人誰擁有接收者的公鑰(即人)可能會產生一個有效的令牌;不只是一個可信任的認證服務器
我不是密碼學專家(遠非如此),所以我敢肯定,我在這裏失去了一些東西。接收者如何驗證非對稱加密的令牌來自可信發行者?
鑑於JSON網絡簽名(JWS)規範不定義使用發行人的私鑰,並可以與他們的公共密鑰驗證簽名,我想知道這個想法是否就是JWE令牌的有效載荷應成爲JWS令牌?
很酷,感謝您的參考。在對規範進行更仔細的重新閱讀時,第10節似乎也涵蓋了這一點,並且還提供了一些其他指導:「雖然語法上,嵌套JWT的簽名和加密操作可以按任何順序應用,但通常發件人應該簽署消息並且然後對結果進行加密(從而對簽名進行加密),從而防止簽名被剝離的攻擊,僅留下加密的消息,併爲簽名者提供隱私。此外,加密文本的簽名在許多司法管轄區不被視爲有效。 「 – 2013-03-20 13:49:35
是的,我想這是有道理的,因爲加密的消息本身通過GCM或加密然後HMAC方案完整性保護。這也與Mike Jonessuggested在郵件列表中相反。在實現這些東西的時候總會有很大的空間:)。 – 2013-03-20 14:35:17
我需要解密JWE並在JAVA中提取聲明集。有沒有這樣的圖書館? – user243655 2013-06-04 06:43:54