js-shield
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Development meeting notes 14/Jun/2021


From: Libor Polčák
Subject: Re: Development meeting notes 14/Jun/2021
Date: Thu, 17 Jun 2021 15:26:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.8

Hello,

some comments to the meeting notes.

* Ebay was using some security scripts to detect open local ports, which
is something that JSR had implemented. It was nice to see it being
useful to deploy in the field with this use case.

I wrote a blog post on the issue

https://polcak.github.io/jsrestrictor/blogarticles/localportscanning.html

...
   * In brave these functions are turned on for all users and may be
possible to turn off for some sites.

https://github.com/brave/brave-browser/issues/8787


Off: Don’t apply any fingerprinting protections
Default: A useful set of protections that may not fundamentally prevent 
fingerprinting attacks, but re practical against real world fingerprinting 
attacks. Carries a small but non-zero chance of breaking sites.
Maximum: The strongest set of protections, that disables or otherwise modifies 
page functionality to prevent sites from accessing or learning the underlying 
data needed for fingerprinting attacks. Carries larger, non-trivial web-compat 
risks.

   * Georgio asks, since the original work is in C and the new
implementation is a rewrite into JS, there should be no need to use the
mozilla license instead of GPL. Libor will provide sample source files
for Ruben to pass to Licensing to confirm this.

I'll get to this issue soon.

   * Libor may contact the brave people about their implementation
method, they used a session key and domain key, to be able to be random
but stay across sessions. This key system was ported to our system, and
may need to be further reviewed. Giorgio looked a bit into this
functionality, thinks that the best way to implement this is with domain
keys in memory, and a different set to be used in incognito. Libor
agrees, the session key should not be needed, the worry is to have a
large list of keys of domains
* Right now each level needs to specify everything, so it cannot be

Each level does not have to specify everything. But

A) items not specified are not wrapped
B) a level cannot inherit wrapping properties from another level.

customized. Every time that a new wrapper is added we need to define
them in the level definition. We want to prevent the case in where an
update is done, that adds new wrappers changing the behavior of a level,
taking the user by surprise. Libor is thinking of working on the backend

The worry is mainly with user-defined levels. A user cannot create, for 
example, a level working as level 2 but with a window.name not wrapped. A user 
can create a level that is now similar to level 2 with the desired tweaks. With 
time such user-deifned level can de-sync as new wrappers are added to built-in 
levels or their behaviour changes. Hence I modify user-generated levels with 
update.js to try to keep user-defined levels in sync (so far I only added 
wrappers and not modified the behaviour). I use a (very very simple) heuristic 
to determine what levels should be changed. If the heuristics are not right, 
then a level can change without the user ever realise that.

So I want to create a mechanism that is not so fragile and that does not change 
user-defined levels.

I think that we should tweak built-in levels as we see necessary, for example, 
like now with farbling, it seems to make sense to change level 2 to include 
farbling.

Best

Libor



reply via email to

[Prev in Thread] Current Thread [Next in Thread]