2016-08-15 34 views
0

據我所知:爲了檢查使用非對稱公鑰/私鑰加密算法創建的JWT的有效性,您需要公鑰和JWT頭,聲明又名有效載荷)和簽名。 JWT標題和聲明可以自由解碼,但如果沒有公鑰驗證簽名(基於標頭&聲明並使用私鑰創建),則無法驗證。爲什麼不在JWT有效載荷中提供公鑰以方便

我的問題是,爲什麼不公開密鑰到令牌的聲明有效載荷。這樣,任何人都可以檢查令牌的有效性,而無需從數據庫或文件存儲中挖掘公鑰。

+1

這些(非編程)問題最好在security.stackexchange.com。 Artjom的答案當然是正確的,所以在這個意義上它並不重要,但下次在那邊問。 –

回答

6

您如何知道JWT提供的公鑰是真實的?就你所知,攻擊者可能已經生成了一個密鑰對,用私鑰對有效載荷進行了簽名,並在JWT中包含了數據,簽名和公鑰。你現在擁有的這個「東西」並不能證明任何東西。

+0

這很有道理。我以前怎麼看都沒看見,傻了我。乾杯。 – alexkb

+1

智威湯遜幣旨在小巧緊湊,添加公鑰將使其大大增加。我相信一些使用多個鍵的實現會添加一個聲明來定義使用哪個鍵,然後可以查找並應用這些鍵。 – Alex

相關問題