今回考えてみようと思って選んだテーマは「パスワード」です。オンラインバンキングからオンラインショップ,そのほか様々なサービスにおいて,ユーザー名(時にはメールアドレス)とパスワードを使った認証はいたるところで使われています。

 なぜパスワードについて取り上げようと思ったのかといえば,Web上のサービスを利用していると,ユーザー登録を行って,ログインをしたうえで利用するものが非常に多いからです。ユーザー登録については,この連載の第9回ですでに取り上げていますが,ユーザー登録を行った後には,まず間違いなく,パスワードを利用したユーザー認証を行わなければなりません。たくさんのサービスを利用していると,それだけたくさんのユーザー名やパスワードを覚えなければならず,結構大変だなあ,と思っているからです。

 それでもユーザー名は,登録が完了したときに送られてくるメールや,時には定期的に送られてくるお知らせメールなどにも記載されていて,ちょっとメールボックスを調べればすぐに見つかる場合もあります。しかし,パスワードは自分で何とか管理する以外に方法はありません。そしてたくさんのパスワードを管理するのは結構めんどくさいですよね。あんまりアクセスしないサービスなんかだと,どんなパスワードを登録したのかを忘れてしまって,ログインするにも苦労してしまったりします。

 最近では,指紋や声,手のひらの静脈なんかを使ったバイオメトリクス(生体認証)も徐々に広まってきていて,銀行や建物の出入りの管理とか,パソコンでも指紋認証システムを搭載しているものも出てきています。こうしたものが,Webサービスのログインにも使えるようになればいいのかもしれませんが,すべてのパソコンにそうした生体認証用のデバイスがついていない現状,なかなかそういうふうには行きません。パスワードのように,とりあえずキーボードさえあれば入力可能なもので本人確認をするしかないわけです。

 しかしやっぱりパスワードは多すぎると大変です。だけど,きっちり認証をしないと,セキュリティ的に問題が出てきます。パスワードや認証の問題って,使いやすさとセキュリティを両方考えなきゃいけないから,難しいんですよね。

 検索エンジンで,passwordとかusabilityとかで検索をかけても,明快な解決案って全然なくて,それについての言及も1990年代から2002年くらいまでの,結構古いものが多く目に付きます。最近はあまり語られなくなってきてしまったような雰囲気もあるのですが,だからといって,問題が解決されたわけでもない気がするので,結局はかなり難しい問題だということなのかもしれません。

 ということで,問題意識はあっても「これで一発解決です」といえるとは思えないパスワードの話題ですが,これまでどおり,エンジニアとしての立場から,今問題だと筆者が思っていることについて,考えていきたいと思っています。

パスワード,どうやって管理してますか?

 パスワードについて,筆者が気になっている点を整理すると,「パスワードを登録させる際のこと」と「パスワードを忘れたときのこと」の二つがあるかな,と思いました。

 まず,「パスワードを登録する際」の話から考えていきたいと思います。初期パスワードの決定方法には,ユーザーに登録してもらう方法と,サービス側でランダムなものを決定してしまう方法があるわけですが,ほとんどのサービスでは,ユーザー登録の際に,自分でパスワードを決定しなければなりません。まずここでパスワードを決めるのが面倒ですよね。

 理想的には,自分が利用するサービスすべてのパスワードを異なるものにすれば,セキュリティ的には万全なのでしょう。けれど,ログインを要求するサービスが多すぎて,それらをすべて別々のパスワードに設定して,しかもそれをすべて記憶しておく,なんてことはちょっと無理な話です。なので,何らかの方法をとる必要が出てきてしまいます。

 その方法は人それぞれあると思います。例えば以下のようなものです。

  • パスワードを紙に書き留めておく
  • パスワード管理ツールを使う
  • すべてのサービスでパスワードを同じにする

 ただ,筆者としては,これらはどれもいま一つ安全な気がしないというか,あまり好みではありません。

 このうち,パスワードを紙に書き留めておく,というのはまず一番危険ですよね。いつその紙をほかの人に見られてしまうかわかりませんから。紙に書いておいても,誰かほかの人に見られなければいいのですが,家族がいれば家のパソコンの前に張っておくこともできませんし,財布に入れておいてもその財布を落としてしまう危険性もあります。

 一人暮らしなら紙に書いておいても大丈夫と思いきや,知り合いは空き巣に入られてそのメモ(その知り合いの場合は銀行の暗証番号でしたが)を盗まれてしまったそうです。しかも,単なる紙切れなのでしばらくそのことに気づかず,突然銀行から大金が引き下ろされてそのことに気づいたとか。これはかなり怖いですね。

 やっぱり人に知られたくないことを紙に書いておく,というのは危険です。でもまあ,している人は結構いますけど。以前とある会社に訪問した際,かなり偉い役職の方が,自分のデスクに思い切りパスワードを書いた紙を張っているのを目撃したことがあります。

 続いて,パスワード管理ツールです。これは,アプリケーションとしてそういうツールもありますし,Mac OS Xのキーチェーンのように,OSに標準でそれがついている場合もあります。

図1:Mac OS Xのキーチェーン(クリックすると拡大表示します)

 IEなどのブラウザには,パスワードを一度入力するとそれを記録しておいて,2回目以降に勝手に入力しておいてくれる,「オートコンプリート」と呼ばれる機能がついています。これは,考えようによってはすごく便利な機能です。

 しかし,Webアプリケーションの場合,「どこのパソコンからでもアクセスできる」のがメリットのはずなのに,ローカルにパスワードを記録していたら全然そのメリットを活かせないと思います。オートコンプリートの場合,パスワードは自動で入力されますけど,どんなパスワードなのかを見ることができないので,ほかのパソコンで利用する場合に,パスワードを使うすべがありません。しかも,そのパソコン自体を盗まれてしまったら,結局誰かに自分のアカウントでログインをされてしまう危険性があります。

 やっぱり,どこかに記録する,というのはそこから漏洩する危険性が常にあるわけです。では,すべてのサービスのパスワードを一緒にすればいいのかと言うと,オンラインバンキングやオンラインショップなど,金銭を扱うサービスと,ちょっとコメントを書き込もうとして登録した掲示板や,個人で運営されているようなサービスに,同じパスワードを使うのはかなり抵抗があります。それに,どこかセキュリティの甘いサービスから,パスワードが漏洩した日には,すべてのサービスのパスワードがばれてしまうわけですから,かなり危険です。

 と,筆者は三つ挙げた方法はみんないまいちだなあ,と思ってしまうわけです。じゃあどうすればいいのかと言うと,筆者がとりあえずとっている方法は,いくつかパスワードを用意して,その重要度に応じて使い分ける,というものです。

 例えば,クレジットカード番号や個人情報などを預けているオンラインショッピングなど向けのパスワード,ブログサービスやそのほか頻繁に使うサービス向けのパスワード,ためしに登録したり,あまり重要な情報を預けておらず,漏洩してもそんなに困らなさそうなサービス向けのパスワード,といった感じで数個のパスワードを用意しておいて,用途によってその中から選ぶ感じです。

 高木浩光氏が以前「そもそも一般に,インターネット利用者は,基礎的なリテラシーとして,「金の鍵」や「銀の鍵」と,「ベニヤ板の鍵」とを常に区別して扱うという考え方を身に着けていなくてはならない」と氏の日記に書いていましたが(こちら),大体それと同じような感じです。

 もちろんこれが絶対に安全かといえば,そうは思っていません。ただ,すべてを異なるパスワードにしろ,というのを「正しい方法」とするのは非現実的です。これだけパスワード入力の機会が増えたら,どうしてもある程度同じパスワードを使わざるを得ないんじゃないかな,と思っています。

 ただ,これが唯一の方法だとか,最良の方法だとは思っていません。人によっても,身の守り方の好みもあるでしょうし,例えばあえてほかのパソコンでも使えるというメリットを捨てることで,パスワード管理ソフトを使う,というのもいいと思います。

 これだけパスワードが氾濫していると,何かしらの方法で,パスワードを管理している人も多くいると思います。そうでない人もたくさんいると思いますが,それはまた後ほど考えることにして,まずはパスワードを管理する方法はいろいろあって,人によってきっと異なっているだろうということです。