H31春  午後1問2  設問3(3)

初心者さん  
(No.1)
「認証サーバXでオリジンbとオリジンsの確認をしているから」という回答なのですが

単純に、「秘密鍵がないと署名の検証に失敗して認証できないから」じゃだめなんですかね( ;∀;)
2023.08.27 11:52
pixさん 
SC ダイヤモンドマイスター
(No.2)
便乗となり恐縮です。
いまだにSCの過去問の解答で説明ができないものが数問あります。それが
「H31春 午後1問2 設問3(3)」です。
内容としては、『フィッシング対策としてのWebAuthnによるパスワードレス認証』
になります。

『秘密鍵がないと署名の検証に失敗して認証できないから』はよくある誤答と
なっております。
しかし正答である『認証サーバXでオリジンbとオリジンsの確認をしているから』の
具体的な手順についての説明が不明です。

攻撃はWebブラウザ - 認証サーバ間で中間者攻撃が行われると想定されます。
その際に、攻撃者がオリジンbを偽装できないことを具体的に説明ができないです。
説明のためには、WebAuthnのリクエスト&レスポンスを理解する必要があると
思われます。

どなたかWebAuthnに精通している方で、オリジンbを偽装できない理由を説明
いただけないでしょうか?
2023.08.27 12:59
通りすがりさん 
(No.3)
興味があったので調べてみました。専門ではないため間違っていたら申し訳ないです。

オーセンティケータは登録時のオリジンを記憶しているようです。
※オリジンをもとに生成されるRPIDが利用される。

そのため認証時に偽サイトにアクセスしていた場合、WEBブラウザがアクセスしているサイトのオリジンの値(オリジンb)とRPIDの検証に失敗し、オーセンティケータでエラーとなり処理が終了します。

また、RPIDの検証に異常があったにもかかわらず、何らかの理由によりオーセンティケータから認証サーバXへ送信されてしまった場合、サーバX側でもRPIDの値を検証(おそらくオリジンbとオリジンsの一致を確認の部分)して、異常があればエラーになります。

また、オリジンbに関しては、オーセンティケータが取得するオリジンbの値はブラウザが接続中のWEBサイトのオリジンの値になるため、偽サイトのオリジンになります。
その後、サーバXへデータが渡される際にオリジンbが正規の値へ改ざんがされた場合、署名Mが存在するため改ざんの検知ができます。
2023.08.30 13:17
pixさん 
SC ダイヤモンドマイスター
(No.4)
>通りすがりさん
調べていただきありがとうございます。

>また、オリジンbに関しては、オーセンティケータが取得するオリジンbの値は
>ブラウザが接続中のWEBサイトのオリジンの値になるため、偽サイトのオリジンに
>なります。
>その後、サーバXへデータが渡される際にオリジンbが正規の値へ改ざんがされた場合、
>署名Mが存在するため改ざんの検知ができます。
この流れが一番納得のいく説明と感じます。

通りすがりさんに調べていただいた件を私なりにまとめて書き出してみました。

認証サーバXでの確認・検証項目は以下3項目である
①オリジンbとオリジンsの一致を確認
②IDc、乱数c'の一致を確認
③IDcに対する効果鍵Kを選択 -> 公開鍵Kを用いて署名Mを検証

オリジンbに対する判定は以下の2つのパターンで行われる
パターン1: オリジンbの値が偽サイトの場合
(中間者攻撃で、中間者によりオリジンbの値が改ざんされていない場合)
「オリジンbとオリジンsの一致を確認」が失敗する

パターン2: オリジンbの値が正規サイトの場合
(中間者攻撃で、中間者によりよりオリジンbの値が改ざんされた場合)
「オリジンbとオリジンsの一致を確認」は成功するが、
「公開鍵Kを用いて署名Mを検証」は失敗する

以上の2パターンにより、中間者攻撃を阻止することができる。

IPAの解答例「認証サーバXでオリジンbとオリジンsの一致を確認しているから」
という文言は、この2パターンを端的かつ要約したものと考えられます。
2023.08.30 14:23
あきしけんさん 
(No.5)
勉強になりましたm(_ _)m
ありがとうございます。
2023.08.31 18:49
pixさん 
SC ダイヤモンドマイスター
(No.6)
本設問を精査していて、国語的に感じたことがあります。

本設問は以下の下線④の理由を解答するものです。
下線④「パスワードレス認証方式を利用すれば、要求2を満たすことができる」
正答:「認証サーバXでオリジンbとオリジンsの確認をしているから」
典型的な誤答:「攻撃者が署名Mを再作成するための秘密鍵を所持していないから」
正答は文章が肯定文であるのに対し、誤答は文章が否定文となっています。

下線④は「利用すれば」~「できる」という文章構造になっています。
そのため、パスワードレス認証方式で特徴となる機能である、
「認証サーバXでオリジンbとオリジンsの確認」を肯定文で解答すべきと読み取れます。

反して、誤答は「所持していないから」という否定文です。誤答は中間者攻撃で
中間者ができること・できないことが焦点の文章になっています。
これは、下線④は「利用すれば」~「できる」という文章構造に対して否定文を
解答しており、文章の関連性が乏しくポイントを外していると考えられます。

実際に解答するときに、ここまで細かく意識して文章を精査・構成するのは
大げさかもしれません。
しかし、最終的な解答文が「肯定文」か「否定文」か、そして設問の文書との
関連性が適切かは確認するくらいはするのがよいと思います。
2023.09.01 21:04

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop