-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Linux, MacOS support for Tor Browser. #2387
Added Linux, MacOS support for Tor Browser. #2387
Conversation
Left a note in IRC to link up with someone and implement Windows/Mac support for this - don't have anything but Linux boxes handy and no licenses for Windows. |
It seems the path for macOS is |
Remove all the translation file changes, please. |
Restored from origin/develop in df6c858 |
Pinged you on IRC, lets get to work on resolving. |
Feedback neededIssues found
Resolution Ideas
If it works is this agreeable? |
Been working on Windows without much luck - segfaults in ctest and gdb says its coming from a UI function. EditEntryWidget::setupColorButton, or at least it did in a prior build. Need assistance. Time for bed. The branch of interest is in my fork: |
src/browser/HostInstaller.cpp
Outdated
@@ -42,6 +42,7 @@ HostInstaller::HostInstaller() | |||
, TARGET_DIR_CHROME("/.config/google-chrome/NativeMessagingHosts") | |||
, TARGET_DIR_CHROMIUM("/.config/chromium/NativeMessagingHosts") | |||
, TARGET_DIR_FIREFOX("/.mozilla/native-messaging-hosts") | |||
, TARGET_DIR_TOR_BROWSER("/.tor-browser/app/Browser/TorBrowser/Data/Browser/.mozilla/native-messaging-hosts") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use the same order for the variables. Tor must come last, like you used it elsewhere, not in the middle. Also, TARGET_DIR_TOR_BROWSER
must be defined for all OS's.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On it, sir.
EDIT: For windows - Tor is portable as previously mentioned. We need to add the UI component to direct where to look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, there was a reason for the ordering - not sure how strict your compiler options are. But I set all warnings to error.
Problem in Semantic analysisField 'TARGET_DIR_VIVALDI' will be initialized after field 'TARGET_DIR_TOR_BROWSER' [-Wreorder]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this happens because you define TARGET_DIR_TOR_BROWSER
in HostInstaller.h in the wrong order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this happens because you define
TARGET_DIR_TOR_BROWSER
in HostInstaller.h in the wrong order.
👍 Correct, in the office - going to make manual updates and hope it passes in CI.
@varjolintu - Okay, reordered and pushed - awaiting TeamCity results to check output to see if semantic -Wreorder warning is gone. |
This is pretty neat, and well executed, but I'm a bit concerned that this would be encouraging unsafe Tor behaviour. https://support.torproject.org/tbb/installing-add-on-extensions-tor-browser/ I feel as though KeePassXC should not suggest to folks (via the listed browser checkboxes) that it would be a good idea to install the keepassxc addon in the Tor browser. |
This is understood - however, it uses many open-source extensions itself and the way this communicates is completely local and through a socket on your machine. Siphoning back and forth without the fear of intereception unless your node is already compromised. What I am going to do is see if any revealing details are transmitted during the transaction once all OSes are functional. If so I will be looking into this and encrypting the pipes.
We have an SSH-AGENT... How about some encryted reverse proxies :) |
That is great and reassuring, but the concern is not just about network traffic, but the uniqueness factor that addons introduce to your particular tor browser instance.
It only uses HTTPS Everywhere and NoScript, which are vetted and identical across all Tor Browsers. Deviating from that is discouraged by the Tor Project. |
There is no forcing of adding the plugin. I suppose I just don't understand the issue at hand. This is for users that would like access to their KeepassXC database in Tor Browser - not one I'm expecting to become standard on a Tor installation. I've read the warnings many times. The gist if I remember correctly is don't do it out of lack of trust for exposing new holes to your browser and changing the fingerprint of all of its users. There are malicious addons, sure. However - I understand the underlying code and will use it myself. The real risk lies in malicious code being added to the program or extension. If you wish to step aside from using the Tor integration - just don't check the box and alt+tab to copy your credentials. To me, that holds more of a risk than encrypted transmission to your browser. That copy is stored in memory in plaintext without a hook to decrypt on the other end. Make sense? We are just in two different camps of usability. The actual notion that having a highly secured and standardized browser with all the general noscript/httpseverywhere/user agent spoofers/etc is actually creating a different fingerprint that is easy to find, not an obfuscated unique entity. |
I feel as though the points you're addressing are not the concerns I brought up, but also I think we're getting a little off topic. I think its great that you know the workings of the code enough to trust it in this context, but many users of both KeePassXC and the Tor Browser do not, myself included. KeePassXC's documentation is clear when presenting options that are potentially insecure if not used correctly (or those that make trade offs of security for convenience), such as the TOTP plugin, which I feel knowledgeable enough about to use confidently (and adore!), but maybe some other folks don't. Alternatively, when KeePassXC options do not have such warnings, I feel that its implied that its an overall safe thing to use. This is helpful to less technical folks, and in my opinion, that differentiation contributes to why KeePassXC is mentioned in beginning privacy guides by the EFF, the Freedom of the Press Foundation, etc. It would be a shame if the guides had to start following every mention with a disclaimer about avoiding the Tor Browser integration. I feel like your change falls into the category of potential for security versus convenience (again, I'm not a Tor Browser expert, so I yield to the project's recommendations when I use it). With that said, I also feel like tools shouldn't necessarily limit what the user can do, so I propose a compromise of removing the mention of the Tor Browser from the quickstart guide, and adding As I said, this is slick, nicely executed, and the testing and thought you put into this is awesome 🙂. I hope you haven't felt like I've attacked your idea or work at all, I just want to make sure KeePassXC remains a by-default safe option for all folks, technical or otherwise. Looking forward to hearing your thoughts on that. |
No attacking at all, I understand completely. I have no gripes about adding warnings and removing from documentation. I was in fact going to add a QT popup with a warning if selected when I did the portable UI portion. Thanks for the input. Will be working on the windows/UI side later tonight. Thanks for the input @kneitinger. The compromise of security for convenience is the exact reason I recommended not enabling it if that was such a concern. I look forward to many more contributions with all of you. But yes you are correct, lets stay on topic - I'm with you good sir. |
@kneitinger Added a warning UI component to the TODO. Thanks for the discussion. |
Cheers to that! Also, congrats on the first PR 🎉 I dig the idea of a pop up confirmation. It keeps the checkboxes area nice and tidy! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good now. Just two minor formatting issues.
Can anyone else look into this, I am not a Windows user and am having quite the time getting past these segfaults: #2392 |
This also includes the registry change for Windows. |
Add path for native-messaging-hosts on Linux, Windows, and macOS for Tor Browser
Tor Browser shares Firefox settings on Windows. I made the changes and this is ready for merge once CI completes. |
903a813
to
06a1f42
Compare
Pull request live changelog:
Pull request live TODO:
Description
For Linux/macOS:
* updated translations files to include Tor BrowserMotivation and context
I believe great security tools should be able to utilize other great security tools.
How has this been tested?
This has been tested on my Arch Linux host, I ran from build directory without install and set the keepassxc-proxy to the one built during compilation.
Screenshots (if appropriate):
Types of changes
Checklist:
-DWITH_ASAN=ON
. [REQUIRED]