A型システムエンジニアの勉強メモ

情報処理試験の午前問題をネタにして、解説をじっくり書きながら勉強しています。基礎は大事。

広告

基本情報技術者試験 平成31年度 春期 午前 問37

パスワードリスト攻撃などの不正アクセス手法についての問題。

パスワードのオススメの作り方なども。

 

--------------------------

基本情報技術者試験

平成31年度 春期 午前 問37

 

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

 

辞書にある単語をパスワードに設定している利用者がいる状況に着目して、攻撃対象とする利用者 ID を一つ定め、辞書にある単語やその組合せをパスワードとして、ログインを試行する。

 

パスワードの文字数の上限が小さい Web サイトに対して、攻撃対象とする利用者 ID を一つ定め、文字を組み合わせたパスワードを総当たりして、ログインを試行する。

 

複数サイトで同一の利用者 ID とパスワードを使っている利用者がいる状況に着目して、不正に取得した他サイトの利用者 ID とパスワードの一覧表を用いて、ログインを試行する。

 

よく用いられるパスワードを一つ定め、文字を組み合わせた利用者 ID を総当たりして、ログインを試行する。

--------------------------

解説

 

 

パスワードリスト攻撃とあるので、パスワードの一覧表みたいなものがあるはず。

該当する選択肢はア(辞書というリスト)とウ(ID とパスワードの一覧というリスト)。イとエは適当な総当たりでやっている。

 

これだけで前提知識なくとも問題には 50% の確率で正答できる(はず?)。

 

 

先に正解を書いてしまうと、選択肢ウが正解のパスワードリスト攻撃

セキュリティの緩いサイトから流出した ID とパスワードの組合せの一覧を悪用する。

同じ ID とパスワードの組合せを複数のサイトで使いまわすユーザが多いという状況を突いている。

思い当たる人は、不正アクセスのニュースが流れた場合に自分の使っているサイトのことでないか要チェック。

 

 

選択肢アは辞書攻撃と呼ばれるもの。

完全にランダムなパスワードを使っているユーザは少なく、辞書にのっているような単語を利用しているユーザが多くいる。という状況が悪用されている。

辞書にのっている単語を利用するので、そのまま辞書攻撃という名称。

 

 

選択肢イは力業で文字を組み合わせて総当たりで攻撃するもので、そのまま総当たり攻撃、もしくはブルートフォースアタック(Brute-force attack)と呼ばれる。

Brute-force で強引な、力任せ、といった意味らしい。

総当たり攻撃によってサーバの負荷が高まりサイトの応答が重くなってしまうこともあるので、サイト運営者にとっては複数の理由で厄介なものとなる。

 

 

多くのサイトでは何度もパスワードを間違えると ID がロックされるため、パスワードをしっかり設定していれば辞書攻撃やブルートフォース攻撃の餌食にはならない(ID が知らないところでロックされるのは非常に迷惑であるけど)。

選択肢エはこの ID がロックされることを回避した攻撃方法で、逆総当たり攻撃、リバースブルートフォースなどと呼ばれる。

攻撃の度に ID の方を変えているので、ロックされることがなくなってしまう。

 

 

パスワードを簡単にすると、覚えやすいけど不正利用の可能性が高くなる。

パスワードを複雑にすると、不正利用は抑えられるけど覚えにくく面倒になる。

 

 

最近ではパスワードを定期的に変更 "しない" ようにと言われている。

これは定期的な変更を要求するとパスワードを簡単なものにしたり紙にメモすることが増えてしまい、逆に不正利用のリスクが高まってしまうことが要因。

 

ただし、複数のサイトで同じパスワードを使いまわさない、簡単なパスワードは使わない、パスワードを紙に書いて置いておかない、といった他の指針も含めて守ることが前提である。

"パスワードは定期的に変更しないでいい" という都合の良い部分だけを抜き出して言ってはいけない

 

 

パスワードの設定方法について役立ちそうな情報があるのでご紹介。

自分の好きな文字列と、各サイト毎で追加する文字列の作成ルールの 2 つだけを覚えるというもの。

自分の好きな文字列はある程度ランダムであればOK。

いい例ではないけど passw0rd としておく。よく見かける o(オー)を 0(ゼロ)にしたもの。

各サイトで追加する文字列の作成ルールとは例えば以下のようなもの。

 

"【 _ 】【サイトの文字数】【サイトの頭文字を大文字】【好きな固定文字 】【 _ 】"

 

例えば Hatena であれば _6Hx_。rakuten であれば _7Rx_ となる。

これを自分の好きな文字列の前にくっつけると、_6Hx_passw0rd とか _7Rx_passw0rd といったパスワードが作れる。

ランダムな文字列であり、サイト毎に異なり、ある程度のパスワード長も確保できる。一方で覚えるものは好きな文字列とルールの 2 つのみなので覚えやすい。

ルールを難しくしすぎると結局大変になるので、そこは適度に。

 

 

前後の問題はこちら。