Scribble at 2026-06-01 18:46:51 Last modified: 2026-06-02 08:12:01
情報セキュリティのマネージャとして、あるいは認証システムを自力で構築できるていどのウェブ・アプリケーション・エンジニアとして、かなり昔から言ってきたことがある。それは、ウェブサイトへログインするための認証情報として「ユーザ ID」をメール・アドレスで設定するのは止めるべきということだ。認証情報は、大多数の場合において「ユーザ ID」とパスワードの一式・一組であり、これらはどちらも大切な情報であって、パスワードさえ秘匿したり保護すればいいという考え方は悪質な錯覚だ。結局、みなさんが成りすましの被害にあったりする原因の一つは、このユーザ ID がメール・アドレスだからなのだ。メール・アドレスは、そもそも誰かにメールを送信してメッセージを伝えるために取得したり作っているのだから、ウェブサイトなどで公表していればなおさら、不特定多数の人々が簡単に知っている情報である。つまり、ウェブサイトへログインするための認証情報の一部を最初から(攻撃者も含めて)他人に教えているのと同じなのである。これが危険でなくて一体なんなのか。
よって、メール・アドレスを ID としてログインできたり、後から設定したアカウント名を ID としてログインできたりするという、幾つかの ID を使えるようなサービスであっても、そのリスクは同じであると言っていい。アカウント名だって、X など殆どの SNS ではプロフィールに表示すらされているのだから、たとえメール・アドレスを秘匿していようとログインするための情報の一部を公表していることに変わりはない。
したがって、妥当なアカウントの作成・登録フローというものは、初めてアカウントを登録するときに本人の認証用にメール・アドレスを入力してもらい、そのメール・アドレスに本人認証用の期限付き URL を通知するといった使い方なら良いだろう。その後に、正式なアカウント作成のフローを始めて、ユーザ ID を好きな文字列で設定してもらえばいい。もちろん、
odhI3aTLKtJ7V0uzAhqiN1DExnxIc05v
というユーザ ID でも全く構わない。そして、同時に設定するパスワードも、
dVOT0ZYLgOPpU1PsCKvA7PyXnxqCkcx7
のように設定すればいいわけである。ちなみに、文字数は英数字で24文字以上、上限は256文字くらいでいい。いまどき8文字や16文字などという文字数でないと「機会喪失」だなどと言うマーケティング屋には、A/B テストでもやったのか根拠を出させるといい。はっきり言って、電通や博報堂あるいはキノトロープやビジネスアーキテクツやミツエーリンクスですら、そんなテストは一度もやったことなどあるまい。パスワードを少ない桁数にしないと面倒がって使わないなんていうのは、テスト・サイトでベーシック認証のパスワードを4文字なんかにしてる電通や上場企業の連中の「陋習」にすぎない。それから、スマホでは入力が面倒だから云々というのも、あまり根拠としては強くない。最初は面倒かもしれないが、それこそウェブ・サーバでは PassKey をサポートしておいて、顔認証や指紋認証を代用にすればいいだろう。そして、これも昔から言っていることとして、ユニコードを正しく扱える処理系であれば、漢字は異体字のトラブルがあるから避けるとしても、平仮名やカタカナをパスワードの文字列に許容してもいいのだ。記号なんて、サイトによって使える記号と使えない記号があったりして、こんなことの方が利用者を混乱させる。しかも愚かなことに、アカウントを登録するときのフォームではパスワード文字列に使えても、実際の認証フローでは使えない記号としてエラーになるサービスも過去にはあった。そういう馬鹿が一人でもシステムの開発やメンテナンスに入り込む可能性があるなら、十分に大きな桁数で英数文字だけを許容してパスワードを設定してもらう方がマシである。
さて、上のスクリーンショットは、僕が "friend" というプランで登録している、スタンフォード大学のオンライン哲学事典のサイトで、ユーザ・アカウントの画面を表示したところだ。この画面を漠然と見ただけでは僕の趣旨は伝わらないと思うが、要するにこのサイトは「ユーザ ID」として登録したメール・アドレスを変更できないのである。初めて登録したときは、"kawamoto@philsci.info" というメール・アドレスを使ったのだが、既にご承知のとおり PHILSCI.INFO は先月の初旬に閉鎖したし、このメール・アドレスもこれから使うつもりはないので、変更したいのである。でも、変更はできない。なぜか。こういうサイトのユーザ ID は、何かの通知用のメール・アドレスとして使うだけではなく、アカウント情報のユニークな ID であるから、これを変更することは ID を変更することである。したがって、変更前のメール・アドレスの所有者が変更後のメール・アドレスの所有者と同一人物であるという証拠がない限り、これの変更を認めてしまうと危険である。もしアカウントが成りすましの被害に遭って、誰かがユーザ ID を自分のメール・アドレスに変更してしまったら、アカウントを奪われた人物は、ID もパスワードも知らないので、どのアカウントが盗まれたのかを運営側に伝える方法すらなくなる。そして、えてして多くのサイトでは、アカウントの管理画面でユーザがどういう手続きをしたかという詳細なログを記録していなかったりするので、ユーザ ID が A から B へと変更されたというログがなかったりする。もちろん、こういうことを丁寧に説明したところで、未熟な認証システムやユーザの操作ログすら記録しない無能のシステム設計が弁解できるものではない。