けんぼーは留年生

Twitterに書ききれないこととか

続・僕の考えた最強のパスワード

昨日こんな記事を書いたけど
僕の考えた最強のパスワード - けんぼーは留年生
今ひとつとっ散らかっているのでもう一度整理したい。
まずは当たり前の話から。

パスワードは何のためにあるか

これは個人を見分けるためだ。Aさんにだけ見せたい情報があったらAさんしか知らない合言葉を聞き出せば良い。それがパスワードだ。

パスワードは私しか知らない

個人を見分ける物なのだから他人も知っていたら意味が無い。例えばキーボードの配置とか恋人の名前とか車のナンバープレートとか、他人も知り得る情報をパスワードのヒントにするのは辞めるべきだ。あまり考えたくはないが、貴方の周囲に悪意を持つ人が現れないとも限らないし、パスワードを調べるために貴方の身辺調査をする人もいるかもしれない。最悪の場合を想定しよう。

パスワードは流出する

パスワードを照合するにはサービス提供側もパスワードを知る必要がある。尤も直接知っていたら先の「パスワードは私しか知らない」に反するので、良い感じに暗号化(ハッシュ化)して元のパスワードが分からないように保管している。これで万一パスワードが漏れても大丈夫……のはずだったが、実際にはパスワードのパターン数は有限なわけで片っ端から総当りをかけていけばいつかパスワードはバレてしまう。それにサービス提供者の中にはアホな人もいてパスワードを平文で保存しているかもしれない。パスワードが流出するような事態はそう頻繁に起こるわけではないが、それでも沢山のサービスを使用していればそのリスクは上がる。全てが流出する可能性は低いかもしれないが、1つ2つくらいなら流出してもおかしくないという心構えが必要だ。

だからパスワードは使い回し出来ない

パスワードは流出するのだからもし、同じパスワードや容易に類推出来るようなパスワードはNGだ。

単純な物もダメ

総当りで計算する場合、攻撃者はもちろん単純で組み合わせの少ないパスワードから試す。従ってパスワードは単純であればある程危険だ。なるべく大文字小文字数字記号を混ぜて複雑で意味不明で長い文字列にするべきだ。英単語やローマ字なんて論外だし、それを多少別の文字で置き換えたくらいでは安全とは言えない。

定期的に変えたい

パスワードが流出した際、即座にそれが感知出来るとは限らない。見つからないようにこっそり情報だけ取り出して監視している場合も考えられる。これを回避するには定期的なパスワードの更新が必要だ。

パスワードは覚えられない

さて、先述の三点を組み合わせると私たちはサービス毎に複雑なパスワードを覚えなければならない上に、それを定期的に変更する必要がある。そんなのは無茶な話だ。

解決策1:パスワード管理ソフト

ランダムパスワードを生成し、それを保管してくれるものだ。マスターパスワードを1つ覚えればそれだけで無数のランダムパスワードを管理することが出来る。例え1つが流出しても他のパスワードは無関係なので問題無い。変更も容易だ。定期的な変更を促すためにタイマー付の物もあるらしい。もちろんどのソフトにするかはしっかり考え選ばないといけない。物によってはパスワードの暗号が弱く解読されてしまうような物もあるかもしれないし、入力したパスワードを横流しする悪意のあるソフトもあるだろう。暗号方式の確認と出来ればオープンソースの物が良いだろう。自作するのが一番確実だ。ただし、保管しているデータ自体が破損すれば二度とパスワードは戻らない。

解決策2:僕の考えた最強のパスワード

ハッシュを介して単純なキーワードからパスワードを計算する。要するにパスワードの作り方とその種」を覚えておく方法だ。ハッシュ関数を使えばパスワードが漏れてもそこから元のパスワードの種を特定することは困難だ。種に日付や年を表す文字を追加すれば定期的に変更することも容易だ。見た目はランダムパスワードと変わらない。自分が種となるキーワードとパスワードの計算手順を忘れさえしなければ、例えパソコンが吹っ飛んでもパスワードは守られる。ただ、パスワードが逆算されるリスクは排除出来ないしそう考えると前述の管理ソフトの方がセキュリティ性は高い気がする。

わざわざソフト作る・探す・使うの面倒くさいんだけど

別にパスワード流出しても構わないと言うのであればどうぞ。と言いたいところだけど場合によっては他人の情報も巻き添え食って流出するリスクあるので手間かけてください。パスワード管理ソフトなら自動入力してくれる物あります。むしろ自分で入力するより楽なはずです。


結論:パスワードは大切にね