1

JSON Web 暗号化を使用するために、 Java nimbus-JOSEのこの素晴らしいライブラリを見つけました。このライブラリはシンプルで、以下に示す JWE 暗号化のように、JWE 暗号化と復号化に数行しか必要ありません。

EncryptedJWT jwt = new EncryptedJWT(header, builder.build());
  RSAEncrypter encrypter = new RSAEncrypter((RSAPublicKey) keyProvider.getDefaultPublicKey());
  try {
    jwt.encrypt(encrypter);
  } catch (JOSEException e) {
    throw new RuntimeException("Failed to generate encrypted token", e);
  return jwt.serialize();

ただし、javadocs とドキュメントを読んだ後でも、このライブラリについていくつか質問がありました。特にJWEとこのライブラリに関しては、

  1. JWE を復号化した後、JWE の真正性をどのように検証しますか? JWE には「署名」がありません。では、JWE の 5 つの部分はどのように有効性を確認するのに役立ちますか? ライブラリでこれに対するサポートはありますか?
  2. ヘッダーとクレーム以外の JWT の他のフィールドは、ライブラリによってランダムに生成されますか? (これについて明確な証拠を見つけることができませんでした。)
  3. alg: "RSA-OAEP", enc: "A128GCM" を使用すると、暗号化するたびに異なる JWE を取得するはずですが、同じ JWE を取得しています。RSA-OEAP-256 はこれを防ぐべきではありませんか? 暗号化と復号化フローの詳細なシーケンスは何ですか?
  4. Javascript で同様のライブラリを見つけようとしましたが、Java 用の nimbus-jose のようなライブラリを見つけることができませんでした。誰かが推奨事項を持っている場合は、以下で助けてください! 私の質問を手伝ってくれる人に感謝します。すべての入力を歓迎します。:)
4

0 に答える 0