カテゴリー
fun

“Q”と”Z”がパスワードに使えない! 格安航空会社ジェットブルーの謎

HackerNewsで質問され、話題になっていたトピック

格安チケットで有名なアメリカのJetBlue のサイトのヘルプページで、「パスワードに使えない文字」というリストが載っています。他にもいろいろ突っ込みたい制限はありますが、

jetblue-password-restrictions

一番わからないのが「QとZは使えません」という制限。これはなんでだろう? という疑問への回答が、レガシーなシステムを引きずったシステムのたいへんさを明らかにしています。

飛行機やホテルの予約システムSabreの制限だろう」というコメントはすぐにいくつも出ていて、どうやらそれは正しいようなのですが、ではどうしてSabreのパスワードにQとZが使えないのか? 答えは昔の電話にあります。

(photo credit: denisgiles)
(photo credit: denisgiles)
(photo credit: mrbill)
(photo credit: mrbill)

英語圏での電話機は、数字ごとにアルファベットが割り当てられていて、英単語を使って電話番号を覚えたりできるようになっていました。

たとえば、アメリカの無料ダイヤルの1-800で始まる”1-800-PAINTER”という文字がついた数字をダイヤル/タッチしていくと、実際には 1-800-724-6837 に掛かる、というものです。日本では数字の語呂合わせで電話番号を覚えてもらう仕組みができましたが、英語圏では数字ごとにアルファベットを割り当てていたのですね。

# 昔の話かと思いましたが、手元のAndroidでも電話のモードにすると数字の横にアルファベットが表示されますね。こちらは、QやZも4文字目に割り振った国際式のようです。

このアルファベットの割り当てで、(アメリカ式の場合は)QとZはどこにも割り当てられなかった、というのが、JetBlue航空のパスワードでQとZが使えない遠因のようです。0から9までの10個の文字に3個ずつアルファベットを割り当てれば、30個となり、26個しかないアルファベットの全部を使えそうですが、0はオペレーター、1は市外局番用なので、そこにアルファベットを割り当ててしまうと、局番以下で英単語を作る時に使いたい文字が使えなくなることから、0と1以外の8個の数字に3個ずつ→24個、という割り当てとなったそうです。

Sabre での予約などを、電話でアルファベットを伝えることでも行っていたことから、電話で入力できない(電話上に割り振られていない)QやZはパスワードとすることもできなかった、というのが真相のようです。

Sabreシステムの開発開始は1957年、ローンチが1960年ということで、当時の環境から考えられたQとZが使えないという制約が、50年以上たった今のウェブシステムのパスワードの制限にまで続いている、ということなんですね。

だからといって、今までこの制限や他の時代遅れな制限を取り除くチャンスが無かったとは思えないですけど。よく使うパスワードにqやz普通に入ってる人も多いでしょうし。まあ一度動いてしまったシステムの仕様を変えるのがいかにたいへんか、という話の一つなのかもしれません。