⏱️

Microsoft Edgeがなんか遅い… なんとかできないか調べた

2022/09/08に公開

TL;DR

  • 任意のサイトに接続する前に、マイクロソフトのテレメトリサーバへデータを送っているように見受けられる
  • テレメトリサーバからレスポンスが返ってくるまで、目的のサイトの読み込みは行われていない(ように見える)、なので一瞬待たされてイラッとする
  • テレメトリサーバに接続しないようにしたら、割と改善された(気がする)

はじめに

ここ何年かはメインのウェブブラウザとしてMicrosoft Edgeを使っているが
サイトを開く際に、どうしても突っかかりというか一瞬待たされることが頻繁にあり、さすがにイラッとしたので何とかしようと試みた。

調査開始

テスト環境

  • Windows 10 Pro
  • Microsoft Edge 105.0.1343.27 (公式ビルド) (64 ビット)
    • Microsoftアカウントでサインイン済み、各種データ同期設定済み

海外フォーラムでの指摘

EdgeでYouTube見るとなんか遅いんだけど?みたいな質問に対して、browser.events.data.msn.comをブロックするといいよ、みたいな回答がついていた。

Reddit r/MicrosoftEdge - why is YouTube site taking a long time to load because edge is waiting for browser.events.data.msn.com?

思い出してみれば、browser.events.data.msn.com を待機しています…と右下に出ていたような気がした。

browser.events.data.msn.com を待機しています…

確認したら毎回出てた。

browser.events.data.msn.comとは何者なのか?

開発者ツールで確認してみたところ、何かしらの情報をPOSTしているようだ。

開発者ツールで見た様子 その1

サーバはどこにあるのか?

C:\Users\kumasun>nslookup browser.events.data.msn.com
サーバー:  (不明)
Address:  192.168.0.1

権限のない回答:
名前:    xxxxxxxxxxxx.westus.cloudapp.azure.com
Address:  20.189.999.999
Aliases:  browser.events.data.msn.com
          global.asimov.events.data.trafficmanager.net

どうやらAzure + Azure Traffic Manager(DNSベースロードバランサ)を使っているようだ。

リクエストの中身は何なのか?

同じく開発者ツールから確認ができる。

Request URI
https://browser.events.data.msn.com/OneCollector/1.0?cors=true&content-type=application/x-json-stream&client-id=NO_AUTH&client-version=1DS-Web-JS-3.1.10&apikey=xxxxxxxx&upload-time=1662520180099&w=0&anoncknm=app_anon

リクエストペイロードについては長大のためここには記載しない(Content-lengthベースで5kBほどある)。
ざっと見た感じ、画面サイズ・ブラウザのバージョン・表示言語などの環境情報が含まれている。
activityIdMS.News.Web.Baseといった文字列も確認できた。

また、ntp.msn.comというドメインが文字列に含まれていることも確認ができた。

レスポンスについては、ハッシュ値のようなデータを受け取っているようだが判読不能。

結局何やってるのか?

これは推測するしかないが、ペイロードの内容を見る限り

  • ユーザの(おそらく匿名化された)ID、環境情報やアクティビティを収集している。
  • Newsといった文字列も確認できることから、アクセスしたページに基づくユーザの興味関心情報の収集も行われているだろうと推測される。

以上のことから、アクセスしたWebサイトに基づくニュースの決定や、Rewardやおすすめなどの広告に用いるデータを収集しているものと考えた。

そういうとこやぞMSさんよ

(本題)これが遅い原因なのか?

おそらくそうでろうと推測できる。

開発者ツールの「タイミング」の情報を見ると、どの程度時間がかかっているか分かる。

開発者ツールで見た様子 その2

リクエスト完了まで500ミリ秒(0.5秒)くらいかかっているらしい。
もしこれが最優先かつ排他的に動作しているとしたら、ページを開くとワンテンポ遅れて動き出すという挙動についても説明がつく。

また、リクエスト・レスポンス内容から推測する限り、テレメトリと広告・ニュース周りのデータしか含まれていないため
当該ドメインに対するアクセスをブロックしても、本来のブラウジングに影響を与えることはないと考えられる。

ntp.msn.comとは何者なのか?

このドメインについては、新しいタブページを開いたときにのみ接続しに行っているようだ。
NewTabPageを現しているのかもしれない)

新しいタブページが開かれたとき真っ先に見に行くサーバであり、そこから配信されるスクリプトによってほかのサーバのコンテンツが芋づる式に読み込みされる。

接続しに行っているドメイン一覧

観測できた範囲では以下の通りであった。
特定のリソースにアクセスしないようにするブラウザのアドイン(いわゆるアドブロッカー等)では防げないため、hostsファイルに設定して名前を引けないようにする必要がある。

  • browser.events.data.msn.com
    テレメトリデータの送信先と思われる。
    ブロックしても弊害はなさそう。
  • c.msn.com
    テレメトリデータの送信先と思われる。
    いにしえの1ピクセルgif方式。
    ブロックしても弊害はなさそう。
  • ntp.msn.com
    新しいタブページを開いたとき、真っ先に読みに行く先
    Microsoftアカウントに同期されている情報を取得しに行っているように見受けられる。
    ブロックしても新しいタブページの動作がおかしくなる点はなかった。
  • api.msn.com
    新しいタブページにおいて、何らかの認証操作を行っているように見えるがそれ以上不明。
    ブロックしても害はなさそう
  • sb.scorecardresearch.com
    新しいタブページにおいて、マーケティング会社にデータを送っている
    ブロックした方がよいかもしれない
  • assets.msn.com
    新しいタブページの画面レイアウトやニュースフィードの情報を配信しているサーバのようだ
    ブロックすると新しいタブページの読み込みに失敗するようになる
    すっきり
    最終的に読み込みを諦めるとこんな画面になる

終わりに

Microsoftアカウントで同期できるしめっちゃ便利!Chromiumベースになって動作も安定!
…なんだけど、余計なお世話機能(Rewardsとかショッピングとか)やトラッキングとかそういうのをブラウザやOSのコア機能として乗っけてくるのはだいぶやべえマジ勘弁してくれとおもいました まる

Discussion