令和7年春の過去問の問3の解説をします。
題材はスマートフォンアプリケーションの脆弱性です。
では早速解説に移ります。
【情報処理安全確保支援士 オススメ書籍】
セキュリティについてが細かく解説されています。
テキストで学習した後すぐに問題を解ける構成になっているので効率よく勉強できます。
また午後問題もいくつか掲載されていて、解説までついてきます。
ダウンロード特典もあるので非常にオススメの一冊!!
問1
(1)アクセスキーの取得方法(HTTP通信)
HTTPリクエストのAuthorizationヘッダーから取得する
Authorizationとは、ユーザーやクライアントが特定のリソースにアクセスする権限を持っているかを確認する仕組み。
HTTP通信を盗聴することによって、Authorizationヘッダーに設定されている平文のアクセスキーを取得することが可能となります。
(2)アプリ内保存されたアクセスキーの取得方法
Fアプリを解析し、保存されている暗号化されたアクセスキーと、共通鍵・初期ベクトルを取得して復号する
Fアプリ内に共通鍵と初期ベクトルがFアプリのコード中に定数として定義されているため、復号が可能となります。
(3)全利用者の写真をダウンロードする方法
Authorizationヘッダーにアクセスキーを指定し、ファイル名を0000001から順に変化させてGETリクエストを繰り返す
10進数の連番で注文番号が設定されているので連番で全てを取得することができる。
(4)細工されたURLの例
https://www.a-sha.co.jp.k-sha.co.jp
「a-sha.co.jp」で始まることのみを確認しているので、サブドメインを悪用すれば攻撃者のサイトへ誘導することができる。
問2
(1)SubjectAlternativeNameの値
www.a-sha.co.jp
SubjectAlternativeName(SAN)とは、証明書が有効なドメイン名を示す拡張フィールドです。
証明書SANにはFアプリが接続するCサービスのドメインを設定する必要がある。
(2)a〜h:TLS通信の流れ
| ステップ | 内容 | 解説 |
| a | CONNECTリクエスト | プロキシ経由でHTTPS通信を開始するためのトンネル要求 |
| b | 200 Connection Established | プロキシがトンネル確立を許可 |
| c | ClientHello | TLSハンドシェイク開始。暗号スイートやSNIを送信 |
| d | ServerHello | サーバ応答。証明書や暗号方式を提示 |
| e | Certificate | サーバのX.509証明書を送信 |
| f | CertificateVerify | サーバが証明書の所有者であることを証明 |
| g | Finished | ハンドシェイク完了。暗号化通信開始 |
| h | HTTPリクエスト | TLSで暗号化された通信が始まり、アプリがAPIを呼び出す |
(3)通信解析ツールの設定内容
通信解析ツールのプライベート証明書を信頼するルート証明書としてインストールする
HTTPS通信を傍受するにはツールが発行する証明書を端末に信頼させる必要あり。
スマホにルート証明書をインストールして信頼済み証明書とする。
これにより、通信解析ツールでテストを行える。
問3
署名付きURLはどのタイミングで生成されるか?
(い)
署名つきURLはファイル名が確定してから暗号化する。
署名はクライアント側ではなく、Webサーバ側で行うため(い)が正解。
(う)や(え)では署名が遅すぎるし、そもそもクライアント側で暗号化してはならない。
注文番号が確定 → ファイル名が決定 → A社Webサーバが署名付きURLを生成 → Fアプリに通知
問4
(1)フィッシングサイトに気付かずアクセスしてしまう問題点
URLを確認する手段がない
WebViewにはブラウザと違ってURLが表示されません。
なので、フィッシングサイトとに誘導されてもそのサイトのURLが確認できないため問題となります。
(2)フィッシングサイトへの対策
WebViewを呼び出す前にURLを確認する
WebViewではURLが表示されないため、WebViewを呼び出す前にURLを確認すれば、フィッシングサイトへの誘導を阻止できます。
関連記事

コメント