9 ms·
Bitwarden_rs: Unofficial Bitwarden compatible server written in Rust
- malsanton 6y agoI love this project, but something has always bothered me about it. For something as critical as your entire set of passwords, aren’t you essentially trusting this person you’ve never met to not just take all of them when you use the server? For example, one day a malicious maintainer could flip a switch that simply updates the docker image to send thousands of peoples’ entire vault somewhere and then disappear, no?
- killingtime74 6y agoEspecially since bitwarden itself is already open source. This is a great learning project probably but not great for use
- joaopms 6y agoThe greatest thing about this implementation is its simplicity. I actually deployed this server for my personal use because everything lives in one Docker image and not a lot of them like the official implementation. I do understand that the official implementation helps with scalability and more, I just don't need it.
- Nullabillity 6y agoThe official Bitwarden server depends on MSSQL.
- BiteCode_dev 6y agoSame with basically any part of your infra. What prevents Postgres mainteners to just still all your DB ? Nginx mainteners to redirect your web traffic ? Ultimately, it boils down to a balance between trust in the author, the community or your own checking process.
- novium 6y agoIf I'm not mistaken it should be mostly fine as long as you trust the desktop/phone versions of Bitwarden not to send off the (unhashed) key to the server Edit: Noting that there have been discussions about the default number of iterations. https://github.com/bitwarden/jslib/issues/52 https://github.com/bitwarden/jslib/issues/52
- danmur 6y agoThe main problem I can see is entering your login in the web interface. I still use it though.
- sneak 6y agoNote also that the bitwarden desktop app has a remote code execution vulnerability that the developers refuse to fix, which means that the developers can, at any time, replace your local copy of the bitwarden desktop app with a different version that could steal all your passwords in exactly the manner you describe. You can patch the bitwarden client (and also take the opportunity to remove the spyware they have embedded in it, as well), or use a program like LuLu or Little Snitch to block it from communicating with anything but your own selfhosted bitwarden_rs instance.
- dastx 6y agoDo you have more information on this? A link maybe? EDIT: Never mind, found it - https://github.com/bitwarden/desktop/issues/552 https://github.com/bitwarden/desktop/issues/552. This isn't exactly an RCE. You can say the same about anything. By your logic Microsoft auto-updates are RCE. Same with pacman/apt-get/yum package managers. Same with pretty much anything else. I'm not saying they're not valid concerns, however, if you're this worried about all of these things, maybe cloud-based software isn't for you.
- hanniabu 6y agoEven if the takeaway from that conversation was that sha256 is good enough, it concerns me how the Bitwarden team handled that issue.
- Macha 6y agoIsn't this true for any service? We're just trusting that the bitwarden/server image or bitwarden.com won't do the same? Also this is only a risk if you use the provided Web vault. If you use the desktop, mobile or browser extension clients, it would require both Bitwarden LLC and dani garcia to conspire against you as the server doesn't control code those clients run and the API only provides it data in encrypted format. Finally, if you're that worried you can pin the container version by hash and only update when you are confident in the new version
- jamescontrol 6y agoYes, but if a company does this, they are essentially killing themselves. They have presumably spent a lot of time creating a company, gain customers etc, whereas a single(?) maybe anonymous open source developer does not have that much to lose.
- arkitaip 6y agoThe single dev has their reputation and professional career to lose whereas companies can and regularly engage in all kinds of legal and or judo to avoid any responsibility towards users.
- cromka 6y agoA single dev is an exploitation sitting duck. They can get hacked, they can be stoled from, they can be targeted by the NSA (or FSA, ...), they can make a small but fatal mistakes, and I doubt they conform to the level of policies that companies like FAANG impose on their security-critical teams. And all of the above are very good plausible deniability excuses, such that this single developer could, after all, be malicious and still not loose his reputation simply by claiming he got targeted by a 3rd party. Let that sink in: a single developer and their PC is a gatekeeper of everyone's safety.
- alpaca128 6y ago> if a company does this, they are essentially killing themselves ...or they have to do it because of the NSA and weirdly 99% of users don't care or don't have the means to do anything about it. Companies aren't trustworthy, they are bigger targets but also targets with thicker armor. I just go with the offline route, KeepassXC runs well enough for me and is compatible with phones. I need to handle data sync myself but it's not like I change or add new passwords every day.
- ianpurton 6y agoYou can avoid this by only storing part of your password in Bitwarden. The random part. Then when you log into somewhere add another secret (which you keep in your head) to the end of the password you stored in Bitwarden. Switch on 2FA everywhere you can. Sleep at night.
- CivBase 6y agoThat's actually a cool idea for a password manager in general. After logging in, you input a "salt" value that is appended to the end of all your passwords. That value is never sent to the password server, so even if the server is compromised your associated accounts aren't.
- jaegerma 6y agoThere's actually a name for that: pepper Instead of a salt, which is random for each entry and has to be stored along the hash, one single pepper is added to each password before hashing and kept secret.
- mnutt 6y agoThis is the use case that something like sandstorm.io tries to solve, by locking down system calls on the backend and (slowly but surely) CSP on the frontend. I don’t think BitWarden has been ported yet, though.
- foepys 6y agoIs sandstorm active again? A few years ago there was some news about the company behind it running out of money and abandoning the project if I remember correctly.
- mnutt 6y agoIt transitioned to a community project and is active again. The original contributors are still involved, just to a lesser degree.
- Majromax 6y agoWith any password manager, encryption happens client-side. A malicious or compromised host could make off with your encrypted vault, but that would not by itself compromise passwords.
- colejohnson66 6y agoOP is arguing that the software could be changed to upload your encrypted version as usual, but also silently upload your unencrypted version. Either unintentionally (bug) or intentionally (tin foil hat saying NSA)
- Majromax 6y agoThat would require changes to the client as well, however, and as I understand it bitwarden_rs still uses the standard client-side Bitwarden addon/applications/apps.
- chillfox 6y agoYou could always write your own password manager if you are that paranoid.
- rbut 6y agoThe same could be said of every docker image on dockerhub, or any open source project on github, or any distro of linux.. I could keep going. Unless you review the source code of everything you use, and compile it yourself, there’s always that risk.
- throwaway8581 6y agoBecause of the way bitwarden works, I think as long as the client is secure, compromise of the server is not a major concern except for data loss. Your vault is encrypted client-side. The real threat is that someone takes control of the bitwarden browser extension and pushes a malicious update.
- vbezhenar 6y ago> The real threat is that someone takes control of the bitwarden browser extension and pushes a malicious update. That's why I don't use any KeePass extensions. I just don't trust browser enough to be able to get any of my passwords. I'm thinking about writing my own extension which will communicate with KeePass in a way that suits me (basically: when I'm pressing button in browser, it'll popup KeePass window with search field filled with server domain. Then I can either auto-type password from KeePass or copy it to clipboard, either way I'm only using KeePass and browser extension have no way to get any information.
- fencepost 6y agoI think there's a relevant xkcd about this, though technically it's about standards. I'd absolutely use KeePass for a long term storage password vault (with appropriately obscure reminders so I could recall the password), but the ecosystem of many unofficial free implementations for integration into browsers, phones (IIRC), etc. makes me twitch.
- jillesvangurp 6y agoYou are in control here. It's like every other bit of software you run yourself: it's your problem to do it properly. 1) if you worry about people replacing the docker image you are using, build your own. It's not hard. Alternatively, use a specific version of the docker image by specifying the version or the hash (if you are really paranoid). Of course after you review the Dockerfile. Minimum at least glance through the Dockerfile. 2) bitwarden has import/export functionality (client side) so if your server disappears for whatever reason, you can still export your passwords from the client side. 3) if you don't trust the OSS code, audit it or at least look through it. That's the whole point of OSS. Build it from source if you must. File bugs. Look at the issue tracker. You can choose not to but if something happens it's your problem; not somebody else's problem. 4) The vault is encrypted and the server never handles or sees the decrypted content (see 3 to verify this). Other people's ability to break that encryption depends on you using a secure master password. 5) Or just pay Bitwarden to host passwords for you and rely on their terms of use, SLAs, support, good reputation, and what not. That's probably the best option if you want ass coverage for professional usage. Their pricing is very reasonable for small setups. And probably sharing passwords with a large group of users is just a spectacularly bad idea to begin with. A couple of key users, should cost you max 20/month. Not really worth dedicating devops time for self hosting unless you have a really good reason to. If you do, see 1-4.
- o-__-o 6y agoBitwarden server phones home every install. In order to remove the phoning home bit, you must recompile the entire codebase. I wonder if this rust alternative makes that easier to remove...
- ClumsyPilot 6y ago"3) if you don't trust the OSS code, audit it or at least look through it. That's the whole point of OSS." Thats an outright fantasy, every day I rely on like 50 pieces of software written in 20 different languages and frameworks. They are updated multiple times a month. How many man hours would it take? 1000 a week? Proffesional developers couldn't find heartbleed for years, you really think anyone would notice a hidden backdoor in software like this withing a year?
- sneak 6y agoYou self-host it. The data is going to your own server.
- ryan29 6y agoIsn't the same thing true for every password manager? What's stopping LastPass from pushing an update that steals all my passwords? What's stopping Chrome from auto-updating to a version that sends every password I enter to Google? It's not fair to single out just Bitwarden IMO.
- paulryanrogers 6y agoYou could restrict its network access to only your LAN. Though in that case you could only sync within your LAN.
- kayson 6y agoI had the same concern. There's also the matter of supporting upstream development, which the maintainer does address in his readme. I ended up paying for a premium subscription of vanilla Bitwarden, which I self host. Sure it's overkill on resources and number of containers, but it's still insignificant. It seems slightly more safe to trust a company that depends on the software for revenue, if I'm going to use it without auditing the source. I've also e-mailed their support quite a few times, and they're great. It just doesn't feel right to me to do that while using a free custom backend to avoid the cost...
- fraktl 6y agoI love Bitwarden. It's a great piece of software and it's reasonably priced. We use it at my place of work (I pushed to install and use Bitwarden on the company level). I also tried the Bitwarden_RS, it does the same work however it's not suited for company use as it lacks the feature to create groups. There's an open issue that provides a workaround, however that workaround proved to be unusable. I tried to reach out to maintainers to see whether the feature could be implemented and paid for their effort but.. let's just say the answer was "No.". Long story short - we use official Bitwarden and are paying for it and couldn't be happier. Bitwarden_RS looks like a cool toy, but I can't see any reason why anyone would run it. It's good for personal passwords, but Bitwarden itself offers free service so there's no need to venture down the self-hosted road.
- rbut 6y agoI run bitwarden_rs for exactly the reason you stated, for personal passwords. It took a few seconds to add to my portainer (docker) server and now I host my vault and keep it safe within my LAN.
- fullstop 6y agoI ran bitwarden_rs for a bit on a digital ocean node, but ultimately decided to buy a premium membership because it was less than $5/mo and I think that they will do a better job securing the system and keeping things up to date than I would in my spare time.
- Macha 6y ago> It's good for personal passwords, but Bitwarden itself offers free service so there's no need to venture down the self-hosted road. It's a trust issue. I don't trust my passwords on someone else's server. I don't trust free services to remain free forever. I don't trust paid services to not increase the fees 4x over a few years. The alternative to bitwardenrs or bitwarden/server is not bitwarden.com for me given the areas I'm concerned with, it's going back to KeePass + Syncthing. I think the reticence to provide the group features in bitwarden_rs may come from being unwilling to too blatantly step on the toes of Bitwarden LLC by producing a $0 drop in alternative to their paid service. bitwarden_rs is open source and bitwarden/server is _mostly_ open source (Some SSO related features are not), so it seems worthwhile to get along and not need to fork the ecosystem.
- Black101 6y agoa simple rsync client that could extract passwords from the data would be nice
- Spivak 6y agoBitwarden has a CLI tool which is pretty good.
- Black101 6y agowhat I mean is that why do you need bitwarden at all?
- masklinn 6y agoEnsure that the data is stored securely, integrate with the various password-manager hooks of OS and browsers, generate passwords, …
- f154hfds 6y agoThis is going to sound sketchy because any software project involving cryptography is automatically sketchy unless it has hit some nebulous and ill-defined 'accepted' status, but I've been working on a CLI tool to manage my passwords for a while that I'm honestly not ready to share, but the architecture so far is very simple: Each 'service block' is an encrypted file consisting of service name, service password (autogenerated), kv-store, some metadata for regenerating new passwords. The key to each service block is the hash of a primary password. The name of the 'service block' file is the hash of the service name. All of the service blocks are stored together in a folder that can be rsynced wherever. My worry is obviously in the crypto. While I'm not doing anything too fancy I worry about timing attacks because an attacker will have the full encrypted block so the system is vulnerable to that sort of thing.
- michaelt 6y agoThere are many other options for password management that are very similar. Writing them down in a notebook next to your computer. A homebrew system like e-mailing GPG-encrypted files to yourself. Your browser's built in password saving and sync features. A password-protected Excel spreadsheet on your dropbox. Compared to a notebook, I can access my passwords from my phone if the need arises, and they're encrypted and backed up should I lose my phone. Compared to a homebrew system, someone else has done the work and made a cross-platform system with nice browser extensions, sensible defaults, and so on. Compared to my browser's sync features, there's peace of mind because it's not a free feature from a corporation famous for nonexistent customer service and sketchy tracking practices. Compared to dropbox, the price is trivial (as they only have to store a few kilobytes of data) and it's focused on security.
- polote 6y agoThere is really something broken in the dev word. Why are people wasting their time rebuilding things that already exists ? If that was a side project to learn Rust, to learn the API of bitwarden, or to add new features I would understand, but that doesn't seem to be the case. I'm really curious why? "perfect for self-hosted deployment where running the official resource-heavy service might not be ideal" is that really the reason ?
- colejohnson66 6y agoBecause sometimes people do things just because they can. Not every programming project needs to make sense.
- eeZah7Ux 6y agoUnfortunately fragmenting the opensource ecosystem with too many implementations harms it.
- coldtea 6y agoPeople don't always give a fuck about the "opensource ecosystem", they just want to program something they find fun...
- eeZah7Ux 6y agoUnfortunately a lot of people don't give fucks about others. Publishing a weekend fun project on github and taking contributors away from from other projects is not always nice. If it's just a "fun project" put a clear warning that it's not meant to be trusted, used, contributed to. Github, by design, defaults to showing issue trackers & so on, giving the impression that a project is "real". Then you go looking for something to use and find 100 half alive projects instead of 2 good ones.
- anaganisk 6y agoWhatever happened to opinions of people, likes and interests. So what if its fragmented? Isn't forking a crucial thing in open-source anyone can build and support whatever the fuck the want. There are thousands of other tech forums why do we need hacker news to fragment tech community.
- holtalanm 6y agoI switched to Bitwarden when LastPass changed their policy for multi-device users. I'm happy to say the transition was completely painless.
- CraigJPerry 6y agoEven their CSV import worked flawlessly and my CSV export from Lastpass looked like a train wreck to parse but everything is present and correct in bitwarden.
- koheripbal 6y agoDid you consider KeePass or one of the variants?
- FlyingSnake 6y agoI use KeePass on one of my projects and I find Bitwarden much better than KeePass. We're moving to Bitwarden soon to keep it seamless across teams.
- hojjat12000 6y agoI'm using KeePass. On Linux, windows and android and Google drive to sync the database. it is a hassle. The graphics look terrible. And most of the times the keeweb plugin doesn't really work on Firefox and I have to copy paste the password. But I have been using it for a long time now and got used to it. The best thing about it is the plugin system. I would not suggest it, I think bit warden does all of this and is a lot more user friendly.
- cocoa19 6y agoI do use KeePass for work, since we're not authorized to put passwords on the cloud, but device synchronization and browser auto fill is a pain. For personal, Bitwarden is much better. Browser plugins just work, android auto fill just works, passwords synchronized across devices, support for auto filling payment information. 2FA support.
- 6y ago
- steviedotboston 6y agoSomething about running your own password manager server seems very risky to me.
- sneak 6y agoThe desktop[1] and mobile clients have a local database, so if the server is offline, you still have all of your data, you just can't sync. [1]: Note that the Bitwarden desktop client has a major remote code execution vulnerability that the developer has closed WONTFIX, so I don't recommend running the stock one without patching that out (as well as the spyware they embed in it).
- teekert 6y agoAny more information on your claims? This is the first time I hear of this...
- sneak 6y agohttps://github.com/bitwarden/desktop/issues/552 https://github.com/bitwarden/desktop/issues/552
- teekert 6y agoAh yes, the trust-the-developers-blindly vs patch asap vs supply chain attack risks. I wonder if we have any data on what is best. I once had to re-do a Drupal install because it was very likely already being abused. Would have liked immediate auto-update in that case. Ah well.
- sneak 6y agoPassword managers and OSes are things that I do not want automatically updating at the whims of some remote/foreign party whom I have never met and is bound by a set of responsibilities and laws with which I am entirely unfamiliar. Network services open to the internet at large are a horse of a different color. Ultimately, though, they could just ask. Most users probably want autoupdate, and they can opt in to that if they so desire. It's really a matter of consent, and forcing decisions down users' throats. Most people probably don't understand or believe that they are granting these applications' vendors permanent remote access to their computer. Honestly, I wish it were only a matter of trusting the developers. Unfortunately, it's a matter of trusting the developers, anyone from anywhere in the world who can compromise their keys/credentials, and anyone in meatspace who can coerce them to misuse those keys/credentials (such as military, police, et c). That, it turns out, is a rather large set of people, especially when you factor in the number of state level actors from every country big enough to have an intel agency sufficiently competent to own some small software house full of c# weenies running windows (the bitwarden devs).
- Shish2k 6y agoI switched to using this because keepass didn’t have a good way of syncing its database with iOS devices, and the official bitwarden server has too many moving parts (including MS-SQL with no support for open source databases??) - aside from missing ssh-agent support, I’m loving all of it :)
- chipsa 6y agoSQL isn't as portable as people would like. Especially when you're trying to stay high performance as you're dealing with millions of customers. Once you start building for a specific SQL server, it hard to switch to another variant.
- teekert 6y agoI set it up in a couple of minutes using Docker-compose with Traefik. I love that Bitwarden has clients and plugins everywhere (FF and iOS being most relevant to me) and I can self-host. The sweetspot for me. I have had too many conflicts with my KeepassXC database on Nextcloud in the past, time for a solution with integrated sync. Btw the "custom server" setting is a bit hidden, it is behind the cogwheel in the upper left in most cases.
- FlyingSnake 6y agoAnother satisfied user of `bitwarden_rs` here, and I can vouch for it. I migrated from LastPass and couldn't be more happier. The setup is pretty simple and I even managed to migrate it to a new server without any hassles. All the apps work flawlessly. The peace of mind in having all your sensitive data under your control is totally worth it.
- jamienicol 6y agoPersonally, having my sensitive data under my own control (but internet facing) terrifies me. I know enough to know that there are risks, and yet wouldn't have a clue about how to make it secure.
- viro 6y agoI had to same thought so I put behind a VPN. a little less convenient. but WAY more secure
- yepguy 6y agoJust connect to it via wireguard or tailscale instead of exposing it to the entire internet.
- alias_neo 6y agoBingo. If you're going to host services as home such as your password manager, set up a WireGuard VPN, you can use a Pi and it'll be perfectly sufficient, leave only the VPN open on the internet, VPN in from your phone, laptop, whatever for anything you need access to, and you don't need to rely on Nextcloud or Bitwarden having vulnerabilities discovered in them. I was using Nextcloud previously for password sync because my password manager needs WebDAV, it was too much to maintain so I wrote a small server in Golang using the WebDAV library and it sits behind NGINX which handles the auth. I run Minio (S3 compatible) for syncing our family photos from our phones and Folder Sync app on Android. They both run on a VM and write out to a ZFS pool. I have a Pi 3B+ running Raspbian mounted read-only as a WireGuard VPN for remote access, and we use the official WireGuard app. VPN is always on because we have fast, symmetric fibre, and we don't need to worry about trusting public networks.
- ErneX 6y agoI use it and it's great. Best way to self host it imo.
- AnIdiotOnTheNet 6y agoMy company used to use the unmaintained "CorporateVault", but switched to Bitwarden_rs after Flash (which CorporteVault used for copying to the clipboard) was deprecated. Bitwarden_rs was chosen because it had a relatively painless install compared to pretty much everything else I looked at, requiring only one Docker container. It's not bad.
- rubatuga 6y agoYou don’t even need docker if you build from source
- AnIdiotOnTheNet 6y agoMaybe you didn't get the whole "I picked it because it was easy to install" part. Building software from source is pretty much the exact opposite of that.
- denysvitali 6y agoIt really depends. Go and Rust softwares are generally easy to build from source
- dbt00 6y agoYes but coming from a go or rust neophyte to trusting that you've installed correctly from source is probably a higher bar than knowing that you've run a container correctly.
- AnIdiotOnTheNet 6y agoI was trying out a bunch of different similar products, I was not going to set up a build environment just to test software. I immediately disqualified anything that required I build it from source. Of the ones that didn't, very few had working install documentation and I wasn't going to fix it for them just to try out their product. I did open issues on their trackers about it for them, not that they cared since nothing has been done. Bitwarden_rs was the one that had working install documentation that didn't require a build environment. It met our requirements in testing, so I deployed it to production.
- deleted 6y ago[deleted]
- imwillofficial 6y agoEven if using this, remember to get a bitwarden license. It’s $10 for a whole year and keeps their dev afloat.
- dastx 6y agoPlease please please do this. I have plenty of issues with their prioritisation but at the end of the day, Bitwarden is extremely cheap, and is a great product. There is little to no reason to not pay that $10 a year.
- mjthompson 6y agoI use 1Password and still pay for a Bitwarden licence to support development of a viable open source alternative.
- imwillofficial 6y agoThis is awesome, low barrier to entry, high quality product.
- deleted 6y ago[deleted]
- gyvastis 6y agoJust subscribed to Bitwarden. Was long overdue! Need to give back.
- wufocaculura 6y agoanyone moved from Keepass(XC) to bitwarden? I do see advantage of being cloud based as a way to avoid database conflicts (in my case 3 windows machines + mobile), but I wonder what can surprise me here. Is bitwarden's browser integration similar to KeepassXC (Keepass helper + KeepasXC-browser)?