Firefox 52はバッテリーレベルAPIを削除してユーザーデータを非公開にしています





Mozillaは、Firefoxブラウザーの機能の1つであるバッテリーステータスAPIへのアクセスをブロックします。 Webサイトは、その助けを借りて、ユーザーのラップトップ、タブレット、またはスマートフォンのバッテリーレベルについて知ることができます。 ユーザーのプライバシーを保護することを決定しました。 イベントの年表は、物語が専門家の疑いから始まり、実装と実際の使用が続くようなものです。 現時点では、他のブラウザがこの機能で何をするかは明確ではありません。



劇的な変化の理由は、データのプライバシーが危険にさらされていたためです。 その他の状況は、機能の乱用と多くの実装エラーです。 機密性の理由により機能を削除するという決定は、違法使用のよく知られた明白なケースの後、前例のないことです。



この機能の目的は、デバイスの残りの充電量に応じて、ユーザーに異なるバージョンのサイトを提供することです。 デバイスが放電した場合、ユーザーはバッテリーをあまり「食べない」バージョンのサイトを提供されます。 サイト、開発者などの所有者と作成者のさまざまなバージョンの背後には、多くの作業があります。 バッテリーステータスAPIは、ネットワークまたはバッテリー操作から充電のステータスと、デバイスの電源がオフになるまでの残り時間を受け取りました。 また、バッテリーの何パーセントが未使用のままになりますか。 この機能の具体的なアプリケーションは次のようになりました。ソーシャルネットワークでは自動ビデオ再生がオフになり、マップ付きのサービスでは表示できる詳細が少なくなりました。





潜在的な脅威は、プリンストン大学の2人のセキュリティ研究者が、さまざまな状況でさらに監視するために特定のデバイスからfingerprint



するために現実世界で使用される追跡スクリプトを発見したときに実現しました。 この発見により、Mozilla開発者はブラウザから「悪い」機能を削除するようになりました。 最後に、関数は2016年10月27日に削除されました。 問題が発見されてから17か月が経過しました。



Firefoxに加えて、OperaとGoogle Chromeの2つのブラウザーがこの機能をサポートしました。 バッテリーステータスAPIはHTML5仕様の一部ですが、IE、Edgeブラウザーでは実装されていません。 WebKitはBattery Status APIをサポートしていましたが、Safariブラウザーには表示されませんでした。 実際には、ユーザー識別タスクの範囲を超える一般的なアプリケーションはわずかです。







機能自体について



Battery Status APIは2012年に文書化されました。 Mozilla Firefoxは、最初に実装されたブラウザーです。 Battery status APIは、navigator.getBattery()メソッドをwindow.navigatorに追加します。 次の例は、充電状態(ネットワークへの接続)とバッテリーの充電レベル、および残り時間の変化を示しています。 これは、イベントのリッスン機能を使用することで可能です:充電変更、レベル変更、充電時間変更、放電時間変更。



 navigator.getBattery().then(function(battery) { function updateAllBatteryInfo(){ updateChargeInfo(); updateLevelInfo(); updateChargingInfo(); updateDischargingInfo(); } updateAllBatteryInfo(); battery.addEventListener('chargingchange', function(){ updateChargeInfo(); }); function updateChargeInfo(){ console.log("Battery charging? " + (battery.charging ? "Yes" : "No")); } battery.addEventListener('levelchange', function(){ updateLevelInfo(); }); function updateLevelInfo(){ console.log("Battery level: " + battery.level * 100 + "%"); } battery.addEventListener('chargingtimechange', function(){ updateChargingInfo(); }); function updateChargingInfo(){ console.log("Battery charging time: " + battery.chargingTime + " seconds"); } battery.addEventListener('dischargingtimechange', function(){ updateDischargingInfo(); }); function updateDischargingInfo(){ console.log("Battery discharging time: " + battery.dischargingTime + " seconds"); } });
      
      





サイトは、シークレットモードのユーザーのIDを、VPNの有無にかかわらず異なるIPに関連付けることができません。 VPNのクイックシャットダウンの場合、バッテリーレベルはほぼ同じになります。 この情報を読み取った後、ブラウザはそれをサイトに送信します。 2つのデータセットがマッピングされ、ユーザーが同じであると結論付けることができます。









Guardianは、UCLのセキュリティコンサルタント兼研究者であるLukas Oleinikを、Firefoxで何が起こっているのかを引用しています。 彼は、Battery Status APIの潜在的な脅威を最初に発見した4人のうちの1人でした。 もちろん、彼は自分の仕事がどのように実を結ぶのか見て喜んでいた。 スペシャリストは、開発会社がAPIの使用を完全に放棄することを期待していませんでした。 「これは本当に前例のないことです。 私は開発の全歴史の中でそのような開発について知りません。 削除プロセスの遅延に関して:昨年機能を変更することを提案したため、これはそれほど重要ではありませんが、最終的には完全に削除されました。 これが偶然に機密性を維持するという事実は、決定の重要性を強調しています。」 Mozillaは声明で、この機能はWebコンテンツでは使用できなくなったが、拡張機能にはまだあると述べた。 バッテリーステータスAPI 、Firefoxの第52バージョンで削除されます。



これまでのところ、Mozillaだけが機能を削除しようとしていました。 AppleのSafariを支えるWebkitエンジンの開発者は、APIコードを削除することも提案しています。 ガーディアンはコメントを求めてGoogleとOperaに頼りました。 Apple コメント避けた。 機能がアクセスから削除されたことの確認は、公式のMozilla Webサイトで入手できます。



All Articles