- Time: Last time I researched and documented MAC randomization was quite a while ago. Years.
- Whonix is a collective effort: In its, at the time of writing, 13 years of existence (related: history), many people have contributed. For example, the Whonix MAC Address wiki page, according to its wiki history (free wiki account needed to view it [1]), dates back to 2018, where its original version was anonymously contributed.
- Responsiveness: A detailed response takes time, and I prioritize accuracy over speed. One day is insufficient to thoroughly reacquaint myself with the topic and provide a well-reasoned answer.
- Challenges with GitHub access due to Tor restrictions: Quoting you:
-
Can somebody please link this thread in the GitHub issue, as I can’t post due to account being created with Tor.
- This may present a blocker because that is unfortunately what Qubes is using most.
- Weight of my support: It’s important to set realistic expectations. I’ve made feature requests in many projects, but that doesn’t guarantee implementation.
Quote [CRITICAL] True MAC address leaked during NM startup, despite rand/cloned being configured (#1710) · Issues · NetworkManager / NetworkManager · GitLab
- Discussing things upstream is appreciated.
-
I didn’t say that it is incapable of leaking the MAC address. I don’t know. I asked for examples of how can it happen. I don’t think nobody is willing to work on something unless they think it’s useful.
-
At the very least, this is useful for majority of Qubes/Tails users.
- I don’t think this is what they meant. There’s no need to debate its usefulness to convince them that improvements can and should be made.
-
BTW, if we’re only talking about WiFi, a good solution good be to expand the behaviour of wifi.scan-rand-mac-address.
- That is the one to focus on. If you could contribute that, it would be helpful. Upstream already gave a green light on its usefulness and said, “patches welcome.”
This sounds like a good idea based on my understanding of how everything works. How difficult do you believe it would be to implement this? I can potentially work on this in the future, but I would want to consult with someone more familiar with NetworkManager’s architecture to come up with an implementation plan.
This approach could be perceived as a pattern where implementation-related discussions gradually shift responsibility to developers. Discussions should aim to empower contributors to take action rather than unintentionally placing the burden on upstream developers.
I don’t have time to implement something multiple times over because the design was wrong from the start.
I understand that your time is valuable. However, time is a constraint for everyone involved. If you communicate upfront that you have limited time, upstream might deprioritize collaborating effectively.
My recommendation: Contribute a few small patches upstream on unrelated but helpful topics that require little or no support. Having a track record of successfully merged patches, regardless of the specific Open Source project, can build trust and increase the chances of extended support during your more significant contributions later.
I don’t know if Qubes is willing to carry kernel driver patches, even if contributed. This is because the kernel changes over time, Qubes needs to rebase to newer kernel versions, and updating the patches might require ongoing maintenance effort. You need to ask Qubes. Potential appropriate venues might be the qubes-devel mailing list, Qubes GitHub, and/or Matrix channel. To increase the chances of a timely reply, it might also be helpful to be already known as someone who landed a (small) patch in Qubes before.
Needless to say, if such patches were merged upstream in Linux, that would avoid the patch rebase issue but may be even more difficult.
Providing examples of kernel drivers you’ve already patched could help demonstrate feasibility and build confidence in the proposed approach.
These non-technical comments of mine are just my opinion. Take them with a grain of salt. I might be wrong.
To show my support for any MAC randomization improvements, here is something you can quote:
MAC randomization is a difficult topic. [2] [3] [4] [5] Implementations using NetworkManager and/or udev might, in theory, leak the original MAC address. This is because these are complex code bases with complex system interactions, where MAC randomization was not supported at the founding of these projects but bolted on later as an afterthought. Supporting MAC randomization at a different level, such as by the kernel, might be a more reliable approach to MAC randomization.
[1] Wiki History
[2] MAC Address - Whonix
[3] MAC Address - Kicksecure
[4] Dev/MAC - Whonix
[5] Your MAC Address Randomization attempts are futile!
Could you clarify which specific flaw you’re referring to?
Since you wanted to contribute, editing the wiki is one way.
I think the documentation, specifically when factoring in Tor entry guards, looks complicated enough to know that MAC randomization might be nice but not something to rely on. Quote:
TODO: Please help test and improve these instructions.
This quote expresses that the wiki page could benefit from further refinement and testing to improve clarity and reliability.