アカウントのロックとパスワードの決まり 情報セキュリティマネジメント試験の対策と IPA の過去問

情報セキュリティマネジメント試験25分で解いて動かせます

ブルートフォース攻撃、リバースブルートフォース攻撃、パスワードリスト攻撃の違いと、アカウントのロックが効く相手と効かない相手を IPA の過去問 6 問で確かめ、ログインの記録からロックを掛ける関数と、パスワードの組み合わせの数の計算を手で動かします。

文 ゆめさくコード編集部公開 2026年10月29日更新 2026年10月29日

ブルートフォース攻撃 (総当たり攻撃) は、1 つの ID に対して、ありうるパスワードを次々に試してログインを破ろうとする攻撃です。守りの柱は、試せる回数を絞るアカウントのロックと、組み合わせの数を増やすパスワードの決まりの 2 つ。ただしロックは、漏れた組を使うパスワードリスト攻撃には効きにくく、多要素認証などを重ねます。

受かる知識を、仕事の手の動きに変える

情報セキュリティマネジメント試験では、ログインを破ろうとする手口の名前と、その守り方がくり返し問われます。この頁では、IPA が公開している過去問 6 問を解きながら、同じ知識を 2 つの演習で手に移します。ログインの記録を読んでロックを掛ける関数を書くことと、パスワードの決まりの強さを計算で比べることです。

この頁で押さえる 3 つ
  • 3 つの手口の違いは、何を 1 つに決めて、何を次々に変えるか
  • アカウントのロックは、1 つの ID への総当たりをほとんど進まなくする。リスト型とリバース型には効きにくい
  • 試せる回数を絞ったうえで、パスワードの長さと文字の種類で組み合わせの数を増やす
ログインを破ろうとする 3 つの手口ブルートフォース攻撃はパスワードを総当たり、リバースブルートフォース攻撃は ID を総当たり、パスワードリスト攻撃はよそから漏れた組をそのまま試すログインを破ろうとする、3 つの手口確かめる人ブルートフォース攻撃ID を 1 つ決めてパスワードを次々に総当たりリバースブルートフォース攻撃パスワードを 1 つ決めてID を次々に総当たりパスワードリスト攻撃よそから漏れたID とパスワードの組を試す
ログインを破ろうとする 3 つの手口ブルートフォース攻撃はパスワードを総当たり、リバースブルートフォース攻撃は ID を総当たり、パスワードリスト攻撃はよそから漏れた組をそのまま試すログインを破る 3 つの手口ブルートフォース攻撃ID を 1 つ決めてパスワードを次々に総当たりリバースブルートフォース攻撃パスワードを 1 つ決めてID を次々に総当たりパスワードリスト攻撃よそから漏れたID とパスワードの組を試す

過去問で確かめる

ここでは情報セキュリティマネジメント試験の 4 問で、手口の名前を確かめます。ロックを直接問う 2 問は、ロックの節のあとに置きました。こちらは同じ IPA の ITパスポート試験の問題です。問題文と選択肢は IPA の問題冊子のとおりで、手を入れていません。正解は同じ回の解答例で確かめました。解説はゆめさくが書いたものです。選んでから「答え合わせ」を押すと、正誤と解説が出ます。

過去問 1 パスワードリスト攻撃の手口

パスワードリスト攻撃の手口に該当するものはどれか。

選んでから押してください

出典:平成28年度 春期 情報セキュリティマネジメント試験 午前 問26(問題冊子の PDF)

過去問 2 リバースブルートフォース攻撃

リバースブルートフォース攻撃に該当するものはどれか。

選んでから押してください

出典:令和元年度 秋期 情報セキュリティマネジメント試験 午前 問19(問題冊子の PDF)

過去問 3 使い回しを狙う攻撃の名前

特定のサービスやシステムから流出した認証情報を攻撃者が用いて,認証情報を複数のサービスやシステムで使い回している利用者のアカウントへのログインを試みる攻撃はどれか。

選んでから押してください

出典:平成31年度 春期 情報セキュリティマネジメント試験 午前 問16(問題冊子の PDF)

過去問 4 暗号解読のブルートフォース攻撃

暗号解読の手法のうち,ブルートフォース攻撃はどれか。

選んでから押してください

出典:平成30年度 春期 情報セキュリティマネジメント試験 午前 問27(問題冊子の PDF)

ほかに出る手口の名前

上の 3 つのほかに、試験と仕事でよく出る名前が 3 つあります。どれも、何を試し、何を使うかで見分けます。

  • 辞書攻撃。辞書の単語や、よく使われるパスワードを、パスワードとして順に試す。全部の組み合わせを試すより数がずっと少なくて済むので、覚えやすい単語のパスワードが先に当たる。過去問 1 のアがこれ
  • ハイブリッド攻撃。辞書の単語に、数字や記号を足した形を試す。単語のあとに年や「!」を付けただけのパスワードが弱いのはこのため
  • レインボーテーブル攻撃。漏れたハッシュ値から元のパスワードを、前もって作った対応表で探す。ログインを試す攻撃ではないので、ロックは効かない。守りは、保存するときにパスワードごとに違う値 (ソルト) を足し、計算に時間のかかるハッシュ関数を使うこと (OWASP Password Storage Cheat Sheet)。過去問 3 のエの「レインボー攻撃」は、この手口を指す

ロックは何をしているのか

同じ ID でパスワードの誤りが決まった回数に達したら、その ID をしばらく使えなくする。これがアカウントのロック (ロックアウト) です。数え方は「続けて何回」や「何分の間に何回」など、サービスごとに決めます。総当たりは「何度でも試せる」ことに頼った攻撃なので、試せる回数を絞ると、進みが大きく落ちます。

アカウントのロックで総当たりが進まなくなるロックが無いと総当たりは止まらず、いつか当たる。失敗が 5 回続いたら 15 分止めるロックを足すと、試せる回数が大きく減り、総当たりがほとんど進まなくなるロックを足すと、総当たりがほとんど進まないロックが無いと0000 ちがう0001 ちがう0002 ちがう…止めないのでいつか当たってしまうロックを足すと0000 ちがう0001 ちがう… 0004 ちがう 5 回目ここで 15 分止める
アカウントのロックで総当たりが進まなくなるロックが無いと総当たりは止まらず、いつか当たる。失敗が 5 回続いたら 15 分止めるロックを足すと、試せる回数が大きく減り、総当たりがほとんど進まなくなるロックで総当たりが進まないロックが無いと0000 ちがう0001 ちがう0002 ちがう…止めないのでいつか当たってしまうロックを足すと0000 ちがう0001 ちがう… 0004 ちがう 5 回目ここで 15 分止める

何回で止め、何分止めるかは、使い勝手とのつり合いで決めます。たとえば Microsoft は、Windows の組み込みの管理者アカウントのロックについて、リモートデスクトップのようなネットワーク経由のログインについて、10 分の間に 10 回失敗したら 10 分止める設定を基準の推奨として挙げています (KB5020282)。

止め方にも注意が要ります。失敗を送り元の IP アドレスで数えると、攻撃者は送り元を替えるだけで数を逃れます。そのため OWASP は、失敗の数を ID のほうに結び付けるよう勧めています。逆に、他人の ID をわざと失敗させて止める嫌がらせにも使えます。OWASP は、止まっている間もパスワードを忘れたときの手続きからは入れるようにしておく方法を挙げています。止める時間を固定にせず、失敗が重なるたびに延ばしていく決め方もあります (OWASP Authentication Cheat Sheet)。

ロックを直接問う過去問

ロックの問題は、「この対策が最も効く攻撃はどれか」の形で出ます。次の 2 問は ITパスポート試験の問題です。情報セキュリティマネジメント試験の対策としても、同じ知識で解けます。

過去問 5 ロックが最もよく効く攻撃

Web サーバの認証において,同じ利用者 ID に対してパスワードの誤りがあらかじめ定められた回数連続して発生した場合に,その利用者 ID を自動的に一定期間利用停止にするセキュリティ対策を行った。この対策によって,最も防御の効果が期待できる攻撃はどれか。

選んでから押してください

出典:平成29年度 春期 ITパスポート試験 問81(問題冊子の PDF)

過去問 6 ID を止める守りが効く攻撃

情報システムに対する攻撃のうち,ある ID に対して所定の回数を超えてパスワードの入力を間違えたとき,当該 ID の使用を停止させることが有効な防衛手段となるものはどれか。

選んでから押してください

出典:平成28年度 秋期 ITパスポート試験 問83(問題冊子の PDF)

演習 1 ログインの記録から、止める利用者を出す

あなたはサーバーの運用担当です。ログインの記録から、次の決まりで止まる利用者を出す関数 findLocks を書いてください。

  • 同じ利用者の失敗が 5 回続いたら、5 回目の失敗の時刻から 15 分、その利用者のログインを止める
  • 解ける時刻は、止まった時刻の 15 分後。その時刻ちょうどから、また受け付ける
  • 止まっている間の試みは受け付けないので、成功でも失敗でも数えない
  • 成功したら、その利用者の失敗の数は 0 に戻る。止めたときも 0 に戻し、解けたら 0 から数える
  • 記録は時刻の順に並んでいる。1 件は { user, ok, at } で、at は "09:05" の形
  • 返すのは { user, lockedAt, unlockAt } の並びで、止まった順。欄はこの順に書く

時刻を分に直す toMinutes と、分を時刻に戻す toHHMM は、書き始めに入れてあります。

lockout.js

// "09:05" のような時刻を、0 時からの分 (545) にする
function toMinutes(hhmm) {
  const [h, m] = hhmm.split(":").map(Number);
  return h * 60 + m;
}

// 0 時からの分 (545) を、"09:05" の形に戻す
function toHHMM(minutes) {
  const h = String(Math.floor(minutes / 60)).padStart(2, "0");
  const m = String(minutes % 60).padStart(2, "0");
  return `${h}:${m}`;
}

// logs は時刻の順に並んだログインの記録。1 件は { user, ok, at }
// 止まった利用者を { user, lockedAt, unlockAt } の形で、止まった順に返す
function findLocks(logs) {
  const locks = [];
  // ここに書く

  return locks;
}
できているか0 / 5押すと、5 つのテストに掛けた結果をここに出します。書いた物はどこにも送りません
  • 5 回続けて失敗すると、15 分止まる
  • 途中で成功したら、失敗は 0 から数え直す
  • 別の利用者の失敗は、別に数える
  • 止まっている間の試みは数えない
  • 解ける時刻ちょうどから受け付け、また 5 回で止まる

ロックだけでは足りない

ロックだけでは足りない、使い回しとリスト型パスワードリスト攻撃は 1 つの ID につき漏れた組を 1 回試すだけなので、失敗が積もらずロックに掛かりにくい。使い回しをやめ、多要素認証を足して守るロックだけでは、使い回しとリスト型を防げないリスト型は、1 つの ID につき漏れた組を 1 回だけ試す失敗が積もらず、ロックに掛かりにくい守り方パスワードを使い回さない多要素認証を足す確かめる人
ロックだけでは足りない、使い回しとリスト型パスワードリスト攻撃は 1 つの ID につき漏れた組を 1 回試すだけなので、失敗が積もらずロックに掛かりにくい。使い回しをやめ、多要素認証を足して守るロックだけでは足りないリスト型は 1 つの ID に漏れた組を 1 回だけ試す失敗が積もらないのでロックに掛かりにくい守り方パスワードを使い回さない多要素認証を足す

パスワードリスト攻撃は、よそのサイトから漏れた ID とパスワードの組を、1 つの ID に 1 回ずつ試します。同じ組を使い回している人なら 1 回目で当たるので、失敗が 5 回積もる前に入られます。リバースブルートフォース攻撃も、よくあるパスワードを多くの ID に少しずつ試すパスワードスプレー攻撃も、ID ごとに見れば失敗が少なく、ロックの回数に届きにくいのです。演習 1 の関数に、ID ごとに 1 回ずつ失敗する記録を入れても、1 人も止まりません。

守る側は、ロックのほかに次のものを重ねます。

  • パスワードのほかにもう 1 つの要素で確かめる多要素認証を入れる。OWASP は、リスト型やパスワードスプレーを含む多くの攻撃に対して、多要素認証が飛び抜けて良い守りだとしています (Credential Stuffing Prevention Cheat Sheet)
  • よくあるパスワードと、過去に漏れたことが知られているパスワードを、登録の時点で断る。利用者には使い回さないでもらう
  • 何回か失敗したあとに、人の操作かを確かめる問い (CAPTCHA) を出す。機械で解かれる物もあるので、ほかの守りに重ねる 1 枚として使う
  • ログインの失敗を全部記録し、見直す。1 つの ID の失敗だけを数える見張りは、パスワードスプレーを見逃す

2 つ目から 4 つ目は、OWASP の Authentication Cheat Sheet の勧め (よくあるパスワードと漏れたパスワードを断る、CAPTCHA、記録と見張り) に沿っています。

演習 2 パスワードの決まりを、組み合わせの数で比べる

パスワードの取りうる組み合わせの数は、使える文字の種類の数を、長さの回数だけ掛けた数です。数字 4 桁なら 10 × 10 × 10 × 10 で 1 万通りです。

下のコードは、いくつかの決まりについてこの数を出し、1 時間に 5 回までしか試せない仕組みのとき、全部を試し終えるまでにどれだけかかるかを計算します。表は、このコードを動かした結果をそのまま並べたものです。決まりや回数を書き換えて「実行」を押すと、表もその結果に替わります。

javascript実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

コードを動かして、表を作っています

表の読み方で、試験にも仕事にも効くことが 4 つあります。

  • 長さを 1 字増やすと、組み合わせの数に文字の種類の数が掛かる (英小文字なら 26 倍)。表でも、英大小と数字の 8 字より、英小文字だけの 12 字のほうが組み合わせが多い
  • 表の時間は全部を試し終えるまでの時間で、当たるまでの時間は運しだい。平均すると、その半分ほどで当たる
  • 表の数は、文字をでたらめに選んだときの話。人が決めたパスワードは、よくある単語や並びから先に試されるので、ずっと早く当たることがある。上の「登録の時点で断る」が要るのはこのため
  • この計算は、ロックで試せる回数を絞った場合の話。保存してあるパスワードのハッシュ値が漏れると、攻撃者は手元の計算機で回数の制限なく試せる。だからロックがあっても、長さは要る

仕事で決まりを作るときは、長さを優先します。OWASP は、短すぎるパスワードを断る一方で、大文字や記号を必ず混ぜさせる決まりは置かず、どの文字も使えるようにするよう勧めています (Authentication Cheat Sheet)。試験で「文字の種類を増やす」が正解になるのは、使える文字の種類が増えると組み合わせの数が増える、という計算の話です。

演習 1 の決まり (5 回で 15 分止める) なら、長い目で見て 1 時間に 20 回ほど試せます。コードの triesPerHour を 20 にすると、表の時間はおよそ 4 分の 1 になります。

受かったあとの道

試験に受かったあと、ここで覚えたことを仕事の手に移していくための頁です。気になったものから開いてください。

資格を仕事につなげるなら、転職ロードマップで目指す仕事と順番を確かめられます。セキュリティの仕事が自分に合うかは、転職診断で確かめられます。