GiPStech Srl

GiPStech Srl

The GiPStech's blog

May 27, 2020 Update: The opensource app discussed in this article has finally been released on the google store. This makes it easier to use even for the uninitiated. The name of the app is BleTestContact and you rovate it at this store link.

In recent weeks there has been continued talk of the possibility of using technological means to support the containment of the spread of the COVID-19 virus that is literally bringing the World to its knees.

As we at GiPStech have been active for years on issues related to tracking and tracing we feel the need to highlight some aspects that leave us perplexed and which we describe below. We hope to find answers shortly from the agencies in charge who have already made precise choices which, while on the one hand reassure us by suggesting an error of perception on our part, on the other hand do not seem to us to have provided clarification on the points we are going to propose below.

The choice was made to detect “contact” between multiple users using only the Bluetooth signal. In our opinion, this imposition on the use of a single signal, at the expense of choosing to use multi-sensor data fusion techniques, risks profoundly compromising the reliability with which the app can detect (or not) contacts between different people. As a result, the collected data could be of affected by a large number of false positives or false negatives with repercussions on the validity of the alerts that are to be notified upon the next detection of an infection: in a first case, these alerts would be sent to users who are not at risk (wrongly detected) and, in a second case, fail to be sent to users who are really at risk because the latter may not have been detected at all by the app.

As premised, the way to make available in the shortest possible time a tool, with wide distribution, that allows to provide some kind of help in the containment of the emergency is certainly that related to the release of an “App” which can be installed on the smartphone that each of us already has in our pocket. If, however, the app turns out to be the cheapest and fastest means of implementation, the same probably cannot be said about the effectiveness that can be achieved through the use of technologies commonly usable through a commercial smartphone, which, by the way, have been reduced, for various reasons, to the possibility of using only the Bluetooth signal.

We happened to read, from various sources both National and Foreign, about the major privacy problems that a “contact tracing” approach may cause. However, at least to what is our knowledge as of the date of writing this text, we have not found any source that addressed two of the potential problems that underlie the viability and effectiveness of the aforementioned app:

  1. The problem associated with being able to estimate a distance from measurements of the bluetooth signal strength emitted by two or more smaprthones
  2. The issue related to the ability to keep the app active in the background, making it on all types and models of phones out there, so that “equal” access rights can be granted to anyone with a smartphone.

With reference to the above points, let us try to explain the problem better so that someone can clarify, to us and to everyone, these questions.

1. Distance estimation from just measuring the power of a radio frequency signal

All smartphones are equipped with a bluetooth radio more traditionally used for quite different purposes than those we are thinking of now: bluetooth was used to connect the headset, to transfer a few (small) files, to connect the car speakerphone. Instead, today we try to use the bluetooth signal, or rather the measurement of its strength, to calculate how far apart two or more smartphones are from each other.

The principle is very simple: by analogy, imagine that you have two light bulbs. Each bulb emits light and is in turn “illuminated” by the light emitted by the other bulb. It is easy to imagine that the light intensity that each bulb receives from the other is, evidently, as less (or as much more) as the bulbs are farther apart or closer together, respectively. With Bluetooth the same thing happens: each phone is able to emit a signal and receive signals that are emitted by other smartphones that are in close proximity: if a signal is received with “high” intensity then the smartphone is “close” (or rather: probably close) to the receiving smartphone and vice versa.

Without wishing to go into a rigorous treatment and simplifying the description of the problem as much as possible, thanks to the laws governing electromagnetism, there is a relationship that makes it possible to convert the measurement of the intensity of a radio signal into a distance:

Where R0 is the measured signal power value how far you are exactly 1 meter away (a constant parameter usually known or measured a priori), RSSI is the received signal measurement, and N is a coefficient related to the environment usually varying between 2 and 4.

Consequently, it would seem simple to be able to calculate, even with high accuracies, the distance between two smartphones from the simple measurement of the RSSI of the signal that one smartphone receives from the other. However, unfortunately, this is not the case. As, moreover, also pointed out by the same consortium that standardizes Bluetooth numerous factors prevent accurate and real-time distance estimation using only the RSSI of the signal, by the way the only measurable value on Android and iOS smartphones.

Simply put, this means that at least two smartphones of different make and model, placed at a predefined distance that remains constant during the measurement, be it for example 2 meters, will NOT receive a signal from each other with the same RSSI (Received Signal Strength Indication) value . That is, the RSSI measured by the two phones will be different and as a result each phone can estimate a distance that will be different from each other despite the phones remaining stationary with each other.

And, given this particular kind of exponential link that binds RSSI and distance, then small variations in the RSSI measurement can cause major errors in distance estimation.

Let’s take an example:

  • We arrange two smartphones at a distance of 2 meters. At this distance, according to the formula and using commonly used coefficients such as for example R0=-65dBm and N=2, the theoretical signal level that each smartphone should receive at a distance of 2 meters is -71.05 dBm.
  • Using, for example, the app we discuss below, let us try to detect, from both phones that we call A and B for convenience, the measured value of signal strength.

It is easy to verify that the measurements of phone A and/or phone B may differ, without wanting to exaggerate, by as much as 6dBm, which at a distance of 2 meters means almost 1 meter error (if we measure 6dBm less) and 2 meters error (if we measure 6dBm more). Consequently, the real distance of 2 meters could be wrongly estimated to be 1 meter or, worse, 4 meters: twice the real distance. Add to this the fact that if the phone models are different, the estimate will also be different for phone A and phone B, and without wishing to consider that the example described is an illustrative case of the real scenarios in which the smaprthones will be in conditions quite different and far removed from the one that imagines them being placed on a table at a fixed distance and without objects in the way that hinder the propagation of the radio signal.

In fact, if we “complicate” the scenario slightly by taking the simulation back to a real case then essentially almost never will the two phones stand still with each other. Worse yet, they will almost never be “in sight” i.e. most commonly placed in a pocket, purse etc. Now what if in the experiment before the bulbs we place one of the two bulbs behind a black curtain? Even if the two bulbs were at a distance of 10 cm neither could “see” the light of the other. The same thing happens with Bluetooth: the electromagnetic radiation is essentially almost completely absorbed by any obstacles, particularly by the human body itself being the latter very dense with water.

[...] the Bluetooth that must “estimate with sufficient accuracy” (about 1 meter) “the proximity” between people to make the warning effective [...]

To give all people who have an Android smartphone a chance to better understand in reality what is possible to achieve by measuring the RSSI of Bluetooth from two phones, we have made a test app that is released in open source on github and which anyone can view and download.. The same app can also be directly installed through the use of the downloadable APK again from this github link. As can be seen from the source code, the app does not store and/or send any data over the Internet but only emits and receives Bluetooth signals. Requesting Android’s permission to access the location data is necessary to properly manage the phone’s Bluetooth.

In order to simplify the installation even for people who are “less knowledgeable,” the app that is made available on githubwill soon be present on the Android store as well: the publishing process has been started and we need to wait for Google’s technical time. As soon as the app is available we will post the link here.

We suggest installing the app on two or more phones and running a few tests on your own. Once the app is launched it shows on the main screen a list of “identifiers” related to signals that can be received from neighboring phones that are running the same app. For each identifier is shown both the RSSI value and the relative distance calculated using the formula given above.

What if you place the two phones a few meters apart and read the distance values on each of them? What if you simply “rotate” them on a table? What if you sit back to back, one leaning against the other, holding the smaprthone in your hand, what distance is measured?

2. Keep the “app” always active on the phone

Another problem that, although not yet adequately highlighted is in our view substantial, is the well-known “non-adherence” of different phone manufacturers to the original specifications imposed for example by Google regarding Android.

In fact, it is immediate to realize that in order for there to be the exchange of Bluetooth signals described in the previous section then there must be an app always running on the phone that is responsible for performing the task of detecting “contact” with another person, which, by definition, can happen at any time.

Again, it is well known, mainly by insiders, that it is basically impossible for a mobile app to be kept active on the phone all the time without it being terminated by the operating system, for reasons mainly related to battery consumption. Simply put, on most phones it cannot be guaranteed that the app will remain active in order to perform the task for which the app is designed: detecting contact between different people. Without claiming completeness of discussion for example, it is possible to get more evidence of what is stated at the following site that represents one of the most comprehensive opensource projects on the subject: its name is in what way self-explanatory, it is “Dont Kill My App”.

Ultimately, in light of the above, how will it be possible to solve this problem and ensure equal access and the same level of service and protection for all users considering, among other things, that the nationally chosen app could, perhaps, become “mandatory”?

What if those who, downloading the app believing they were somehow protected, were to find out otherwise at the time of need simply because the app worked hiccups or did not work at all?

Wait a second…

Stay in the loop with our latest updates.

Subscribe to our newsletter for exclusive insights, product updates, and more.

We respect your inboxno spam, ever.

GDPR Consent Form