Microsoft Edgeがなんか遅い… なんとかできないか調べた
TL;DR
- 任意のサイトに接続する前に、マイクロソフトのテレメトリサーバへデータを送っているように見受けられる
- テレメトリサーバからレスポンスが返ってくるまで、目的のサイトの読み込みは行われていない(ように見える)、なので一瞬待たされてイラッとする
- テレメトリサーバに接続しないようにしたら、割と改善された(気がする)
はじめに
ここ何年かはメインのウェブブラウザとしてMicrosoft Edgeを使っているが
サイトを開く際に、どうしても突っかかりというか一瞬待たされることが頻繁にあり、さすがにイラッとしたので何とかしようと試みた。
調査開始
テスト環境
- Windows 10 Pro
- Microsoft Edge 105.0.1343.27 (公式ビルド) (64 ビット)
- Microsoftアカウントでサインイン済み、各種データ同期設定済み
海外フォーラムでの指摘
EdgeでYouTube見るとなんか遅いんだけど?みたいな質問に対して、browser.events.data.msn.com
をブロックするといいよ、みたいな回答がついていた。
思い出してみれば、browser.events.data.msn.com を待機しています…
と右下に出ていたような気がした。
確認したら毎回出てた。
browser.events.data.msn.comとは何者なのか?
開発者ツールで確認してみたところ、何かしらの情報をPOSTしているようだ。
サーバはどこにあるのか?
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ベースロードバランサ)を使っているようだ。
リクエストの中身は何なのか?
同じく開発者ツールから確認ができる。
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ほどある)。
ざっと見た感じ、画面サイズ・ブラウザのバージョン・表示言語などの環境情報が含まれている。
activityId
やMS.News.Web.Base
といった文字列も確認できた。
また、ntp.msn.com
というドメインが文字列に含まれていることも確認ができた。
レスポンスについては、ハッシュ値のようなデータを受け取っているようだが判読不能。
結局何やってるのか?
これは推測するしかないが、ペイロードの内容を見る限り
- ユーザの(おそらく匿名化された)ID、環境情報やアクティビティを収集している。
-
News
といった文字列も確認できることから、アクセスしたページに基づくユーザの興味関心情報の収集も行われているだろうと推測される。
以上のことから、アクセスしたWebサイトに基づくニュースの決定や、Rewardやおすすめなどの広告に用いるデータを収集しているものと考えた。
そういうとこやぞMSさんよ
(本題)これが遅い原因なのか?
おそらくそうでろうと推測できる。
開発者ツールの「タイミング」の情報を見ると、どの程度時間がかかっているか分かる。
リクエスト完了まで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