SyncVibe: Fast and Secure Device Pairing through Physical Vibration on Commodity
Discovering and bootstrapping a wireless connection (e.g., Wi-Fi and BLE) between two devices that share no prior knowledge, commonly known as pairing, often requires users to go through cumbersome tasks of manually discovering the target device and entering a long passkey.
To alleviate this challenge, we propose a usable and secure out-of-band (OOB) communication method called SyncVibe which utilizes a vibration motor and an accelerometer, that are already ubiquitously available or easy to embed in mobile and wearable devices, to transmit and receive pairing information.
By simply keeping two devices in direct contact, the user can bootstrap a secure, high-bandwidth wireless connection without manual pairing procedures.
To transfer data through this vibration channel, the data bits are encoded into a series of on-off patterns; turning ON or OFF the vibration motor for a pre-defined time interval, known as vibration period, represents a bit 1 and 0, respectively. The figure shows a comparison of an ideally aligned vibration signal and an actual signal when 51 bits are transmitted.
At early bit positions, bit segments are well aligned between the transmitter and the receiver, and each bit is correctly demodulated. However, as bits get demodulated further down the stream, small misalignment of segments at early stages starts to accumulate, causing later segments to decode unsynchronized samples, resulting in erroneous demodulation of bits.
To prevent synchronization failure, synchronization marker is added, which is a bit pattern of several bit 0's followed by bit 1 (i.e., 001). This marker should appear in the vibration signal before synchronization breaks down. Also, before and after the data bits, pilot and end markers are added to signal start and end of the transmission. Then, vibration period is multiplied to convert into a vibration pattern in milliseconds. Finally, the vibration motor is turned on and off for the specified time durations to generate a vibration signal.
During demodulation, clock is recovered whenever a synchronizable pattern appears in the data.
A synchronizable pattern that appears only after k unsynchronizable bits is treated as a synchronization marker and removed after clock recovery.The starting point of the bit 1 after the consecutive bit 0's is detected, and rest of the waveform is segmented again from switching point. As shown in the figure, the starting point of its last segment is adjusted from A to B, and the subsequent segments are also adjusted. If the number of unsynchronizable bits since the last synchronizable pattern is equal to k, synchronization marker is removed; otherwise, it is a part of the data bits.
Pairing Success Rate
As a transmitter, we developed an Android application running on a Samsung Galaxy S5 smartphone with Android version 6.0. The receiver prototype is implemented using the Arduino UNO with the ADXL345 MEMS accelerometer (embedded in many mobile and wearable devices today) at a sampling rate of 1600~Hz. In terms of pairing success rate with with the optimal k, SyncVibe achieves a high success rate of 98%, 97%, and 92% for vibration period of 60, 50, and 40 ms, when transmitting 150 bit pairing information. On the other hand, without the clock recovery, the success rate significantly drops as the data length increases.
Pairing Time & Bit Error Rate
From 100 samples of 150-bit pairing information, we measure the average effective bit ratio, bit error rate and average pairing time. Using SyncVibe, the user can expect average pairing time of 6.7 s to complete a pairing process for 150-bit pairing information with low bit error rate of less than 1%.
Also the SyncVibe's modulation scheme inserts only a minimal amount of synchronization markers so the effective bit ratio is maintained above 97% regardless of vibration period, t.
Kyuin Lee, Vijay Raghunathan, Anand Raghunathan, and Younghyun Kim, "SyncVibe: Fast and Secure Device Pairing through Physical Vibration on Commodity Smartphones," in Proceedings of IEEE International Conference on Computer Design (ICCD), pp. 234–241, Orlando, FL, 2018