若き JavaScripter の悩み

何かをdisっているときは、たいていツンデレですので大目に見てやってください。愛です。

パスワード管理ソフト「1Password」運用の勘所 #1password

f:id:devorgachem:20130921201659p:plain

パスワード管理ソフト「1Password」のiOS版(¥1,600)とMac版(¥4,300)を購入しました。今までは人力でパスワードを管理していたんですが、もはや 限界を感じていた のです。今回の記事は1Password運用の勘所と限界を書きます。

パスワード管理ソフトの運用の勘所

パスワード管理ソフトは上手に使わないと、むしろ不安全になります。運用の勘所を書いておきます。

  • マスターパスワードは入力しやすくて強力なものにする
  • ブラウザのパスワード保存はオフにする
  • パスワードを保存するときは 強さを示すゲージが大きいもの個別生成 する
  • 再発行されるパスワードを受信するメールアカウントの認証は 特に厳重 にする(いろいろなサービスで二要素認証を使うなど)
  • 保存されたパスワードを同期するとき(1Password+Dropboxなど)の認証も厳重にする(Dropboxで二要素認証を使うなど)

マスターパスワードは入力しやすく強力なものにする

マスターパスワードはなるべく強いものを選びます。覚える必要があるパスワードは1つだけなのですから、難しくはないはずです。ただ、単に強くすればいいと良いわけではなくて、入力のしやすさも考慮してあげなければいけません。 マスターパスワードは頻繁に入力するものです。入力しづらいものを設定してしまうと負担になるので、パスワードをコピーしたままにするといった不安全な運用の種になるのです。 私は入力しやすくて強いパスワードをつくるために、以下の項目に気をつけています。

  • パスワードを強くする
    • 桁数を大きくする(10~16桁程度)
    • なるべく多くの文字種を含ませる(NG: 1029475、Better: 12~OMg8
    • 使用頻度の少ない記号(^|¥など)を含ませる(NG: 145kasfje、Better: ^14kasfje
    • 文字種の連続を避ける(NG: 61937Gring、Better: 61Gring937
    • 単語、名前、生年月日でありえそうな文字列を避ける(NG: MyBirthday1231、Better: 4hllo_$WO
    • わかりやすいキーボード配列順の文字列を避ける(NG: 123qwer、Better: 312werq
  • パスワードを入力しやすくする
    • キーボード上で離れた文字を連続させすぎない(NG: AospqMnw、Better: AqwMpno
    • 連続する大文字にAZSを含めない(NG: 108XAF.+k、Better: 108XKF.+k
    • 文字種を頻繁に変えすぎない(NG: 1.K@a7d.S、Better: 17.@aKdS

連続する大文字にAZSを含めないのは、iPhoneなどのタッチデバイスでShiftキーを押したままAZSを入力することが困難だからです。

ブラウザのパスワード保存はオフにする

当然の話ですが、パスワード管理ソフトの外にもパスワードが保存されているようでは意味がありません。 ログインの度に、いちいちダイアログが出てくるのもうざいので、思い切ってオフにしてしまいましょう。

また、ブラウザのパスワード保存をオフにしても、よくあるログイン画面の「保存する」チェックをオフにしてログインするようにします。この仕組みはCookieを使っているので、ブラウザのパスワード保存機能とは関係なく動作してしまうからです。

f:id:devorgachem:20130922015929p:plain

パスワードを保存するときは強さゲージが大きくなるものを個別に生成する

パスワードを新規に保存するときには、その度にパスワードを生成するようにしましょう。 これによって、パスワードの使い回しを狙った攻撃(リスト型攻撃)を防御できるようになります。

生成されたパスワードは覚える必要性が小さいので複雑で強度の高いものにします。 16桁程度で数字x3、記号x3(出現頻度の低い記号含む)ぐらいでよいと思います。

f:id:devorgachem:20130922002238p:plain

パスワード再発行先のメールアカウントのセキュリティを厳重する

再発行されるパスワードのメールアカウントの安全性についてはかなり盲点な気がします。 攻撃の手順を考えてみると、パスワード再発行はかなり危険であることがわかります。

  1. 攻撃者がメールアカウントをのっとることができたとします
  2. メールアドレスがユーザーIDになっているサービスは多いので、有名なサービスを手当たり次第にパスワード再発行します
  3. 再発行されたパスワード(またはパスワードリセットするためのURL)が続々と送られてきます
  4. パスワードが再発行されたアカウントはすべて攻撃者がのっとり可能です

大惨事になることは容易に想像がつきますね。しかも、これらの攻撃は素早く終えることができるので、被害者が対処できる時間は長くありません。いったんメールアカウントが奪取されてしまうと、ユーザーには対処する術がないのです。 しかも、パスワード管理ソフトはこの手の攻撃に対してなんら効果がありません。メールアカウントを厳重に保護するほかないのです。

再発行されるパスワードを受信するメールアカウントの認証は 特に厳重 にしましょう。

保存されたパスワードを同期するときも(1Password+Dropboxなど)認証も厳重にする

保存されたパスワードは暗号化されていますが、時間をかければ解読できるものです。 GPUによるオフライン攻撃は高速化の一途をたどっていますから、パスワードが保存されたファイルはなんとしてでも守らなければなりません。二要素認証はよい方法のひとつです(Dropboxで二要素認証を使う)。ただし、二要素認証ではストレージサービスの事業者側からのパスワードファイル流出を防げません(実例があります:Dropboxでセキュリティ障害--一時的にパスワード不要のアクセス可能に)。パスワードファイルを端末内に留めておくことが一番よいのです。同期をするのなら、それを承知の上で、ということですね。

保存されたパスワードを同期するときには、認証を厳重にするようしましょう。

パスワード管理ソフトの限界

パスワード管理ソフトにも限界があります。

  • パスワードが保存されている端末を紛失すると、パスワード再発行の手間・危険性の両面から 大ダメージ
  • 事業者からの流出は防げない(パスワード管理ソフトは流出の深刻さを軽減するだけ)
  • キーロガーには無力
  • 保存したパスワードの同期は便利だが、パスワードファイル漏洩の可能性が強まる

また、二要素認証にも限界があるので過信は禁物です(さらにDropboxの二要素認証に回避方法が報告されているようです)。また、二要素認証を使う場合には復旧できるようによく配慮しておく必要があります。Gmail+二要素認証の場合は、アカウント復旧の設定で代替の電話番号などを登録しておけばよいでしょう。