認証

「パスワードの仕様を統一してくれ。」

パスワードを統一すると、一つバレると他も全部アクセスされてしまうから、とっても危険。とは云え、バラバラにしてしまうと、忘れてしまってアクセスできなかったりするし、なかなか悩みどころだ。Mac OS X には標準でキーチェーンが付属していて、けっこう楽に管理できるんだけれども、複数のパソコン (WindowsLinux も…) を使っていると自分でパスワードを入力しなきゃ行けないケースも少なくない。

で、例えば、決まったフレーズの末尾にサイト名の最初の文字を付加するなどして、「サイト毎に異なるパスワードだけど、ちゃんと覚えておけるもの」を使ってたりするのだが、サイト毎に入力ルールが異なっているため、文字数の少ないバージョンとか、数字だけのバージョンと云ったようにいくつかのバリエーションを持たざるを得ない。そのため「このサイトはどれだっけかなぁ…」とトライアンドエラーを繰り返すこともしばしば…。

そもそもなんで仕様が違うのだろう? ずいぶん昔のことになるが、パスワードの仕様を決めるにあたって、「スペースは使えない方がいいですよね?」と開発側から提案していて、目が点になったことがある。使えるモジが多ければ多いほどパスワードは固くなるのに、なぜ、そんな提案を…? コントロールコードまで使えたってかまわないと思うのだが…*1。ところが、意味もなくアルファベットの小文字だけにしましょう! なんて話が通ったりするのだから、なかなか困ったものである。ここに論理的な理由はなく、それぞれの慣習に過ぎないようだが…。

文字数制限については、管理する側のディスクスペースやネットワークトラフィックが気になるところかもしれない。巨大なストレージも高速なネットワークもあり、そんなものは数年前の価値観だと云う気もするが、これは尊重することにする。だけど、そもそもパスワードを保存、転送する必要があるの???

入力制限は一切取り除き、ユーザーは自由に入力できるようにする。だけど、管理するのは一定のバイト数、一定の文字種に絞りたい。そんな要求を満たす方法はある。例えばこれ。

ユーザーは座右の銘だろうが、シェイクスピアの一節だろうが、好きな文字列、好きなセンテンスを入力できるようにし、入力されたパスワードを管理に都合のいい条件になるように計算して変換すればいいのだ。これならパスワードは保存しないから「顧客情報が漏れて、パスワードがバレちゃいました。ごめんなさい。」なんてこともなくなる。ユーザーはシェイクスピアの 209 ページから 211 ページをコピー & ペーストしてパスワードにするなんてこともできる (ハリーポッターでもいいけど…)。

いろいろとパスワードに変わる認証方法を模索しているけれど、パスワードも実現方式によっては捨てたものではないと思う。今は実現方式と教育 (どんなパスワードにすればいいのか) に問題があるのではないだろうか?

*1:その仕様を明示しなけりゃ、きっとクラッカーからアクセスされないに違いない。