Tag Archives: 制限

パスワードを決める画面でのアホなルールを集めたリポジトリ dumb-password-rules

dumb-password-rules/dumb-password-rules

パスワードの登録や更新画面で出てきたおかしな制約やエラーを募集している GitHub リポジトリがあります。

あほなパスワードの文字制限を分類

多数の事例が載っていますが、代表的なものをグループ化してみます。

文字種や記号を謎に制限

「% は使えません」「\ は使えません」 – 内部でエスケープしちゃうんですねわかります。ちゃんと作ってあればこんな特例要らないと思うんですが。

「記号で使えるのは ? ! $ €% & * _ = – +. ,:; / () {} [] ~ @ # だけです」

「記号はアンダースコアとハイフンだけ使えます」

「数字や記号は使えません」

「使える記号がありますが、どの記号が使えるかは秘密です」

「パスワードは5-15文字です(が、スペースは文字数としてカウントしません)」

「パスワードに使えない記号は、あなたがそれを入れてみた時だけエラーで教えます」

「パスワードは数字8桁で、0で始まってはいけません」 – 数値型か

「#, %, &, =, /, < などのハッキング文字は使えません」 - ハッキング文字!

長さ指定系

「パスワードは8,9,10文字でなければいけません」

「パスワードは7文字か8文字でなければいけません」

「パスワードは6文字です」 – ATMの暗証番号か

「パスワードは6文字以上です (あとどこにも書いてませんしエラーの原因にも出ませんが最大20文字です)」

「メールアドレスは8文字以上にしてください」 – ユーザーのメールアドレスで選別するの?

「登録フォームのパスワードは最大24文字ですが、実際に使われているパスワードは最初の16文字です(更新フォームで判明)」

技術で解決系

右クリックや Ctrl キーを効かなく(alertが出る)することで、パスワードマネージャーの利用を防ぐ

パスワードを入れる箇所が2か所あるが、コピペやChrome拡張からの自動入力を不可能にすることで、パスワードマネージャーの利用を防ぐ

「パスワードは120日ごとに変更しなければならず、一度使ったパスワードは二度と使えません」

総合力タイプ

「パスワードには記号を含めてください。パスワードには記号は使えません」 どうしろと

「とにかくルール、ルール、ルール!」


顧客や上司がパスワードの文字種について不思議提案をしてきた時に、この事例集を見せて「その発想、やっちゃダメなやつだと笑われてますよ」と言ったら説得できるかもしれません。

via Hacker News

“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普通に入ってる人も多いでしょうし。まあ一度動いてしまったシステムの仕様を変えるのがいかにたいへんか、という話の一つなのかもしれません。