マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

以下の内容で最終確認済み。
https://tools.ietf.org/html/rfc7517

JSON Web Key (JWK)

JWK Set

詳細

パラメタ(JWK)

一覧

#キー説明
1kty (必須)key typeパラメタ。大文字・小文字を区別する。
RSA や EC といった暗号アルゴリズムファミリを示す。
2alg (任意)algorithmパラメタ。大文字・小文字を区別するASCII 文字列。
鍵で利用されるアルゴリズムを示す。
3kid (任意)Key IDパラメタ。大文字・小文字を区別するが、値の構造は未定義。
鍵のロールオーバー時に JWK Set の中から必要な鍵を特定するなど、特定の鍵を識別するために用いられる。
JWSJWE とともに利用する場合, Header に含まれる kid 値と一致させる。
kidの生成には、JWK Thumbprintという仕様が使用されることが多い。
4use (任意)public key useパラメタ。大文字・小文字を区別する。
当該公開鍵の用途を示す。暗号化目的 (sig) or 署名検証目的 (enc) or その他
5key_ops (任意)key operationsパラメタ。大文字・小文字を区別する。
公開鍵, 暗号鍵, 共通鍵のいずれのユースケースを想定した鍵のオペレーションを示す。
6x5u (任意)X.509 URLパラメタ。X.509 公開鍵証明書や証明書チェーンといったリソースを指し示す URI。
リソースは、PEM エンコード形式で、チェーンの先頭の証明書と一致させ、HTTPSのGETで取得する。
7x5c (任意)X.509 certificate chainパラメタ。PKIX 証明書(base64 エンコードされた DER 形式)のJSON 配列。
配列の先頭は、チェーンの先頭のPKIX 証明書で、その後に証明書を続けることもできる。
8x5t (任意)X.509 Certificate SHA-1 Thumbprintパラメタ。
DER エンコードされた X.509 証明書 の SHA-1 thumbprint (a.k.a. digest) の base64url エンコード値。
9x5t#S256 (任意)X.509 Certificate SHA-256 Thumbprintパラメタ。
DER エンコードされた X.509 証明書 の SHA-256 thumbprint (a.k.a. digest) の base64url エンコード値。

alg

JWSJWE用のalgはJWAのRFCを参照。

use と key_ops

kty と kid

異なる鍵が同じ kid 値を持つケースがある。

ktyは異なるが, アプリケーションからはそれらが
互いに等価な代替手段であると考えられている場合。

パラメタ(JWA)

パラメタ(JWK)に含まれないパラメタは、
JWAのRFCで、アルゴリズム毎に定義されているパラメタになる。

Parameters for Symmetric Keys

"kty"=octの場合(、合わせて、"alg"も必要)、
"k"にbase64urlエンコードされたSymmetric Keysを保存する。

Parameters for RSA Keys

サンプル

キー値の改行は掲載上の都合による。

JWK

RSA

Elliptic Curve DSA

P-256 Elliptic Curve の Elliptic Curve [DSS] 鍵

{
  "kty":"EC",
  "crv":"P-256",
  "x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
  "y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0",
  "kid":"Public key used in JWS spec Appendix A.3 example"
}

JWK Set

Public Keys

Private Keys

Symmetric Keys

自作ライブラリ

署名・暗号化アルゴリズム

ココの署名・暗号化アルゴリズムを使用すると良い。

RSAParameters

X.509証明書 ---> RSAParameters <---> JWK変換を考える。

.NET

.NETでは以下のようにできる模様。

他の言語

同じようなことは他の言語でも調査されている。

参考

JWA - JWK用


Tags: :IT国際標準, :プログラミング, :通信技術, :認証基盤, :クレームベース認証, :暗号化


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS