امنیت JWS و JWE در سامانه مودیان
چگونه سامانه مودیان از JWS و JWE برای امنیت استفاده میکند؟ الگوریتمها و نحوه پیادهسازی
## مقدمه
سامانه مودیان از دو پروتکل رمزنگاری برای امنیت استفاده میکند: JWS (برای امضا) و JWE (برای رمزنگاری).
JWS - JSON Web Signature
JWS برای امضای درخواستها استفاده میشود:
header.payload.signatureالگوریتم: RS256 (RSA-SHA256)
هدرها: - alg: RS256 - typ: jose - cty: text/plain - crit: [sigT] - sigT: 2024-01-01T12:00:00Z - x5c: [base64-der-cert]
JWE - JSON Web Encryption
JWE برای رمزنگاری محتوا استفاده میشود:
الگوریتمها: - alg: RSA-OAEP-256 (رمزنگاری کلید) - enc: A256GCM (رمزنگاری محتوا)
ساختار: ``` header.encrypted_key.iv.ciphertext.tag ```
جریان کامل
1. دریافت nonce از /nonce 2. ساخت TokenModel و امضا با JWS 3. دریافت کلید عمومی سرور از /server-information 4. ساخت پکت: { header, payload: JWE(invoice) } 5. ارسال پکتها به /invoice
نتیجه
مودیفاکتور این فرآیند را به صورت کامل پیادهسازی کرده است.