2016-08-18 10 views
0

古いスキームでは、トークン全体を暗号化せずに対称暗号化でデジタル署名していましたが、最初は非対称キーに移動し、次に署名するのではなくトークンを暗号化します。受信者側でトークンの主要な構造を復元するときに復号を成功させると、トークンの真正性が証明され、署名された場合よりも弱い保証が保証されますか?JWTトークンの復号化に成功すると、メッセージの真正性が保証され、署名が無駄になりますか?

答えて

1

暗号化は、意図しない受信者によってペイロードが読み取られないように保護します。 悪質な当事者によって改ざんされないよう保護していません。

は、一般的にはDigital certificates: What is the difference between encrypting and signing

+0

大丈夫、悪意のあるユーザー(ユーザー)が受信者のサイトのユーザーパネルで復号化の結果を間接的に見ることができ、受信者に渡される暗号化された文字列を操作できるとします。しかし、彼は暗号化キーを持っていません。受信者の鍵が公開されたと見なすことさえできます。しかし、暗号化された文字列を強要するユーザの唯一の方法は、復号化されたときにユーザーフレンドリな内容の別のjwtトークンを取得することですか? – user3358365

+1

@ user3358363:ほとんどの非対称暗号化方式では、受信者の秘密復号鍵を知っていれば、公開暗号鍵を計算するだけで十分です。したがって、受信者の鍵が漏洩すると、セキュリティはすべて失われます。そうでない場合でも、シグネチャのない暗号化方式(または対称暗号化のためのMAC)は、通常、メッセージの完全性を保証しません。 –

+0

暗号化だけに頼っている場合、有効なトークンを生成するために秘密鍵は必要ありません。公開鍵で十分です。それによってブルートフォースを実行する必要はありません。 "有用なコンテンツ"は、いくつかの手段(クライアントコード分析、サーバに対するテストなど)によって取得できます。 –

1

を参照してください、なし、成功した復号化はないないメッセージの整合性を個別にdigital signatureまたはmessage authentication codeを使用して検証されていない場合は、メッセージが偽造や改ざんされていなかったことを証明します。基本的にすべての暗号化方式はある程度malleableであるからです。唯一の重要な例外は、authenticated encryptionスキームです。このスキームには、暗号化スキーム自体の一部としての署名またはメッセージ認証コードが含まれています。

特に、asymmetric encryptionスキームは、一般的にも、彼らは誰もがとにかく公開鍵を使用して有効なメッセージを作成できることを前提とするので、一切メッセージの整合性のいずれかの保証を提供するためにをしようとしないでください。メッセージが攻撃者によって送信(または変更)されなかったことを証明するには、署名も必要です。