The ongoing COVID-19 pandemic with rapid and widespread global impact, has caused havoc over the past few months -at the time of writing of this paper, over 3 million individuals have been infected. The epidemic has caused over 200,000 global casualties, and the world economy to come to a screeching halt. Several (nonpharmacologic) steps are being taken by governments and organi- * We are thankful to Dhrubajyoti Ghosh for helping us in the system installation.
This material is based on research sponsored by DARPA under agreement number FA8750-16-2-0021. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright notation thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of DARPA or the U.S. Government. This work is partially supported by NSF grants 1527536 and 1545071. zations to restrict the spread of the virus, including social distancing measures, quarantining of those with confirmed cases, lock-down of non-essential businesses, and contact-tracing methods to identify and warn potentially exposed individuals. These tracking and tracing measures utilize a range of technological solutions. Countries, e.g., Israel, Singapore, China, Taiwan, and Australia, utilize cellular data records or data from Bluetooth-enabled apps to perform contact tracing. Other countries, e.g., India, have begun manual contact tracing by interviewing patients.
Recently, commercial and academic solutions (e.g., Apple-Google collaboration [1] , European PEPP-PT [2] , Israel's The Shield [3] , Singapore's TraceTogether [4] , South Korea's 100m [5] , and [40, 14, 28, 23, 57] ) aim to provide secure contact tracing using Bluetooth-based proximity-detection. Using this approach, users can check if they have been exposed to a potential carrier of the virus by performing a private set intersection of their data with the secured public registry of infected people. While this approach is a step towards protecting the privacy of individuals, there are several limitations: First, the collection and sharing of such personal information can compromise the privacy of individuals -there are growing fears that this could also lead to misuse of data (now or in the future), e.g., mass surveillance of communities and targeting of specific populations [24, 57] . Second, such methods require users to opt-in to broadcast, share, and collect the data using Bluetooth -past work has highlighted limited adoption of such technologies, especially, in parts of the world where privacy is considered to be a paramount concern [40, 19] . Third, contact tracing using Bluetooth or GPS-based proximity sensing has been shown to have false positives/negatives, leading to limited accuracy [23, 40] . Finally, past experiences have indicated that creating pathways for large organizations to capture personal data can lead to data theft, e.g., Facebook's Cambridge Analytica situation and [51] .
Contact tracing approaches are reactive in nature and aim to detect exposure after it occurs. We argue that proactive and preventive approaches are critical to contain and mitigate the spread. For instance, the ability to monitor public spaces (e.g., classrooms, restaurants, malls), which are expected to have significant density and population flow, can be used by organizations (e.g., campuses) to observe the extent to which employees (and employers) are adhering to social distancing directives. In fact, based on recent media articles [6, 7] and conversations with our university leadership, 1 the importance of such applications will increase further as organizations consider ways forward to reopen and resume operations. Today, organizations are working to help strike the right balance between onsite/online operations that afford both business continuity and public safety. This paper describes our proposed solution, entitled QUEST that exploits existing WiFi infrastructure (prevalent in almost every modern organization) to support a sleuth of applications that empower organizations to evaluate and tune directives for safe operation, while protecting the privacy of the individuals in their premises. Particularly, QUEST leverages WiFi connectivity data (the data generated when a device connects to wireless accesspoints, see §4 for details) to support applications for social distancing adherence, crowd-flow, contact tracing, and exposure notifications within premises (both inside/outside buildings). The WiFi data collected is appropriately secured to prevent leakage of personally identifiable information (e.g., MAC address of the mobile device) and outsourced to a public (cloud) server. On the outsourced data, QUEST allows application execution to occur in a privacypreserving manner.
QUEST supports two different cryptographic alternatives for secure data processing; the choice of the approach is based on underlying security requirements of the organization. The first is a computationally secure encryption-based mechanism, entitled CQUEST that encrypts data using a variant of searchable encryption methods. The second approach called IQUEST, based on a string-matching technique [29] over secret-shares generated using Shamir's secretsharing algorithm [54] . Both methods support the above-mentioned applications. IQUEST offers a higher level of security, when using untrusted servers, since it is information-theoretically secure, and moreover, does not reveal access-patterns (i.e., the identity of tuples satisfying the query). We have deployed QUEST at UC Irvine [8] , as well as, tested the system on large WiFi datasets. These datasets were collected as a part of the TIPPERS smartspace testbed at UCI [48] and will also be used for scalability studies.
QUEST offers several distinct advantages compared to other ongoing contact tracing efforts that have focused on using GPS, cellular infrastructure, and proximity sensors (e.g., Bluetooth) [9, 4, 1, 23, 28, 40] . These include:
• A Decentralized organizational solution. QUEST is designed as a tool to be used independently and autonomously by organizations (e.g., universities, individual shops/shopping complexes, and airports) to monitor adherence of their policies for social distancing, crowd-flow, and, to warn people about possible exposure on their premise. The organizational aspect of QUEST brings several advantages. First, the solution is amenable for organizational-level control to ensure that warning and alerts are not misused to spread false information, unlike some of the recent tools which are being targeted by malicious adversaries to spread propaganda and misinformation [10, 11] . Second, unlike solutions such as the one being designed by mobile OS platform vendors (viz. Apple and Google), in QUEST, both data collection and usages remain decentralized to the level of an organization and, thus, end-users do not need to trust any single organization/authority with their data.
• A robust solution that works both inside buildings and outdoors.
Since QUEST is based on WiFi technology, it has a distinct advantage of being able to monitor both inside buildings (organizational premises) and in outside spaces, due to the ubiquitous nature of WiFi coverage in both indoors and outdoors of campuses. The use of WiFi data brings in several additional advantages: First, QUEST does not require any additional hardware expenses or deployment of any new technology that might be prohibitive in terms of cost and limited in terms of deployment. Second, since WiFi connectivity events are generated automatically by current WiFi protocols, QUEST is entirely passive, i.e., it does not require users to deploy any new applications or make changes to their mobile devices. Third, the technology is platform independent, since data collection is implemented entirely on the infrastructure side.
• Privacy-by-design. QUEST supports the above-mentioned applications in a privacy-preserving manner by exploiting computationally secure and information-theoretically secure techniques. Thus, QUEST does not provide additional information about people, their locations, or their health status to any organization that they do not already have. Also, an adversary cannot learn past behavior or predict the future behavior of any user. Since the ciphertext representations of a person across organizations are different, even from jointly observing data of multiple organizations to know any specific person has been to the premises of one or more organizations. 2 Outline. §3 provides the model and security properties. §4 provides an overview of QUEST and its applications. §5 provides CQUEST protocol. §6 provides IQUEST protocol. We evaluate QUEST in §7 and compare it with other state-of-the-art approaches, e.g., Intel Software Guard Extensions (SGX) [26] based Opaque [62] and multi-party computation (MPC)-based Jana [17] ; we discuss tradeoffs between security and performance.
In this section, we discuss the new approaches designed for COVID-19 contact tracing, several prior research approaches have explored proximity-based solutions to monitor the spread of infections, and compare against QUEST.
Comparison with COVID-19 proximity finding approaches. Several recent approaches for preventing the spread of coronavirus are based on Bluetooth data-based secure proximity detection. For example, Canetti et al. [23] present a person proximity detection method based on Bluetooth-enabled devices. However, this method requires to store parts of the data at the user device. [23] , also, argued that GPS-based proximity detection inside a building can give false results. Stanford University [9] is also developing applications based on Bluetooth data. Singapore's TraceTogether application [4] , also, works based on Bluetooth-based tracking. However, [24] showed that TraceTogether jeopardizes the user privacy. DP-3T (decentralized privacy-preserving proximity tracing) [57] proposed a proximity tracing system based on Bluetooth data. Google and Apple [1] are developing Bluetooth beacon-based contact tracing, while preserving the user privacy and location privacy. Similar work is also proposed in [28, 40] for Bluetooth databased secure proximity detection, based on the private set intersection. Enigma MPC, Inc. [12] develops SafeTrace that requires users to send their encrypted Google Map timeline to a server equipped with Intel SGX [26] that executes contact tracing and finds whether the person got in contact with an impacted person or not. A survey of recent contact tracing application for COVID-19 may be found in [56] . However, all such methods require either to install an application [57, 4] at the device, to store some data [23, 28] at the device, to execute computation [23, 12, 28] at the device, to explicitly opt-in to enable Bluetooth-based beacon exchange [1, 28, 40] , or jeopardize the user privacy [24] .
In contrast, QUEST does not require any effort by users, since we rely on WiFi data that is generated when a device connects with a WiFi network. QUEST discovers the most accurate proximity of 2 Organizations today, if they so desire, can capture and trace individuals based on their WiFi connectivity data. QUEST, obviously, cannot prevent such a use of WiFi data.
The key-point is that while QUEST stores secured WiFi data at the cloud, the data-atrest or query execution will not reveal any additional information to the organizations. a person inside a building, unlike GPS-based approaches. Also, while using the servers, IQUEST provides complete security, due to using secret-sharing based technique. QUEST not only provides contact tracing, but also provides other applications (Table 1) .
Comparison with other proximity finding approaches. Epic [15] and Enact [50] are based on WiFi signal strength, where a dynamic user scans the surrounding's wireless signals, accesspoints, and records in their phones. The infected user sends this information to a server that notifies other users and requests them to find their chances of contact. However, Epic [15] and Enact [50] consider trust in reporting by the infected users and requires storing some information at the smartphone, like Bluetooth-based solutions [57, 4, 23, 12, 28] . Another problem with such signal strength-based methods is in developing models to compare WiFi signals and have issues related to spatial, temporal, and infrastructural sensing [42] . NearMe [43] , ProbeTag [47] , [52] , [49] , and [44] proposed similar approaches for proximity detection. The seminal work [21] proposed distance-bounding protocol to estimate an upper-bound on the physical proximity of the device through the round-trip time measurements, by exchanging unique challenge-response pairs between a sender and a receiver. [34] provided a solution for proximity testing among the users while hiding their locations by encryption and considered user-to-userand server-based proximity testing. Note that all such methods require active participation from the users.
In contrast, QUEST does not require active participation from the user, since it relies on WiFi connectivity data, which is, obviously, generated when a device gets connected with a WiFi network.
Background on cryptographic techniques. We may broadly classify existing cryptographic techniques into two categories: (i) Computationally secure solutions that includes encryption-based techniques such as symmetric-searchable encryption (SSE) [55, 27, 45, 46 ], deterministic encryption [18, 20] , and order-preserving encryption (OPE) [13] , (ii) information-theoretically secure solutions that include secret-sharing-based techniques [54, 29] and multiparty computation (MPC) techniques [17] . Computationally secure solutions, such as SSE -PB-tree [45] and IB-tree [46] , are efficient in terms of computational time. However, they (i) reveal access-patterns (i.e., the identity of the tuple satisfying the query), (ii) do not scale to a large-dataset due to dependence of a specific index structure, (iii) are not efficient for frequent data insertion, since it requires to rebuild the entire index at the trusted side, and (iv) cannot protect data from a computationally-efficient adversary or the government legislation/subpoena that may force to give them the data in cleartext. In contrast, information-theoretically secure solutions hide access-patterns, as well as, secure against a computationally-efficient adversary or the government legislation/subpoena, (if the shares of the data are placed at the public servers under the different jurisdiction). Instead of using any cryptographic solution, one may also use secure hardware-based solutions that include Intel Software Guard eXtension (SGX) [26] based systems, e.g., Opaque [62] , Bunker and Fort [16] , HardIDX [32] , and EncDBDB [33] . However, such solutions suffer from similar issues as computationally secure solutions and suffer from additional sidechannel attacks, such as cache-line [38] and branching attacks [59] that reveals access-patterns.
This section explains the entities involved in deploying QUEST, the adversarial model, and the desired security properties.
We have the following two major entities in QUEST.
1. An organization oi, who owns and deploys WiFi infrastructure (e.g., WiFi access-points), and hosts QUEST that receives WiFi (connectivity) data (from the infrastructure) of the form: di, li, ti , where di is the i th device-id and ti is the time when di connects with a WiFi access-point li. Prior to outputting the data, QUEST appropriately implements a cryptographic technique to prevent misuse of the data from an adversary.
2. The untrusted public (cloud) servers that host the secured data, outsourced by QUEST, on which they execute applications. We assume that the servers support any database system, e.g., MySQL.
Also, we assume two additional entities: a querier and a publisher (P). A querier (which may be the organization or any (authenticated) person) is allowed to execute QUEST applications on the secured data (via QUEST). Further, only for contact tracing application, we assume a trusted publisher P (i.e., hospitals), who publishes a secured list L of device-ids of confirmed infected person. We assume that QUEST executes a secure authentication protocol with P to confirm the queried device-id as the device-id of an infected person, before executing contact tracing application. Thus, it prevents the querier to execute a query for any device-id.
As we have two entities in QUEST. Below, we discuss their adversarial behavior and our assumptions. Organizations. We assume that organizations have their own security keys (e.g., public and private keys). A system that hosts QUEST, its security keys, and programs must be secured and untampered by anyone including the organizations, and this is an inevitable assumption, as well as, similar to the database-as-a-service (DaS) model [39] , (where it is assumed that an adversary cannot filtrate the information stored at the database owners). Otherwise, any cryptographic mechanism cannot be implemented on WiFi data. Also, it is important to mention that oi can capture their infrastructure data and can do any computation on the data as per their desire, without informing anyone. Controlling such organizations and preventing the misuse of the data is not in the scope of QUEST. Recall that QUEST's goal is to prevent oi to track individuals or to run any applications other than those supported by QUEST on the data collected by QUEST. Cloud servers. We assume that the public servers are honestbut-curious (HBC) and/or malicious adversaries. Such adversarial models are considered widely in data outsourcing techniques [39, 27, 22, 41, 29, 58, 61 ]. An HBC adversary may wish to learn the user information by observing query execution, while a malicious adversary deviates from the algorithm. Since dealing with a malicious adversary, we use an information-theoretically secure solution that uses Shamir's secret-sharing [54] . Thus, we follow the restriction of Shamir's secret-sharing that the adversary cannot collude with all (or possibly the majority of) the servers. Prior to sending the data to the server, we assume that QUEST authenticates the servers. Also, we assume that the secret-shared data transmission to the servers is done using an anonymous routing protocol [36] , and it prevents an adversary to eavesdrop on a majority of communication channels between QUEST and the servers, and thus, preventing the adversary to know the servers that store the secret-shares. 
In the above-mentioned adversarial model, an adversary wishes to reveal user privacy by learning from data-at-rest and query execution. Thus, a secure algorithm must prevent an adversary to learn the data by just observing (ii) cryptographically-secure data and (ii) query execution and deduce which tuples satisfy the query (i.e., access-patterns). Also, we need to ensure that a querier cannot execute a query for device-ids not published by P. Thus, we need to maintain the following properties: Ciphertext indistinguishability. In the proposed scheme, the data contains user device-id. Thus, the indistinguishability of the user device-ids and locations is a vital requirement. Thus, the adversary, just by observing the secured dataset, cannot deduce that any two tuples belong to the same user/location or not. Note that satisfying indistinguishability property also prevents the adversary from learning any information from jointly observing two datasets belonging to two different organizations. Secure query execution. It requires to maintain: (i) Query privacy that prevents the adversary from distinguishing between two query predicates (for the same or different device-ids and locations) by observing the query predicates or by observing the two queries' execution, i.e., access-patterns. (ii) Execution privacy that enforces the adversary to behave identically and to provide an identical answer to the same query. (Since an adversary cannot distinguish between two query predicates, it should follow the same protocol for each query execution to prove its non-adversarial behavior.) Satisfying these two properties achieve indistinguishability property during data-at-rest/query execution and do not reveal any information about the device-ids/locations. We can, formally, define it using the algorithm's real execution at the servers against the algorithm's ideal execution at a trusted party having the same data and the same query predicate. An algorithm reveals nothing if the real and ideal executions of the algorithm return the same answer.
Definition: Query privacy. For any probabilistic polynomial time (PPT) adversary having a secured relation and any two input query predicates, say p1 and p2, the adversary cannot distinguish p1 or p2, either by observing the query predicates or by query output.
Definition: Execution privacy. For any given secured relation, any query predicate p issued by any real user U , there exists a PPT user U in the ideal execution, such that the outputs to U and U for the query predicate p on the secured data are identical.
Note that satisfying the above two requirements (which are widely considered in many cryptographic approaches [22, 41, 29] ) will hide access-patterns, thus, the adversary cannot distinguish two different queries and the satisfying output tuples. However, such a secure algorithm (as given in §6) incurs the overhead. Thus, we relax the access-pattern-hiding property (similar to existing searchable encryption or secure-hardware-based algorithms) and, also, present efficient access-pattern revealing algorithm, CQUEST ( §5). In Appendix A, we provide security property of CQUEST.
QUEST contains the following three major components (see Figure 1) : Data collector. It collects WiFi connectivity (or association event) data of form di, lj, t k , when a device di connects to a WiFi access-point (AP) lj at time t k . Particularly, at the infrastructure side, the collector contains a wireless controller that receives WiFi data from several APs ( 0 ), via several methods, e.g., SNMP (Simple Network Management Protocol) traps [53, 63] , recent network management protocol NETCONF [30] , or Syslog [35] ) and forwards WiFi data to QUEST ( 1 ) over the network using the secure networking protocol (e.g., SSH [60] ). QUEST receives and handles a large amount of streaming WiFi data at a very high rate ( 1 ). However, the encrypter may not be able to handle a sudden burst of data, due to the overhead of security techniques and may drop some data. Thus, QUEST data collector includes an ingester (e.g., Apache Kafka, Storm, and Flume) that acts as a buffer between the wireless controller and the encrypter ( 2 ). Data encrypter. The encrypter collects data for a fixed interval duration, called epoch (the reason of creating epochs will be clear soon in §5) and then implements a cryptographic technique (based on the desired security level, using CQUEST Algorithm 1 or IQUEST 3) and outputs the secured data that is outsourced to the servers ( 3 ). Trapdoor generator. A query/application is submitted to the trapdoor generator ( 4 ) that generates the secure trapdoor (using Algorithm 2 or 4) for query execution on secured data. For (user) contact tracing, it confirms the submitted device-id as the real device-id of an infected person or not, from the publisher ( 5 ). The trapdoors are sent to the servers that execute queries and send back encrypted results ( 6 ) . The results are decrypted before producing the final answer ( 7 ) . Further, the organization may alert the users appropriately (via emails or phones), if devices have allowed the organization to inform about it, during their registration ( 8 ) .
QUEST Applications. On the secured data, QUEST supports the following diverse applications, which monitor/mitigate the spread of COVID-19 (Table 1 lists the application in SQL):
1. Location tracing: traces all locations that were visited by an infected person in the past 14 days (the possible incubation time of coronavirus). Once the information of an infected person is provided to trapdoor generator, it, first, confirms from the publisher about the infected person, and then, generates trapdoors to find the locations visited by the person during the desired time interval.
2. User tracing: traces all users that were in the vicinity of an infected person in the past 14 days. Note that this is a natural extension of the previous application, by tracing all people who were at the infected locations at the (bounded) interval time (e.g., +/-15minutes), when an infected person was there.
3. Social distancing: finds the locations and/or users in the campus that are not following social distancing rule. The idea is to use WiFi dataset to create a predefined occupancy knowledge at the granularity of buildings, floors, and regions within buildings. Now, the dynamic occupancy levels of such buildings (along with the knowledge of the capacity of rooms/floors/buildings) help in establishing to what degree different parts of the buildings are (or have been) occupied. Such a measure can help develop a quantitative metric, a social distance adherence index (e.g., at UCI, 6 feet distancing requirement was translated roughly into 12.5% occupancy). Figure 2 shows the interface of social distancing application at UCI before the lockdown was announced. Figure 2 shows social distancing at different granularity, such as regions, floors, and buildings, where red-colored dots show that the buildings are not following social distancing rule. Figure 3 shows the interface of social distancing application at UCI after the lockdown was announced, where green-colored dots show that the buildings are following social distancing rule.
4. Crowd-flow: finds locations that were visited by many people in a day, and hence, need frequent cleaning. Note that this is a natural extension of social distancing application. This application provides information to individuals about the number of people visiting a given region over a given time period. Such information can be vital for people wishing to avoid crowded areas and also for the cleaning staff to determine places where disinfecting might be necessary. Figure 4 shows the interface of crowd-flow application after the lockdown.
Notification: enables all (desired) users to receive notifications, if they are tentative suspects. Note that often when connecting to a WiFi network, it may ask email address or phone number; QUEST exploits such information for notifications, (if allowed by the user).
This section presents computationally-secure methods, CQUEST to encrypt WiFi data and to execute queries on encrypted WiFi data.
Key generation. QUEST encrypter generates a symmetric key: (sq ⊕ k pko )||attributei, i.e, the key is generated for each attribute of R by XORing the secret-key of QUEST (sq) and public key of organization (k pko ), and then concatenating with the attribute-id. We denote the key for an attribute i by ki in Algorithm 1, and unless not clear, we drop the notation ki from the description.
Algorithm 1 provides pseudocode of proposed data encryption method that is executed at QUEST encrypter. It takes tuples of an epoch, produces an encrypted relation R with five attributes. Table 2b shows an example of the produced outputs by Algorithm 1, which works as follows: Selecting epoch. We use the bulk encryption method. Note that WiFi access-points capture time in milliseconds and ping the same device after a certain interval, during which the device can move. These two characteristics of WiFi data capture makes it hard to track a person based on time. 3 Thus, we discretize time into equallength intervals, called epoch, and store a special identifier for each interval (that maps to the wall-clock time). An epoch x is denoted by ∆x and is identified as a range of begin and end time. All sensor readings during that time period are said to belong to that epoch. There are no gaps between epochs, i.e., the end time of the previous epoch is the same as the begin time of the next epoch. For simplicity, we identify each epoch by its beginning. Encrypting device-ids: Attribute A id (Lines 6-8). Since a device di can appear multiple times in an epoch, we need to prevent the To execute applications such as social distancing and crowd-flow, we need to know unique devices at each location in ∆x. Thus, when a device di appears for the first time at a location in y th tuple, we add its uniqueness by E(1, y, ∆x). (It will avoid QUEST to decrypt all encrypted device-ids for knowing distinct devices in ∆x.) Encrypting locations: Attributes AL and ACL (Lines 9-12). First, we need to produce different ciphertexts for multiple appearances of a location to prevent frequency-count attack, while data-at-rest.
To do so, we use a counter variable for each location and increment by 1, when the same location appears again in a tuple of ∆x (and could, also, add x, like di's encryption 
Delete all hash tables for ∆x Q) for those applications and query execution at the public server (denoted by S). 6 Location tracing (lines 1-5). First, Q verifies the identity of the infected user device di from the publisher P (line 2). Then, Q (or a join  query between a table having all trapdoors and another table having the encrypted WiFi data) to know the corresponding values of A id column (line 9). All such values are transmitted to Q that decrypts them to know the final answer (line 10). If any of the impacted users have subscribed to notification service, then they are informed. Example 5.2. Suppose, we wish to know the impacted people that may in contact with the infected person whose device-id is d1. From Example 5.1, we know that l1, l2 are the impacted locations. Suppose the maximum counter value for any location (cmax ) is two. Thus, Q generates trapdoors as follows: E(l1, 1), E(l1, 2), E(l2, 1), E(l2, 2), and sends them to S. S executes a selection query over AL column for such trapdoors and sends device-ids from A id column, corresponding to the trapdoors. After the decryption, Q knows that d2 is the device of a person that was in contact with the infected person whose device-id is d1.
Social distancing (lines [11] [12] [13] [14] [15] . Q generates and sends trapdoors E(1, y, ∆t) to S to find the unique devices in the desired epochs 7 Generating and sending trapdoors for impacted locations equals to the maximum counter value may incur computation and communication overheads. Thus, we will suggest an optimization for preventing this.
(line 12). 8 S executes a selection query for the trapdoors (or a join  query between a table having all trapdoors and another table having the encrypted WiFi data) to know the unique devices in the desired epochs and sends the qualified values from AL column (line 13) to Q. Q decrypts the received locations and counts the appearance of each location (line 14). Then, Q issues an alarm, if the counter value for a location exceeds the predefined rule for social distancing, denoted by distanceIndex (line 15).
Aside. Note that we can also know the devices that do not follow the predefined rule for social distancing, by fetching the qualified values from A id along with values of AL. Example 5.3. Assume that if more than one person appear at a location during a given epoch, then it shows that people at the location are not following the predefined social distancing rules, i.e., in this example, distanceIndex = 1. Q generates the following four trapdoors: E(1, 1, x) , E(1, 2, x), E (1, 3, x) , and E (1, 4, x) . Based on these trapdoors, S sends E(l1, 1), E(l2, 1), and E(l2, 2). On receiving the encrypted location values, Q decrypts them, counts the number of each location, and finds that the location l2 is not following the social distancing rule.
Information leakage discussion. Although the data-at-rest does not reveal any information, the query execution reveals accesspatterns (like SSEs or SGX-based systems [38, 59, 62, 31, 33] ). Thus, an adversary, by just observing the query execution, may learn additional information, e.g., which of the tuples correspond to an infected person (by observing Location Trace), how many people may get infected by an infected person (by observing User Trace), which tuples correspond to unique devices by observing queries on Au or ACL, and which locations are frequently visited by users (by observing Social Distance). Also, since CQUEST is based on encryption, a computationally-efficient adversary can break the underlying encryption technique.
Pros. Though the approach is simple, CQUEST maintains hash tables during encryption of tuples belonging to an epoch. Nevertheless, the size of hash tables is small for an epoch, (see §7). CQUEST efficiently deals with dynamic data, due to independence from an explicit indexable data structure, (unlike indexable SSE techniques [45, 46] that require to rebuild the entire index due to data insertion at the trusted size). Algorithm 2 avoids reading, decrypting the entire data of an epoch to execute a query, (unlike SGX-based systems [62] ); thus, saves computational overheads. Also, the key generation by XORing sq and k pko prevents the adversary to learn any information by observing at the encrypted data belonging to two different organizations, since one of the keys will be surely different at different organizations.
Cons. Algorithm 1 increases the dataset size by adding two additional columns. Algorithm 2 reveals access-patterns; hence, the adversary may deduce information based on access-patterns. Similar to DaS model [39] , the trapdoor generator has to decrypt the retrieved tuples, possibly to filter them, and to execute a small computation (e.g., group by operation line 14 of Algorithm 2). Also, as we mentioned earlier that QUEST has a limitation that encrypter or trapdoor modules should not be tampered, by anyone, likewise DaS model [39] .
Optimizations. We provide four optimizations: two for trapdoor generation in User Trace(), and the other two for trapdoor generation for Social Distance(). §7 will show the impact of such optimizations. We can avoid sending many trapdoors by encrypting uniqueness of the device, as follows: E k (E k (1, ∆x), y) (at Line 6-8 of Algorithm 1), where k is known to S and k = (sq ⊕ k pko )||attribute is unknown to S. Thus, for social distancing query execution, Q needs to send to S only γ = E k (1, ∆x), and then, S can generate all the desired trapdoors as E k (γ, y), where y is the number of rows in the desired epoch.
In the above-mentioned optimization, QUEST's encrypter does not need to generate all trapdoors and sends them the server, and the server will generate the desired trapdoors. While it will reduce the communication cost, the computation cost at the server will remain identical to the method given in Algorithm 2 Lines 9. Thus, in order to reduce the computation cost at the server, we can also outsource the hash table created for locations (HTabL, Line 3 Algorithm 1), after each epoch. Now, to execute the social distancing application, QUEST needs to ask the server to send the encrypted hash tables for all the desired epochs. Since the hash table contains the number of unique devices at each location, it will provide the correct answer to the social distancing application after decryption at QUEST.
To overcome the information leakages due to CQUEST, we provide a completely secure solution, IQUEST that is based on stringmatching operation [29] on secret-shares [54] .
Background: String-matching over secret-shares. As a building block, first, we explain the string matching of Dolev et al. [29] using the following example. Data Owner: outsourcing searchable-secret-share (SSS). Assume there are only two symbols: X and Y; thus, X and Y can be written as 1, 0 and 0, 1 . Suppose, the owner wishes to outsource Y; thus, she creates unary vector 0, 1 . But, to hide exact numbers in 0, 1 , she creates secret-shares of each number using polynomials of an identical degree (see Table 3 ) and sends shares to servers. Table 3 : Secret-shares of 1, 0, 0, 1 , created by the owner. User: SSS query generation. Suppose a user wishes to search for Y. She creates unary vectors of Y as 0, 1 , and then, creates secretshares of each number of 0, 1 using any polynomial of the same degree as used by the owner (see Table 4 ). Note that since a user can use any polynomial, it prevents an adversary to learn an equality condition by observing query predicates and databases. Table 4 : Secret-shares of 1, 0, 0, 1 , created by the user.
Servers: String-matching operation. Now, each server has a secretshared database and a secret-shared query predicate. For executing the string-matching operation, the server performs bit-wise multiplication and then adds all outputs of multiplication (see Table 5 ). User: result reconstruction. User receives results from all servers and performs Lagrange interpolation [25] to obtain final answers:
Now, if the final answer is 1, it shows that the secret-shared database at the server matches the user query.
IQUEST uses Algorithm 3 for creating secret-shares of input WiFi relation R. Note that Algorithm 3 when creating SSS or Shamir's secret-shares of a value (denoted by SSS(v) and S(v), respectively), randomly selects a polynomial of an identical degree. Table 2c shows an example of the output of Algorithm 3. Algorithm 3 selects an epoch duration (like CQUEST ( §5)) and produces an i th secret-shared relation S(R)i with six attributes, denoted by A smid , A sid , Asu , AsmL, AsL, and A∆. Note that if the adversary cannot collude any two non-communicating servers, then we can use polynomials of degree one, and in this case, there is no need to create more than 2l + 2 shares, where l is the maximum length of a secret, to obtain an answer to a query in one communication round between the user and servers. Algorithm 3 works as follows: Secret-shares of devices: Attributes A smid , A sid (Lines 4-5). We create two types of shares of each device id, one is SSS that is used for string matching operation and stored in A smid , and another is just a Shamir's secret-share of the entire device-id stored in A sid . The purpose of storing the same device-id in two different formats is to speed-up the computation. Particularly, values in A smid help in string-matching operation, when we want to search for a device-id (e.g., location tracing application), and values in A sid helps in fetching the device-id (e.g., user tracking application for retrieving device-ids based on infected locations).
Aside. Recall that creating secret-shares for string matching requires to convert the device-id into a unary vector; as shown in Table 3 . However, it increases the length of device-ids significantly (i.e., 12 × 16 = 192, often a device-id (MAC-ID) contains 12 hexadecimal digits (a combination of numbers 0, 1, . . . , 9 and alphabets A, B, . . . F), and thus, every single MAC-ID digit will use a unary vector of size 16). Thus, we, first, execute a hash function (only known to IQUEST) on each device-id to map to a smaller length string, by taking the last v < 12 digits of the digest. Hashing may result in a collision, by mapping two different device-ids to the same digest, with a very low probability. For example, for a 256-bit hash function, the probability of collision in mapping all possible 32-bit integers is 2 64 /2 256+1 = 1/2 193 , which is negligible. Uniqueness of devices: Attribute Asu (Lines 6-8).
Similar to CQUEST's Algorithm 1, we assign value one when di appears for the first time at a location in an epoch; otherwise, zero. After that we create secret-shares of the value. Secret-shares of location: Attributes A smid , A sid (Line 9). Likewise two types of secret-shares for device-ids, we create two types of shares of each location, one is SSS -stored in AsmL, and another is a Shamir's secret-share of the location stored in AsL. Outsourcing epoch-ids: Attributes A∆ (Line 10). Finally, for all tuples of ∆x, we outsource an epoch identifier in cleartext.
Differences between data outsourcing methods of CQUEST and IQUEST. Though CQUEST is an encryption-based method and IQUEST is a secret-sharing-based method, they, also, differ the way of keeping metadata (in Algorithms 1 and 3) . First, IQUEST does not keep a hash table for locations to maintain their occurrences in tuples of an epoch. Second, IQUEST does not need to first find all locations visited by a device during an epoch and adds them in a special attribute; hence, IQUEST does not keep attribute ACL. Note that these differences occur, due to exploiting the capabilities of SSS and selecting different polynomials for creating shares of any value, thereby, different occurrences of an identical value appear different in secret-shared form. 
Algorithm 4 explains secret-shared query generation at IQUEST (denoted by Q), query execution at the server (denoted by S), and final processing before producing the answer at Q. Note that in Algorithm 4, ⊗ denotes string-matching operation and × denotes normal arithmetic multiplication. Below, we explain query execution for different applications over secret-shares.
Location tracing (lines 1-5). First, Q verifies the device id di (as the real device of an infected person) from the publisher P (line 2). Then, Q creates SSS of di (denoted by γ) and sends it to each non-communicating server along with the desired epoch identifier (line 3). Each server executes string-matching operation over each value of A smid against γ in the desired epoch, and it will result in either 0 or 1 (recall that string-matching operation results in only 0 or 1 of secret-shared form). Then, the i th result of stringmatching operation is multiplied by i th value of AsL, resulting in the secret-shared location, if impacted by the user; otherwise, the secret-shared location value will become 0 of secret-shared form (line 4). Finally, Q receives shares from all servers, interpolates them, and it results in all locations visited by the infected person (line 5). Example 6.1. Suppose d1 belongs to an infected person in Table 2c . To execute location tracing, Q generates SSS of d1, say γ. S checks γ against the four shares (via string-matching operation) in A smid and results in 1, 0, 1, 1 (of secret-shared form) that is position-wise multiplied by S(l1), S(l2), S(l2), S(l1) . Thus, S sends l1, 0, l2, l1 of secret-shared form to Q that interpolates them to obtain the final answer as l1, l2 .
User tracing (lines 6-11). First, Q executes Location Trace() to know the impacted locations by the infected person (line 7). Then, Q creates SSS of all impacted locations (denoted by sssLoc[]) and sends them to the servers along with the desired epoch-identifer (which is the same as used when knowing infected locations in line 7). S executes string-matching operation over each value of AsmL against each value of sssLoc[] in the desired epoch, and it will result in either 0 or 1 of secret-shared form). Then, the i th result of string-matching operation is multiplied by i th value of A sid , resulting in the secret-shared device-ids, if impacted by the infected person; otherwise, the secret-shared location value will become 0 of secret-shared form (line 9). Finally, Q receives shares of all impacted people from all servers, interpolates them, and it results in all impacted people (line 10). All such impacted users are notified using Notification( * ) function of Algorithm 2. Example 6.2. We continue from Example 6.1, where d1 was the device of an infected person in Table 2c and impacted locations were l1, l2 that were known to Q after executing Location Trace( * ) (line 1). Now, to find impacted people, Q generates SSS of l1 and l2, say γ1 and γ2, respectively. S checks γ1 and γ2 against the four shares (via string-matching operation) in AsmL. It will result in two vectors: 1, 0, 1, 1 of secret-shared form corresponding to γ1 and 0, 1, 0, 0 of secret-shared form corresponding to γ2. Then, the vectors are position-wise multiplied by S(d1), S(d2), S(d1), S(d1) . Thus, S sends d1, 0, d1, d1 and 0, d2, 0, 0 of secret-shared form to Q. Q interpolates the vectors and knows that the device d2 belongs to an impacted person. Aside. Note that we can also know the devices that do not follow the predefined rule for social distancing, by multiplying the i th value of Asu with the i th value of A sid in the desired epoch, and in experiment section §7, we will find all such device-ids in our experiments. Example 6.3. Suppose that distanceIndex = 1, i.e., if there are more than one person at a location during a given epoch, then it shows that people at the location are not following the predefined social distancing rules. Suppose all four tuples of Table 2c belongs to an epoch. S executes position-wise multiplication and send the output of the following to Q: S(1) × S(l1), S(1) × S(l2), S(1) × S(l2), S(0) × S(l1) . Q interpolates the received answers, counts the number of each location (as l1 = 1 and l2 = 2), and finds that the location l2 is not following the social distancing rule.
Information leakage discussion. Since Algorithm 3 uses different polynomials of the same degree for creating shares of a secret, an adversary cannot learn anything by observing the shares. Algorithm 4 creates secret-shares of a query predicate that appears different from the secret-shared data. Thus, the adversary by observing the query predicate cannot learn which tuples satisfy the query. Furthermore, since Algorithm 4 performs an identical operation on each share (e.g., lines 4, 9, 14) , it hides access-patterns; thus, the adversary cannot learn anything from the query execution, also. Hence, in IQUEST provides stronger security than CQUEST.
Pros. Due to hiding access-patterns, IQUEST provides stronger security and satisfies the security properties given in §3.3, i.e., query and execution privacy. Also, it prevents a computationally efficient adversary to know anything from the ciphertext. Also, it is faulttolerant, due to using multiple servers.
Cons. As known, a fully secure system incurs performance overheads. Due to executing an identical operation on each share, and hence, not using any index structure, IQUEST incurs the computational cost at the server. Also, since the servers send a secret-shared vector (having 0 or the desired value) of size equals to the numbers of tuples in the desired epoch, it incurs the communication cost. Nevertheless, §7) will show that such overheads are not very high.
Optimization. In social distancing application using IQUEST, it may turn out that we need to send a significant amount of data from the servers to QUEST. To avoid such communication, Q can send SSS of all the locations (denoted by smLoc[]) to servers. The servers can do the following:
The servers execute string-matching operation for each location of smLoc[] against each value of AsmL in each desired epoch and adds the output of string matching operation. Thus, for each desired epoch, the servers send |sssLoc[]| numbers to Q that interpolates them to know the number of unique devices at each location in the desired epochs. Note that this method will outperform the method given in Algorithm 4 Line 13, if the number of tuples in each epoch are more than the number of locations in smLoc[].
QUEST is deployed at UCI, where it is being used to support social distancing and crowd flow applications [8] . This section evaluates the scalability of QUEST to evaluate its practicality for larger deployments and for all supported applications. We used AWS servers with 192GB RAM, 3.5GHz Intel Xeon CPU with 96 cores and installed MySQL to store secured dataset. A 16GB RAM machine at the local-side hosts QUEST that communicates with AWS servers. Dataset. We used WiFi association data generated using SNMP traps at the campus-level WiFi infrastructure at UCI that consists of 2000 access-points with four controllers. Experiments used realtime data received at one of the four controllers (that collects realtime WiFi data from 490 access-points spread over 40+ buildings). Using this WiFi data, we created two types of datasets, refer to Table 6 . For evaluating IQQUEST, we created nine shares, since at most 2(x + y) + 1 shares are required, where x = 3 (the length of device-ids, line 4 Algorithm 3) and y = 1 (a single secret value in column AsL, line 9 Algorithm 3). Queries. We executed all queries (Q1: social distancing, Q2: Contact tracing, Q4: Crowd-flow), see Table 1 . We modified 'Q3: social distancing query' by also fetching device-ids that do not follow distancing rules, in addition to fetching locations information. Epoch duration CQUEST IQUEST 15min
1.96MB 0.93MB 30min
3.40MB 1.37MB 60min 5.84MB 2.10MB Table 7 : Exp 2: Size of hash tables, for different epoch sizes. Exp 3: Scalability. We measured the scalability of QUEST in three scenarios, by varying the number of infected people, days for tracing, and dataset size. Figure 5 shows results for 1-100 infected users for Q1, Q2 and execution of Q1-Q4 over 1-14 days duration on 10M, 50M rows. In Q1, a device has visited between 1 to 55 locations in 1 epoch. Note that Q1 using CQUEST took less time in all four cases, since it uses an index on A id column (line 4 Algorithm 2); while IQUEST took more time, since it scans all data depending on the queried interval (line 4 Algorithm 4). As the number of infected people increases, the query time increases too. Cost analysis follows the same argument as Q2 that is an extension of Q1.
For Q3 and Q4 in Figures 5a and 5b, IQUEST took less time than CQUEST. The reason is: IQUEST performs multiplication on i th values of AsL and Asu (line 14 Algorithm 4), and the cost depends on the number of tuples in the desired epochs. However, CQUEST joins a table of size y × ∆t × x with the encrypted WiFi data table on AL column to obtain the number of locations having unique devices (line 13 Algorithm 2), where y is the maximum appearance of a location in any epoch (can be of the order of 10,000, causing a larger join table size), ∆t is the number of desired epochs, and x is the number of locations. Also, note that for Q3 and Q4 in Figures 5c and 5d , IQUEST took more time than CQUEST, since the increase in the cost of multiplication operations (due to larger dataset of 14-days tracing period) in IQUEST overtook the increase in the cost of join in CQUEST. It shows CQUEST is more scalable than IQUEST.
Exp 4: Using other existing systems to support QUEST applications. We note an alternative solution, where one may output non-deterministically encrypted [37] or secret-shared WiFi data (via QUEST's encrypter), on which the queries can be executed using existing SSEs [45, 46] , secure hardware-based systems, e.g., Opaque [62] , or MPC-systems. Note that this solution does not need to develop any encryption or query execution algorithm. However, it may allow an adversary to deduce the user locations by observing datasets belonging to different organizations and may incur the high computational cost, as will be clear below.
Thus, to see the impact of using existing systems to support QUEST applications, we used SGX-based Opaque [62] and MPCbased Jana [17] on 10M rows only (since these systems were available to us and work on any dataset). Now, we can compare CQUEST against computationally-secure Opaque and IQUEST against information-theoretically-secure Jana. We inserted data, using non-deterministic encryption in Opaque and using the underlying secret-sharing mechanism in Jana. Then, we used their query execution mechanisms for queries Q1-Q4. Figure 6 shows the impact of using different systems for supporting our four queries on 10M rows. We drop any query that took more than 1000s.
Observe that CQUEST works well compared to Opaque, since CQUEST uses index-based retrieval, while Opaque reads entire data in secure memory and decrypts it. CQUEST and Opaque provides the same security, i.e., ciphertext indistinguishability, and reveals access-patterns. Note that CQUEST reveals access-patterns via index-scan, while Opaque reveals access-patterns due to sidechannel (cache-line [38] and branch-shadow [59] ) attacks. Also, IQUEST is efficient compared to Jana that takes more than 1000s in each query. The reason is: IQUEST does not require communication among servers due to using string-matching over secretshares [29] , while Jana requires communication among servers, since Jana is based on MPC techniques that require communication among server during a computation to compute the answer. But, IQUEST and Jana provide identical security by hiding accesspatterns, due to executing identical operations on each tuple.
Exp 5: Impact of optimization. We implemented improved methods to minimize the value of max location counter ( §5) and mea- sured the performance improvement over 10M rows, while fixing the number of infected people to 100 and interval duration to 1-day. When we used counter per epoch for Q2, it reduced the computation time from 63 ( Figure 5b ) to ≈35s and used 128KB more space to maintain the counter; while using counter per epoch and per location, Q2 took only ≈2sec with 55MB space to store the counters.
We also implemented the improved method for uniqueness finding by outsourcing encrypted hash tables for each epoch. It reduced the time of Q4 (that finds unique devices in each epoch) from 179.4s to 1s. Further, we incorporated this improved method in Q3 (that also finds the devices that does not follow social distancing rule) with counter per epoch and per location optimization, and it reduced the time of Q3 from 206s to 2s.
Exp 6: Access-patterns. Figure 7 shows a sequence of memory accesses by CQUEST and IQUEST. For this, we run Q2 multiple times, selecting different device-ids each time over a fixed set of epochs. It is clear that IQUEST accesses the same memory locations (accesses all the rows of the given set of epochs) and produces an output for each accessed row for different queries, while CQUEST accesses different memory locations (different rows for different device-ids) for answering different queries.
Exp 7: Impact of communication. Table 8 shows the amount of data transfer using CQUEST and the data transfer time using different transfer speeds. From Table 8 , it is clear that CQUEST is communication efficient, while CQUEST reveals information from access-patterns. In particular, without using optimization methods (as described in §5), Q3 and Q4 incur significant communication overheads, i.e., fetch ≈95MB data from the server. However, the optimization methods reduce such data size to ≈57KB. Table 9 shows the amount of data transfer using IQUEST and the data transfer time using different transfer speeds. From Table 9 , it is clear that IQUEST incurs communication overhead, while IQUEST provides a high-level of security. In particular, Q1 requires us to fetch ≈32MB data from each server when tracing period was 14days for an infected person. As Q2 requires two communication rounds (the first for knowing the impacted location and another for knowing the impacted device ids), it incurs signification communication cost by fetching ≈3.5GB data from each server. The reason is: we need to fetch data corresponding to 55 locations that a user can visit during an epoch. Q3, also, incurs the same communication overhead. Q4 requires to download ≈32MB data from each server for executing social distancing over 14-days. However, when we use the improved method (as described in §6) for Q4, we need to fetch only 2.1MB data. 
In this paper, we designed, developed, and validated a system, called QUEST for privacy-preserving presence and contact tracing at the organizational level using WiFi connectivity data to enable community safety in a pandemic. QUEST incorporates a flexible set of methods that can be customized depending on the desired privacy needs of the smartspace and its associated data. We anticipate that capabilities provided by QUEST are vital for organizations to resume operations after a community-scale lockdown -the passive approach to information gathering in QUEST can enable continuous information awareness to encourage social distancing measures and identify settings and scenarios, where additional caution should be exercised. Ongoing discussions with campus administration at UC Irvine to utilize QUEST's capabilities for a staged and guided reopening of campus have highlighted the value of the privacy and security features embedded in QUEST. The living lab experience at UC Irvine will enable us to tune the underlying cryptographic protocols for other useful applications including dynamic occupancy counts and context-aware messaging to encourage safe operations.