もっと身近にセキュリティ

複雑なパスワードの作り方

複雑なパスワードの作り方について考えていきたいと思います。

○パスワードクラック手法
パスワードを探り当てる行為を「パスワードクラック」と呼びますが、具体的にはどのような手法があるのでしょうか?まずはこのパスワードクラックの3つの手法と対策について簡単に紹介します。

No 名称 概要 対策
1 総当たり攻撃(ブルートフォース攻撃) 考えられる文字の組合せを全パターンを検証する 英数記号混在で、文字数の長いパスワードを設定する
2 辞書攻撃(ディクショナリー攻撃) 英単語、氏名、生年月日などの意味のある文字列でパスワードを特定できないか検証する 氏名、生年月日など、容易に推測できる文字列を使用しない
3 パスワードリスト攻撃(リスト型攻撃) 別サイト等から漏えいしたID/パスワードを流用し、標的とするサービスにログインできないかを検証する 同じパスワードを使い回さない

表の「対策」列に記載されている内容は、パスワードルールとして一般的に見かける内容ですね。パスワードは複雑で、長くて、推測しづらいものが一般的に推奨されていますが、それは覚えにくく、使いづらいという欠点があります。そこで今回は、「複雑だけど、覚えやすいパスワード」の作成方法を考えてみたいと思います。皆さまのパスワード設定時のヒントになれば幸いです。

 

○複雑なパスワードの作成例
良く使われるパスワードの1つに、「password」というものがあります。単純なパスワードですが、意外と皆さんの中にも使ったことがある人が多いのではないでしょうか?今回はこの「password」を元に、次の3ステップで複雑なパスワードに作り替えてみたいと思います。

【ステップ1】アルファベットを似た文字に置き換える
【ステップ2】文字の種別を増やす(アルファベットの一部を大文字にする)
【ステップ3】文字数を増やす(先頭/末尾に記号を付ける)

 

【ステップ1】アルファベットを似た文字に入れ替える
「アルファベットと似た文字」とは、例えば、次のようなものです。

  • 「a」と「@」
  • 「s」と「$」
  • 「w」と「vv(vが2つ)」
  • 「o(オー)」と0(ゼロ)」

これらを「password」に適応させてみると、以下になります。

password → p@$$vv0rd

これだけでも、やや複雑そうな文字列になりましたね。

 

【ステップ2】 文字の種別を増やす(アルファベットの一部を大文字にする)
ステップ1の文字列は、英小文字・記号・数字が含まれていますが、英大文字が含まれていません。使用する文字の種別を増やすことは、パスワードクラック(総当たり攻撃)対策として非常に有効です。

ここでは、一部のアルファベットを大文字にしてみましょう。
先頭を大文字というのはありきたりなので、複数文字を大文字にしてみました。

p@$$vv0rd → p@$$vV0RD

 

【ステップ3】 文字数を増やす(先頭/末尾に記号等を付ける)
ステップ2の文字列でもなかなか複雑ですが、文字数が9字とやや短く、不安が残ります。

そこで適当な記号を加えて、文字数を長くしてみましょう。ここでは、先頭に「<」、末尾「>」を2つずつ加えてみました。

p@$$vV0RD → <<p@$$vV0RD>>

これで、英大文字・小文字・数字・記号が混在した13字の文字列が完成しました。とても複雑なため、推測・パスワード解析は難しそうですね。

一方、元の「password」という文字列と、ステップ1~3のルールさえ覚えていれば、簡単に導き出せるようになっているかと思います。

 

いかがでしたでしょうか?皆さんも独自のパスワード作成ルールを作って、「複雑だけど覚えやすいパスワード」を作ってみてくださいね。