2016-11-02 7 views
0

私は愚かな質問には申し訳ありませんが、私はトークンの使用法の初心者であり、多分何かを理解していません。JWTヘッダーパラメーターの目的は何ですか?

私はJWTについて読み始めましたが、その構造については混乱しています。私は、ペイロードに我々が情報を保持し、署名部分で、我々はペイロードチェックのための署名を保つことを理解

header 
payload 
signature 

:ドキュメントには、それは三つの部分を持っていることを言います。しかしヘッダー部分の目的は何ですか?典型的には、それはJWTであるトークンのタイプと、HMAC SHA256やRSAのようなハッシングアルゴリズムの2つの部分で構成されていると言われています。

  1. サーバーがトークンに署名した場合、サーバーはそのトークンがどの方法を使用しているかを知っています。したがって、サーバーにとって有益な情報ではありません。この情報はまったく使用されません。
  2. ハッカーのヒントではありませんか?彼らはあなたのサーバが使う方法を知っています。私はそれがセキュリティを高めるための良い習慣であるとは確信していません。

これは愚かな質問であり、現実にはいくつかの目的で私たちの署名方法に関する情報を保管する必要がありますが、説明が必要な情報が見つからないのはなぜですか?

答えて

1

JWTの生産者は、それを保護するためにいくつかの異なる利用可能な方法を持っているかもしれません。特定のアルゴリズムまたはキー長を持つ対称キーまたは非対称キーを使用することができ、それぞれの組み合わせに対して異なるキーを持つことがあります。そのような情報は、JWTを検証および/または解読するためにどの鍵およびアルゴリズムを使用するかを受信機が知るようにヘッダに含めることができる。

受信者と送信者が同じパーティによって制御されていない可能性があるので、送信者が使用した可能性がある複数の方法がある場合、受信者がトークンの検証/復号方法を知っていることは確かに有用な情報です。しかし、それが同じパーティーによって制御されている場合でも、あなたが暗示しているように、暗号アルゴリズム、キーまたは鍵の長さをスムーズにアップグレードできます。

新しい鍵ペアを作成して消費するJWTに署名するために、サーバーが新しい鍵ペアに移動したとします。次に、古い鍵で署名された既存のトークンをしばらく確認することができます。その場合、JWTを受け取ったときにJWTに署名するために使用されたキーを知る必要があります。

+0

ありがとうございました!私はそれについて考えていない。それは本当に理にかなっています。 – Alexandr

関連する問題