Scribble at 2024-04-23 12:50:01 Last modified: unmodified

添付画像

It is not uncommon that I need to write down or communicate IDs when interacting with systems, e.g. reporting a bug, entering a discount code, or tracking a package. It is frustrating when the experience is marred by an easy mistake to avoid - visually ambiguous characters.

Understanding and avoiding visually ambiguous characters in IDs

紛らわしい文字を ID やパスワードに使うべきかどうかという話題は、それこそインターネットなんてものが世に登場する前からあったわけで、たとえば製品番号として金属の表面に刻印する場合だったり、あるいは書体デザインの問題としても古くから課題だった。したがって、必ずしもネット・サービスなどを使うシーンだけに限定して是非を論じるような話題ではないのだけれど、ひとまずここではオンラインで文字列の情報を視認する際の取り違えというリスクについてだけ考えてみよう。

すると、もちろんだが視認するという状況だけに限定するなら、そういうリスクを低減させた方が「よい」のは疑いないだろう。そして、このリスクを低減するためのルールとか対策が何らかの別のリスクを高めるとしても、それらのリスクは比較衡量すべきものであって、どちらかのリスクを低減させることばかりを無条件に優先して低減させるべき理由がない限りは、バランスの問題に帰着する。

たとえば、記事にあるとおり、ID やパスワードに使える文字を減らすと、文字の読み間違いというリスクは低減できるとされている。これに対して、ID やパスワードに使える文字を減らすと、所定の桁数の文字列について期待できる乱雑さが減ってしまうので、パスワードは理論的には弱くなる(攻撃者も、使える文字が限られているという条件を知っている)。 よって、表面的にはこれらのリスクについてトレード・オフだと考えてよいかどうか、それとも両立しうるのかどうかを検討できる。

僕の意見では、これらはトレード・オフの関係にあると思う。なぜなら、紛らわしい文字を使えなくなるという制約を幾らでも増やせるわけではないからだ。まったくトリヴィアルなことを言えば、少しでも他の文字と似ていて紛らわしいという理由で、アルファベットや数字の全ての文字を使えなくしてしまうような制約を許容できるかという話である。英数文字の中で使える文字が一つもないという条件のもとで、英数文字を使って ID やパスワードを作るという作業に意味があると思うひとはいまい。

ただ、実際には使える文字を制限するような事例は少ない。特に、オンライン・サービスの ID というものは、僕は間違った「習慣」だと思うのだが、大昔からメール・アドレスを採用しているため、もともと相手が任意に取得して使っているメール・アドレスについて、その文字は使えるの使えないのと、サービスの運営側が指図できるものではないからだ(できるとしても、それは酷く傲慢だと思われるだろうし、そういう心理的な理由がなくても機会喪失の可能性は高くなる)。そしてパスワードについても、文字種を制限することは多いにしても、その中で特定の文字だけが使えるとか使えないと制限する事例は非常に少ない。実際、たいていはブラウザに記憶させたりコピペで入力するのだから、そんな制限をしなくても入力を間違うことは少ないからだろう。あるいは、コピペではなく自分で入力するとしても、自分で入力できる文字列について、"o" と "0" を間違う人は少ない。たとえば、何か特別な事情があって "o" をわざわざ "0" として設定したという覚えがないなら、僕が自分の名前でオンライン・サービスの ID を作ったとして、それを "kawamoto" ではなく "kawam0t0" と入力しなくてはいけないなどと思うことはないわけである。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook