技術ブログスマートフォン用の表示で見るまったり技術ブログ主にWebエンジニア向けのセキュリティ情報。更新履歴はじめに前回に引き続き「jwt-go」でいろいろ試してみます。今回は署名アルゴリズムを改ざんして送信したときの挙動を確認していきます。署名アルゴリズムを改ざんなぜこんなことを試すのかというと、トークン内の署名アルゴリズムを改ざんしてリクエストを送信したときに改ざん後の署名アルゴリズムで署名の検証が行われる実装があるようです。詳しくは下記の記事を参照下さい。oauth.jpjwt-goでは署名アルゴリズムを改竄して送信したときにどのような動作をするのかを確認していきます。確認に使うソースコードは前回と同様です。144{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ2OTM4NDgsInVzZXIiOiLjgrLjgrnjg4gifQ.iTEWurGMvi1d90yMW0OnqbQ0QDEyB-UD4TmYF9YQXYY"}トークンヘッダの署名アルゴリスムを改ざんします。改ざん後の署名アルゴリズムが適用されず、署名の検証には失敗しました。トークン発行時「SHA256」、検証には「none」"none"にするため、ソースコードの下記の部分を変更します。」さん"}署名の検証が行われていないことがわかる。おまけちなみに署名アルゴリズムをnoneに指定した状態で、シグネチャを付与しリクエストを送信した場合は、以下のようなエラーになりました。signature"}"none"場合はシグネチャを付与するなと怒られました。allowed"}エラーになりました。トークンの発行時に署名アルゴリズムに"none"が指定されたというのは、検証時には関係ありませんでした。結論:検証は検証時に使用する署名アルゴリズムに依存するようです。(noneは指定するな。指定するための「UnsafeAllowNoneSignatureType」というワードはいかにも怪しいが・・・。次はもっとセキュリティ色の強い記事を書きたい...。Tokenの説明は下記の記事を参照。週間)Webエンジニアです。セキュリティ記事まとめ作ったWebサービスセキュリティニュースを5分間隔で収集します。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。