セキュリティってなんだろう?

企業のセキュリティシステム構築に参加していた元SEが、セキュリティについて考えてみた。

仮説と検証。

イギリスやアメリカはどうやって4ケタって決めたの?という問いにはいくつかの仮説が挙げられています(正解は開発したエンジニアの頭の中にあるんでしょうけど)。

推理して楽しんでみましょう。

1、当時のキャッシュカードは容量が小さく、4ケタしか入れられなかった。

あるいは、4ケタってコンピュータにとってキリのいい数字なんでしょ?違いますね。

キャッシュカードには将来の機能拡張にそなえてパデイング(空き領域として指定)されているエリアがあります。

暗証番号をもっと長いケタ数にしたかったのであれば、パデイングエリアを減らすことで、5ケタでも6ケタでも容易に対応することができました。

また、4ケタというのは確かにコンピュータと相性のよい数字なのですが(コンピュータと相性のよい数字は2のn乗で得られます)、それは2進数や16進数など、コンピュータが本来扱える数字でのお話です。

10進数の4ケタというのは、コンピュータの処理上はまったくキリがよくありません。

2、当時は通信回線が貧弱だったので、4ケタ以上にするとデータのやり取りに時間がかった。

計算してみましょう。

当時の一般的な通信回線の速度はだいたい200bpsでした。

bpsというのは通信回線の速度を表すのに使う単位で「1秒間に200ビット(情報量の単位)の情報を送れる」ことを意味しています。

一方でキャッシュカードでは、1ケタの文字を表すのに128ビットの情報を必要とします。

すると、512ビット(4文字分)÷200bps=2.56秒768ビット(6文字分)÷200bps=3.84秒確かにケタ数を増やすと時間がかかっています。

仮に6ケタにすると、2.56秒から3.84秒になるわけです。

うーん、微妙な数字ですね。

ただ、この仮説には落とし穴があります。

最初に暗証番号が設計されたときのCD機は「オフライン型」だったので、ネットワークを通じたデータのやり取りは発生しないのです。

もちろん、設計者がいずれオンラインになることを見越して待ち時間を少なくするように設計したのかもしれませんが、この仮説もちょっと弱そうです。

3、CD機の処理能力が貧弱だったので、4ケタしか扱えなかった。

これは論外です。

実際、口座番号などではもっと大きいケタ数を扱って演算しています。

この説はいくらなんでも当時のコンピュータをバカにし過ぎです。

ただ、「4ケタなら4ケタで、なんで数字だけにしたんだ。

アルファベットなんかもまぜてくれれば、作れる暗証番号のバリエーションが増えてもっと安全になったのに」という怒りへの回答はここで得られます。

すなわち、「CD機にフルキーボードなんて付けたら大きくなって見苦しく(タッチパネルなんて普及していなかった時代です)、設置コストもかかるから」です。

先ほども述べたように、キャッシュカードの磁気ストライプには、数字の他に文字や記号も記録することができるようになっています。

セキュリティの観点から言えば、当然これらも使えるようにして、より暗証番号を特定しにくいようにするべきです。

しかし、そのためのコスト上昇は避けられないので、当時の感覚とすれば、安全性が下がることにより発生するコスト<フルキーボードのCD機を用意するコストだったのでしょう。

こうした断片を統合していくと、なんとなく「暗証番号4ケタ化」のシナリオが浮かんできます。

技術者A「こんど自動現金支払機のシステムを設計することになったんだ。

画期的で面白いんだが、暗証番号を何ケタにしょうか」営業「システム的な制限は何ケタなの?」技術者A「将来の用途に使えるよう、開けてあるエリアがあるから、その気になれば10ケタでも20ケタでも」営業B「ダメダメ。

そんなに長くしたらお客が怒り出すよ。

8ケタ? いやいや、まだまだ長いな。

人間がぱっと覚えられる数値の上限ってだいたい7ケタだっけ。

電話番号がそうだもんねえ。

でも、CDはお年寄りも使うんだよ。

もっと短くしなきゃ、結局窓口に聞きに来て業務の効率化にならない。

そうだ、4ケタ! 4ケタにしよう」(←ここで4ケタの仕様固まる)技術者A 「ええっ、4ケタ? そりゃ、ちょっと短いんじゃ?まあでもアルファベットも組み合わせればそれなりのバリエーションになるか」営業B 「アルファベットぉ? おいおい、CD機にキーボード付ける気かい? 冗談じゃないよ。

CD機が大きくて高くなる! それを設置する土地代だってあるんだぞ。

許せるのはテンキー、テンキーまでだ」(←ここで数字しか使えない仕様固まる)技術者A「そ、そんな。

数字だけじゃ全部で1万通りしかない!」営業B「いや、4ケタだよ4ケタ! これ以外にない。

4ケタだったら子供だってお年寄そらりだって諳んじられるよ。

そう! 自分の誕生日は4ケタの数字になるじゃないか! みんなこれを使うよ! 分かりゃすい!」(←誕生日の脆弱性織り込まれる)