Scribble at 2024-07-10 16:49:54 Last modified: unmodified
僕はつねづね、というかシステム開発や情報セキュリティの実務家として従事し始めた10年以上も前から言っていることだが、歴史的な経緯があるのは知っているが、オンライン・サービスの ID としてメール・アドレスを利用することは、はっきり言って愚行の一つである。こんな仕様はさっさと改めるべきだ。そして、同じように歴史的な経緯があって仕方なく広まっている他の仕様でも、いまはそんな制約など従う必要がないというものに、パスワードを 8 ビットの文字だけに限定するという意味不明な慣例もある。
実際、利用者つまりシステムや情報資産へアクセスするための認証情報(credentials)としてメール・アドレスを利用することは、あからさまにメール・アドレスを知っている人にとっては全く何の秘密にもなっていない。本来、これも繰り返して言っていることだが、認証情報はパスワードだけではなく ID も含まれるのであり、それらの組み合わせが一つの認証情報として有効なのである。したがって、パスワードは保護して ID は他人が知っている情報なり文字列でもよいなどというのは単なる偏見や無知でしかないと、僕は情報セキュリティの実務家というかプロとして思う。世の中のプログラマやソフトウェア・アーキテクトの諸君は、どれほど官公庁の巨大案件に従事していようと、われわれプロの意見にはさっさと従うものだ。
ID がメール・アドレスでなくてもよいという実例は、もちろんたくさんある。典型は、金融機関のオンライン・サービスだ。金融機関のオンライン・サービスで、ID をメール・アドレスにしているような事例があったら、逆に教えてもらいたいくらいである(PayPal の ID はメール・アドレスだ? あんな、日本の金融機関でもないのにマイナンバーを本人証明として要求するヤクザが? あれは決済情報のブローカーにすぎんよ)。あるいは公的な機関が提供しているオンライン・サービスでも、「年金ネット」などはメール・アドレスでないのはご存知だろう。それから au/KDDI などの携帯キャリアもログイン ID はメール・アドレスではない。そもそも、ID をメール・アドレスにすると、そのメール・アドレスが使えなくなった場合に混乱が生じる。連絡先として使うメール・アドレスを別に登録できるようになっているとしても、ID は使えなくなった(たとえばインターネットの通信プロバイダから契約時にもらったメール・アカウントだと、そのプロバイダを使わなくなったらメール・アドレスとしても使えなくなる)メール・アカウントで、連絡先はいま使っているメール・アドレスという不整合が生じるし、もし ID として登録したメール・アドレスが連絡先としても流用されていれば、そのメール・アドレスが使えなくなった時点でアカウントを変更したり、そのオンライン・サービスを契約しなおさなくてはならなくなるかもしれない。
次に、パスワードに半角の英数文字や記号しか使えないという仕様にも、いまや妥当性がない。昨今のプログラミング言語やデータベース・システムでダブルバイト文字なりユニコードを正しく扱えないなんていう拙劣なものはないし、そもそもローマ字しか扱えないという時点でダイバーシティに反しており、或る種の人種差別だと非難されることすらあるのだ。確かに、ユニコードは言われているほど単純で理想的なエンコーディング形式ではないし、実際に中国語などは UTF としても多くのバリエーションがあり、精密な扱いは難しい。しかし、しょせんはクライアントから送信されたペイロードが(どれほど特殊な、たとえば UTF-5 KR のようなハングル用の形式であろうと)一貫しているかぎり、それをハッシュ化した値は同じ筈である。その一貫したペイロードの送出に責任をもつのはクライアント側であり、サービスを提供する側ではない。