(Wróæ do mojej strony nt. Firefoksa. / Back to my page about Firefox.)

EN: Firefox 3 "Antiphishing/Antimalware" (so-called "safebrowsing") Server-side Project

Table of contents:

  1. EN: Firefox 3 "Antiphishing/Antimalware" (so-called "safebrowsing") Server-side Project
    1. Introduction
    2. How to enable and conduct this demonstration?
      1. Step by step instructions
      2. Format of logfiles
    3. How to restore your previous or default settings after conducting this demo?
    4. What are the related versions of Firefox?
    5. Technical details
      1. Specification
      2. Source code (client side)

Introduction

For similar project regarding Firefox 2 see this page.

(More to be written.)

How to enable and conduct this demonstration?

In order to demonstrate (using this project) how Google's so-called "safebrowsing" works it is necessary to change configuration of Firefox, ie. switch "data provider" for the "safebrowsing" service from Google (default) to this server. The most important prefs are:

There is also browser.safebrowsing.provider.0.name which holds name of the provider (it seems this value isn't used anywhere in Firefox 3) and browser.safebrowsing.dataProvider which holds value of index of current provider (0). So, in theory (and it was possible to do that in Firefox 2), it should be possible to add another provider instead of replacing Google (provider 0) by changing browser.safebrowsing.dataProvider to another number and creating prefs with this number, however provider 0 is actually hardcoded, so this is not possible and we have to replace prefs with 0.

Step by step instructions

  1. if you use Google's "safebrowsing" and want to restore its operation after conducting this demo, then backup 2 files from your profile directory:
  2. change relevant settings; there are two possible ways to achieve this -- using file user.js (recommended way) or changing prefs in about:config by hand:
  3. (re)start the browser
  4. after starting Firefox keep the browser running and wait 15-30 minuts; you may use the browser as usual; during this time the browser will perform the following operations (standard activity related with "safebrowsing"):

After last step is performed (watch relevant logfile to see "[[Sending data... ]]" at the end of line with your identifier) it will be possible to finally conduct the demo: visit one or more of the following pages:

and then the browser will silently send "gethash request" during the visit, which will be logged in the file urls.log (because it is possible for server to gather information about visited site).

Format of logfiles

When you enable this demo on client side, then three public logfiles on this server, mentioned above, will log all activity related with so-called "safebrowsing" (for purely educational purposes). The files are:

All files use common format and logs info that demonstrates that "safebrowsing" server is able to reliable differentiate between clients (computers/users). Each line means one request and consists of the following space-separated fields (some fields may be empty if there is no data):

How to restore your previous or default settings after conducting this demo?

(To be written. Steps will be similar to the ones one this page.)

What are the related versions of Firefox?

Firefox 3.0.x and later (including Firefox 3.5.x). It should also work with "clones" of Firefox such as Iceweasel.

It also works with "Private Browsing" (new feature in Firefox 3.5.x) enabled.

The same protocol is used in Google Chrome, so it may work with it, too. However, update/gethash/newkey URLs in Google Chrome are hardcoded, so it is probably not easy to change configuration on client side in case of this browser.

For similar project regarding Firefox 2 see this page.

Technical details

(More to be written...)

Specification

Protocolv2Spec (copy on Webcite) (note that Google restricts usage of the protocol, so legal status of this project is unclear...)

Source code (client side)

Bartłomiej B. (aka "BartZilla" @ Bugzilla@Mozilla)

Last modification of this page (yyyy-mm-dd): 2009-08-18