Objective: Secure & private password management, prevent anyone from stealing your passwords.

Option 1: Store Keepass PW file in personal cloud service like OneDrive/GoogleDrive/etc , download file, use KeepassXC to Open

Option 2: Use ProtonPass or similar solution like Bitwarden

Option 3: Host a solution like Vaultwarden

Which would do you choose? Are there more options ? Assume strong masterpassword and strong technical skills

  • hummingbird@lemmy.world
    link
    fedilink
    English
    arrow-up
    45
    ·
    2 years ago

    Keepass on phone, desktop and tablet. Sync serverless via Syncthing.

    • completely private
    • always available when needed
    • no dependency on services which may go away
    • all open source software
    • maximum security
      • Rootiest@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        1
        ·
        2 years ago

        Check out tailscale (or headscale)

        It lets you connect those devices without necessarily sending all data through your home network when you are remote. (Though that is an option along with many other great features like ssh authentication)

        It also uses WireGuard for the backend which is more secure and efficient than openvpn.

  • marcos@lemmy.world
    link
    fedilink
    English
    arrow-up
    25
    ·
    edit-2
    2 years ago

    Keepass + syncthing.

    Don’t let your vault go unencrypted through the cloud.

    • ferret@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 years ago

      Your vault is always encrypted very securly except when in RAM. There is no security concern with uploading it directly to the cloud.

      • marcos@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        2 years ago

        It’s encrypted at rest with a passphrase. Syncthing encrypts it at transit with a random key.

        There is a huge difference on the security of those.

        • pchem@feddit.de
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 years ago

          Keepass allows you to use a passphrase in combination with a randomly generated keyfile. You only need to copy the keyfiles to your devices once (not via cloud services, obviously). Your actual database can then be synchronized via any cloud provider of your choice (hell, you could even upload it publicly for everyone to see) and it would still be secure.

  • tlf@feddit.de
    link
    fedilink
    English
    arrow-up
    22
    ·
    2 years ago

    I use option 1 with Syncthing for a distributed cloud solution

  • Heavybell@lemmy.world
    link
    fedilink
    English
    arrow-up
    17
    ·
    2 years ago

    Keepass fIle in my own nextcloud instances, synced to my phone so I can also use keepass2android. This way if something happens I at least have another copy of it, beyond my backup system.

    • creed10@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      2 years ago

      that’s actually exactly how I have my setup. I just use syncthing to keep everything dynamically backed up as I add passwords. my main login password is memorized and not written down anywhere so I think I’m good

    • krush_groove@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      I do the same, but synced to Dropbox from computers and phone.

      I have the Proton password manager as well but not sure yet if I’ll do a full swap over.

  • Shayeta@feddit.de
    link
    fedilink
    English
    arrow-up
    13
    ·
    2 years ago

    I’ve used Option 1 with my Nextcloud and it works perfectly. Other options seem more apropriate when you need scale, many user each with their own vault.

  • 👁️👄👁️@lemm.ee
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    2 years ago

    I used to self host Bitwarden, but didn’t want the hassle of securing it and updating it properly and consistently. So I just pay $10 for bitwarden premium and I get to support the company.

    • krush_groove@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 years ago

      I’ve never heard of Syncthing, I use Keepass on Windows and my Android, syncing to Dropbox. If I change to Syncthing is it an easy swap, anything I should watch out for?

  • James Kirk@startrek.website
    link
    fedilink
    English
    arrow-up
    11
    arrow-down
    1
    ·
    2 years ago

    Option 2. It’s the most robust. You’ll never lose it (provided you have the redundancy), you can use it offline, you can transfer it using a USB pen, it’s available in all platforms, including web. I’ve been using this for 8+ years, on my phone, desktop, laptop, company computer, etc. I store it on a personal cloud (and on each machine, of course, by syncing).

  • ⓝⓞ🅞🅝🅔@lemmy.ca
    link
    fedilink
    English
    arrow-up
    9
    ·
    2 years ago

    I use and prefer option one, but take it a step further in that I host my own cloud service. I used to use Dropbox for years, but we got divorced.

  • Arkhive (they/she)@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    7
    ·
    2 years ago

    I do keypassXC and Syncthing. It’s cross platform with only a couple bucks needed for lifetime access to all all necessary features depending on platform. Besides I use Syncthing for a bunch of other stuff as well, so it fits right into my flow. I’m considering moving to a command line tool simply called Pass, and still syncing with Syncthing, but I’ve yet to pull the trigger on that switch yet.

  • Chewy@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 years ago

    Option 3: Vaultwarden + Wireguard.

    I don’t have to worry about attacks from the internet. And a single wireguard connection on my phone sometimes doesn’t even appear on the battery stats.

    Edit: Browser addons need valid ssl certificates, which I get by dns challenge.

    • binom@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      could you expand a bit on your edit? so bitwarden extensions need a valid ssl certificate for the domain where the server is hosted? how do you get that for (i assume) a local domain? thank you for your time!

      • Chewy@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years ago

        DNS-01 challenge allows for domain ownership verification without open ports and instead looks for a txt record. Using a tool like lego[1] with the respective dns provider’s API automatically creates and deletes the txt record after generating a certificate.

        Because ownership is verified by dns txt entry, the (sub-)domain doesn’t have to point to a publicly routable host. This allows for using any IP, so I’m using a local ip only available through wireguard or my local network (E.g. bitwarden.example.com points to 192.168.1.123).

        The disadvantage is that the provider has to be supported and you have to store an API key for your domain on the server.

        [1] https://github.com/go-acme/lego

        • binom@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 years ago

          that’s genius. i have never even considered that you could use a (sub)domain with a local ip like that to get a certificate from a trusted ca. i ma not sure i understand the neccessity for api access to your dns service. is the txt record for LE different every time you have to pass a challenge? otherwise i imagine you could just set and forget the record.

          thank you for the explanation, well appreciated!

          • Chewy@discuss.tchncs.de
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 years ago

            Yes it’s awesome. I never even considered that it’s possible to add not publicly routable IP’s to public DNS server, until I recently read a post about dns-01 challenge.

            I believe the txt record is different every time.

      • tuhriel@infosec.pub
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years ago

        Not the one who wrote initially, but i have the same setup (mostly).
        I went with a self signed certificate. So the server is running with a certificate i have signed with my own certification authority certificate (ca-cert) .
        That means I have to install the ca-cert on all devices to get vaultwarden to accept it.

        The alternative is a let’s encrypt cerrtificate, which are free, but you need to open port 80 (and another one if I remember correctly) for it to work (at least every 3 months)

        • xinayder@infosec.pub
          link
          fedilink
          English
          arrow-up
          4
          ·
          2 years ago

          If you own a domain name you can use the DNS-01 challenge instead of hosting a web server to serve the challenge response.

          With DNS-01 it will add a TXT record to your DNS zones and check if the record exists to verify that you own the domain and then issue the certificate.

          Depending on which tool you use, they usually support DuckDNS and some other free DDNS providers. If you have your domain on a registrar, chances are that it’s also supported.

          • tuhriel@infosec.pub
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 years ago

            Yep that would be a good alternative…I don’t have an official domain for it, so I went the self-signed way

            Which enables me to provide tls/https for all my local services. And it was a fun experience to learn

  • t0m5k1@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 years ago

    Bitwarden+vaultwarden, harden the chosen VPS, set SSH to use keys only, then setup fail2ban for webserver and ssh Also consider putting ffsync on it as well for extra browser benefits.