JWTトークンを使用してApiに接続するjavascriptクライアントを作成していました。サーバー側には問題はありません。トークンに署名して後で署名を検証し、誰もトークンを改ざんしないようにすることができます。JWTトークン署名検証javacript
しかし、これはクライアント側でどのように行うのですか。私はJWTトークンをデコードし、ヘッダー、ペイロードと署名を見ることができます。しかし、どのように私はクライアントのサイトで署名を確認するのですか?このためのライブラリはありますか?公開鍵をクライアントにどのように転送しますか?
署名を確認しないと、トークンが改ざんされていないことをどのように知ることができますか?
中間の攻撃を行った人にSSLがどのように役立つのでしょうか?攻撃者が有効な証明書を持っている場合、私はその人の真ん中をサーバーであると信じています。一方、中央の人には、JWTトークンに署名するために必要な秘密鍵がありません。私がトークンを検証すると、トークンが正しいサーバーからのものではないことがわかります。 – Arno
SSL/TLSを使用すると、クライアント/ブラウザには、受け入れられた認証局とのトラストストアがあります。 **信頼できるCAが発行しないため、偽の証明書を生成しようとすると、発行者の証明書がトラストストアに存在しないため、クライアントはそれを拒否するため、攻撃者はホスト名に有効な証明書を提示できません。 – pedrofb
私が答えて言ったように、MITM攻撃(HTTPSなし)を使用すると、攻撃者は信頼できるサーバーからの有効なトークンを取得し、不正な操作を実行するためにそれを使用できます。 **盗まれたトークンが有効であるため、攻撃者はトークンを変更する必要はありません**。どの認証システムでも、これを避けるためにチャネルを保護する必要があります – pedrofb