Key Binding(KB-JWT/cnf)

Key Bindingとは、証明を提示している者が、その証明の正当な持ち主(Holder)であることを、持ち主だけが持つ鍵を使って示す仕組みのことです。

別表記:Key Binding/鍵の結び付け/KB-JWT/Key Binding JWT/cnf

何を防ぐのか

この仕組みがない場合、確認する側(Verifier)に分かるのは、その証明が特定の発行元から出されたことだけです。証明を手に入れた人は誰でもそれを使い回せますし(リプレイ)、提示を受けた確認する側が、別の確認する側に同じ証明を出すこともできてしまいます。

どういう仕組みか

発行元(Issuer)は、持ち主の鍵のうち他人に知らせてよい側(公開鍵)を、証明の中の決まった項目(cnf)に書き入れます。提示のとき、持ち主は対になる、自分だけが持つ側の鍵(秘密鍵)で短い署名(KB-JWT)を作って添えます。

この署名には、作った日時(iat)、宛先となる確認する側(aud)、そのやりとりに固有の値(nonce)、発行元が署名したデータと見せる項目の組から計算した短い値(sd_hash)が含まれます。確認する側はこれらを照らし合わせて、使い回しを見つけます。

必ず使うのか

任意の機能です。求めるかどうかは確認する側の方針で決まり、確認の前に用途ごとに決めておかなければなりません。持ち主が署名を添えてきたかどうかで、その判断を変えてはなりません。

一覧に戻る