MS_JWE - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
以äžã®å
å®¹ã§æçµç¢ºèªæžã¿ã
https://tools.ietf.org/html/rfc7516
-
JWE ã¯ãæå·åã®ãªãã·ã§ã³ïŒæå·åããã JWTïŒã
-
èªèšŒä»ãæå·ïŒAEADïŒãå©çšããŠã以äžãä¿èšŒããã
- å¹³æã®æ©å¯æ§ãšå®å šæ§
- ããã³ä¿è·ããããšè¿œå èªèšŒããŒã¿ïŒAADïŒã®å®å šæ§
è£è¶³ïŒäœ¿ãã©ããïŒ: å®åã§ JWE ãèŠãã®ã¯æå€ãšéãããã
- ããŒã¯ã³ã¯éåžž TLS ã§éã°ãããããçµè·¯äžã®ç§å¿ã¯ TLS ãæ ãã
- JWE ãå¹ãã®ã¯ãäžç¶è ã«äžèº«ãèŠããããªããå Žå
ïŒãã©ãŠã¶ãçµç±ãã ID ããŒã¯ã³ãããã³ããã£ãã«ã§æž¡ããªã¯ãšã¹ã ãªããžã§ã¯ããªã©ïŒããã䜿ãããã®ã¯ Nested JWTïŒçœ²åããŠããæå·åïŒã§ã
OpenID Connect ã®id_token_encrypted_response_algãã
FAPIïŒFinancial API (FAPI)ïŒãªã©ã®ãããã¡ã€ã«ã§ç»å Žããããªãã眲åã®ä»£ããã«æå·åã䜿ã£ãŠã¯ãªããªãã
AEAD ã¯ãéµãæã€èª°ãããäœã£ãããšãã瀺ããã
çºè¡è ã®ç¹å®ïŒåŠèªé²æ¢ïŒã¯ã§ããªãã
JWE Compact Serialization or JWE JSON Serialization ã®ã©ã¡ãã§ãã
åºæ¬çã«ãã¹ãŠ base64url ã§ãšã³ã³ãŒããããã
JWE ã®åºæ¬çãªãããïŒâ JWE Compact Serialization ã®å Žåã®ä¿è·ãããïŒã«ã¯ã
以äžã®ãã®ãããã
| çµã¿åãã | ããã |
|---|---|
| RSAES-OAEP and AES GCM | {"alg":"RSA-OAEP","enc":"A256GCM"} |
| RSAES-PKCS1-v1_5 and AES_128_CBC_HMAC_SHA_256 | {"alg":"RSA1_5","enc":"A128CBC-HS256"} |
| AES Key Wrap and AES_128_CBC_HMAC_SHA_256 | {"alg":"A128KW","enc":"A128CBC-HS256"} |
è£è¶³ïŒææ°åïŒ:
alg: RSA1_5ïŒRSAES-PKCS1-v1_5ïŒã¯
Bleichenbacher æ»æïŒããã£ã³ã° ãªã©ã¯ã«ïŒã«å¯ŸããŠè匱ã§ããã
RFC 8725ïŒJWT Best Current PracticesïŒã§ã䜿çšããªãããæ±ããããŠããã
çŸåšã¯æ¬¡ã䜿ãã
çšé æšå¥š éµã®åãæž¡ãïŒRSAïŒ RSA-OAEP-256ïŒRSA-OAEP㯠SHA-1 ããŒã¹ïŒéµã®åãæž¡ãïŒECïŒ ECDH-ES+A256KWã³ã³ãã³ãæå· A256GCMïŒãŸãã¯A128CBC-HS256ïŒ
JWKããµããŒãããå Žå
jwk / kid / jku ãªã©ã§åä¿¡è
ã®éµã瀺ãã
JWSãšåãã
èªèšŒä»ãæå·ïŒAEADïŒæå·åã¢ã«ãŽãªãºã ã«ã€ããŠã®ç¥èãå¿ èŠã
-
encã®èªèšŒä»ãæå·ïŒAEADïŒæäœã®æå·åããŒ
å¹³æãæå·åããŠæå·æãšèªèšŒã¿ã°ïŒMACïŒãçæããããã«
䜿çšãããèªèšŒä»ãæå·ïŒAEADïŒã¢ã«ãŽãªãºã ã®å¯Ÿç§°éµã -
algã«ãã£ãŠæå·åãŸãã¯æ±ºå®ãããã- äžéšã®ã¢ã«ãŽãªãºã ã§ã¯ã空ã®ãªã¯ãããã·ãŒã±ã³ã¹ã«ãªãã
enc ã®èªèšŒä»ãæå·ïŒAEADïŒæäœã«ãã£ãŠæ±ºå®ãããã
- å¹³æãæå·åãããšãã«äœ¿çšãããåæåãã¯ãã«å€ã
- äžéšã®ã¢ã«ãŽãªãºã ã§ã¯ã空ã®ãªã¯ãããã·ãŒã±ã³ã¹ã«ãªãã
è£è¶³ïŒéèŠïŒ: AES-GCM ã§ã¯ãåãéµã§ IVïŒnonceïŒãåå©çšãããš
éµã¹ããªãŒã ãåå©çšãããå¹³æã埩å ã§ããããèªèšŒéµãŸã§æŒããã
CEK ãã¡ãã»ãŒãžæ¯ã«ã©ã³ãã çæãã JWE ã®éåžžã®äœ¿ãæ¹ã§ã¯èµ·ããªããã
ãCEK ãåºå®ããŠäœ¿ãåããç¬èªå®è£ ããããšå³åº§ã«ç Žç¶»ããã
- èªèšŒä»ãæå·ïŒAEADïŒæäœã®èªèšŒãå®å
šæ§ä¿è·ã®ããã«ããã
æå·åã¯ãããªããèªèšŒä¿è·ã®å¯Ÿè±¡ã§ããã - JWE Compact Serialization ã®å Žåã¯äœ¿çšïŒååšïŒããã
JWE JSON Serialization ã®å Žåã«ã®ã¿äœ¿çšïŒååšïŒã
-
encã®èªèšŒä»ãæå·ïŒAEADïŒæäœã«ãã£ãŠã- å¹³æãšã³ã³ãã³ãæå·åããŒïŒCEKïŒã远å èªèšŒããŒã¿ïŒAADïŒããã
- æå·æãšèªèšŒã¿ã°ãçæããã
-
encã®èªèšŒä»ãæå·ïŒAEADïŒæäœã«ãã£ãŠã- å¹³æãšã³ã³ãã³ãæå·åããŒïŒCEKïŒã远å èªèšŒããŒã¿ïŒAADïŒããã
- æå·æãšèªèšŒã¿ã°ãçæããã
-
äžéšã®ã¢ã«ãŽãªãºã ã§ã¯èªèšŒã¿ã°ã䜿çšããªãå Žåãããã
æå·åã¢ã«ãŽãªãºã ã®ä»¥äžã®èŠçŽ ã«ã€ããŠçè§£ãå¿ èŠã
- åºç€çšèª
- èªèšŒä»ãæå·ïŒAEADïŒ
- ã³ã³ãã³ãæå·åããŒïŒCEKïŒå€ã決å®ããããã®æ¹æ³ã
- ãã®ä»æ§ã§äœ¿çšãããããŒç®¡çã¢ãŒãã«ã¯ä»¥äžã®ã¢ããããã
| ã¢ãŒã | å 容 |
|---|---|
| ããŒæå·å | ãã€ããªããæå·åïŒããŒäº€æïŒã®å©çšãæå³ãRSA-OAEPãRSA1_5 ãªã©ã®éµäº€æã¢ã«ãŽãªãºã ãäœ¿çš |
| ããŒã©ããã³ã° | 察称ããŒã©ããã³ã°ã¢ã«ãŽãªãºã ã®å©çšãæå³ãéµã©ããã»ã¢ã«ãŽãªãºã ãäœ¿çš |
| çŽæ¥ããŒå¥çŽ | éµåæã¢ã«ãŽãªãºã ã®å©çšãæå³ |
| ããŒã©ããã³ã°ã«ããããŒå¥çŽ | 察称ããŒã©ããã³ã°ã¢ã«ãŽãªãºã ã®å¯Ÿç§°éµã«ãéµåæã¢ã«ãŽãªãºã ã®å©çšãæå³ |
| çŽæ¥æå·å | CEK å€ãåœäºè éã§å ±æãããéµç®¡çã¢ãŒã |
-
ãã€ããªããæå·åïŒããŒäº€æïŒã®å©çšãæå³ããããŒç®¡çã¢ãŒãã
-
RSA-OAEPãRSA1_5ãªã©ã®éµäº€æã¢ã«ãŽãªãºã ã䜿çšããã -
以äžã®åèè³æãåç §ãããšã
- å
¬ééµ: JWK Set ãç»é²ïŒè¥ããã¯
jwks_uriã§å ¬éïŒ - ç§å¯éµ: èšŒææžã JWK Set
ãšãªããããïŒéµäº€æã ããã¢ãªã¹ãšããã§ã¯ãªãåãªãå ¬é鵿å·åïŒã
- å
¬ééµ: JWK Set ãç»é²ïŒè¥ããã¯
-
åè
- Financial API å®è£
ã®æè¡èª²é¡ - Qiita
https://qiita.com/TakahikoKawasaki/items/48a9d22205f77db59726 - [åç·š] IDããŒã¯ã³ãåããã° OpenID Connect ãåãã - Qiita
https://qiita.com/TakahikoKawasaki/items/8f0e422c7edd2d220e06
- Financial API å®è£
ã®æè¡èª²é¡ - Qiita
- 察称ããŒã©ããã³ã°ã¢ã«ãŽãªãºã ã®å©çšãæå³ããããŒç®¡çã¢ãŒãã
- éµã©ããã»ã¢ã«ãŽãªãºã ã䜿çšããã
-
A128KW/A192KW/A256KW -
A128GCMKW/A192GCMKW/A256GCMKW
-
éµåæã¢ã«ãŽãªãºã ã®å©çšãæå³ããããŒç®¡çã¢ãŒãïŒECDH-ESïŒã
察称ããŒã©ããã³ã°ã¢ã«ãŽãªãºã ã®å¯Ÿç§°éµã«ã
éµåæã¢ã«ãŽãªãºã ã®å©çšãæå³ããããŒç®¡çã¢ãŒãïŒECDH-ES+A256KWïŒã
CEK å€ãåœäºè
éã§å
±æãããéµç®¡çã¢ãŒãïŒdirïŒã
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã®èŠåºãã¯
ãããŒã©ããã³ã°ã«ããäž»èŠå¥çŽããšãªã£ãŠãããã
åæã¯ Key Agreement with Key Wrapping ã§ããã
ãããŒã©ããã³ã°ã«ããéµå¥çŽïŒéµåæïŒããæ£ããã
äžèЧåŽã®è¡šèšã«åãããã
- æ§æèŠçŽ ïŒããããããŒãåæãã¯ãã«ãæå·æãèªèšŒã¿ã°ïŒMACïŒïŒã
以äžã®ããã«è¡šçŸ(ãšã³ã³ãŒã)ãããã®ã - 以äžã® 2 ã€ã®è¡šçŸ(ãšã³ã³ãŒã)æ¹æ³ãããã
ã©ã¡ãã§ããæ§æèŠçŽ ã¯ base64url ã§ãšã³ã³ãŒããããã
-
æå·æïŒèªèšŒã¿ã°ïŒMACïŒã®ããŒã¿ã JSONïŒã® Base64 URL EncodeïŒåœ¢åŒã§è¡šçŸããã
-
äŸ
ãããïŒä¿è·ãããïŒïŒããŒïŒåæãã¯ãã«ïŒæå·æïŒèªèšŒã¿ã°ïŒMACïŒBASE64URL (UTF-8 (JWE Protected Header)) . BASE64URL(JWE Encrypted Key) . BASE64URL(JWE Initialization Vector) . BASE64URL(JWE Ciphertext) . BASE64URL(JWE Authentication Tag)
-
åãã³ã³ãã³ããè€æ°ã®åœäºè ã«æå·åããããšãå¯èœã«ããã
-
Syntax
-
protected= BASE64URL(UTF8(ä¿è·ããã)) -
unprotected= å ±æ éä¿è·ããã -
recipients= åä¿¡è æ¯ã«åå¥ã®æ å ±-
header= åå¥ éä¿è·ããã -
encrypted_key= BASE64URL(ããŒ)
-
-
aad= BASE64URL(远å èªèšŒããŒã¿ïŒAADïŒ) -
iv= BASE64URL(åæãã¯ãã«) -
ciphertext= BASE64URL(æå·æ) -
tag= BASE64URL(èªèšŒã¿ã°ïŒMACïŒ)
-
-
Example
-
Complete JWE JSON Serialization Representation
{ "protected":"<integrity-protected shared header contents>", "unprotected":"<non-integrity-protected shared header contents>", "recipients":[ {"header":"<per-recipient unprotected header 1 contents>", "encrypted_key":"<encrypted key 1 contents>"}, {"header":"<per-recipient unprotected header N contents>", "encrypted_key":"<encrypted key N contents>"}], "aad":"<additional authenticated data contents>", "iv":"<initialization vector contents>", "ciphertext":"<ciphertext contents>", "tag":"<authentication tag contents>" } -
JWE Using Flattened JWE JSON Serialization
åä¿¡è ã 1 人ã®ã¿ã®å Žå㯠Flattened JWE JSON Serialization ã䜿ããã{ "protected":"<integrity-protected header contents>", "unprotected":"<non-integrity-protected header contents>", "header":"<more non-integrity-protected header contents>", "encrypted_key":"<encrypted key contents>", "aad":"<additional authenticated data contents>", "iv":"<initialization vector contents>", "ciphertext":"<ciphertext contents>", "tag":"<authentication tag contents>" }
-
ç§»è¡ã¡ã¢: å ããŒãžã®èŠåºãã¯
ãJWE Using Flattened JWS JSON Serializationããšãªã£ãŠãããã
RFC 7516 ã®å称㯠Flattened JWE JSON Serialization ã§ããã
JOSE ãããã¯ã以äžã®ã¡ã³ãã®åéåã
- JWE Compact Serialization ã®å Žåã¯ãJOSE ããã â ä¿è·ãããã
- JWE JSON Serialization ã®å Žåã¯ã
JOSE ããã â ä¿è·ããã and / or å ±æ éä¿è·ããã and / or åå¥ éä¿è·ããã
-
èªèšŒãããæå·åãå©çšããŠãå®å šæ§ãä¿èšŒã
- èªèšŒä»ãæå·ïŒAEADïŒæäœã«ãã£ãŠå®å
šæ§ä¿è·ããããããã»ãã©ã¡ã¿ãå«ã
JSON ãªããžã§ã¯ãã - ãããã®ãã©ã¡ã¿ã¯ãåä¿¡è æ¯ã«å ±éã
- èªèšŒä»ãæå·ïŒAEADïŒæäœã«ãã£ãŠå®å
šæ§ä¿è·ããããããã»ãã©ã¡ã¿ãå«ã
-
ãã©ã¡ã¿
| ãã©ã¡ã¿ | å 容 |
|---|---|
alg |
æå·åããŒã®å€ãæå·åãŸãã¯æ±ºå®ããããã«äœ¿çšãããæå·ã¢ã«ãŽãªãºã ãèå¥ |
enc |
èªèšŒä»ãæå·ïŒAEADïŒã®ã¢ã«ãŽãªãºã ãèå¥ |
zip |
æå·åã®åã«å¹³æã«é©çšããããå§çž®ãã¢ã«ãŽãªãºã |
- äŸ
{"alg":"RSA-OAEP","enc":"A256GCM"}
è£è¶³ïŒ
zipã¯äœ¿ããªãïŒ: ãå§çž®ããŠããæå·åãã¯
**å§çž®çããå¹³æãæšæž¬ããæ»æïŒCRIME / BREACH ãšåçš®ïŒ**ãæãã
RFC 8725 ãzipã®äœ¿çšã«èŠåããŠããã
æ¢å®ã§ã¯äœ¿ããªãã®ãæ£ããã
å ããŠãå±éæã«å·šå€§åãããzip bombãã«ãã DoS ã®å ¥å£ã«ããªãã
JWE JSON Serialization ã®å Žåã«å¿ èŠãªãåä¿¡è æ¯ã«å ±éã®éä¿è·ãããã
JWE JSON Serialization ã®å Žåã«å¿ èŠãªãåä¿¡è æ¯ã«åå¥ã®éä¿è·ãããã
-
algã§ãããŒçæã»äº€æã -
encã§ãèªèšŒä»ãæå·ïŒAEADïŒæäœã
-
"alg":"RSA-OAEP"- Optimal Asymmetric Encryption Padding - Wikipedia
https://ja.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding - .NET ãªãã
RSACryptoServiceProvider.Encryptã¡ãœããã®
第äºåŒæ°ãtrueã«æå®ãããšãOAEP ããã£ã³ã°ã䜿çšããã
- Optimal Asymmetric Encryption Padding - Wikipedia
-
"enc":"A256GCM"-
ã¢ã«ãŽãªãºã
RFC 7518 - JSON Web Algorithms (JWA)- 5.3. Content Encryption with AES GCM
https://tools.ietf.org/html/rfc7518#section-5.3
- 5.3. Content Encryption with AES GCM
- .NETã©ã€ãã©ãª
-
ã¢ã«ãŽãªãºã
è£è¶³ïŒææ°åïŒ: .NET Core 3.0 以éã¯
System.Security.Cryptography.AesGcmã¯ã©ã¹ãå©çšã§ããã
ãŸã RSA ã® OAEP ã¯æ¬¡ã®ããã«æžãïŒRSAEncryptionPadding.OaepSHA256ãRSA-OAEP-256ïŒãusing var rsa = RSA.Create(); byte[] wrapped = rsa.Encrypt(cek, RSAEncryptionPadding.OaepSHA256);
-
"alg":"RSA1_5"- PKCS - Wikipedia
https://ja.wikipedia.org/wiki/PKCS - RFC 2313 - PKCS #1: RSA Encryption Version 1.5
https://tools.ietf.org/html/rfc2313 - .NET ãªãã
RSACryptoServiceProvider.Encryptã¡ãœããã®
第äºåŒæ°ãfalseã«æå®ãããšãPKCS#1 v1.5 ããã£ã³ã°ã䜿çšããã
- PKCS - Wikipedia
-
"enc":"A128CBC-HS256"-
ã¢ã«ãŽãªãºã
RFC 7518 - JSON Web Algorithms (JWA)- 5.2. AES_CBC_HMAC_SHA2 Algorithms
https://tools.ietf.org/html/rfc7518#section-5.2 - 5.2.3. AES_128_CBC_HMAC_SHA_256
https://tools.ietf.org/html/rfc7518#section-5.2.3
- 5.2. AES_CBC_HMAC_SHA2 Algorithms
-
ã¢ã«ãŽãªãºã
â» åè¿°ã®éããRSA1_5 ã¯æ°èŠå®è£
ã§ã¯äœ¿çšããªãããšã
-
"alg":"A128KW"
RFC 3394 - Advanced Encryption Standard (AES) Key Wrap Algorithm
https://tools.ietf.org/html/rfc3394 -
"enc":"A128CBC-HS256"
åäž
JWAãåç §ã
-
JWE Protected Header ã®æ±ºå®
{"alg":"RSA-OAEP","enc":"A256GCM"}ãªã©ã -
æå·åããŒã®çæ
- ã©ã³ãã ãªã³ã³ãã³ãæå·åããŒãçæã
ä¹±æ°ãçæããéã®èæ ®äºé ã«ã€ããŠã¯ãRFC 4086 ãåç § -
algå¥- Key Wrapping / Key Encryption / Key Agreement with Key Wrapping
â åä¿¡è ã®å ¬ééµïŒãŸãã¯å ±æéµïŒã§æå·åããŒãæå·åãããã€ãå - Direct Key AgreementïŒ
ECDH-ESïŒ
â 空ã®ãã€ãåãšããã - Direct EncryptionïŒ
dirïŒ
â 空ã®ãã€ãåãšããïŒCEK ã¯å ±ææžã¿ã®å¯Ÿç§°éµãã®ãã®ïŒã
- Key Wrapping / Key Encryption / Key Agreement with Key Wrapping
- Base64url ãšã³ã³ãŒãããã
â» JWE JSON Serialization ã䜿çšããŠããå Žåã¯ãäžèšãç¹°ãè¿ãã
- ã©ã³ãã ãªã³ã³ãã³ãæå·åããŒãçæã
-
åæåãã¯ãã«ã®çæ
-
encã¢ã«ãŽãªãºã ã«åæåãã¯ãã«ãå¿ èŠãªå Žå
â ã©ã³ãã ãªã³ã³ãã³ãæå·åã®åæåãã¯ãã«ãçæã - å¿
èŠã§ãªãå Žå
â 空ã®ãã€ãåãšããã - Base64url ãšã³ã³ãŒãããã
-
-
远å ã®èªèšŒããŒã¿æå·åãã©ã¡ã¿
- JWE Compact Serialization ã®å Žå
ASCII(BASE64URL(UTF8(JWE Protected Header))) - JWE JSON Serialization ã®å Žå
ASCII(BASE64URL(UTF8(JWE Protected Header)) || '.' || BASE64URL(JWE AAD))
- JWE Compact Serialization ã®å Žå
-
æå·æã®çæ
- å¹³æããå¿
èŠãªã
zipã®ã¢ã«ãŽãªãºã ã§å§çž®ããencã®ã¢ã«ãŽãªãºã ã§æå·åããã - Base64url ãšã³ã³ãŒãããã
- å¹³æããå¿
èŠãªã
-
èªèšŒã¿ã°ã®çæ
- AEAD æäœããæå·æãšåæã«èªèšŒã¿ã°ãåºåããã
- Base64url ãšã³ã³ãŒãããã
-
Serialization
- JWE Compact Serialization or JWE JSON Serialization
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã¯
algã® Direct Encryption ããå ±æå¯Ÿç§°éµã®ãã€ãåãšãããã- èªèšŒã¿ã°ã®çæãã远å ã®èªèšŒããŒã¿æå·åãã©ã¡ã¿ã
encã®
ã¢ã«ãŽãªãºã ã§æå·åããããšããŠããããããããå®éãšç°ãªãã
dirïŒDirect EncryptionïŒã§ã¯ãCEK ã¯å ±ææžã¿ã®éµãã®ãã®ã§ããã
JWE Encrypted Key ã®æ¬ã¯ç©ºã«ãªãïŒéµãéããªãã®ãèŠç¹ïŒã- èªèšŒã¿ã°ã¯ AAD ãæå·åãããã®ã§ã¯ãªãã
AEAD ãæå·æãšäžç·ã«åºåããå®å šæ§ã®å€ã§ããã
AAD ã¯èªèšŒã®å ¥åã«ãªãã ãã§ãæå·åã¯ãããªãã
æå·åã®éããã»ã¹ãè¡ãã
è£è¶³ïŒåŸ©å·æã®éåïŒ: èªèšŒã¿ã°ã®æ€èšŒã«å€±æãããã
埩å·çµæãäžå䜿ã£ãŠã¯ãªããªãïŒãšã©ãŒå 容ã詳ããè¿ããªãïŒã
ã埩å·ããŠããæ€èšŒãããã倱æçç±ã§å¿çãå€ãããå®è£ ã¯
ããã£ã³ã° ãªã©ã¯ã«æ»æã®å ¥å£ã«ãªãã
| ã¢ã«ãŽãªãºã ã®çµã¿åãã | åç § |
|---|---|
| RSAES-OAEP and AES GCM | RFC 7516 Appendix A.1 https://tools.ietf.org/html/rfc7516#appendix-A.1 |
| RSAES-PKCS1-v1_5 and AES_128_CBC_HMAC_SHA_256 | RFC 7516 Appendix A.2 https://tools.ietf.org/html/rfc7516#appendix-A.2 |
| AES Key Wrap and AES_128_CBC_HMAC_SHA_256 | RFC 7516 Appendix A.3 https://tools.ietf.org/html/rfc7516#appendix-A.3 |
-
RFC 7518 - JSON Web Algorithms (JWA) > 4.3. Key Encryption with RSAES OAEP
https://tools.ietf.org/html/rfc7518#section-4.3 -
openssl - What is a difference between RSA-OAEP and RSAES-OAEP? - Stack Overflow
https://stackoverflow.com/questions/54412865/what-is-a-difference-between-rsa-oaep-and-rsaes-oaep -
OpenTouryo/JWE_RsaOaepAesGcm.cs at develop · OpenTouryoProject/OpenTouryo
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Public/Security/JWE_RsaOaepAesGcm.cs
.NETã®çœ²åã»æå·åã¢ã«ãŽãªãºã ã®çœ²åã»æå·åã¢ã«ãŽãªãºã ã
䜿çšãããšè¯ãã
è£è¶³: JWS 以äžã«ãJWE ã®èªäœã¯å§ããããªãã
AEAD ã®äœ¿ãæ¹ãIV ã®ç®¡çãããã£ã³ã° ãªã©ã¯ã«ã®åé¿ãªã©ã
誀ããšå³åº§ã«ç Žç¶»ããèŠçŽ ãå€ãã
.NET ãªãMicrosoft.IdentityModel.JsonWebTokensã
ããã㯠jose-jwt ã®ãããªå®çžŸã®ããã©ã€ãã©ãªã䜿ãã
-
RFC 7516 - JSON Web Encryption (JWE)
https://tools.ietf.org/html/rfc7516 -
jose-jwtïŒã©ã€ãã©ãªïŒ
-
- JWA - JWEçšïŒJWAïŒ
- .NETã®çœ²åã»æå·åã¢ã«ãŽãªãºã
Tags: ç§»è¡, ITåœéæšæº, ããã°ã©ãã³ã°, éä¿¡æè¡, èªèšŒåºç€, ã¯ã¬ãŒã ããŒã¹èªèšŒ, æå·å