I just wanted to say thank you to the FOSDEM for inviting us again this year and maybe
we can acknowledge the fact that it's been two years without FOSDEM in real life and
it's really nice to see you and thanks a lot for the volunteers and the organizer of the
founders of the FOSDEM. Maybe we can give them a quick round of applause because they
are doing amazing job. Thank you guys. So this is the original PassBolt team in 2017
when we just after the first launch of PassBolt and the team have grown quite a bit since
and it's nice to see you all. So who's using a password manager in the room? Wow, amazing.
Who's using KeyPass? Quite a bit and Voltwarden, Bitwarden? Ah, nobody's perfect. PassBolt?
I'm glad to see the PassBolt developers raising their hands. So you're like, okay wait another
password manager or is PassBolt different from, well to assess the difference we will
start first with the security. I will tell you a little bit what are the difference in
terms of security between PassBolt and other more classic PassBolt managers. So one of
the main aspect of PassBolt is it is based on OpenPGP. So it's based on public key cryptography.
Who knows a little bit about OpenPGP? Okay, quite a bit. So I don't need to explain so
much but traditional password manager use master password, the master key that is generated
from the user password and then you have a derivation. They use a key derivation function
so Argon2 or something less strong. So for example, KeyPass use Argon2 and last pass
use PBKDF2 and I think Bitwarden, Voltwarden are going to support Argon2 very soon. But
historically these algorithms they depend on the amount of rounds that you do especially
the PBKDF2. They depend on the number of rounds that you do on the user password and if the
user password is weak also the encryption strength is affected. So when you use a private
key that is truly random like in PassBolt and some other password managers like OnePassword
is doing that as well. They pad with a random private key the user password. You have some
interesting security property on top. So it's a little bit stronger because it's not depending
on the user password strength and you also have thanks to the OpenPGP being interoperable
standards you have the ability to choose which algorithm do you want to use. So for example
you could choose the size of the RSA key that you are using or you could opt for elliptical
curve cryptography, newer algorithm that are part of the almost part of the OpenPGP standard
and reduce the size of the messages so you can play a little bit with the algorithm depending
on your requirements. So the way it works in PassBolt is we encrypt every secret which
is at this baseline JSON component. We encrypt it once per users so it means that for example
when you want to revoke the access of somebody for example this person leave the organization
and you want to make sure that their access is completely revoked we just have to delete
the entry for that particular user. How it works with other password manager and it depends
but some of them what they do is that they create what they call a vault or a collection
and they encrypt a bit like in OpenPGP a session key with the public key of the users so when
the user leave they are not able to actually revoke the access so if the user for example
manage to get a copy of the session key they can still access later the archive even though
they don't have the logical rights. So having a private key is not that great when it comes
to usability because you need to transfer that key to other devices so it makes the interaction
with the system a little bit more complicated so for example when you use a mobile phone
to transfer from your browser to the mobile phone we will have a succession of QR codes
to make sure that we are not sending the key server side and all that so it makes the interactions
a little bit more complicated than just the user typing their passwords. The advantage
of having public key cryptography available is that we can also change the authentication
system so we have a challenge based authentication system where the user needs to encrypt for
the server random generated token the server will verify the signature and will send back
that token and at the same time encrypt with the user public public key another random
token that will be used by the user to authenticate later so it's in practice much stronger than
just sending for example the password or hash version of the password because each authentication
attempt is unique and you also have the advantages of checking the authority of the server at
the same time so it's not prone to credential stuffings so you cannot for example try multiple
passwords and try to authenticate with that you need to prove that you have the possession
of the private key twice. Another big difference with the other password managers especially
the ones that are online is that we force the usage of a browser extension so these
have the advantages of if the server is compromised an attacker cannot modify the JavaScript that
is running the application they cannot for example write a customization that take the
passphrase and set it somewhere else so if the server is compromised they cannot change
the code of the application that is run on the client one of the advantage of this is
that you can also roll out update automatically so for example if you're using passwords in
your organization if there is a flow in the client you will get automatically the updates
you don't need to update your server to get a fix on the client so these have the disadvantage
that you need to trust us with the update at least you need to trust the web store or
you need to basically set up the web store yourself and also it's not specific to pass
bolt but when you run a browser extension typically the website can find out if you
have this extension installed or not or at least find out if you have an extension installed
so one of the advantage of having a browser extension is you can do a form interaction
so for example you can suggest things in a form or that sort of things so when you see
the application of pass bolt when you visit a website it's actually not the website serving
this application everything is in one iframe and the website that is serving you basically
just a white page and the browser extension is injecting an iframe and the website cannot
enter inside that iframe thanks to browser behaviors how they send box iframes of browser
extension from because they consider this from the point of view of being on the different
domain we have also anti-fishing mechanism available by default you've seen maybe with
one password or between them there are campaigns going on at the moment where they try to trick
the users to enter their passphrase in the case of pass bolt we have a mechanism built
in by default so as you can see we are very transparent about the risk and the residual
risk and the strengths of of pass bolt so we are 100% open source we are audited at
least I think it was 10 times in 18 months and we have one audit going on right now and
we have another audit at the end of February we work mostly with cure 53 we are based in
Germany and they do a lot of auditing for password managers so every time we release
a big feature they audit the changes of course you know it doesn't mean that it's perfect
we are we are human so it's possible that there are some mistakes in the libraries that
we use or you know in in what we are doing but at least we are trying to be transparent
about what are the efforts that we make to report this vulnerability if any and fix them
in a timely manner so open pgp is not perfect you have like all the algorithm that you don't
want to run so we need to also make sure that we are not letting you use bad algorithm it's
not quantum resistant we have still a lot of metadata that are not encrypted but we
don't offer user key rotations so all these risks are explained to the end user of course
not everybody can understand this but if you're an administrator running this then you have
access to this information one thing I didn't mention is we are made in Luxembourg so you
know if you're into digital the sovereignty might be interesting for you so okay security
that was a two-third of the talk sorry but how does it look like so it's mostly a web
application you can have it on most of the browsers except Safari we have a desktop app
coming soon and Android and iOS native application one of the strengths of password is that you
can assign permission in a granular fashion so since the secret is encrypted once per
person per entry we are able to do interesting user experience when it comes to share so
for example we can share with group we can assign rights to folders and we can instead
of having rights at the collection level where you have everybody that have access
to the collection that have the same right for all the entry in the connection we are
able to do things a little bit more fine grained since you are all developers might interest
you as well that if you have curl and GPG on the system you can pretty much interact
with password because it doesn't require any fancy technology to be able to retrieve the
secret decrypted or even basically push an update so you can do some interesting things
for example if you want to inject you know secrets in your pipelines or you know even
build something with Ansible you can you can integrate with password quite easily so as
I mentioned before we also have the quick access which is interaction in the page that
allows you and your user especially the non-advanced user to be prompted to use a password manager
we have iOS and Android app there are native apps and you can use biometrics to liberate
the passphrase so you don't have to type your passphrase all the time you can host
it yourself there is no phoning home basically it works offline if you want and some of organization
that are using passports are working in an air gap environment and it works fine we have
basically packages for all distributions but you know we are trying to keep up with all
the versions it's kind of complicated so we might not have precisely the version that
you want but there is a good chance that you will find something that interests you and
we have a one click install with AWS AMI and DigitalOcean if you are into that kind of
things what's cooking for 2023 so we are doing mobile to mobile key transfer so we
have desktop to mobile we want to do mobile to mobile and then mobile to desktop so basically
people can start their journey on passports from any device and transfer their key easily
but it's not completely there yet we want to allow administrators to enforce MFA even
though you know there is the authentication in passports is quite strong still people
want to tick that MFA box and we want to give them the tools to do that we will support
Pasky's web botan for 2FA as well there is a new help site some more great configuration
stuff coming user self registration desktop app and then later on we are going to work
on password expiry manifest v3 it's the new format is pushed by Google for browser extension
it brings zero value for the end user but you know Google say we have to do it so and
then custom fields and more content types and the ability to choose what is encrypted
or not so that you know maybe your organization wants to search on certain fields some other
organization wants to have it encrypted so we will give you flexibility to create your
own custom types and define what is searchable what is not so add a lot of slides on how
it's made of obviously a lot of time but if you are interested and you want to have a
chat with us on how it's made we will be at the bar behind at 6 o'clock and we will be
giving out some swag so we have like a little fortune wheel that you can spin and other
that you can even win a car okay that's all for me thanks a lot
any questions for Remy we have like 42 seconds
asking if it would be possible to have like one one key per device instead of having one
key for to rule them all and we've talked about this and it's it's interesting idea but that
would mean like a breaking change and so it would yeah but that's an interesting idea
and like as I mentioned there is no key revocation at the moment but this is also something that
we want to do to allow people to rotate their keys and that sort of things but yeah thank
you Remy thank you very much