NákupTechnologieZprávy

Inženýři poprvé prokázali schopnost sledovat zařízení pomocí signálů Bluetooth

Po přečtení článku „Čína chce občanům zakázat používání Wi-Fi a Bluetooth“ jsem přemýšlel o tom, jak lze zapnutá zařízení Bluetooth využívat různými způsoby, aniž byste se k nim připojovali (ačkoli článek samotný je věnován šíření nelegálního obsahu ). Každé zařízení Bluetooth je v podstatě malý maják, který neustále komunikuje se světem. A pokud se při hledání známých sítí Wi-Fi již zařízení naučila poskytovat náhodnou falešnou MAC adresu, pak, pokud vím, pro Bluetooth to zatím neplatí (opravte mě, pokud se mýlím).

Toto chování Bluetooth zařízení lze využít jak pro komerční účely (například počítání stálých zákazníků v obchodě), tak pro jiné účely (například pro sledování a sledování osoby).

Výhradně jako experiment byl v Automate napsán malý algoritmus, který každých 15 sekund skenuje zařízení Bluetooth a ukládá jména, adresy a umístění do protokolu:

Tok z automatu

Na zařízení musí být předem vytvořen prázdný soubor (tento algoritmus nekontroluje přítomnost souboru a nevytváří nový – rychlost experimentu byla důležitější než optimalizace).

Dostaneme soubor něco takového:

Výsledný protokol se zařízeními, adresami a umístěními

Připravme soubor pro další analýzu, analyzujeme jej do sloupců:

import pandas as pd import csv # Исходный файл input_file = "btlog.txt" # Файл, куда будут записаны данные output_file = "formatted_file.csv" with open(input_file, 'r', encoding='utf-8') as inp, open(output_file, 'w', newline='', encoding='utf-8') as out: writer = csv.writer(out) writer.writerow(["device name", "device address", "advertiser", "location", "datetime"]) for row in csv.reader(inp, delimiter=';'): device_names = row[0].split(", ") device_addresses = row[1].split(", ") advertisers = row[2].split(", ") location = f", " datetime = row[5] min_len = min(len(device_names), len(device_addresses), len(advertisers)) for i in range(min_len): writer.writerow([device_names[i], device_addresses[i], advertisers[i], location, datetime]) 

Získáme harmoničtější tabulku následujícího tvaru

Normalizovaná data

Nyní potřebujeme nástroj, který vám umožní vybrat zařízení ze seznamu a zobrazit na mapě, kde bylo zařízení nalezeno.

Zajímavé:  Google oznámil síť Find My Device pro vyhledávání trackerů, sluchátek a dalších gadgetů.

Otevřete Google Colab, přidejte soubor CSV do adresáře a napište samotný nástroj.

!pip install pandas folium ipywidgets import pandas as pd import folium from ipywidgets import interact

Příprava dat z tabulky a formátování hodnot:

df = pd.read_csv('formatted_file.csv', sep=',') df['location'] = df['location'].apply(lambda x: [float(i) for i in x.split(',')]) df['datetime'] = pd.to_datetime(df['datetime']) df['device address'] = df['device address'].str.strip() # удаление пробелов в начале и конце строки df['device name'] = df['device name'].str.strip() # удаление пробелов в начале и конце строки df['frequency'] = df.groupby('device address')['device address'].transform('count') df = df.sort_values(by='frequency', ascending=False) # Создание нового столбца 'device_info', объединяющего 'device name' и 'device address' для свитка с выбором устрйоства df['device_info'] = df['device name'].fillna('unknown') + ' - ' + df['device address']

Vytváříme rozevírací seznam s výběrem zařízení:

@interact def search_device(device=list(df['device_info'].unique())): return df[df['device_info'] == device]

Vizualizace dat na mapě:

def visualize_on_map(device_info): device_data = df[df['device_info'] == device_info] m = folium.Map(location=device_data['location'].iloc[0], zoom_start=13) for _, row in device_data.iterrows(): folium.Marker( location=row['location'], popup=folium.Popup('Дата: ' + str(row['datetime']), max_width=300) ).add_to(m) return m @interact def interact_map(device=list(df['device_info'].unique())): return visualize_on_map(device)

Výsledkem je rozevírací seznam. Po výběru vhodného zařízení z něj vidíme na mapě, kde bylo nalezeno, a když klikneme na bod, zobrazí se datum a čas:

Flipper byl vybrán jako příklad, protože je to moje vlastní zařízení

V datech jsou nějaké chyby. Například muž se zapnutou 60palcovou televizí šel za mnou sotva kilometr a já si toho nevšiml. S největší pravděpodobností se umístění nestihlo aktualizovat. Telefony se ohlásí jen zřídka, ale hodinky, sluchátka a další zařízení to dělají neustále.

Vše není nic jiného než důkaz koncepce pro provádění samotného experimentu.

Na základě výsledků tohoto experimentu je zřejmé, že často ledabyle prozradíme informace o naší poloze a pohybu. Nevědomky zaregistrujeme naši přítomnost tím, že necháme zapnuté Bluetooth na našem smartphonu. Tento experiment ukazuje, že ze shromážděných dat můžete zjistit, kde a se kterými lidmi se nejčastěji křížíte, aniž byste o tom věděli (aniž byste si jich všimli v davu, v dopravě nebo v nákupním centru), a také jak snadné je určit vaši přítomnost na konkrétním místě (pokud je tam skener zařízení Bluetooth a je známa MAC adresa některého z vašich gadgetů).

Zajímavé:  9 nejoblíbenějších linuxových desktopových shellů.

Z hlediska bezpečnosti informací to může být riziko. Chcete-li to snížit, doporučujeme vypnout Bluetooth, když se nepoužívá.

Systém lze vyvinout, zkomplikovat, udělat z něj síť Bluetooth zařízení se sledováním na konkrétních místech atd. Možnosti závisí na vašich cílech.

  • Bluetooth
  • zabezpečení
  • bezdrátové technologie
  • sledování
  • Informační bezpečnost
  • PYTHON
  • Bezdrátová technologie
  • Vizualizace dat
  • Prototypování

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button