夕暮れのプロトコル解析
「レモン、レモンだから。分かった?」
などと、高槻さんは供述しており。
「はいはい、レモン好きですね」
とりあえず、壁紙をレモン画像に変更するログインスクリプトを配信ということでよござんすか。
陽が少しずつ傾いてきました。今日は接続もないようですし、夕刻には撤退でしょうか。
私は、ホテルにあるテスト環境にVPNで接続し、プロトコル解析を続けていました。仮想のBigBrotherサーバーと、仮想のクライアントPCでテストを繰り返します。この地味な作業の連続に、高槻さんは既に寝息を立てています。彼女は、技術的に可能なことを見極める力と、そこに思い切った投資を行なう行動力に関しては天才的です。しかし、具体的な手段には別に興味はないのでしょう。ついでにいえば、自らの手でやるということにも興味がなさそうです。どちらかというと、彼女はパトロンタイプなのかもしれません。
「ふわぁ……」
私も少し眠くなってきました。意識が……遠のいて……。
……。
コンコンと窓をノックされた音で、目が覚めました。アカネBが外に立っています。どうやら私は、うたた寝してしまったようですね。
「買ってきましたよ。どうぞ」
アカネBはそう言って、買い物袋を掲げました。
「ありがとうございます」
アカネBを車内に迎え入れると、彼は黄色い物体を私の手に載せました。え、この丈の詰まった紡錘形の格好(以下略)
「レモンです」
「要りません」
「えぇ、クエン酸は疲れにいいんですよ」
「そんなこと言ったら薬機法に抵触しますよ」
「個人の感想です」
「そんなの通用しませんよ」
そんな会話の傍らで、寝ぼけ眼の高槻さんは、ガサガサと買い物袋の中を探っています。
「ねえ、思ったんだけど――」
そう言いながら、缶コーヒーを開け、一口含みました。そして、私たちをじっと見つめて言います。
「あなたたち仲いいよね」
「まあ、昔から私が祝園Aで、こいつが祝園Bですからね」
「昔からこんな感じです」
「ふうん。その調子で結婚しちゃえば面白いかもね。そしたら、同姓同名、同一住所でしょう? しかも、同一誕生日だっけ? いろんな名寄せシステムがバグりそう」
そう言って、高槻さんはふっと笑います。小馬鹿にしたような感じで。
「そうですね、結婚しますか?」
私がそう言うと、アカネBもそれに応じます。
「ああ……、いいですね!」
高槻さんが慌てふためきながら、割って入りました。
「ちょっと待って! 何突然。ダメ、許さない。今のはジョークだから、ジョークだから! プ、プロポーズするなら、もっとロマンチックな感じでやりなさい」
「余計なお世話です」
「余計なお世話です」
さて、通信プロトコルの仕様は、おおよそ見えてきました。まず、BigBrotherの通信はTLSで暗号化されています。TLSでは通信相手の電子証明書が正しいことをしっかり確認していますから、偽物のサーバーではそもそも通信エラーとなってしまいます。
ジ・エンド。
……ということにはなりません。
私の記憶が確かならば、本番環境では、証明書チェックが無効化されていたはずです。元々はちゃんとした認証局の署名がある電子証明書を使っていたのですが、更新費用の予算承認が降りず、途中から自己署名証明書に切り替えたのです。つまりはアレですよ。オレオレ証明書です。オレオレ証明書を使うのはタダですが、証明書チェックエラーが発生します。第三者の後ろ盾なく勝手に自分がオレオレと名乗っているに過ぎず、通信相手が本物かどうか確認することができないからです。
各PCにオレオレ認証局を信頼出来る認証局として登録すればまだマシだったのですが、それはそれでセキュリティ的には、リスキーでもあり……。
そこで、弊社はどうしたか。なんと、エラーを無視する設定に変更してしまったのです。つまり、通信相手が本物かどうか確認しないということです。TLSの魅力を全て捨ててしまう、そんな暴挙でした。
私は言いました。
『システム課として、その対応はおすすめできません。そんなことをするぐらいならLet's Encryptを使うほうが絶対に良いと思いますが』
Let's Encryptというのは無償で利用できる認証局です。無償で利用できるのですが、証明書の有効期限が短いなど、色々制約があります。その辺は上手く自動化するなり、マニュアル化して運用担当者に依頼するなり考えられるのですが、反応はそれ以前のものでした。
『そんな、どこが出してるか分からない物は信頼できないでしょう』
まあ、そんなことを言い出したら、自分のほうがもっと信頼できないと思いますけどね。結果、こうやって模擬攻撃を仕掛けられることになるのですから。
さて、仮想のBigBrotherサーバーとクライアントの通信内容の解析には中間者攻撃の手法を用いました。中間者攻撃とは、二者間の通信の間に割って入り、こっそり通信相手のフリをしながら通信内容を受け取り、本物の通信相手に通信を取り次ぐ攻撃方法です。お互い本物の通信相手に通信していると思っていますが、実のところ、間に攻撃者が入っているのです。
「で、どう? 何か分かった?」
「ええまあ。暗号化された通信の中身は普通のHTTPです。JSONでメッセージをやりとりしているようですね」
「えっ、それじゃ、さっきのクロスサイト――」
「リクエストフォージェリですか? まあ、できるかもですが、まずブラウザの証明書チェックで弾かれるでしょうね」
「……ああ、そう」
「でも、可能性はありますよ。方向性は見えてきました。でも――」
陽はあっという間に沈み、辺りはすっかりと暗くなってしまいました。これまで接続実績はゼロ。何日か粘ってみるしかなさそうですね。
「今日のところは撤収しましょうか」
「賛成」
「収穫なしで残念でしたね、監査役」
紺色の空の下、私たちはアンテナと器機類の撤収をはじめました。
ふと京姫鉄道本社ビルに目を遣ると、まだ多くの窓に煌々と光が灯っています。あそこに見えるのはシステム課のオフィスです。皆元気でやっているでしょうか。ついこの前まで、私の居場所はあそこだったのに。人生とは分からないものです。
でも、こういう風に、全力で遊ぶみたいな仕事も悪くありません。なんだか妙に懐かしい空気です。こんな清々しい夜風を鼻腔から身体一杯に取り込む感覚。そうだ。これは、高校の文化祭の前夜の空気かもしれません。こんなふうに日が暮れるまで学校に残って、ああでもないこうでもないと騒いだものです。大人になった私たちには、ああいう空気を楽しむ機会がありません。せいぜい、頭痛薬を飲んだ後、なんか鼻の奥がスースーする副作用を楽しむしか方法がないのです。それも人によってはそんな副作用出ないらしいですね、あれ。ともかく、今日は久々に、懐かしい空気に包まれて幸せな気分でした。
その時、システム課の窓に、英賀保芽依の姿が見えました。一瞬、目が合ったような。
気のせいですよね。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます