暗号化とパスワード保護


「暗号化の標準化はしないのですか?」


 牛尾は、会議の終盤、公開質問のセッションで発言をした。

 情報システム部の司会、森田が聞き返す。

「暗号化、ですか?」

「そうです。営業秘密を電子化する時には暗号化しますよね。でも、どの暗号化アルゴリズムを使うのか、は、しっかり決まっていないと思うんですが」

 森田は、もともとIT畑でない。菅井に助けを求めた。菅井は

「えーと、今は、推奨アルゴリズムは、ポータルに記載してある通りなんですが、、、」

 遮るように牛尾は発言する。

「あのガイドラインのアルゴリズムは、もうほとんど安全ではないのはご存知ですよね。今ではもう、AESとかでも暗号化ができる。でも、問題は、受け取り側が対応できないことが多い。なもので、ある程度安全性を確保して、それを標準レベルにする方が良いと思いませんか?」

「理想論としてはそうかもしれないですけどねぇ、、、」

 若干沈黙が流れる。

 間を取り持つように、梅本が

「Infochangeのクライアントに、暗号化機能が付いていませんでしたっけ?」

 牛尾は引き取る。

「あれって、暗号化アルゴリズムをクライアントごとに有償で配付する仕組みなんだよね。そもそもさ、Infochageのクライアントってさ、パスワードの意味をわかっているのか、不安なんだよなぁ。」

 牛尾は、普段から気になっていることを口にする。会場の皆を見回し、

「メールの整理に使う、メールボックス。あれ、パスワードかけれるの知ってます?」

 結構の参加者が頷く。

「では、パスワードかけておくと、安心だと思います??」

 頷いた一人、梅本が答える。

「だからパスワードなんじゃないんですか?」

 牛尾は、やはり・・という思いを抱きながら、冷静を意識しながら答える。

「パスワードと暗号化。似て非なるというか、安全を確保する仕組みはパスワードではなくて、暗号化なんです。で、その暗号を復号する方法として、パスワードを使うことが多い、ということなんです。なので、パスワードありきではなく、暗号化ありき、であるべきなんです。パスワードは、その一部。昔はその考え方にブレはなかったんですよ。でも、最近は、あまりにもいろんなレベルの人が関わるようになって、本質がどっかにいってしまったんですよ」

 会場がしらける。が、構わず続ける。

「パスワードを入れなければ、ファイルが開けない。確かにワンクッションですけど、暗号化を考えないパスワードは正直無力ですよ。普通にバイナリエディターで開けば、ファイルの中身は全部見えますから。Infochangeクライアント、パスワード保護できますよね。でも、信じられなかったのですが、単に開く時にパスワードを求めるだけで、データ自体は全く暗号化されていなかったんです。なので、ほぼ意味なしでした。腰を抜かしそうになりました。繰り返しになりますが、『パスワードを入れること』が安心なんじゃなくて『暗号化する』ことが必要なんです。そして、それを復号化するために必要になるのがパスワードなんです。パスワードは、ツールであって目的ではない。それを、目的化している人があまりにも多いんですね。。」

 梅本が、呻くように

「なるほどです、じゃ、どうすりゃいいんでしょうね、、、」

 牛尾は、情報システム部の面々を見ながらいう。

「だから、社公認の暗号化レベルを決めましょう、という話を提起したのです」

 実は牛尾は、それ以外でも不満があった。この際それもぶつけてみるか・・・

「情報システム部が提供しているWebツール、毎日つかってます、というか使わないと業務ができないんですが、情報システム部として、パスワードの保全はどう考えているかお伺いしたいです。パスワード入力はhttpですよね。平文で送らせる」

 開発担当の月原が答える。

「パスワードはセキュリティーの基本ですから、最も保全しなければならない情報と認識して、アプリケーションを実装しています。でも社内インフラは情報システム部が確保しているので、覗き見のリスクは極めて小さいと判断できます。それを根拠に、認証セッションも平文で問題ないと判断した次第です」

「では、パスワードはどのように保存しているか、認証はどのようにしているか教えてください」

「パスワードはデータベースで、ユーザIDと紐つけて保存しています。入力いただいた、ユーザIDとパスワードのセットがデータベースのものと一致していることを認証としています」

「ほー、ということは、パスワードをもし忘れたら、教えていただくことは可能なんですね?」

「はい、お問い合わせいただければ・・・」

 牛尾はわざと吠えた。

「ふざけるなっ!!!パスワードをデータベースに保存するだと?冗談もたいがいにしろっ!お前ら、人様の個人情報をなんだと思ってるんだっ!」

 一瞬会場が凍りつく。情報システム部のメンバーも、何を言われているのかわからない。

 一瞬の沈黙の後、牛尾は穏やかな声で問いかける。

「WindowsやUNIX、システムでパスワードを保存してますよね?そのファイルを開いて見たこと、あります??月原さん?」

「え、あ、ありますよ」

「どんな情報がはいっていました?」

「ユーザIDと、ハッシュされたパスワードが保管されてるだけで、、、それがどうかしましたか?」

「ハッシュされたパスワード、って言いましたね?そう、そうなんです。ハッシュって、なんですか?」

「データを、決められたルールで変換したものでしょう?」

「それだけですか?」

 月原は考えている、が声が出ない。時間ももったいないので、牛尾はつぐ。

「ハッシュは『一方向関数』なんです。つまり、元に戻せない。いいですか?パスワードっていうのは、その人の思考傾向が現れるものなんです。あまり好ましくはありませんが、ネットのパスワードと、銀行のキャッシュカードのパスワードを同じにしてる人も、事実としていたりするんです」

 月原はまだ、釈然としない。

「それがなにか、、、」

 牛尾は少し語気を強め

「では、ちょっと仮定の物語を考えてください。Aさんが、社内でキャッシュカードを椅子にかけたジャケットに入れた財布からぬかれて、現金を引き出された事件がありました。Aさんは、キャッシュカードの暗証番号が、社内ネットのパスワードと同じものを使っていました。キャッシュカードの暗証番号は、3回失敗すると凍結されますよね。3回以内で成功した、そのデータが唯一保存されているのが、社内ネットのパスワードファイルだった。さぁ、誰が疑われるでしょうね?」

 月原はちょっと紅潮しながら叫んだ。

「そんなこと、我々はしていないっ!」

 それを抑えるように牛尾はつなぐ。

「もちろん、月原さんがそういう不正をやっているなんて言っていません。申し上げたいのは、『李下に冠を正さず』ということです。WindowsやUNIXのパスワードファイルに、なんでパスワードがハッシュで保存されているのか?その答えが『李下に冠を正さず』なんですよ。つまり、どんな管理者でも、ユーザが登録したパスワードを知ることはできないんです、もっと言えば『できるべきではない』んです。UNIXは、最初から、そのコンセプトで実装されていました。だから一方向関数なんです。登録されたパスワードを、一方向関数、つまり元に戻せない処理によって、別の文字列に変換して保存するんです。認証の時には、入力されたパスワードを、同じアルゴリズムで一方向変換して、その結果の文字列と、パスワードファイルの文字列を比べるんです。つまり、何人たりともパスワードを知ることはできない、が、50年も前からの不文律だったんですね」

 半分嘘もあるが、インパクト重視で話を盛る。一旦息をつぎ続ける。

「最近のプログラマは、そういう基本的かつ重要ななコンセプトを知る機会もなく、追いたれられるようにアプリケーションを作らないとならない。かわいそうです。同情します。でも、セキュリティーを妥協するわけにはいきませんからね。そういうコーディングをする人間を私は受け入れることはできません。実は、私が参加する学会、信じられなかったんですが、まさに、パスワードを平文で保存していやがった。会員サポートサイトで、なんとパスワードを表示することができるんです。一度正式にクレームだしたけど、スルーされた。もう、その学会のネットサービスは使っていません。パスワードを忘れたら、システム管理者側でできることは、再発行するだけです。パスワードを教えてくれる、っていうのは、親切どころか、むしろとんでもないことなんだ、ってことをみなさんにも理解してほしいと思います」

 引き続き、牛原は話を元に戻す。

「さて、閑話休題、もどします。

 繰り返しになりますが、パスワードが安全なんじゃないです。暗号化が安全なんです。そして、それを復号するのに必要になるのが、パスワードなんだ、ということを理解してもらえれば、すべきことが自ずと見えてくると思います」

 梅本がちょっと茶化すように

「どんなに強固な暗号化でも、鍵となるパスワードの強度が鍵になりますよね。牛尾さん、その学会サイトでは、大事な牛尾さんパスワード設定の傾向をだしちゃった、ってことになってませんか?やばいかも、、、」

 牛尾はニッコリしていう。

「大丈夫。私はパスワードは3段階で持ってるんで。ほとんどのサイトが、パスワードは他と共用するな、っていうけど、でも、普通の人って、30も40もサイト登録とか、パスワード、あったりしますよね。それぞれ全部変える、なんてありえないでしょ?だから、私は、3つの層にわけています。1st Tierは、もし漏れてもばれても、あーあ、ですむもの。2nd Tierは、バレちゃうと、なりすまされたり、ちょっとまいったな、にはなるけど、重篤なインパクト、例えば通販支払いが課金されたり、なんてことがないもの。そして、一番重要な3rd Tier。これは、もれたら、最悪知財を含めた財産を持ってかれるリスクがあるもの。流石にこれは、本当に絞り込んで、かなり複雑なパスワードを設定してますよ」

「それでも、3っつでも、パスワードを覚えとくのって大変ですよね。パスワードってどうやって決めてるんですか?どうやって忘れないようにしてるんですか?」

「本人が決めた、ちょっとマニアックな変換ルールを使うのがベストだと私は思っています。そして、それはここでカミングアウトすることはリスクなので、ごめん、言えないんだ。でも、一般論として、安全なパスワードは、無作為な文字列でしょ?それの作り方の例としてよく使われる方法を紹介するね」

 会場を見回し

「みなさんも、安易なパスワードは避けてくださいね。

 では、一例を紹介しましょう。

 日本の国家、歌えますよね?ちょっとローマ字にしてみますね。ちょっといいですか?」

 牛尾はそういって、ホワイトボードのところまで出て行って、ローマ字で君が代の歌詞を書く。


  KIMIGA YOHA.

  CHIYONI 8CHIYONI

  SAZAREISHINO

  IWAOTONARITE

  KOKENO MUSUMADE


「わかりました??そう、この頭を拾うんです」

 ホワイトボードに赤丸をつける。


 KYC8SIKM


「どうです?普通には意味がわかりませんよね。

 さらに、記号を入れろ、と言われたら、最初の一節がピリオドが入ってますから、」

 とピリオドをねじ込む。


 KY.C8SIKM


「大文字小文字を混ぜるなら、最初だけ大文字にするとか。

 何らかのルールは必要ですが、それは心にしまっておいてもらって。好きな小説のくだりでもいい。それを折句よろしく、もしくは沓冠でもいいかもですね。行頭を横に読んでやれば、同じようにできますね。

 もう一つ、ある程度強固なパスワードを確保してくれれば、あまり頻繁に変更は加えなくても大丈夫です、というより、あまりやらない方がよいです。最近、パスワードを定期的に変えましょう、というサイトが増えていますが、あれって、だんだんパスワードの強度が下がってくるんです。それでは本末転倒ですよね。それよりも、2段階認証とかを活用する方が良いでしょう」

「でも、軍事機密とかならいざ知らず、私らのデータなんて、狙ってもしょうがないでしょう。そんなに心配する必要があるんですかね、、、?」

 意外と多い疑問かもしれない。牛尾は私見を説明する。

「あくまでも私見ですが。狙う側から見たら、データが欲しいというよりは、クラッキングというスリルを楽しむ、という程度のことがほとんどだと思います。でも、企業側としては、面白半分でやられたデータが漏れることで、甚大な損害を得ることは事実です。特に競争が激しい分野の開発情報なんかはね。それと、ログインパスワードは、そのアカウントを乗っ取ることで、DDoSの攻撃の踏み台に使われたり、犯罪に使われることはありえます」

 そして、告白。

「実は、、、数ヶ月前、私のアカウントが乗っ取られました。実はTier1のアカウントなんで、それほどは大きな問題にはならないだろう、とは判断していたのですが、実名登録をしている以上、やはり放置はできない。これは、サイトから『初めての端末からのログインが観測されましたが、これはあなたですか?』というメールが入ったのがきっかけでした。Tier1は、パスワードを書いたファイルをクラウドに置いてあったりします。やっちゃいけないことですけどね。もちろん、暗号化してますよ。ただ、そのファイルをゲットできれば、3日くらいかければ開けてしまうでしょう。乗っ取られの時、ログイン履歴から、ログインの失敗は記録されていませんでした。と。いうことは、最初から確実なログインされたということは、間違いなく、そのクラウドにおいたパスワードファイルを開かれたものだと推定しています。これを機に、全サイトのパスワードを変更し、2段階認証が可能なサイトは、すべてその設定に変更しました。このように、パスワードは、通常は変更はしなくても良いと思います。その代わり、有事には一斉に変更しておくことが必要でしょう」

 もともと、牛尾は参加者。ここで一旦、森田が引き取る。

「牛尾さん、ちょっとご質問の要点に戻させてください。暗号化については、ご意見賜りました。部内で検討をさせていただきます。コメントありがとうございました」


 つい、熱くなってしまった。まぁ期待はできないだろう。が、いうことは言ったので、あとは経過観察だ。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る