πŸ“ WiFi Privacy With WiPri (+Any Linux ...

πŸ“ WiFi Privacy With WiPri (+Any Linux Device)

Dec 18, 2021

[ Thanks goes out to your questions - one inspired this post/video. ]

UPDATE / NEW:

-w flag (optional - you can mix with other flags) automatically turns off wifi for you, after you are a few minutes away from saved networks (ie: home): http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion/RightToPrivacy/WiPri (use Tor browser).

Tested on Pinephone, laptops, tablets. Learn about this (with various custom concept disinfo flags for mac address, hostname, signal randomization) on this blog post: https://www.buymeacoffee.com/politictech/new-wipri-features-ethernet-wifi-identifier-spoof (public)


"There are many differences within WiPri compared to standard mac randomization options. I believe those who understand wipri, how it works, and what it does differently, will find it useful."

-RTP


Part of the planned continuation of the Post Pop!_OS video series (but can be used directly for any Linux user/device)

If you want to follow along, take a look at the Download + Integrity/Checksum Check Video + then watch the Pop!_OS Full install video.

image

Our permanent mac address can be viewed in the privacy sense much like a wirelessly broadcasted serial number shared by our WiFi cards. Every WiFi card manufactured carries an entirely unique MAC address (as does other hardware).

This MAC address is not only shared on the networks we connect to (along with signal strength, hostname, and many other pieces of data), but also shared when we are completely disconnected from wifi, with anyone, or any organization/company running a simple sniffer.

This makes our permanent wireless mac address a major privacy hazard.

Many instances of existing Android randomization/iPhone have proven lacking (certainly better than nothing). And while nothing is perfect, I still believe it makes more sense to try to imitate real devices (as much as is possible without firmware mod), instead of fake (tracking companies commonly write about disregarding faked/invalid OUI addresses.

Then there are the issues with saved SSID's (see mactrack post). This is one reason I have recommended deleting all old saved SSID's, and rename your router SSID to something extremely common/generic. Or, something very far away on wigle, to have a little privacy misdirection fun.

PERMANENT SOLUTION: wipri -w flag offers ability to turn off wifi radio when leaving area of saved networks (automatically). This solves the issue by having wifi radio off within a few minutes of leaving home (install script can install as systemd service). Won't interrupt your WiFi connection.

WiPri functions differently and more effectively to change and retain mac addresses.


Much the same can be said about bluetooth (be mindful of bluetooth device name as well - it many times matches the hostname - leave bluetooth off when not in use!).

TIP: You can find a line to disable bluetooth inside wipri: uncomment it to have it automatically disable bluetooth when run.


The MAC Address. A "serial number" we leak by radio (over the open air, to many sensors) as we travel. Every wireless device shares their unique mac address. Sometimes mac addresses are "randomized" (are they really? Using same OUI + predictable next generation?). Even then, in most alternative cases to this usually use predictable patterns using invalid OUI (making it obvious to anyone viewing when it is "spoofed" or faked).

Not the case using WiPri.

Our Hostname is shared with every network we connect to. This can also be shared in other places (including on IRC chat!). Does your hostname make you stand out?

TIP: When not using WiPri, or other applications, the most generic hostname you can have may be localhost. WiPri can help you quickly change to generic yet random hostnames (as individual flag or combined in -a flag)

Setting a hostname can also be done by running the shell command:

sudo hostnamectl set-hostname localhost


WiPri

image

WiPri functions differently than most mac address spoofing. It uses the full scope of all possible real MAC addresses, starting with brand name OUI's and carries multiple flags for unique "continuously changing randomizations, at continually changing names/values/addresses.

WiPri utilizes OUI lists from the IEEE to generate the next mac address. In this way your Linux device appears as a real device, instead of an obviously spoofed address. This can act as a form of 'disinformation' to enhance privacy.

It also carries static flags for (long term) forced retaining of mac address spoofs.

Did You Know? Anytime a static mac address setting is set on wipri (including if you choose to install it at boot with either -p / -m / -i flags) wipri keeps a constant eye on current mac address (even during firmware crashes). Anytime the wrong mac address is detected (like permanent mac) wipri will force the wipri chosen mac address to be set again.


πŸ’‘ SUGGESTIONS/TIPS

  • Use static settings for familiar places (like home, work, and more); Take advantage of the retention (will be trying something new to integrate into continuously random);
    Static flags include: -p / -m / -i

  • Want WiFi to turn off when you get away from home (automatically)? You can use the NEW -w flag combined with any other flags you like, and wifi radio will turn off, preventing any potential wifi probe req (saved SSID's) identifier leaks, minutes after you leave home (set it and forget it)

  • Use continuously changing random mac addresses for traveling. See the post's top picture to get an idea how the continuously changing values can help you, in light of invasive tracking.
    Continuously Changing Random MAC Times/Addresses Flags: -r / -P / -a

  • I suggest installing at boot (easy install.sh script - see screenshot below)

  • like to recommend using -p flag (static Android/iPhone random mac mimic), or the -P flag for continually changing Android/iPhone mac addresses at continuously changing times/mac addresses


Anonymous Mode

Signal (Transmit Power - txpower) Randomization

wipri offers a few options for txpower randomization. It can offer it alone (-s) or in combination, as well as leaving you with the ability to run as many non conflicting wipri instances as you like simultaneously. Think creatively.

Txpower, or transmitting power, means your WiFi device will change its transmitting range (RSSI/Signal Strength appearance to trackers). Many trackers rely partly on signal strength coming from your WiFi device to estimate the distance. This can be done solo, or using a combination of multiple sensors to calculate an estimated location.

By continually changing the txpower (transmit strength), your device can (experimental) confuse these trackers by randomly changing its transmit power range, at continuously changing randomized times and transmit strengths.

See Below For A Visual Example:

image

The -a flag performs simulaneous mac address+transmitting power+hostname changes. This can appear as if a device is a new device, in a new location (transmitting power randomization), at continually changing random time periods.

The time period between the coordinated, simultaneous changes is continually changing. The first change selected below in our example screenshot is 897 seconds:

image

The hostname 'localhost' was randomly chosen as a generic hostname (many hostname possibilities as some are generated). the WiFi transmitting power was also randomly chosen. All 3 changes happen simultaneously.


wipri (-a flag) 2 Changes Later Update Screenshot:

image

Here is a screenshot of the first 3 changes of -a flag. Note the hostname, MAC Address, Signal output strength, and time period all changed, simultaneously to new random values:

Did You Know? You can change time periods between the highest and lowest chosen time period by changing the values for "highertime" and "lowertime" variables inside /usr/bin/wipri

See the red square over the variables below and change them to higher and lower time periods (in seconds) you would like for the randomized, continual changing time periods:

image


Sometimes other (not wipri) randomization setups fail. Sometimes your firmware may crash and perm mac falls through (oh no!). During a firmware crash there is a good chance you could leak your permanent mac address (in normal circumstances).

This is a big reason I created WiPri (among others).


WiPri has a selection of flags to choose from:

In

Usage:

wipri -d [device][any combination of below flags here]

-w [automatically turn off wifi radio once leaving saved networks range - combine with other flags]

-a [anonymous/ghost mode: continuously change MAC/hostname/signal strength at
continuously changing [coordinated/simultaneous] times/addresses to mimic new devices
-p [static smartphone mimic] Set single static Samsung/Apple MAC identity
-P [changing smartphone mimics] continously changing Samsung/Apple at rand times/mac addr
-r [randomizes mac continually changing times/addresses]
-m [Static MAC (Your Choice) Here]
-i [rand (valid) MAC identity]
-h [rand hostname]
-R [restore prev hostname]
-s [random signals]
-A [generic randomized WiFi SSID (AP)]
-H help


Integrating WiPri Into Other Programs

Wipri is flag based, making it very easy for you to integrate any number of flags into your own scripts, cron, initd. You can run multiple instances of wipri (as long as you don't run 2 instances attempting to hold separate flags simultaneously (due to mac hold protection).


EXAMPLE 1:

wipri -d wlan0 -h; wipri -d wlan0 -i

The above dual wipri instances line would set a randomly generated hostname at the same time as it set a valid, yet completely randomly generated mac address, using a randomly chosen brand (+hold the mac). Simultaneously.

To kill (or end) wipri processes, simply issue ctrl+c or, if in background:

killall -9 wipri


EXAMPLE 2: SCRIPT DEMO SIMULTANEOUS (CONT RAND) MAC + TOR CHANGES

#!/bin/bash

# Continuously changing rand times between coordinated changes to mac/tor
anonsurf start
while :
do
wipri -d wlan0 -p; anonsurf restart
sleep $((1 + $RANDOM % 1000))

killall -9 wipri # kills any previous wipri for loop
done

The above example is a simple, but effective option (new mac addresses at same time as new tor connection -- coordinated/simultaneous yet continuously changing times).

The short bash script above begins a continuous loop doing the following:

  • 1st Starts Anonsurf (forced torification of all connections)

  • Loops the following (on repeat until you quit with ctrl+c):
    - Starts WiPri at same exact time as it changes Tor connection (makes it appear new dev on Tor overall)
    -Then it "sleeps" or rests for a continuously changing randomly chosen amount of seconds (loop)

    -Then it kills the first wipri process, to then start the new one with anonsurf new Tor circuit at same time

Simultaneously it takes advantage of wipri's changes with aggressive static mac holding flag as it changes the Tor circuit.

And so, at the same exact time it changes the Tor connection circuit, it is also changing the MAC address (at continuously changing time periods).

Then it sleeps (stays connected with same mac/tor) at continuously changing, yet entirely random chosen times, continuing this cycle until exited (ctrl+c).

This could be used to cycle random changes while simultaneously coordinating simultaneous mac address + Tor changes.

Appearing as a new device on tor both on the LAN (and elsewhere viewable).


Try integrating WiPri into other scripts. This was a simple example to give you an idea.

Maybe you have an idea for using WiPri that could help others. Or have an idea to make WiPri better (contributors also welcome).

I will be making updates (have a new idea) and will share important ones as a post, in the future.


RANDOM VALID MAC AT BOOT IS EASY! (INSTALLING WIPRI)

Installing as either a command alone, or having wipri run the flag of your choice every boot (early enough to prevent any permanent mac leakage) is easy!

WiPri Install Steps Are:

  • Download Wipri

  • run install.sh as root (or sudo bash install.sh)

  • answer yes or no to install as boot (run it 24/7 to protect your mac address?)

  • Final step is telling the install.sh script what wipri command you want running by default every boot (only applies IF you selected 'yes' for install at boot - if you selected 'no' for install at boot, you can still run wipri commands)


    See how easy the install is below (using my favorite flag -p to static mimic new iPhone or Android at every boot):

INSTALLING WIPRI SCREENSHOT (running install.sh):

TIP: It can be a good idea to try installing it as a command first. To ensure no conflicts exist in your setup (especially if using static flags - continuously random flags are not as strict).

Then, if you find a flag you like, install at boot (I always do. Instructions for stopping/disabling below)

image

(for the above, if you choose to install at boot, I suggest -p / -m / -i flags for static settings)


If you install as a static setting you can then use the systemctl command to interact with wipri.

STOPPING WIPRI

systemctl stop wipri


DISABLE WIPRI AT BOOT

If you need to stop wipri from starting at boot, you can disable it from systemd startup by issuing:

systemctl disable wipri


CHANGING MAC ADDRESS FOR STATIC WIPRI INSTALLATION

sudo systemctl restart wipri


CHECKING WIPRI STATUS (Show MAC + Any Setting Issues)

sudo systemctl status wipri

SCREENSHOT:

image


USE ON QUBES OS

You can use WiPri on any standard Linux device allowing MAC Address changes.

This includes Qubes.

HOW?

Open a terminal in your "sys-net" Virtual Machine inside Qubes. This handles your WiFi interface. Inside this terminal you can use WiPri commands as you would on any other Linux setup (being careful to choose the correct device listed).


TODAY'S VIDEO ON THE WRITEUP

The above article is more extensive than the video, but if you would like to watch, I have posted it below. I like to include more information/tips in the articles, along with screenshots.

This gives opportunity for you to cut/paste commands, and gives myself opportunity to gather thoughts.

Enjoy the video:

https://www.youtube.com/watch?v=mrduFOu-hjQ


If you need anymore suggestions, have trouble integrating wipri into something, or just want to offer your own tips, ideas, comments/questions welcome.

Share your own ideas, comments and questions below:


(first shared with followers here. To receive first notice on unique posts by email follow there.)


πŸ˜€ Thank you for Sharing this (Telegram/Social media + everywhere).

----------------------------------------------------------------------
πŸ§…πŸ” ANONYMOUS GITEA (.onion): Books, Code/Scripts, Wiki, more (make a repository)
πŸ§…πŸ” PASTEBIN (.onion): options- password protect, zk-256bit, "Burn After Reading" + more
----------------------------------------------------------------------
πŸ€— SUPPORT OPTIONS
(If you like)
🎁 EXTRAS: Unique extra Services (get something back for your support)
πŸ’²CASHAPP: $HumanRightsTech
βœπŸ—’πŸŽž Politictech (monthly coffee option)
πŸ’³ Politictech Main Page: (info + current Crypto addr)
βœπŸ—’ Politictech Blog: (Search Posts, read by category)
----------------------------------------------------------------------
FOLLOW:
βœπŸ—’MASTODON
🐦 TWITTER
🎞 PEERTUBE
🎞 BITCHUTE
🎞 ODYSEE
---------------------------------------------------------------------
βœ‰ CONTACT
-------------------------------------------------------------------------
THANK YOU for Sharing this, Liking, and Subscribing.
-------------------------------------------------------------------------
If you aren't registered for Odysee I'd love to see you over there.
Use my invite link: https://odysee.com/$invite/@RTP
--------------------------------------------------------------------------

Enjoy this post?

Buy πŸ₯· (RTP) Privacy Tech Tips πŸ“‘ a coffee

More from πŸ₯· (RTP) Privacy Tech Tips πŸ“‘