novtanの日常

ネタです。ネタなんです。マジレスする人は撲滅すべき敵です。だからネタだってば!

HTTPSの神話

こんな記事が掲載されていた。

tech.nikkeibp.co.jp

えーと、X-TECHになってからどうもIT屋としての記事なのこれ、みたいなのが多い気がするのはさておき、「HTTPSの神話」なるものが、どこで語られていたのか、僕はよーわからん。いや、ここで語られていた、というのが著者の告白としてバッチリ書かれているわけですがw

ただ、この神話なるものが全くなかったか、と言ってしまうとちょっと気の毒でもある。デフォルトで信頼できるルート認証局として存在していたところが少なかった時代においては、確かに「オレオレ証明書ではないサーバー証明書」を提示できるサーバーってのはそうはなかったのは確か。かつてのVerisignの証明書は高いし、それなりの審査がされたりもしたよね。そしてそれを台無しにするようなオレオレ中間CAのインポートを求める某国政府サイトみたいな話も…

そうは言っても、その後のEV SSLとかで「信頼できる組織であることを特別視する」ような仕組みが作られたのはなぜかということをひっくり返せば、通常のサーバー証明書がそのサイトがEvilでないことを証明するものではないことはわかるよね。

さて、HTTPSはサイトの正当性を証明するものではなく、その特性上どこの誰だからわからないネットワークをリレーされていく可能性があるインターネットにおいて、end to end(と見なされる部分)における通信の秘匿性を担保するための仕組みであるだけであり、つまり、途中の経路における盗聴に強い仕組みであるだけに過ぎない。フィッシング詐欺なんて経路じゃなくてエンドで情報を搾取する仕組みなんだから経路の秘匿性なんてなんの関係もないわけで、ただ、かつては確かに釣りサイトはHTTPSでないことは多かったけど、大事なのはそこじゃなくてURLが正しいかどうかを確認するべきというのは当初から変わらないはずなんだけどね。一時期、ブラウザのアドレスバーを隠すのが流行ったときに怒り心頭だった人は多いと思う。

今、HTTPS化でネットを検索するとIT関連の仕事をしてるサイトでバッチリ「フィッシング詐欺に強くて安心」みたいなことが書かれているんだけどさ、こういう話が出てきちゃうのもかつて誤った認識で神話を語ってきた人に責任の一端はあるんではないかなとか思ったりはする。

7Dayの外部連携の脆弱性指摘記事の内容についていろいろ推測してみる

本当はいろいろ突っついて調べてみるのが良いんだと思うけど、もはや外部連携はできないのと、最近の「犯罪じゃないはずの行為で警察が来る」問題が楽観視できないので、一般論の範疇で。

www.businessinsider.jp

まず、ここで書かれていることをどこまで本当と考えてよいのかがわからないんだけど、仮にこのとおりだとしたら、「ナンバーキーで施錠してます。ボタン?1個だけですよ?」ってレベルのセキュリティー(つまり、0と等価である)であり、脆弱性診断もクソもないはずなので、流石に信じがたい。信じがたいことをやってのけた実績があるので信じたほうが良いのかもしれないけど。

とりあえず、本当だと仮定して話を進めますが、とはいえ、ソーシャルログインって何やってるの、を正確に理解している人はそんなに居ないと思うんですよね。僕もちょっと細かいところには自信ない。

今回はomni7の既存のIDに対してソーシャルログインで紐付けをしたIDがある、という前提だと思うんですが(じゃないと攻撃にならない)

この「id」という項目に注目。モザイクを入れた部分は数字の文字列がある。この文字列には、外部ID事業者とのOAuth認証時に得られる「ユーザー毎に一意なユーザーID」を単純に利用していた。

つまり、このidとomni7のIDを紐付けている、ということ。と、ここで、ん?と思う。そもそも、このリクエストを投げるAPIってなんなのか。ソーシャルログインの成功後のリダイレクト先ってことかな?でもこのidって値、誰が設定するんだ?
普通は
ソーシャルログイン完了
→アクセストークン付きのレスポンスをブラウザに返すのでブラウザがサーバーにリダイレクト
→サーバーからそのアクセストークンを使って認証プロバイダ(ソーシャルログイン先)に問い合わせ
→その結果のユーザー情報を元にこっち側で確認し、ユーザーと紐付いたAPIトークンを発行して返す
じゃないのかな?loginExternalAppMe...とは一体…
ともあれ、このような標準的なフローを使わず、謎認証を実装しているように見えるので、相当なアレなんじゃないかと思えますが、実際のところどうなんでしょうか…

そもそも今回の件って、本来、フロントエンド側のアプリサーバーとして7Payのサーバーがいて、それとomni7のサーバーが連携するはずのところを7Payのアプリから直接叩いているのでは?と思い始めてきたんですが(これは今でも確認しようと思えばできるかな?)、実は外部ID連携自体は7Pay側ではちゃんと実装されていたりして…。トークンもパスワードも無しにID送ったらトークン返ってくるって、公開されるAPIを想定している実装には見えないですよね。

セブンの話はなんだか異常を感じる

まあシステム屋なんて意外と狭い世界なので、セブンの件も3人位知り合いをたどれば関係者って人がほとんどだと思いますが、もうちょっと距離が短い人たちの間でも「こないだ知り合いに聞いたんだけど、うちじゃないって言ってたよ。イマイチどこが悪いんだかわからんってさ」なんて話が聞こえてきているんじゃないかと思います。

取り沙汰されているでかい会社の人たちも「あそこはうちじゃないんだよね」といっているのが聞こえる。じゃあどこなのよ?という話ですよね。「あそこ」という話はあるんだけど、その「あそこ」がどんなものなのかよくわからない、というね(お察し案件か…

にしても、パスワードが漏洩しているとか、いろんな話が錯綜して聞こえてくるという事態はこの手の話としてはちょっと異常ですね。でもこの話を真正面から受け止めると、7Payだけじゃなくてomni7もクローズしないといけないから政治的な判断とかなんだろうな。お役所も経産省と金融庁で縄張り争いしている感じで役に立たんし…

ITが本業じゃない会社がどのようにECに取り組むか、というのは非常に難しい話なんですが、セブンくらいの規模の会社であってもこうなってしまう、というのはそれを端的に表していますよね。


オムニは

システム開発にあたっての課題は、さまざまな業態が混在するマルチカンパニーである点と、各システムが13社のマルチベンダー化しており、これらの環境をまとめることが大変な点だった点だという。これに対し同社では、チームITの考えで、NTTデータ、NEC、NRI、Oracleの4社のITベンダーのチームで開発し、成功したという。

11月から始まった「セブン&アイ」のオムニチャネル戦略とは? | マイナビニュース

なんて話になってますけど、これって結局責任分界点を超える話はベンダーは知らないよ、と言わざるを得ず、システム全体のあるべき姿は発注元のITリテラシーに大いに依存するわけですが、特に今回の件で特定のベンダーの名前を上げてどうこう言っていない、ということがまた闇が深い感じしかしませんよね。あー怖い。