JWK
JWK 是什么?
JWKJSON Web Key,定义于 RFC 7517,是用于 JOSE 和 OAuth 系列协议中,表示公钥或私钥的 JSON 对象。
JWK(RFC 7517)以 JSON 对象的形式表示一个密码学密钥,其参数取决于密钥类型(kty):RSA 密钥包含 n、e 以及可选的 d/p/q;EC 密钥包含 crv、x、y 以及可选的 d;OKP 密钥(RFC 8037)用 crv 和 x 表示 Ed25519/X25519;oct 密钥包含对称密钥 k。元数据字段包括 kid(密钥标识符)、alg、use(sig 或 enc)和 key_ops。JWK Set(jwks)将多个密钥组合在一起,通常发布在 /.well-known/jwks.json,以便依赖方验证 OAuth 2.0 访问令牌或 OpenID Connect ID 令牌。JWK 是 Auth0、Okta、Keycloak、Cognito 等身份提供方,以及 jose、node-jose、python-jwt 等库使用的规范格式。
● 示例
- 01
OpenID Connect 提供方在 https://issuer.example.com/.well-known/jwks.json 以 JWK Set 形式发布其签名密钥。
- 02
WebAuthn 依赖方以 kty:EC 且 crv:P-256 的 JWK 形式保存用户的公钥。
● 常见问题
JWK 是什么?
JSON Web Key,定义于 RFC 7517,是用于 JOSE 和 OAuth 系列协议中,表示公钥或私钥的 JSON 对象。 它属于网络安全的 密码学 分类。
JWK 是什么意思?
JSON Web Key,定义于 RFC 7517,是用于 JOSE 和 OAuth 系列协议中,表示公钥或私钥的 JSON 对象。
JWK 是如何工作的?
JWK(RFC 7517)以 JSON 对象的形式表示一个密码学密钥,其参数取决于密钥类型(kty):RSA 密钥包含 n、e 以及可选的 d/p/q;EC 密钥包含 crv、x、y 以及可选的 d;OKP 密钥(RFC 8037)用 crv 和 x 表示 Ed25519/X25519;oct 密钥包含对称密钥 k。元数据字段包括 kid(密钥标识符)、alg、use(sig 或 enc)和 key_ops。JWK Set(jwks)将多个密钥组合在一起,通常发布在 /.well-known/jwks.json,以便依赖方验证 OAuth 2.0 访问令牌或 OpenID Connect ID 令牌。JWK 是 Auth0、Okta、Keycloak、Cognito 等身份提供方,以及 jose、node-jose、python-jwt 等库使用的规范格式。
如何防御 JWK?
针对 JWK 的防御通常结合技术控制与运营实践,详见上方完整定义。
JWK 还有哪些其他名称?
常见的别称包括: JSON Web Key, jwks。
● 相关术语
- cryptography№ 565
JOSE
JavaScript Object Signing and Encryption,IETF 标准家族(RFC 7515-7520 和 8037),用 JSON 表示已签名和加密的数据。
- cryptography№ 573
JWS
JSON Web Signature(RFC 7515)是 JOSE 系列中的一种格式,通过对 Base64URL 编码的头部和负载进行数字签名或 MAC,保护任意内容的完整性与来源。
- cryptography№ 571
JWE
JSON Web Encryption(RFC 7516)是 JOSE 系列中的一种格式,通过认证加密以及密钥包装或密钥协商,机密地封装载荷。
- identity-access№ 574
JWT(JSON Web Token)
紧凑、URL 安全的令牌格式(RFC 7519),携带带签名的 JSON 声明,广泛用作访问令牌、ID 令牌和会话载体。
- identity-access№ 760
OpenID Connect (OIDC)
构建在 OAuth 2.0 之上的身份层,允许客户端通过签名的 ID 令牌验证用户身份并获取基本资料。