ここ最近、情報漏洩が頻繁に取りざたされるようにはなってきたが、どうも漏洩の様子がおかしい。
機密情報が入ったノートブックを紛失したとか、通常なら考えられない状況での流出が発生している。
どう考えても社外に持ち出すようなノートに顧客名簿を載せたりしないはずだ。
もっとも、社外に頻繁に出るような社員にそんな情報を持たせていること自体がおかしい。
僕が言いたいのは、最近世間をにぎわせている情報漏洩は、外部からの侵入なのではないかということである。
それはさておき、イマドキのWebではログインを行なうことが恒常化してきている。
どのウェブサイトのアカウントも持っていない人というのは恐らくインターネット利用者の中にはいないだろう。
にもかかわらず、相変わらずログインに必要なのはユーザー名とパスワードだ。
それらの組み合わせは人間が覚えなければならないし、そうであるがゆえに脆弱になる。
また、アイデンティティを盗用された場合の被害は計り知れない。
さて、ここでみんなに質問だ。
こんな事、してませんか?
- ユーザ名は僕の名前
- パスワードが10文字以内だ
- パスワードは
- (僕|恋人|親|ペット)の誕生日だ
- 誰かの名前だ
- 単純な英単語だ
- 小文字だけだ
- パスワードをディスプレイに貼り付けている
- ブラウザにログイン情報を覚えさせている
- ログアウトしたことがない
- どのサイトでも同じ組み合わせを使っている
さて、いくつ当てはまったかな?
あなたがいちばん解っているとおり、人間は信用できない。
この世で最もSecureでない周辺機器は、人間だと言われるけれど、まさにその通りだ。
ユーザー名とパスワードがもはや時代遅れだ。
UNIXで動くでかいワークステーションの時代の産物だ。
昔と違って、インターネットは安全じゃない*1。
そろそろ認証手段も変化したほうがいいと思う。
SSLクライアント認証というものがある。SSL証明書をユーザが持つ方式だ。
その証明書をICに封入するPKCS#11という仕様がある。これで証明書を利用した認証ができるようになる。
SSLクライアント認証@PKCS#11のアドバンテージ
- あまり覚えなくてもいい(PINコードを覚える)
カード自体にプロテクトがある。
- RSA鍵による公開鍵認証ができる
これはPKCS#11とは直接関係ないが、非常にセキュリティは強化される。
- デジタル署名もできる
デジタル証明書を持つということは、それを利用した署名もできるということだ。
ディスアドバンテージ
- 機材がない
カードリーダはともかく、ICカードがどこにも売ってない*2。
- 金がかかる
2000円程度初期投資に必要になる。
- 面倒
ドライバを導入して証明書を調達してと、すんごく手間がかかる。
- 証明書は一つしか作れない
実質、証明書は一つしかカードには収まらない。
- 規格がバラバラ
PKCS#11そのものの規格はあるのだが、ICカードとの標準的なやりとりの方法が確立されていない。
カードごとにドライバが必要というのが現状。
PKCS#11による認証に必要な工程
クライアント編
- アカウントのX.509証明書を安全な経路で手に入れる。*4
- もしくは、自前のX.509証明書を作り、サイトに認証してもらう。
- カードリーダとかを準備する。ドライバをインストールしたりする。
- カードにX.509証明書をぶちこむ。
- ブラウザからカードが使えることを確認する。
こんなに手間がかかるのだ。
また、証明書の統合の問題がある。
証明書統合の問題
- アイデンティティ管理はできるだけ簡素にしたい(サイトごとにカード作ってたら割にあわない)
- 大容量カードは今のところ個人では入手できない
- OpenIDみたく、鍵専門の業者を立ててサイトはそれを使いまわせばいい
- ↑搾取の予感がする
こういう風に、問題は山積みだ。
でも近いうちにこういう手法が浸透するといいなと思う。