GithubHelp home page GithubHelp logo

browserpass-extension's Introduction

Browserpass

IMPORTANT: this repository is archived and not maintained anymore.

Browserpass was rewritten from scratch and split in two repositories:

Follow to the new repositories for installation instructions. We highly recommend to read README in both repositories to get acquainted with the new changes.

FAQ

1. Is the new version backwards compatible?

No, and therefore you need to update both browser extension and native host at the same time. If you installed browser extension from Web stores, it will auto-update, but you must install browserpass native host v3 yourself.

Read browserpass-native installation section to see if your OS provides an updated package for Browserpass v3, if not then follow manual installation steps as described in that section.

2. Can I upgrade now, and not wait for an auto-update to come?

If you use a Chromium-based browser, go to browserpass-extension releases and download the latest browserpass-webstore.crx. Then open chrome://extensions, enable "Developer mode" and drag'n'drop the downloaded crx file. Finally proceed to browserpass-native installation section for how to install a new version of the native host.

If you use Firefox, go to browserpass-extension releases and download the latest firefox.zip file, unpack it in a folder, then in Firefox go to about:debugging#addons and click on "Load Temporary Add-on" to install the extension. Finally proceed to browserpass-native installation section for how to install a new version of the native host.

If you unpack the contents of firefox.zip in /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/[email protected]/ folder, according to my experiments Firefox will treat it as persistent extension, it will ignore whatever is currently on Web Store and you will not need to load this extension after every Firefox restart.

3. Can I keep the old version, if I don't have time to upgrade native host app or if my OS hasn't updated the "browserpass" package yet?

Go to the latest v2 release, download chrome.zip or firefox.zip depending on what browser you use. Unpack the archive in a new directory, and then load this extension in the browser:

In Chromium:

  • Go to chrome://extensions
  • Enable "Developer mode"
  • Click "Load unpacked" and select the folder with the unpacked contents of chrome.zip

In Firefox:

  • Go to about:debugging#addons
  • Click "Load Temporary Add-on" and select the folder with the unpacked contents of firefox.zip

If you unpack the contents of firefox.zip in /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/[email protected]/ folder, according to my experiments Firefox will treat it as persistent extension, it will ignore whatever is currently on Web Store and you will not need to load this extension after every Firefox restart.

4. What happened to OTP?

OTP was not implemented in Browserpass v3, but it might be implemented as a separate extension. For more details, see Support OTP in Browserpass v3.


Browserpass is a Chrome & Firefox extension for zx2c4's pass, a UNIX based password manager. It retrieves your decrypted passwords for the current domain and allows you to auto-fill login forms, as well as copy it to clipboard. If you have multiple logins for the current site, the extension shows you a list of usernames to choose from.

Browserpass in the Chrome menu

It uses a native binary written in Golang to do the interfacing with your password store. Secure communication between the binary and the browser extension is handled through native messaging.

Table of Contents

Requirements

  • A recent version of Chrome, Chromium or Firefox 50+.
  • Pass (on UNIX)
  • Your password filename must match your username or your file must have a line starting with login:, user: or username:, followed by your username.

Examples

$ pass website.com/johndoe
the-password

$ pass website.com
the-password
login: johndoe

Installation

In order to install browserpass correctly, you have to install two of its components:

  • host application
  • browser extension(s).

Installing the host application

The following OS have a browserpass package that can be installed via package manager:

If your OS is not listed above, proceed with the manual installation steps below.

Download the latest Github release.

Start out by downloading the latest release package for your operating system.

Verifying authenticity of the releases

All release files are signed with this PGP key. To verify the signature of a given file, use $ gpg --verify <file>.sig.

It should report:

gpg: Signature made ...
gpg:                using RSA key 8053EB88879A68CB4873D32B011FDC52DA839335
gpg: Good signature from "Maxim Baz <...>"
gpg:                 aka ...
Primary key fingerprint: EB4F 9E5A 60D3 2232 BB52  150C 12C8 7A28 FEAC 6B20
     Subkey fingerprint: 8053 EB88 879A 68CB 4873  D32B 011F DC52 DA83 9335

Installing the host application

  1. Extract the package to where you would like to have the binary.
  2. Run ./install.sh (.\install.ps1 on Windows) to install the native messaging host. If you want a system-wide installation, run the script with sudo. For Windows, system-wide installation can be done by running .\install.ps1 as Administrator and specifying "yes" at the "Install for all users?" prompt.
    • If you desire a non-interactive installation on a Unix system, pass the name of the browser to the script (e.g. ./install.sh chrome)

Installing the binary & registering it with your browser through the installation script is required to allow the browser extension to talk to the local binary application.

Installing the host application on Windows through WSL

If you already use pass under WSL and prefer to have a single copy of your password store, you can use browserpass through WSL as well.

  1. Install the Windows host application (see previous section) as well as the Linux host application (under WSL).
  2. Create %localappdata%\browserpass\browserpass-wsl.bat with the following contents:
@echo off
bash -c ~/.browserpass/browserpass-linux64

If you installed the Linux host application in a location different from ~/.browserpass, replace that path in the above script.

  1. Change the path in %localappdata%\browserpass\browserpass-firefox.json (or -chrome.json) to point to browserpass-wsl.bat

If your GPG key has a password, the host application running under WSL won't be able to unlock it since it can't interactively prompt for the password. This means you can't decrypt any passwords unless you've already got the key loaded in gpg-agent. As a workaround, you can use the key (pass website.com) in a WSL terminal to load the key into gpg-agent. Then browserpass will work until gpg-agent times out (it is possible to configure larger timeouts, check manual for gpg-agent).

Installing the Chrome extension

You can either install the Chrome extension from the Chrome Web Store or drag the chrome-browserpass.crx file from the release package into the Chrome Extensions (chrome://extensions) page.

Installing the Firefox extension

You can install the Firefox extension from the Mozilla add-ons site. Please note that you will need Firefox 50 or higher.

Updates

IMPORTANT: Majority of the improvements require changing code in both browser extensions and the host application. While we are trying to maintain backwards compatibility, it is expected that you will make sure to keep both components up to date.

Updating the host application

If you installed the host application via a package manager for your OS, you will likely update it in the the same way.

If not, repeat the installation instructions for your OS.

Updating browser extensions

If you installed the extension from a webstore, you will receive updates automatically.

If not, repeat the installation instructions for the extension.

Usage

Click the lock icon or use Ctrl+Shift+L to open browserpass with the entries that match current domain.

  • Chrome allows changing the shortcut via chrome://extensions > Keyboard shortcuts.
  • Firefox unfortunately does not allow changing the default shortcut.
  • Firefox supports the keyboard shortcut only since version 53.

Filter and search modes

Browserpass has two modes for working with password entries: filter and search.

When opened, browserpass automatically switches to the filter mode if at least one matching entries exists.

Filter mode is designed to quickly refine a few search results, for example to choose one of several accounts that you have on a given domain. This is done on client side, the filter is always fuzzy and always works in real time. When browserpass is in the filter mode, you will see a domain name in the input field. To exit filter mode, press Backspace.

Search mode is designed to search password entries on your disk, this is much more expensive operation (especially visible on Windows) that's why it is not real time, and instead searches only when Enter is pressed. The search is fuzzy by default, but can be changed to glob algorithm in the options. If you want to search everything interactively, just search for / or . and then use the filter mode to refine the search in real time.

Fill (and submit) the login form

Click or select the entry that you want to submit, and the login form will be filled with the selected credentials (injected directly into the DOM, browserpass does not use clipboard for this). When the focus is in the input field, hitting Enter will submit the first entry in the list (this is useful in combination with filter mode).

If the login button is found, it will be focused so that you can just hit Enter to submit the form. If you enable Automatically submit forms after filling in the options, the login button will be pressed instead.

If your password entry has OTP configuration, browserpass will use it at this point to display the code.

Navigating the entries

Navigate through the list of available credentials with Tab and Shift+Tab or with arrow keys.

Copy to clipboard

Click on the username or password buttons to copy them to clipboard. Keyboard shortcuts are also available, use Ctrl+C to copy password of the selected entry and Shift+C to copy the username.

Open URL

Click on the globe button or use the g shortcut to navigate to the URL in the current tab, hold Shift while doing so to open a new tab instead. You can also specify one of the following metadata fields in your pass file to control exactly which URL is navigated to: url:, link:, website:, web: or site:.

Keep in mind that browserpass can only fill HTTP basic auth credentials if you open this URL using browserpass.

Manual search

To prevent phishing attacks, browserpass prefills the list of passwords with only those entries that match the current domain. If you want search for credentials across the entire password store, exit the filter mode with Backspace (domain name in the input field will disappear), type the search request and hit Enter to start the search. Instead of using Backspace, you can also type your search query while in the filter mode, as soon as there are no matching results left browserpass will automatically switch to the search mode and will await Enter to initiate the search.

Password store location(s)

When deciding where to look for the password store, browserpass uses PASSWORD_STORE_DIR environment variable, and if it is not defined, checks the ~/.password-store folder. However, using the Custom store locations setting in the options of the browser extension you can configure a different location for browserpass to look for, or even multiple locations. There are no restrictions, you can define subfolders in the password store, gopass mounts or any other folder that has pass entries.

When you have more than one password store configured and enabled, in order to help you distinguish the password entries from different locations (e.g. between passwords for work and personal GitHub accounts), a green badge next to each password entry will appear indicating its origin (the name of its password store).

Options

Open settings to configure browserpass:

  • Right click on the lock icon > "Options".
  • Find the browserpass in the list of extensions in your browser > "Options".

The list of currently available options:

  • Automatically submit forms after filling: make browserpass automatically submit the login form for you.
  • Use fuzzy search: whether the manual search mode should be fuzzy or not (filter mode is always fuzzy).
  • Custom store locations: allows configuring multiple password store locations and toggle them on the fly.

Security

Browserpass aims to protect your passwords and computer from malicious or fraudulent websites.

  • To protect against phishing, only passwords matching the origin hostname are suggested or selected without an explicit search term.
  • To minimize attack surface, the website is not allowed to trigger any extension action without user invocation.
  • Only data from the selected password is made available to the website.
  • Given full control of the non-native component of the extension, the attacker can extract passwords stored in the configured repository, but can not obtain files elsewhere on the filesystem or reach code execution.

FAQ

Does not work on MacOS: "Native host has exited"

First install required dependencies:

$ brew install gnupg pinentry-mac

It is important that you have the gpg binary at /usr/local/bin/gpg. If you have your gpg in another location, create a symlink:

$ sudo ln -s /path/to/your/gpg /usr/local/bin/gpg

If you don't have admin rights to create the symlink, the workaround is to patch browser launcher.

Now edit ~/.gnupg/gpg.conf:

# Comment out or remove this line if it's there:
# pinentry-mode loopback

# and add this line:
use-agent

Add the following line to ~/.gnupg/gpg-agent.conf:

pinentry-program /usr/local/bin/pinentry-mac

Then restart gpg-agent:

$ gpgconf --kill gpg-agent

And finally restart your browser.

If you still experience the issue, try starting your browser from terminal. If this helps, the issue is likely due to the absence of /usr/local/bin/gpg, follow the steps above to make sure it exists.

Configuring Browserpass on NixOS / for Nix

On NixOS

If you wish to have a stateless setup, make sure you have this in your /etc/nixos/configuration.nix and rebuild your system:

{ pkgs, ... }: {
  programs.browserpass.enable = true;
  environment.systemPackages = with pkgs; [
    # All of these browsers will work with it
    chromium
    firefox
    google-chrome
    vivaldi
  ];
}

Note: firefox*-bin versions do not work statelessly. If you require such firefox versions, use the stateful setup in the following section.

For Nix / stateful

Install browserpass native messaging host with

nix-env -iA nixpkgs.browserpass

And install the browser extension like normal. Then link the necessary files

# For firefox
mkdir -p ~/.mozilla/native-messaging-hosts && \
  ln -s ~/.nix-profile/lib/mozilla/native-messaging-hosts/com.dannyvankooten.browserpass.json ~/.mozilla/native-messaging-hosts
# For chrome
mkdir -p ~/.config/google-chrome/NativeMessagingHosts && \
  ln -s ~/.nix-profile/etc/chrome-host.json ~/.config/google-chrome/NativeMessagingHosts/com.dannyvankooten.browserpass.json
# For chromium
mkdir -p ~/.config/chromium/NativeMessagingHosts && \
  ln -s ~/.nix-profile/etc/chrome-host.json ~/.config/chromium/NativeMessagingHosts/com.dannyvankooten.browserpass.json
# For vivaldi
mkdir -p ~/.config/vivaldi/NativeMessagingHosts && \
  ln -s ~/.nix-profile/etc/chrome-host.json ~/.config/vivaldi/NativeMessagingHosts/com.dannyvankooten.browserpass.json

All versions of firefox are supported with this way

Installing Browserpass on macOS with Homebrew

Browserpass isn't included in the main Homebrew repository, so it must be installed by adding a third party "tap". That only requires one additional step.

$ brew tap dustinwilson/tap
$ brew install browserpass

Instead of running install.sh Homebrew supplies an additional command called browserpass-setup to handle this and works the same way as install.sh above. For example this will install the native host files for Firefox:

$ browserpass-setup firefox

You must install the browser extensions manually using conventional methods for each browser. All of this information is supplied when running brew install browserpass.

How to configure OTP?

The easiest way to add OTP in your password entries is to use pass-otp. You don't have to configure anything extra, browserpass will automatically detect if an OTP is configured and show you the code after filling the form.

Contributing

Check out Contributing for details on how to build browser extension and host app from sources, and how to load browserpass as an unpacked extension into your browser.

License

MIT Licensed.

browserpass-extension's People

Contributors

be-neth avatar benjamin-l avatar boutil avatar dependabot[bot] avatar erayd avatar fabianhenneke avatar jayme-github avatar maximbaz avatar mcexit avatar patgmiller avatar rapidcow avatar txt-file avatar uninsane avatar whereswaldon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

browserpass-extension's Issues

Chromium 74.0.3729.108 breaks browserpass on Debian

Debian unstable just updated to chromium 74.0.3729.108 which apparently breaks browserpass. When clicking on the browserpass icon the message "Loading available logins.." appears and stays still it reaches a timeout. No logins are shown, even if there are a couple available.

I have 3.1.0 installed from the Debian package, but also tried 3.1.0 from the webstore to no avail.

Reverting chromium to 73.0.3683.75 (the prior version in Debian) fixes the issues and browserpass works nicely again.

Please tell me if there is anything else I can do to debug the issue.

new layout

Two cons for new layout:

  1. A lot of unusable space (red outline on screenshot):
    image

  2. The line is significat ticker, so less passwors fits into list (only 7):
    image

What the pros are?

Adding Chrome OS (with smart card) support via a non-native browserpass-native replacement

Unfortunately, browserpass cannot be used on Chrome OS since this platform lacks support for native messaging. I am the author of smart-pass, a fork of an earlier version of browserpass, which gets around this issue by offloading the work done by gpg to a smart card (e.g. a Nitrokey or YubiKey). Smart card support is available for Chrome OS thanks to the official Smart Card Connector app.

Now that the shiny new version 3 of browserpass is out (thanks a lot for that!) and provides a documented protocol for communication with browserpass-native, I think that it would not be too difficult to convert the functionality provided by smart-pass into a Chrome OS extension replacing browserpass-native on that platform.

The rough plan for this would look as follows:

  1. Develop a Chrome extension that speaks the browserpass-native protocol and provides the functionality of the native helper, for example by fetching .gpg files from Google Drive and decrypting them on a smart card.
  2. Change hostAction to make it speak to a configurable, whitelisted non-native extension that provides the functionality of browserpass-native.

If there is interest in Chrome OS support along this route and the resulting extension could become part of the official family of browserpass repos, I would try to carry out the work needed to make it happen. Please let me know what you think.

HTML Authentication option missing in v3?

I just got the update for version 3 in my browser. It looks a lot better now, thanks! I did have to upgrade the native messaging host, but I was aware of this because I saw a pop-up notification flash by a few days ago. Thanks for that!

Anyway, I just wanted to mention that the feature to fill in HTML authentication now seems missing? Previously this was a globe icon. I still need this for some websites, are you planning on bringing it into v3 later? Or was it removed because of the way it worked? (You had to launch the website through the extension of course, wasn't an issue for me, it worked well anyway).

PS: It would be good to mention on the Readme page that it's not enough to just replace the new EXE with the old one. You also have to update the registry with the old "dannykooten" keys to the new ones and use the new JSON files :) I thought I'd be smart and just overwrite the EXE but that didn't work for that reason.

Browserpass is awesome

I just would like to say that browserpass is an awesome extension. I use browserpass 20 times per day. I love it. Thank you so much to everyone who made this possible.

Great job

Error: Unable to enumerate password files

General information

  • Operating system + version: Windows 10 1809
  • Browser + version: Firefox 66.0.3
  • Information about the host app:
    • WSL - Ubuntu 18.04, binary compiled myself
  • Information about the browser extension:
    • Installed from store (v3.0.10)

Description of the problem

Hi, after fresh install of v3 I'm frequently getting this error. Sometimes it works, sometimes not. I'm sure the host works properly and the problem is actually caused by the extension for Firefox in combination with this setup1. I also have Chrome installed on the same system and it works every single time.
image

I'll be glad to provide any additional information/logs, but at this point, I don't know what might help.


1: I wouldn't be surprised if the problem eventually turned out to be due to WSL. On my other computer (Arch Linux+Firefox) it works just fine.

TypeError: settings.hostError.params is undefined

General information

  • Operating system + version: Arch
  • Browser + version: Firefox 66.0.3 x64
  • Information about the host app:
    • How did you install it? pacman for browserpass
    • If installed an official release, put a version ($ browserpass --version): Browserpass host app version: 2.0.21
    • If built from sources, put a commit id ($ git describe --always):
  • Information about the browser extension:
    • How did you install it? package manager (download from mirror)
    • Browserpass extension version as reported by your browser: 3.0.10

If you are seeing "Error: Specified native messaging host not found", have you followed Configure browsers documentation section?


Exact steps to reproduce the problem

  1. Run Firefox

  2. Click on the extension

What should happen?

Show password

What happened instead?

TypeError: settings.hostError.params is undefined

And I got this from the browser console :

stderr output from native app com.github.browserpass.native: [Browserpass] 2019/04/15 01:17:11 Invalid action

Improve how we present error messages

Native app sends detailed error messages in JSON format, but in the extension we either only show the message (omitting everything else), or print out a raw JSON (like on the options page).

We can do better, maybe show some kind of table with message, details, version of the native app, etc. This needs to be done in popup, options during init and options on save.

Also make sure we log full error details in console.

Sorting order in new version inconsistent

General information

  • Operating system + version: MacOS 10.14.4
  • Browser + version: Firefox and Chrome
  • Browserpass version 3.0.10

Exact steps to reproduce the problem

  1. I have 2 logons for the same site. One is called ADM, one is SESA. The site is identified by the folder name, inside I have 2 files for the 2 different accounts.

  2. ADM is at the top, SESA at the bottom (alphabetically sorted?). Now log in with SESA.

  3. Next time, SESA is at the top. If I used ADM that will be at the top again.

What should happen?

It would be great if the sort order was fixed (e.g. aphabetically) so that my "muscle memory" doesn't get confused between these two :)

In Browserpass 2.x these were fixed so it wasn't an issue. I understand some smart sorting is used but perhaps it could be a toggle on/off?

What happened instead?

They keep shuffling around as I use them

Support multi-step authentication

I see some websites ask for credentials in 2 or 3 steps separated by a button click. In such a website, the user first enters her username or email, then clicks on a button, then enters her password, and then clicks a button.

On top of my head, these websites are like that:

  • login.microsoftonline.com
  • id.atlassian.com
  • espace-client.enercoop.fr

Beyond those, more and more websites start including 2FA which is a step of its own.

Authenticating on these websites with browserpass-ce is annoying because I have to summon the extension several times to through all the steps. 2FA authentication is also annoying because I have to manually put the focus on the form field, type the numbers displayed by browserpass-ce, validate the form and then close browserpass-ce popup.

Would it be possible that browserpass-ce take care of these multi-step authentication websites?

Add ability to turn off badge on icon

General information

  • Operating system + version: Ubuntu 18.10
  • Browser + version: Firefox Nightly 68.0a1 (2019-04-08) (64-bit)
  • Information about the host app:
    • How did you install it? pre-built binary
    • If installed an official release, put a version Browserpass host app version: 3.0.6
  • Information about the browser extension:
    • How did you install it? AMO
    • Browserpass extension version as reported by your browser: 3.0.9

Exact steps to reproduce the problem

  1. Install the extension

  2. Open a domain with saved passwords

What should happen?

The ability to turn off the icon badge should exist.

image

The first thing I do is turn this off on any extension.

What happened instead?

It doesn't or is buried somewhere hard to find.

Keep audit data (which password was used where and when)

I learned today that I had a malicious plugin installed for a specific known to me period of time, I wanted to find out which websites could have been compromised. Then I remembered about a wonderful recent object in localStorage of browserpass.

My ideas was:

  • Download the entire object
  • Keep only entries whose when is newer than the start time of the attack.
  • For each remaining entry, rotate password

Unfortunately, this idea didn't work because we extensively hash the key ๐Ÿ™‚

settings.recent[sha1(settings.host + sha1(login.store.id + sha1(login.login)))] = login.recent;

I was wondering if hashing gives us any good benefits, and if no, can we not hash the key?

Alternatively, how about just adding a couple more fields in the object, for audit purposes? Now we have count and when, we could extend when to be a list, and add host, store.id and login in there.

Username is overwritten with site name on autofill

General information

  • Linux Debian Stretch
  • Chrome 73
  • Information about the host app:
    • If built from sources, put a commit id ($ git describe --always): 6422e660f1731fd779fe75c76aac0f23151e3ac4
  • Information about the browser extension:
    • How did you install it?
      Installed via chrome store/updated automaticaly from 2.x

Exact steps to reproduce the problem

  1. Ensure default password is in extenstion config is blank

  2. On the console
    pass edit foo.com
    Add a single line with a password.

  3. Visit foo.com

  4. Select foo.lcom password optoin

What should happen?

The username shal be left alone and the password field filled in. (with

What happened instead?

The username field is filled withthe site url (foo.com)

CRX File Extension Disabled Automatically

When I drag and drop the crx file for webstore into Chromium, it installs but the extension is disabled and it says it is not available in the webstore, see below.

This extension is not listed in the Chrome Web Store and may have been added without your knowledge.

Report websites where Browserpass doesn't work

Please use this thread to report websites where Browserpass doesn't fully work, e.g. Browserpass is unable to fill username or password, or fills wrong form, or autosubmit doesn't work.

I'm not promising to support every single website, but I will investigate every example and if possible improve the detection logic.

I will not however add special cases for certain websites, I don't want Browserpass become a collection of broken websites on the Internet ๐Ÿ™‚

Error: InvalidStateError: A mutation operation was attempted on a database that did not allow mutations

General information

  • Operating system + version: Ubuntu 18.04
  • Browser + version: Firefox 66.0.2 (64-Bit)
  • Information about the host app:
    • How did you install it? downloaded a pre-built binary
    • If installed an official release, put a version ($ browserpass --version):
    • If built from sources, put a commit id ($ git describe --always): 3.0.6
  • Information about the browser extension:
    • How did you install it? webstore,
    • Browserpass extension version as reported by your browser: 3.0.12

Exact steps to reproduce the problem

  1. Go to website login screen,
  2. Enter PGP-password
  3. username + password inserted after selection -> login successful
    4.no error message is shown
  4. Go to another login screen (different website)
  5. username + password inserted after selection -> login successful
  6. error message is shown "Error: InvalidStateError: A mutation operation was attempted on a database that did not allow mutations"

What should happen?

no error message shown

What happened instead?

error message

Copy username/password always blank

General information

  • Operating system + version: Windows 10 Pro
  • Browser + version: Firefox 66.0.3
  • Information about the host app:
    • How did you install it?
      Followed the windows instructions to install the prebuilt release manually
    • If installed an official release, put a version ($ browserpass --version): 3.0.6
  • Information about the browser extension:
    • How did you install it?
      It was a long time ago, not sure if the old windows script installed it for me or if I got it from the firefox addons page
    • Browserpass extension version as reported by your browser: 3.1.0

Exact steps to reproduce the problem

  1. CTRL + SHIFT + L (or open browserpass by clicking on the icon)

  2. Click copy username or copy password

  3. Paste the result

What should happen?

The copied username or password should be pasted.

What happened instead?

Nothing is pasted.

Autofilling information still seems to work. I think I probably did not try the copy feature with V3 until today.

I have no idea how/where to get logs for this, please let me know if I can provide more information.

Can't work on Archlinux without browserpass-chromium installed

I'm excited to see that the version 3 was released and I can't wait to try it out. But I have encountered some problems.

If I install the extension from the web store and install the native host from the pacman, it won't work. When I click the extension icon, there goes the wrong message:
Error: Error: Specified native messaging host not found.(yes, there are two 'Error's)

But if I install browserpass-chromium from pacman, then everything goes fine. And even I enable both of the two versions (one from the web store, one from the pacman) at the same time, they both work normally. However, if I uninstall the version installed from the pacman, (still with the native host installed) the version from web store cannot work along.

autoSubmit not working on basecamp/37signals

General information

  • Operating system + version: Fedora 29
  • Browser + version: Firefox 66.0.3
  • Information about the host app:
    • How did you install it? cloned the git repo and make
    • If installed an official release, put a version ($ browserpass --version): 3.0.6
  • Information about the browser extension:
    • How did you install it? Firefox AMO
    • Browserpass extension version as reported by your browser: 3.1.0

Exact steps to reproduce the problem

  1. Create a password store entry 37signals.com. Add autoSubmit: true to the entry
  2. Go to https://launchpad.37signals.com/signin
  3. Type Ctrl+Shift+f
  4. The username is correctly filled

What should happen?

Expected: the password field is now visible

What happened instead?

Actual: the password field is not visible, I have to press "next"

Show store and path only if there is a reason to do so

Having the passwords window show the store and path might be useful if there is more than one store and more than one folder in that store, but if there is neither, it's just superfluous information that's repeated multiple times.
So the store name should only be displayed if there is more than one store. The path should only be displayed if there are actual subfolders inside the store.
It's a small thing, but it would make the ui a little better, imho.

Notify via browser popup when native app is outdated

native host version can be part of settings request, and browser popup can have a line in the bottom with red text "Native host is outdated, please update" when we release a new version of host app. This way it will be annoying enough for users that they will actually update, and we will have less problems with backwards compatibility.

"Loading available logins..." get's stuck.

General information

  • Operating system + version: Windows Server 2019 Standard Edition, Version 1809
  • Browser + version: Firefox Quantum 66.0.3 (64-Bit)
  • Information about the host app:
    • Host app installed via MSI (3.0.6)
  • Information about the browser extension:
    • Installed via addons.mozilla.org
    • Browserpass extension version as reported by your browser: 3.1.1
  • Using gpg/smartcard for pw decryption

The Issue

Reproduce:

  1. Browse for a while (exact cause unknown)

When using the key combination ctrl+shift+L the popup appears and only shows "Loading available logins..." forever. It seems stuck and will happen from then on on every page. Restarting firefox solves the issue for a while.
I tried a few things to reproduce it, but it seems pretty random so far. I'll update if new info comes up.

Support OTP in Browserpass v3

OTP was intentionally not re-implemented in Browserpass v3, but given that some of you might want to implement this functionality as a fork or extension to Browserpass, let's coordinate this effort to prevent duplication and fragmentation of your work.

Creating a separate browser extension that will also talk to Browserpass native host is always an option, although it has its drawbacks.

However after reading your feedback in #322 and #331, @erayd came up with the following neat idea and convinced me to agree to it:

  • Create a new dedicated extension browserpass-otp in the Browserpass org
  • Browserpass v3, upon receiving a decrypted password entry from the native host, will see if there is an OTP URL or seed, and if so, will automatically hand this value off to browserpass-otp extension (if it is installed).
  • browserpass-otp is then free to do anything it wants with the OTP url, it can generate codes, show them on the page, insert in the form, copy to clipboard, etc. - the limits are only your imagination ๐Ÿ˜‰

This approach has the following benefits:

  • No need to communicate with native host at all.
  • No need to select pass entry twice in the popup (as it would have been the case for two extensions that are unaware of each other).
  • This extension will only have access to OTP url, but not the rest of the pass entry contents.
  • We can always revoke the communication between browserpass and browserpass-otp if the latter does something terrible.

At the same time I'm satisfied by the minimal impact on Browserpass extension:

  • No OTP-related code in Browserpass codebase
  • No mention of OTP in UI, not even hidden in settings
  • Still recommend against storing OTP codes in password store

I'm not planning to contribute much code to browserpass-otp myself, but because this will be a whitelisted extension in Browserpass, I would like to establish the following requirements:

  • browserpass-otp must belong to Browserpass org on Github
  • The entire development must be done via pull requests
  • @erayd or I must approve every PR

Question to community:

Who is interested to write code for browserpass-otp extension? Please speak up.

And as usual, please share any feedback you have, if not for your comments in #322 and #331, we would not be discussing this at all ๐Ÿ˜‰

Can't use most dropdowns with browserpass enabled

General information

Linux Archlinux
Chromium 73.0.3683.103
Installed with pacman

Dropdown menus automatically closes right away when clicking to open (i.e. it just flickers but stays closed). If I disable browserpass, then all works fine.

delete

((lambda (foo) (bar foo)) (baz))

Improve search to prefer continuous matches

General information

  • Operating system + version: Arch Linux
  • Browser + version: Firefox Nightly (2019-04-13)
  • Information about the host app:
    • How did you install it? browserpass from [community]
    • If installed an official release, put a version ($ browserpass --version): 3.0.6
  • Information about the browser extension:
    • Browserpass extension version as reported by your browser: latest master

Exact steps to reproduce the problem

Consider the following search:

Untitled

What should happen?

The entire second line should be matched i.e. the email address in the above should be matched, not amazon.ca from the first line and my domain from the second line.

What happened instead?

Parts of the first line and the second line got matched.

docs: why the required permissions

First thanks for all your work. My chromium browser just found the new v3.0.8 and upgraded the extension (:tada:) . This automatically disabled the extension because v3 requires some additional permissions.

In the light of full disclosure, could you maybe elaborate in the readme for which features these permissions are needed? Eg the main thing which is not immediately clear to me is why this extension now needs the permission Modify data that you copy and paste.

Improve options screen styling

Related tasks:

  • Add "usage data cleared" message after clearing usage data
    • M: maybe "Settings saved" as well then
  • Enable the save button after the form has changed, but before the changed field loses focus

Need support for shadowDOM

General information

Your app does not support a form that exists in shadowDom and provides no way to let the app know that a form is held within the shadowDom of a particular element. As more Web Components are created there is a larger likelihood of this app not functioning since the <form> may be held within the shadowDOM of the Web Component. And, you can use shadowDOM without a Web Component. Several frameworks are not using shadowDOM for much of their DOM creation. We need some way to indicate that the login <form> is held inside the element's shadowDOM so the appropriate parent can be used for the call to querySelectorAll.

  • Operating system + version: All
  • Browser + version: All
  • Information about the host app:

Exact steps to reproduce the problem

  1. Use a form contained in shadowDOM
  2. Try to use the app
  3. It does not work

What should happen?

There should be a way to indicate that the shadowDOM of a given element contains the login form.

What happened instead?

The app can not see the shadowDOM. document.querySelectorAll does not penetrate into shadowDOM and, thus, can not find a <form> that is contained in shadowDOM. There is no way to indicate that a particular element has a login <form> held within its shadowDOM.

remove

Your time is limited, so don't waste it living someone else's life
                -- Steve Jobs (1955-2011)

Feedback on v3

Here is some feedback on browserpass v3:

  • I'm very happy that you guys keep on maintaining browserpass. It's a very useful extension. Thank you so much.

  • I really like the idea of the domain badge to filter the entries. It both brings security and is very easy to get rid of.

  • I also like that the entries are sorted based on usage and that I can just press RET to activate the first one.

  • I don't see the benefit of having the number of matching entries always visible as a badge on the extension's icon. It just doesn't bring me any value and it clutters the tool bar. (#103)

  • On Firefox, most icons are just black with transparent background. This makes the browserpass icon stand out quite a bit for, in my opinion, no particular reason.

  • The popup is the only one of all my extensions to be dark. It's not really a problem, but I like consistency :-). (#98)

  • The currently selected entry has a background color which is not different enough from the normal background for me to quickly see what entry is active. My vision is not really good so it might just be me.

  • The icon to go to the url attached to an entry is gone. I didn't use it often, but it was sometimes very useful.

I also lack support for OTP but that is taken care of separately (#76).

Allow a single shortcut to replace Ctrl+Shift+L followed by Enter

General information

  • Operating system + version: Linux / Arch Linux (64-bit)
  • Browser + version: Chromium 67.0.3396.87 (Official Build)
  • Information about the host app:
    • How did you install it?
      • Installed via a package manager, downloaded a pre-built binary, compiled yourself? AUR
    • If installed an official release, put a version: 2.0.21
      • In the recent versions it can be obtained with $ browserpass -v.
      • If in doubt what version you have, download and re-install the latest version!
    • If built from sources, put a commit id ($ git describe --always):
  • Information about the browser extension:
    • How did you install it?
      • Installed via webstore, downloaded a pre-built extension, compiled yourself? AUR
    • Browserpass extension version as reported by your browser: 2.0.21

What should happen?

Currently I use the following combination to automatically input the password if I'm focused on the password field: (Ctrl+Shift+L) + (Enter). This will open the popup and select the best matching password (which is almost always the correct password, thanks to my directory structure).

I would like to combine this into one shortcut that automatically chooses and enters the best fitting password, if any. If there no matching passwords, the extension should do nothing.

Allow to autofill more form fields besides username and password

A nice feature would be the ability to specify fields by some strategy in order to fill them. For example, I have a number of AWS accounts, and the account ID is not something I remember, but "ProjectA-AWS" is. Having account id, username & password auto-filled would be a big convenience.

My initial thought is that this syntax would work:

browserpass_selector_XXX: input#account
XXX: XXXYYY

Add light theme

General information

  • Operating system + version: Arch Linux
  • Browser + version: Firefox Nightly (2019-04-13)
  • Information about the host app:
    • How did you install it? browserpass from [community]
    • If installed an official release, put a version ($ browserpass --version): 3.0.6
  • Information about the browser extension:
    • How did you install it? Firefox Add-ons store
    • Browserpass extension version as reported by your browser: 3.0.9

Browserpass v2 used to have a light theme and it was great. But it looks like v3 only supports a dark theme. I know that dark themes are more popular with developers (I, too, used to use dark themes), but a small minority of us prefer light themes. FWIW, dark text on light backgrounds is supposed to be more legible and readable to human eyes if the room you're in is well lit (which is the case for me).

As a worst case scenario, allow adding custom override CSS like available in the Tab Center Redux extension. But I'd much rather prefer a maintained light theme because div IDs and classes may change across releases, making custom CSS difficult to maintain.

Google Drive spreadsheet triggers high CPU usage in Firefox (a infinite loop with browserpass?)

General information

  • Operating system + version: Windows 10 1809
  • Browser + version: Firefox 66.0.3 (64-bits)
  • Information about the host app:
    • How did you install it?
      Downloaded a pre-built binary (browserpass-windows64-3.0.6.zip)
  • Information about the browser extension:
    • How did you install it?
      Webstore
    • Browserpass extension version as reported by your browser:
      3.1.0

Exact steps to reproduce the problem

  1. Open any Google Drive Spreadsheet (https://docs.google.com/spreadsheets/) via drive.google.com

  2. Firefox CPU and memory usage goes unusual high

  3. browserpass-windows64.exe is spawned at least 50x

What should happen?

The extension should list the available logins.

What happened instead?

  • Before opening the spreadsheet (or opening with browserpass extension disabled) Before opening the spreadsheet (or opening with browserpass extension disabled)
  • Opening spreadsheet via Google Drive Opening spreadsheet via Google Drive
  • Firefox main proccess high CPU and memory usage, plus the spawning of browserpass Firefox main proccess high CPU and memory usage, plus the spawning of browserpass
  • 5min later, the proccesses still running and firefox.exe still with high CPU consume 5min later, the proccesses still running and firefox.exe still with high CPU consume
  • At least 50 child proccesses At least 50 child proccesses
  • The badge counts the number of logins available for the domain (google.com) but don't load them The badge counts the number of logins available for the domain (google.com) but don't load them

I've noticed the high CPU usage and breakdowns after using the new browserpass. Just today I reproduce this issue by opening spreadsheets and monitoring via Process Explorer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.