<<

Masaryk University Faculty of Informatics

Password managers: a survey

Bachelor’s Thesis

Daniel Pecuch

Brno, Fall 2020 Masaryk University Faculty of Informatics

Password managers: a survey

Bachelor’s Thesis

Daniel Pecuch

Brno, Fall 2020 This is where a copy of the official signed thesis assignment and a copy ofthe Statement of an Author is located in the printed version of the document. Declaration

Hereby I declare that this paper is my original authorial work, which I have worked out on my own. All sources, references, and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source.

Daniel Pecuch

Advisor: RNDr. Lukáš Němec.

i Acknowledgements

I would like to thank my advisor, RNDr. Lukáš Němec, for his friendly approach, useful advice, and guidance of my work. I would like to express my gratitude to my family and friends for their support.

ii Abstract

The goal of this thesis is to find, test, and compare three open-source password managers. The evaluation focuses on the usability aspect and the implementation of supported features. The thesis also defines a methodology used to compare different password managers by dividing their components into sections containing a set of pre-defined tasks. According to the results, the most suitable manager is selected.

iii Keywords , open-source, survey, usability

iv Contents

1 Introduction 1

2 Ideal Password Manager 2 2.1 Usability of the Ideal Password Manager ...... 3 2.2 Security ...... 3 2.3 Database ...... 4 2.4 Password Generator ...... 5 2.5 Entries ...... 6 2.6 Autofill ...... 6 2.7 Additional Components ...... 7

3 Selection Criteria 10

4 KeePass 11 4.1 Security ...... 11 4.2 Usability ...... 12

5 13 5.1 Security ...... 13 5.2 Usability ...... 14

6 15 6.1 Security ...... 16 6.2 Usability ...... 16

7 Password Managers Comparison 18 7.1 Database ...... 18 7.1.1 KeePass ...... 18 7.1.2 Password Safe ...... 20 7.1.3 Bitwarden ...... 22 7.1.4 Conclusion ...... 23 7.2 Entries ...... 23 7.2.1 KeePass ...... 23 7.2.2 Password Safe ...... 25 7.2.3 Bitwarden ...... 26 7.2.4 Conclusion ...... 28

v 7.3 Password Generator ...... 28 7.3.1 KeePass ...... 28 7.3.2 Password Safe ...... 29 7.3.3 Bitwarden ...... 30 7.3.4 Conclusion ...... 30 7.4 Autofill ...... 30 7.4.1 KeePass ...... 31 7.4.2 Password Safe ...... 32 7.4.3 Bitwarden ...... 32 7.4.4 Conclusion ...... 33 7.5 Additional Components ...... 34 7.6 Final Recommendation ...... 36

8 Conclusion 38

Bibliography 39

vi 1 Introduction

Protecting personal information was and always has been the primary purpose of passwords. On the one hand, passwords present a real security thread among researchers and users; active research is still underway to find a suitable replacement alternative [1]. On the other hand, passwords still prevail as the most common form of authentication in the digitalized world, and it is convenient to manage and create new, secure passwords. With this in mind, the average user has about 25 accounts protected by passwords and uses at least eight daily [2]. Users tend to choose weaker passwords over strong ones, write them down on a sheet of paper or store them un- protected in their computer, which destroys the purpose of secret information [3]. Furthermore, they are likely to forget them. Another weakness is reusing passwords between multiple services or accounts. As reported in a study, out of 26 participants, 25 shared passwords between accounts [4]. For these purposes, password managers exist. They are a bank of personal information secured by one master password. On paper, this means we can choose to remember only one strong password, without the burden of remembering multiple ones. Furthermore, they are often recommended by security experts as a convenient solution [5] that can help users pick passwords [6]. This thesis aims to describe an ideal password manager’s features and choose the best open-source manager from available options. The first chapter defines the ideal view of a password manager. The following section describes the usability and features of such a manager and applies it to our candidates. The next chapter analyzes and briefly introduces the chosen three password managers, describes their layout, security, and usability features. The last chapter focuses on applying the defined tasks of an ideal password manager to our candidates, describes their behavior, con- cludes the findings, and chooses the one with the best approach. The result of our comparison is a table of features for each manager to summarize its functionality.

1 2 Ideal Password Manager

A password manager is a software dedicated to saving and managing personal information, usually passwords. Although password managers offer great benefits like faster au- thentication, secured storage for our personal information, and pre- vention against phishing and brute force attacks, their use has not been adopted by many users [7]. According to a study in a large cor- poration, only 1% out of 836 employees that filled out a questionnaire stated they use some password manager [3, 7]. The investigation by Fagan et. al. [6] shows that while users of - word managers noted their usefulness and convenience, others noted security issues as the main factor for not using password managers. Furthermore, the analysis of differences in emotions between “users” and “non-users” reveals that participants who use a password manager are more likely to feel secure, admiring and energetic, and less likely to feel suspicious when using their password manager to log into a website [6]. We can divide password managers into multiple categories based on their implementation and provided functionality [8]. An ideal password manager should include: ∙ Securely stored personal information – The personal informa- tion written or inserted into a password manager should be stored in an encrypted form. The most common practice is to protect the vault of the password manager with a master key. The master key is essentially a password to enter the vault of passwords to keep the vault secure. Alternatively, a token can be used for the same purpose. ∙ Password Generator – Users can generate stronger and safer passwords via password meter or generator build inside a par- ticular password manager. The study of web password habbits by Florencio et. al. [2] states that an average user has 6.5 pass- words, shared across 3.9 different services and thus should have a unique password for each service. It ensures that if one account gets breached, other accounts will not be compromised. ∙ Faster authentication – Password managers offer various func- tionality tools including autofilling passwords. The manager

2 2. Ideal Password Manager

fills in the information automatically without the involvement of the user. It can even execute login protocols and visit pre-set domains which prevents phishing attacks.

∙ Synchronization – Users typically share passwords across mul- tiple devices, so it is convenient to have shared access to the database. The synchronization can be managed automatically or manually.

2.1 Usability of the Ideal Password Manager

An essential part of the ideal password manager is usability and in- cluded features. To compare three such applications to an ideal man- ager, we define its features, describe the ideal scenario, and test each manager’s implementation. Then we try to choose the best approach by the purpose of use.

2.2 Security

Saving our personal information in the application is a sensitive oper- ation, so the protection is expected. The conventional method used in password managers to secure the database is symmetric , which usually includes a master key to decrypt the database. While there are a lot of algorithms available, each has its pros and cons. For databases, we are looking for an algorithm with a comparable performance to security ratio. On the one hand, we want the chosen al- gorithm to be secure, but on the other hand, as the size of the database increases, we will wait a significant time for it to decrypt with a slow algorithm. The list of the most common disk encryption algorithms: ∙ AES – The Advanced Encryption Standard, originally called Rijndael, uses a 128-bit block cipher with the key size of 128, 192, and 256 bits [9]. Rijndael was developed by Vincent Rijmen and Joan Daemen and won the contest organized by NIST as a successor of DES cipher, which has shown security breaches in the recent years [10]. By combining AES with XTS crypto- graphic mode, we get solid disk encryption [10, 11]. XTS-AES was standardized on 2007-12-19 as IEEE P1619 [11].

3 2. Ideal Password Manager

∙ Twofish – Is an unpatented fast block cipher algorithm devel- oped by Bruce Schneier. It uses a symmetric block cipher with a block size of 128-bits, and its keys can go up to 254-bits. The pre- decessor, Blowfish, is considered reasonably secure, although it has some speed drawbacks [12]. The issue with speed is reduced with Twofish as it is comparably faster on modern hardware than Blowfish while retaining the Blowfish algorithm’s security. The AES protocol is quicker for text encryption, but with a sufficient ram, the Twofish is faster for the same encryption [13]. There is currently no cryptoanalysis against it, so it maintains a strong level of security [10].

∙ RC6 – Rivest cipher 6 is derived from RC5 designed to meet the AES requirements. [14] It was developed by Yiqun Lisa Yin, Ron Rivest, Matt Robshaw, and Ray Sidney. It uses a 128-bit block ci- pher with key sizes of 128, 192, and 256 bits. The algorithm is fully parametrized, supporting various word-lengths, key sizes, and many rounds [10]. The key Two main features that distinguish it from RC5 is the inclusion of integer multiplication and the use of four working registers instead of two [15]. The multiplication significantly increases diffusion achieved per round, allowing for greater security, fewer rounds, and increased throughput [14]. Recently, the algorithm has become a proprietary algorithm patented by RSA security [10].

2.3 Database

One of the essential abilities of a Password Manager is creating, main- taining, importing, exporting, and deleting databases. The database is the most important entity of a password manager and thus should be as secure as possible. Not only when the application is closed, and the database is encrypted, but even when the application is running to prevent other processes from accessing the data. Tasks that we will perform on our managers are:

1. Create – As almost every manager works with a database, it should have an ability to create a database, ideally, at the first launch.

4 2. Ideal Password Manager

2. Import and Export – If the password manager is not cloud- based, it is convenient to have the ability to import and export the database in multiple formats to transfer the information to another device or manager. This type of operation should be secured. If not, we should delete it immediately after we are done using it.

3. Management – It should be straight-forward so the user can modify its properties with ease. It includes creating and manag- ing multiple entry types and organizing them into folders for better readability.

4. Synchronization – For cloud-based managers, it involves syn- chronizing the local database with the cloud database. Other types of managers should dispose of this feature on some level.

2.4 Password Generator

A password generator is a software used to generate random but often pseudo-random passwords. It is a recommended method for creating passwords because it guarantees that the password contains a specific entropy level. It means that the password is chosen from a large set of potential passwords, making it harder for the attacker to guess [16]. It can be tedious for users to create multiple strong passwords, affecting its security [17], as they are likely to create passwords that have a meaning to them [18]. Thus each password manager should implement or include a pass- word generator with the option to customize its outcome. The most common generation methods among open-source managers can be divided into two categories [19].

∙ Generation based on Character Sets – We define the character sets used for a generation like upper-case letters, digits, special symbols.

∙ Generation based on Patterns – Pattern is a string that defines the new password’s layout. We can follow specific rules when

5 2. Ideal Password Manager

using pattern generation (e.g., the password must consist of 5 digits, one uppercase, and one special symbol).

2.5 Entries

Entries are the building block and the primary resource of the database. Several approaches are available when working with them that affects the usability of the manager.

1. Entry types – We can have multiple types of entries with differ- ent properties or one complex entry with multiple parameters that supports custom fields. The ideal implementation should allow the user to safely store any information, whether it is a login form, credit card number, personal identification, or notes.

2. Create, Update, Delete and Search – The creation process should be straight-forward with a minimal number of mandatory pa- rameters. We should be able to update a created entry at any time, delete it safely without leaving a trace, and perform high- performance searches using any available information, mostly the parameters of an entry.

2.6 Autofill

One of the essential components of password managers is autofill. Its primary purpose is to make the authentication faster. The user opens either an application window or a browser tab containing a login form, and the manager fills in the information needed for the authentication. Additionally, the user does not even need to know the password. In our testing, we focus on several points:

1. Invoking Autofill – The convenient method would be to auto- matically pre-fill the information, so no action is needed from the user or press a hotkey to force the application to find a suit- able entry. Although, in reality, there may be multiple accounts linked to the same application so the user can be involved at some time.

6 2. Ideal Password Manager

2. Application Support – An exemplary implementation would work on any application, both web browser and desktop apps. As there are many possible types of forms requiring different arguments, the manager should support, to a degree, custom arguments or sequences that it will execute. With this in mind, we should have the ability to configure autofill properties for each entity individually.

3. Output Modification – Many login forms require some extra information and modification to the autofill. For instance, when we want to log in to internet banking, we need to insert our bank account number, the combination of username and password, increase the number of tabs between them, or toggle checkboxes.

4. URL Setup – We should set a specific URL if the entry isan online account. This way, we can effectively prevent phishing attacks because autofill will not work on a different URL’s. Fur- thermore, we should select an entry and open the URL through the manager to ensure it is the right one.

2.7 Additional Components

The last section aims to analyze additional components. While they may not be a deciding factor when choosing a password manager, they help us differentiate them further. The most helpful feature is apass- word quality meter that aids the user when creating a password for new accounts. Other features like leak detection and fallback authenti- cation may prove useful in certain situations. Unlike in other sections, where we have deeply analyzed each manager and concluded their functionality, in this section we briefly check the managers’ approach without the conclusion.

1. Password Leak Detection – Although not a required feature, leak detection may prove useful when our passwords have been compromised in known database breaches released publicly or sold on the dark web by hackers [20]. Further action is recom- mended, most likely changing the password we used to log in to this service and used for other accounts.

7 2. Ideal Password Manager

2. Password Quality Meter – Is a useful component used to im- prove the security of randomly or user-generated passwords preventing various attacks such as dictionary and brute force attacks. The password’s entropy measures the amount of un- certainty the attacker faces to determine the value of a secret measured in bits [21]. The harder it is to guess/break, the higher the entropy. Most of the literature just briefly mentions that one should choose passwords with higher entropy [22, 23]. Further- more, there are just a few examples that provide the details on the calculation and estimation of password entropy [21, 22]. Despite that fact, most password quality meters use entropy to determine its security. 3. Fallback Authentication – Fallback authentication (FA) is the mechanism for recovering access to an account after the primary authenticator is lost [24]. This mechanism gives the user a second chance to prove that he is authorized to use the account [25]. Considering our use case, the weak implementation of FA would compromise our security requirements. The standard procedure for recovering an account depends on the type used. ∙ Secondary Channel – This fallback authentication method relies on an alternate channel that has been previously set up by the user. In case access to the primary account is lost, the channel is used to send the user some information that can be used to recover their account [25]. The most common practices use either email or SMS [24]. – Email – When in the process of account recovery, a reset link, code, or temporary password is sent that must be changed after the first use [25]. – SMS – Using the SMS channel is similar to email. The user links the phone with the account. When the recov- ery happens, a reset code is sent to the device. ∙ Security Questions – This is another form of authentica- tion, primarily based on user knowledge that aims to test already known information about past experiences. Usu- ally, they are set up when creating an account using a set of pre-defined questions, linked to the account [24]. The

8 2. Ideal Password Manager

common practice gives the user the option to choose secu- rity questions from the set, which he later answers when in need of recovery. ∙ Social Authentication – Social authentication relies on "who you know" information about the user. It is based on the intuition that the user can recognize their friends while a stranger cannot [24, 25].

4. UI Modification – UI modification helps the user configure applications’ look to suit his needs. This means changing the database’s look, displayed properties, organization of individ- ual rows, and changing taskbar behavior for desktop apps. As browser extensions are very application dependant, the available customizations may vary.

9 3 Selection Criteria

The open-source managers we selected for this study had to follow several assumptions. The first one was the support for the Windows platform for usability testing. The next and most important one was the documentation of the application. Many of the managers offered similar functionality, but there was little to no documentation avail- able for the user to understand the manager’s implementation. The managers we have chosen offer detailed documentation ranging from the usability guidelines to back-end implementation either on their official website or the application itself. Furthermore, the database should not be limited in any way (limited number of entities, folders). Usability should focus on a single-user rather than an institution, and the application should provide basic functionality for free1. Last but foremost, we looked at GitHub stars and user reviews.

1. password generator, autofill, password quality meter

10 4 KeePass

The first open-source manager we selected is KeePass. Multiple ver- sions of the application are available on their official website1 with an option to choose the type of installation. Installed or portable version that can be carried on portable USB devices. After downloading the EXE file, we can easily install the application with the option to turnon automatic updates during the installation process. Default localization is in English, with the support of up to 45 different languages in the form of an applicable . The application is extensible via plugins that add more functionality.

Figure 4.1: KeePass V2 Main Menu

4.1 Security

KeePass supports Advanced Encryption Standard (AES, Rijndael), Twofish, and ChaCha20 algorithms by default for database encryption.

1. https://keepass.info

11 4. KeePass

It is up to the user which one is used. Encrypted is the whole database, not only fields with passwords. The SHA-256 function hashes the master key. The application is encrypted in runtime, so even if the swaps the process onto a disk, passwords are not exposed. [26].

4.2 Usability

The application is blank after the start. To add or manage entries, first, we need to create a new database. The database is in KDBX (Keepass KBDX File) format. After selecting the default path for the database, we need to create a master key to secure it. The master key’s creation is followed by a series of operations that further specify the database format. We can choose the database’s name, description, type of encryption, a transformation of the key, type of compression, and others. As soon as the database is created, we can add and manage entries. The database is unlocked with the password we created initially, or we can unlock it using a KEY file. There is an option to combine these two methods for improved security. Passwords can be exported into TXT, HTML, XML, or a CSV and imported from other applications if the format is supported. The database is divided into groups that we can add, remove, or expand to create deeper subgroups. The default groups are General, Windows, Network, Internet, eMail, and Homebanking. Among them, it is possible to search for entities and sort them differently.

12 5 Password Safe

Password Safe1 is the second open-source password manager we chose. It supports Windows, (currently in beta version), and Android as an app in the play store. Although iOS is not currently supported, the website offers a clone of the application, pwSafe 2, available in the app store and macOS store. In the windows installation, we can choose the Regular version that uses system Registry or the portable Green version for Disk-on-Key’s that does not use host Registry. It currently supports 14 languages, and there is an option to contact the developer to add more if needed. Like other managers, Password Safe has detailed documentation available on their website.

Figure 5.1: Password Safe Main Menu

5.1 Security

Password Safe uses the Twofish algorithm with a 256-bit key length. The PasswordSafe v3 database format stores the encryption key and

1. https://pwsafe.org

13 5. Password Safe

the MAC key used to secure the database content in the file header [12]. Two-factor authentication is supported, although only through the Yubikey device.

5.2 Usability

After starting the application, we need to either load a database or create a new database in the .psafe3 format. While creating a database, we must set a new master password that we use to access it. Password Safe supports a virtual keyboard that offers multiple language layouts. The application is highly customizable, as the view of the database, toolbar, and shortcuts. We can organize entries into groups for better management. The interface may be a little overwhelming at first look, but the added HTML Help guide helps with any difficulties. We can further improve the password’s security by setting a password policy for the entries, either a default database policy or a customized one. There we can set rules for the password generator when generating passwords. We can also use a built-in auto-type tool to copy and paste passwords. We can create a backup of the database, and even the application recommends us to make at least 3 to 5 backups. The database can be later restored from such backup if corruption or other issues occur. We can also import other databases in formats like plain text, XML, or KeePass V1 TXT/CSV. The database’s export is supported, but the result is an unprotected copy, so the user should be cautious while working with it.

14 6 Bitwarden

The last open-source password manager we are going to introduce is Bitwarden1. It is multiplatform, working in a browser or as a native app for Windows, macOS, and Linux. It is also available to download on iOS and Android devices. It supports nearly 40 different languages.

Figure 6.1: Bitwarden Main Menu

They use Crowdin service, a cloud-based solution that streamlines localization so users can join the project to add a new one. Detailed documentation and tutorials are available in the website’s help section with all operations users can do within the manager. To use their service, one needs to create an account. After account creation, all data is cloud-synced with all of the supported devices. Even though it is an open-source manager, it offers multiple plans and two categories that users can choose from. The first category is for individual users. It includes a free, premium ($10/year) and family sharing plan ($1/month for up to 5 users), and the second is for busi- nesses. The business category has three options, free, team ($2/month

1. https://Bitwarden.com

15 6. Bitwarden per user), and enterprise ($3/month per user). All options include an available free trial. Paid subscriptions offer additional functionality.

6.1 Security

According to their online documentation [27], Bitwarden salts and hashes the master password, including the email address before it transmits the data to their servers. They use AES-256 bit encryption for transmitting data. SHA-256 is used to derive an encryption key from the master password. Microsoft Azure cloud secures its cloud servers, and if users do not trust it, they can host an entire Bitwarden stack themselves. It supports 2FA through multiple services like Au- thenticator apps such as Authy or Authenticator and Email. The premium subscription also offers Duo Security with Duo Push, SMS, phone calls, U2F security keys, YubiKey, and FIDO U2F.

6.2 Usability

After creating an account and logging in, the application is blank and ready for entries to be inserted. Usability is pretty self-explanatory, with detailed instructions on all the tasks one may perform in the application located on their website’s help section. There are four categories of an entry that we can create, Login, Card, Identity, or Secured Note. We can organize these entries into folders for better management. The format and encryption of the database are set and cannot be modified. Data can be manually synchronized with other devices and ex- ported into .json or .csv format, requiring the master key. However, the exported data are not encrypted and thus should not be sent through unsecured channels. We can also import data from other managers if the format is supported and share the vault between multiple users. Bitwarden contains various tools to improve the security of pass- words. One of them is a built-in password generator with various options available to modify generated passwords. It supports regular password generation and passphrase generation. We can further spec- ify which letters the password can contain, how long it should be, or even avoid ambiguous characters.

16 6. Bitwarden

The following tools are for premium accounts. It includes reports on exposed passwords known from data breaches or exchanged by hackers in the black market. Reports on multiple used passwords, so if we share passwords through multiple services, other accounts may also be breached. Reports on weak passwords and reports on unsecured websites.

17 7 Password Managers Comparison

In the first chapter, we defined the ideal password manager, its fea- tures, and tasks to perform to determine their usability from the user perspective. The following chapter introduced the managers we se- lected. This chapter focuses on their features and the application of previ- ously defined tasks to determine the best approach. Each manager is tested, respectively, with a conclusion for each section using a desktop application. The platform used for testing is Windows 10, except for Bitwarden, where we also included its web for . Throughout this testing, managers were regularly updated using their auto-update feature, although the updates were not significant and did not add or change any feature’s behavior. They were mostly hotfixes and bug fixes. This analysis should help the user decide which of the manager meets his requirements and improve his general knowledge about password managers.

7.1 Database

In the following section, we compare the managers in terms of storage options. We gradually analyze supported encryption algorithms and then individual functions for working with stored passwords. The whole section ends with a comparison between individual managers.

7.1.1 KeePass KeePass supports multiple encryption algorithms like AES / Rijndael, ChaCha20, and more with the installation of plugins, including but not limited to Twofish, Serpent, and GOST. The block ciphers are used in the Cipher Block Chaining. Each time the database is saved, an initialization vector is randomly generated, so encrypted databases with the same master key, such as backups, are not a problem [19]. The composite master key is a key-file used to lock the database. The key consists of a password, a Windows user account key, a key provided by

18 7. Password Managers Comparison

a plugin, to a 256-bit key. For compressing the components of the com- posite master key, SHA-256 is used. The key K derived from the user’s composite master key is transformed using a key derivation function with a random salt, which helps with protection against dictionary and guessing attacks [19]. KeePass also supports process memory protection. While it is running, sensitive data is stored encrypted in the process memory. That way, even if the process is swapped onto disk memory, it is still protected. Additionally, it erases all security-critical memory [19]. Like Pass- word Safe and Bitwarden, it supports workspace auto-lock when the client is inactive or, generally, our device. Every operation within the database can be accessed in the File dropdown menu.

1. Create – The database can be created in the main menu using a drop-down menu or a hotkey CTRL+N. After typing in the master password, we can check its estimated quality and further improve the security. There are two expert options available for securing the database. The key file or windows user account. The key file is a file used to lock the database, so we do not need to remember the passphrase. Contrarily, it can be more compli- cated than a passphrase, but it is harder to keep secure. The windows user account adds a dependency on the user account, so we can only open the database when logged on specific windows account.

2. Export – The export supports native KeePass formats KDB, KDBX, CSV, and XML. Besides traditional formats, there are more gen- eral ones like a customizable HTML file, XLS Stylesheet, Mozilla Bookmarks HTML, and a few plugins to support more formats.

3. Import – When it comes to Import, KeePass excels. Not only it supports most common formats (CSV, XML, TXT), which only specify a low-level layout of stored data, but also complex formats from other password managers, including Bitwarden, Google, Password Safe, and many more. The ones without sup- port may exist in the form of an applicable plugin.

4. Management – To manage entries in the database, we can use Groups. They can be nested, and we have a dedicated toolbar

19 7. Password Managers Comparison

option just for operations among them. We can rearrange them alphabetically or move them up and down.

5. Synchronization – Besides files on a local hard disk, KeePass supports synchronization through protocols [28]. By default, FTP, HTTP, WebDav. Various plugins extend its synchronization capabilities, like the IOProtocolExt plugin, which adds support to SCP, SFTP, FTPS protocols. KeeAnywhere, and KeeCloud plugin for most online storage providers (e.g., Amazon AWS S3, Box, , Google Drive, HiDrive, hubiC, OneDrive). There are multiple ways synchronization can be invoked. Manually by navigating File > Synchronization and selecting either Synchro- nize with File or Synchronize with URL. Command Save, KeeP- ass checks whether the currently opened file was modified in the meantime and if so, we can either overwrite or synchronize changes with the file. The next option is Triggers1. The last option is scripting. We can perform synchronization without opening KeePass with the synchronization command of KPScript.

7.1.2 Password Safe After starting the application, we are presented with a screen where we either select a path for the database we want to open or create a new one. The database is encrypted using the Twofish algorithm with a 256-bit key. Its format is the third version of the psafe format, psafe3, which was academically reviewed and found to be secure [12], and the implementation’s source code has passed several security reviews. It includes extra features like synchronization, merging, and comparing with other psafe databases available at the File toolbar option. Each option comes with selecting the target database, entering its master password to unlock it. An advanced section is available to restrict the operation for the subset of entries or specific fields. Additionally, it can be open as read-only. Another feature is auto-locking the database

1. Event-condition-action trigger or Triggers is a system that can automate our workflow. An example would be to upload our database automatically after saving the file locally. A trigger starts to run when any specified event matches. Whenall of the conditions are checked and fulfilled, the trigger is executed [29].

20 7. Password Managers Comparison on minimizing, on workstation lock, or after a selected amount of idle minutes.

1. Create – There are two ways to create a database. One, when we launch the application, the other is inside the application from the toolbar menu by accessing File > New or pressing the CTRL+N hotkey. After selecting Create Database, we are prompted to select the destination path and a safe combina- tion to lock the database. It supports a virtual keyboard with randomized layouts and a password generator to make entering the combination safer.

2. Export – Export supports v1.x, v2 deprecated formats, v4 exper- imental format, unsecured tab-separated and XML format. It can be done from the toolbar menu File > Export or an assigned hotkey.

3. Import – Similar to export, Password Safe allows us to import entries from other managers and be done by selecting File > Export. Supported formats are Text, XML, KeePass V1 TXT and CSV Files, KeePass V2 via KeePass V1 CSV Files, KeePass V1 and V2 XML Files. We are allowed to import a subset of entries from another Password Safe database. First, we need to open the im- database (assuming we permit multiple instances) and drag and drop entries we want to copy from it. Importing a plain text is rather difficult at first look, but the upside is its flexibility. We can select parameters that the importing text should have like field separator, line delimiters, import to change passwords of only existing entries, and import under group.

4. Management – To manage our database, we can use Groups that act as folders that can be nested.

5. Synchronization – We can synchronize databases by providing the database path to synchronize with the currently opened database. It works only with databases saved on local hard disks.

21 7. Password Managers Comparison

7.1.3 Bitwarden Bitwarden supports all CRUD operations for its database called The Vault. There can be only one at a time, synchronized with its account, so we would need to register a new account to create another. Accord- ing to the Bitwarden’s documentation [30], the database is protected using AES-CBC 256 encryption as well as PBKDF2 to secure the data. The master key is salted and hashed, using one-way hashing, with the email address associated with the client (computer/device) before it is transmitted to their servers. After the server receives our hashed password, it is further secured by salting it again with a cryptograph- ically secure random value and stored in their database. It repeats every time we log in. We can select when our vault will timeout and timeout action to prevent someone from using our vault while we are away. The action can be either lock; this means we need to re-enter the master password to reaccess the database or log out; we need to re-authenticate again. The timeout interval can be set to 1, 5, 15, 30 minutes, 1 hour or 4 hours or on system idle, sleep, lock, restart, and never.

1. Create – The database is automatically created with the creation of an account.

2. Export – Exporting the database can be done by going into File > Export Vault in the toolbar, requiring the master key. Supported formats are JSON and CSV.

3. Import – Import is not supported in the desktop application, although it can be accessed via website version. Supported are multiple password managers, but only in unencrypted formats as an array of passwords like JSON, CSV, XML, HTML.

4. Management – To organize our entries, we can create folders that can be unlimited and can be nested as many times as we want. It can be done straight from the main menu in the Folder tab.

5. Synchronization – Synchronization with its servers happens automatically, every 30 minutes, but can be forced manually by

22 7. Password Managers Comparison

going into File > Sync Vault. Although it uses cloud servers, there is still an encrypted copy of the database saved on our device.

7.1.4 Conclusion The two candidates for the best database approach are Bitwarden and KeePass regarding functionality, ease of use, and possible mod- ifications. If someone is looking for a simple manager to learnand use, Bitwarden is a wise choice because of its cloud database that can be easily shared between multiple devices with a modern while simple interface. On the other hand, we do not get much control over the used encryption algorithms, and we are limited to the provided functionality. For this purpose of use, KeePass shines. It offers more ways to define our databases, like choosing encryption algorithms, key derivation functions, and type of compression. We can efficiently sort the database or share it over internet protocols (FTP, HTTP, and more) and expand its functionality with applicable plugins.

7.2 Entries

This section focuses on the main element of the database, entries. We take a look at the types of entries and their properties. Then we analyze basic operations when working with them. In the end, we compare and summarize the different approaches of our managers.

7.2.1 KeePass 1. Entry types – KeePass does not contain multiple entry types rather than one entity with multiple fields, and it is only up to the user which fields he chooses to fill. Five tabs represent the entity where each tab contains different properties. The tabs include these fields:

∙ Entry – Title, User name, Password, Password quality me- ter, URL, Notes, and Expiry Time. The URL field can exe- cute any valid URL for which a protocol handler is defined. The password can be automatically generated by a built-in password generator or set manually.

23 7. Password Managers Comparison

∙ Advanced – String fields, and File Attachments or Bina- ries. Both are securely stored in the database. String fields can consist of a custom amount of strings containing any information. ∙ Properties – Contains Visual modifications and additional properties like custom foreground color, background color, tags, override URL, Plugin data, and UUID. ∙ Auto-Type – On this tab, we can configure auto-type be- havior for the entry. ∙ History – Holds history for the entry. Each time we change an entry, KeePass automatically creates a backup copy of the current, non-modified entry before saving the new values. We can use such copies as backups.

2. Create – There are three ways to create an entity. From the toolbar menu, or by going into the Entry dropdown menu or pressing CTRL + I hotkey. After this action, the popup window for the entry’s parameter appears. Tabs and fields are the same as de- scribed in entry types. No parameters are required to create an entity, and we can even duplicate the selected one.

3. Update – To perform an update, we select an entry we want to update. Then we can either Right Click > Edit Entry or press Enter. On the screen, similar when creating an entry, we update the fields we want to change and save changes by pressing the OK button. Afterward, if any change occurred, the previous version is saved in the entry history tab.

4. Delete – We can delete by selecting a group of entries (one or more) and press Delete hotkey, or Right-click > Delete. By default, deleted entries are moved into the recycle bin group, where they remain until we empty them or delete them once more (if not configured otherwise).

5. Search – For searching, we can either use the provided search box in the toolbar, opening the search popup menu by press- ing CTRL + F or CTRL + SHIFT + F hotkey or using the Find dropdown menu. The search box supports searching by entity’s

24 7. Password Managers Comparison

fields, meaning User Name, Title, Password (if enabled inad- vanced settings), and other parameters. While the search box serves for relatively simple use, the dropdown menu offers ad- ditional functionality like searching by tags, expiry date, last modified entries, duplicate passwords, similar passwords (in pairs and clusters), and password quality. Additionally, the find popup menu offers even more features, like selecting the fields we want to search in (Titles, URLs, User Names, and more) and adds the option to turn on search by regular expressions. We can use grouping constructs, anchors, character escapes, quantifiers, backreference construct, and other supported features coming with these expressions [31].

7.2.2 Password Safe

1. Entry types – Like KeePass, Password Safe does not dispose of multiple entry types. Instead, the entry is one big chunk with multiple parameters. It contains four tabs:

∙ Basic – All necessary password management elements like Group (for grouping several related entries), Title (a friendly name for the entry), Username, Password, Notes, URL, Email. The password can be automatically generated using a built-in password generator with a pre-defined password policy, which we can configure. The URL can execute stan- dard protocols like HTTP or SSH.

∙ Additional – There, we can configure additional specifica- tions and history. AutoType, Run Cmd, Double click and Shift-Double click action, Password History, and Keyboard Shortcuts. We can specify a command or a program to be run via the Run Command action. We can also define which action Password Safe will take when we double click (or Shift + double click) the entry. It is possible to configure to save the last few passwords of an entry. It can be done ei- ther when the entry is created or when viewing an existing entry.

25 7. Password Managers Comparison

∙ Dates and Times – Password expiry date. It can be set to a specific date, when a certain amount of time passes (in- cluding recurring option), or never. ∙ Password Policy – Describes the rules used to create a pass- word (the letters, letter cases, length, and any other re- quired special characters).

2. Create – To create an entry, we can use CTRL + A hotkey, a toolbar button, Right Click > Add Entry, or go into the Edit tab to select Add Entry. The Title and Password fields are required. All others are optional, and we can duplicate the selected entry. The notes field has a limit of 30,000 characters.

3. Update – We can edit an entry (having it selected) by going into the Edit tab, using the toolbar button, or Right Click > Edit Entry. The edit screen is the same as when creating it, so we can change fields we want to change and press the OK Button to save the changes. If we chose to keep password history and it changed, it will automatically create a new log for the old password.

4. Delete – Like Update, we can delete an entry by going into the Edit tab, pressing the Delete hotkey, or using the toolbar option Delete Entry.

5. Search – The search bar is hidden. We can use CTRL + F hotkey or go into Edit > Find, which opens up the bottom search toolbar. By default, it supports searching among all entry fields. We can toggle case sensitive mode and create a report out of our search. To perform a more advanced search, we can use advanced search options to restrict it to a subset of entries and determine which fields to search.

7.2.3 Bitwarden 1. Entry types – There are four types of entries with corresponding parameters, although the entry’s name, folder location, notes, and Custom Fields (Boolean, Hidden, Text) are shared. The types are:

26 7. Password Managers Comparison

∙ Login – Usually, a Username and Password combination (which can be automatically generated and checked for leaks), Authenticator Key (TOTP only for premium ac- counts), URI’s (for match detection). ∙ Card – Payment card data that can be automatically filled. It includes card details (Cardholder Name, Number, Brand, Expiration time, CVV) ∙ Identity – Personal and Business information such as name, addresses, date of birth, and notes. ∙ Secure Note – Freeform text stored in an encrypted format that contains four shared fields.

2. Create – To create an entry, we need to select Add Item in the Vault menu. Then we are presented with the screen of parameters of an entity depending on an entity’s type. The only required parame- ter is the name. We can create multiple entries with duplicate parameters and even clone them.

3. Update – There is no direct button dedicated to updating the entry. Instead, we can select the one we want to update, which opens up the details of an entry (similar when creating one), modify its parameters, and save the changes.

4. Delete – This operation can be performed in two ways. One way is clicking on an entity we want to delete, and in the edit screen, selecting delete at the right bottom corner. The other is hovering over the entity, pressing the Settings Wheel > Delete.

5. Search – Bitwarden indexes the vault using a full-text search programming library called Lunr. It invokes high-performance search queries against our vault to quickly find the entry with high accuracy [32]. However, the full-text search is supported only in the web vault, desktop application, and browser exten- sion and not in CLI and Mobile Apps. We can perform wildcard searches using the asterisk and field search (e.g. ’title:foo’ to search all titles containing foo). Starting our search query with a greater than characters further extends Lunr search queries like Boosts using ’ˆ’. Any document that matches a boosted term

27 7. Password Managers Comparison

will get a higher relevance score and appear higher in the results [33]. Next are fuzzy matches using ’∼’ which can be helpful if the spelling is unclear, or to increase the number of search results that are returned, and term presence using ’+’ when the term must be present, ’-’ when the term must be absent [33].

7.2.4 Conclusion To evaluate the approach of working with entries, we must realize that we are presented with two different implementations. While Bitwar- den focuses on multiple entry types to differentiate their use, KeePass and Password Safe offer one entry type with multiple arguments and custom fields. It means that Bitwarden offers a clean and easy touse interface but lacks the other two managers’ flexibility. Technically, all managers can perform the essential functions that a user would expect and require. Besides the primary functions, Password Safe addition- ally implements password policies to improve password generation among entry groups, expiry dates, and autotype behavior. Further- more, KeePass supports file attachments and more configurable pass- word generation. As a result, KeePass offers the most customizable approach and performs notably well.

7.3 Password Generator

In the following section, we compare the options for generating pass- words for each manager. It is centered on the modification of the output by changing generation properties. In the end, we compare the implementations using our observations.

7.3.1 KeePass KeePass has a built-in password generator with a variety of customiza- tions. We can access the generator in the Tools tab. Each entry has its password generator preset, and the password is automatically gener- ated by default. There are three tabs available: 1. Settings – Parameters for password generation. We can specify a password generation method using a character set, pattern, or custom algorithm.

28 7. Password Managers Comparison

∙ Generation based on character set is simple. We tick which characters (provided by checkboxes) will new password contain, and KeePass will randomly pick characters out of the set. We can also pre-define ranges manually by entering characters into Also include the following characters text box. ∙ Generation based on Patterns supports several notations1. The most notable are placeholders using escape character ’\’ and curl brackets ’{ }’ for including duplicates e.g., d{4} is equivalent to dddd where d represents Digits. ∙ Generation using a custom algorithm added by plugins. There are numerous options available such as Passphrase Generators or Pronounceable Password Generators.

2. Advanced – Settings to exclude look-alike characters, limit char- acter occurrence, or exclude certain characters.

3. Preview – Preview shows us a few passwords samples generated by the rules we specified on the first tab pages.

7.3.2 Password Safe Unlike KeePass or Bitwarden, to generate a password, Password Safe manages Password Policies, a description of rules to generate a pass- word – the letters, letter cases, length, and any special characters required. We can access the Policies and the password generator in the Manage tab. The advantage of having such a policy is the ease of setup of individual password policies for each entry. There is an option to have individual policies not assigned to any entries. By default, the password is not automatically generated when cre- ating an entry but can be forced using the Generate button. Generation is based using the character set. We select which characters will the newly generated password include. The default policy is used if not specified otherwise. We can control the password length, limit the number of lowercase, uppercase characters, digits, or include special symbols, restrict the generator to use only easy-to-read characters, hexadecimal digits, or to generate pronounceable passwords.

1. https://keepass.info/help/base/pwgenerator.

29 7. Password Managers Comparison

7.3.3 Bitwarden

Bitwarden disposes of the most lightweight password generator lo- cated in the View tab on windows app or Tools via browser version. It generates a unique password when creating an entry automatically. We can generate Passwords and Passphrases. Its generation is based on character sets. We can define the password’s length, toggle upper- case, lowercase letters, digits, special symbols, and specify the count of numbers, special symbols, or avoid ambiguous characters. When it comes to passphrases, we can control the number of words used, set word separators, capitalize them, or include numbers in these passwords.

7.3.4 Conclusion

As the password generator’s primary goal is to create a new strong, and perhaps easily memorable password, all three managers accomplished this objective. It is only additional customizations that separate them from each other. While Bitwarden’s is the most simple one, Password Safe works with Password Policies, configurable for each entity, which gives us greater control over the generation. It may prove useful if we change our password regularly with specific properties. Moreover, with KeePass, we can set parameters for each group, generate a set of passwords, preview the results, and extend its functionality with plugins. These features the other two manager lacks. Whereas this gives an edge to KeePass, both Password Safe and Bitwarden are solid and valid regarding password generation.

7.4 Autofill

This part focuses on the quality of life feature, which aims to save time for the user. It is divided into several parts. Firstly we take a look at the possibilities of invoking this feature along with application support. Later we describe the in-depth features for each manager and compare them in the end.

30 7. Password Managers Comparison

7.4.1 KeePass KeePass supports the autofill feature and calls it auto-type.

1. Invoking Autofill – We can perform autofill in three ways:

∙ Using the context menu – Right-click the entry > Perform Autotype. ∙ Using keyboard shortcut – We need to have the target en- try selected and press CTRL + V in the application. ∙ Using system-wide auto-type hotkey – CTRL + ALT + A by default. It can be powerful if used well. Simply, it exe- cutes the auto-type command with the currently opened window without the need to open the application. We press the hotkey having the target window open, and if Keepass finds a suitable entry, it will execute it. A suitable entry means that the target window’s title is a substring of the entry’s title or the entry’s auto-type tab contains a custom window/sequence matching the target window. If it finds multiple suitable entries, a dialog menu pops out to select the one we need.

2. Application Support – KeePass works on almost any applica- tion with the support of custom windows.

3. Output Modification – We define a series of keystrokes that the program will execute when invoking this feature. The sequence is a one-line string containing placeholders (special keys) for our commands. It can be customized for every group and entity separately. There are various supported types of special keys. Standard fields (Title, UserName, Password, Url, Notes), key modifiers (Shift, +, CTRL, ˆ, Alt, %), special keys (TAB, Enter, Arrow directions, Space, and more) and other placeholders [34]. The auto-type is performed only if the target application runs with the same or lower rights than KeePass. Besides that, using this feature for remote desktops and virtual machines can be tricky. In the autofill tab, we can only toggle the used sequence, which can be inherited from the group or overridden by the user, and add custom sequences for specific windows [34].

31 7. Password Managers Comparison

4. URL Setup – This feature is supported, although this is an en- try’s property. By selecting an entry with a set URL, we can open it, and KeePass automatically fills the data corresponding to this address.

7.4.2 Password Safe The autofill is a built-in feature in Password Safe.

1. Invoking Autofill – To use the autofill, we need to have the target window open, switch to the application, find the entry we want to use, select it, and use either:

∙ Keyboard shortcut – CTRL + T on windows. ∙ Context menu – Right-click the entry > Perform Autotype.

2. Application Support – Password Safe supports most of the ap- plications.

3. Output Modification – Like KeePass, it works by using a one- line string, a pre-defined sequence of commands using special keys. The default sequence is Fill the Username > Tab > Fill the Pass- word > Enter (\u \t \p \n). Each entity inherits this sequence, but it can be individually configured. Many special keys are serving various cases of use. We can even configure to toggle checkboxes, fill bank account number before username and password, and perform shortcuts (SHIFT + TAB is equivalent to {+Tab}) [35].

4. URL Setup – We can set the URL as an entry’s property. If we click the GO button, we will visit it. Using CTRL while clicking it will pre-fill the password on the target URL.

7.4.3 Bitwarden Bitwarden’s native windows application does not support the autofill feature, although the browser extension adds this functionality to web browsers. Autofill for iOS and Android devices is also supported. For our testing, we focus on the browser extension.

1. Invoking Autofill – There are multiple ways to use this feature:

32 7. Password Managers Comparison

∙ Using the pop-up window – On the website we want to use the autofill in, we click the extension icon, which opens up a context menu of suitable entries. The entry is suitable when the name or URI of the entry corresponds with the currently viewed tab. ∙ Right-click context menu – The browser’s context menu is opened using right-click. With the extension installed, we get a option to select Autofill, Copy Username, or Copy password, even generate a password that copies into our . Similar to when using the pop-up window, el- igible entries appear to select the one we need, and the information is filled. ∙ Using keyboard shortcuts – CTRL + SHIFT + L on Win- dows to autofill currently viewed login form or using CTRL + SHIFT + Y to open the extension’s pop-up window to select an entry using TAB. ∙ Autofill on page load – There is an option to autofill infor- mation on page load if it contains a login form, configured through extension’s settings. Currently, it is an experimen- tal feature.

2. Application Support – iOS and Android devices, web browsers only with the extension installed.

3. Output Modification – Bitwarden supports only basic web login forms requiring the combination of Username and Password.

4. URL Setup – The URL can be set manually, through the desktop app, or automatically using the browser extension. The address is copied from the target window. We can visit the URL using the Launch icon, while having the entry selected.

7.4.4 Conclusion Every implementation of autofill in our managers differs slightly. The Bitwarden’s approach’s main downside is that it only supports web browsers with the installed plugin. Although we cannot use it outside of it does not mean that it is not well made.

33 7. Password Managers Comparison

For web browsers, Bitwarden excels above the other two managers because of its simplicity and ease of use, further implied by the ability to pre-fill data when visiting websites. On the other hand, it lacks options to configure output (the string sequence), unlike the other managers, and so mentioned non-web support. Although the usability and possible modifications may seem a bit unclear, we get flexibility and freedom as a reward once we learn how to use it. With the current state, either Password Safe’s or KeePass’s autofill supports almost any application. KeePass is ahead because of its windows monitoring and the option to fill the data without opening the application, saving valuable time. Additionally, we get an option to configure auto-type for groups, not only entries, andthe ability to choose custom sequences for different windows of running applications. To summarize, if the primary concern is web accounts, Bitwarden is the right choice as the main app, and other than that, KeePass is slightly better than Password Safe despite the fact they are both highly customizable.

7.5 Additional Components

This section focuses on additional password managers’ components and contains only a brief overview. The conclusion is omitted, unlike in other sections. 1. Password Leak Detection ∙ KeePass – It does not implement leak detection, although there are plugins that can add it. They make an API call to haveibeenpwned1 and check the Cloudbleed vulnerability list to get a list of vulnerable or breached accounts. ∙ Password Safe – Leak detection is not supported. ∙ Bitwarden – Bitwarden supports leak detection only for premium accounts. Instead, only a data breach report is available for free. It gives us the list of services where a site’s data were hacked and released publicly for specific

1. https://haveibeenpwned.com/

34 7. Password Managers Comparison

email or username. It includes email addresses, passwords, credit cards, and more.

2. Password Quality Meter

∙ KeePass – KeePass uses an advanced algorithm for estimat- ing the quality and strength of passwords. It searches for patterns (popular passwords), variations by upper-lower case, repeated sequences, numbers, constant difference se- quences, and more [36]. The overall quality is shown in entropy bits. ∙ Password Safe – The application does not dispose of any quality meter. ∙ Bitwarden – Bitwarden implements "Weak Passwords Re- port" which is a premium feature that informs users about weak passwords that are easily breakable by brute force or guessing attacks.

3. Fallback Authentication – As fallback authentication may present a new security threat, all of our managers avoid it. Only Bitwar- den can send us a password hint, which was set when we created our account.

4. UI Modification

∙ KeePass – Various customizations are available. We can change the window view (stacked or side by side), database look like displayed columns, font, and configure many sort options. Furthermore, we can make changes to the tray icon behavior. From the user perspective, we can modify all necessary components. ∙ Password Safe – The database is displayed as a tree by de- fault. We can change the display to a flattened list (columns cannot be customized) and vice versa. There is an option to toggle individual components’ visibility, specifically tool- bar, dragbar, system tray icon, and the application trans- parency.

35 7. Password Managers Comparison

∙ Bitwarden – Bitwarden offers limited customizability. We can only change the theme of the application alongside some tray icon tweaks.

7.6 Final Recommendation

This chapter analyzed five aspects of password managers using 18 sub-tasks to determine the best one from our selection. While they all share a general password manager’s core functionality, each has some pros and cons in implementing those core components. The result of our analysis is that KeePass is closest to the ideal password manager. While it may not have a browser’s implementation or cloud-based storage like Bitwarden, the strength comes from its ex- tensibility by installing third-party plugins. They add support for most user’s operations, ranging from database usability to adding various password generation algorithms. The ability to choose the encryption algorithm helps with the security of our personal information. Unlike in Bitwarden, the UI is quite packed and not easy to use, but a bit of practice helps overcome this issue. Included quality of life features like sorting, filtering, and searching make the database much more manageable. Entries and their properties are well organized, and the password generation is rich and powerful. The autofill feature can also be customized to work with any windowed application, website, remote server, and even execute command-line commands. To summarize, the application is well made, adding many details to our daily use, and with the help of extensions, it suits most users’ needs. The following table summarizes the functionality of the password managers:

36 7. Password Managers Comparison

Table 7.1: Features of the Password Managers

KeePass Password Safe Bitwarden General Easy to Set Up  X X Free X X X1 Simple   X Autofill X X X Custom Window Support X   Security Encryption Algorithm Choosable Twofish AES Password Leak Detection   X Password Quality Meter X  X Password Generator X X X Fallback Authentication   X 2FA Authentication Yubikey Yubikey X2 Database Filtering X X X Sorting X   Advanced Search X X X Import and Export X X X Entries Multiple Entry Types   X File Attachments X   Custom Fields Support X X X Expiration Date Setup X X  Password History X X  URL Setup X X X

1. Additionally offers subscription that extends basic functionality. 2. Free for Authenticator apps (Authy, Google) and premium for Duo Security (Duo Push, SMS, phone call, and U2F security keys), Yubikey and FIDO U2F.

37 8 Conclusion

This thesis aims to define the properties of an ideal password manager, choose three open-source password managers, compare them to each other, and choose the password manager with the best implementa- tion. We started by breaking down the password manager’s function- ality into five different sections and analyzed it using 18 different sub-tasks. As all of our managers could perform basic tasks required from any password manager, we concluded that flexibility plays a key role when selecting a password manager as different users place different demands on the application. Based on our findings, we concluded that KeePass has an edge compared to Password Safe and Bitwarden. Third-party plugins make KeePass a very flexible manager that works with web browsers, remote servers, and almost any windowed application. On the other hand, it has a complex UI with many functions that may overwhelm the user without practice and knowledge, but the added functionality overcomes this drawback. Our thesis’s results could also be improved by conducting a user study using the methodology to examine the difficulty of the defined tasks. More features and more in-depth examination could also extend the range of the analyzed tasks and sections. The main contribution of this thesis is the methodology we de- signed to help the user choose the right password manager. By asking the right questions and functionality testing, he should determine whether the manager suits his requirements. Additionally, it gives the reader basic knowledge about password managers and an overview of open-source password managers.

38 Bibliography

[1] Bonneau, J. et al. “The Quest to Replace Passwords: A Frame- work for Comparative Evaluation of Web Authentication Schemes”. In: 2012 IEEE Symposium on Security and Privacy. 2012, pp. 553– 567. isbn: 978-0-7695-4681-0. doi: 10.1109/SP.2012.44. [2] Florencio, D. and C. Herley. “A Large-Scale Study of Web Pass- word Habits”. In: Proceedings of the 16th International Confer- ence on World Wide Web. WWW ’07. Banff, Alberta, Canada: As- sociation for Computing Machinery, 2007, pp. 657–666. isbn: 9781595936547. doi: 10.1145/1242572.1242661. url: https: //doi.org/10.1145/1242572.1242661. [3] Hoonakker, P., N. Bornoe, and C. Pascale. “Password Authen- tication from a Human Factors Perspective: Results of a Survey among End-Users”. In: Human Factors and Ergonomics Society Annual Meeting Proceedings 53 (Oct. 2009), pp. 459–463. doi: 10.1518/107118109X12524441081983. [4] Stobert, E. and R. Biddle. “The Password Life Cycle: User Be- haviour in Managing Passwords”. In: 10th Symposium On Usable Privacy and Security (SOUPS 2014). Menlo Park, CA: USENIX Association, July 2014, pp. 243–255. isbn: 978-1-931971-13-3. url: https://www.usenix.org/conference/soups2014/proceedings/ presentation/stobert. [5] Halderman, J., B. Waters, and E. W. Felten. “A Convenient Method for Securely Managing Passwords”. In: Proceedings of the 14th International Conference on World Wide Web. WWW ’05. Chiba, Japan: Association for Computing Machinery, 2005, pp. 471–479. isbn: 1595930469. doi: 10.1145/1060745.1060815. url: https: //doi.org/10.1145/1060745.1060815. [6] Fagan, M. et al. “An investigation into users’ considerations towards using password managers”. In: Human-centric Comput- ing and Information Sciences 7 (Mar. 2017), p. 12. doi: 10.1186/ s13673-017-0093-6. [7] Alkaldi, N. and K. Renaud. “Why Do People Adopt, or Reject, Smartphone Password Managers?” In: Jan. 2016. doi: 10.14722/ eurousec.2016.23011.

39 BIBLIOGRAPHY

[8] Flourentzos, H. “A Usability Evaluation and Re-design of the password manager software KeePass2”. Master Thesis. Univer- sity of Edinburgh, School of Informatics, Edinburgh, 2018. url: https://groups.inf.ed.ac.uk/tulips/projects/1718/ keepass2.pdf. [9] Hamalainen, P. et al. “Design and Implementation of Low-Area and Low-Power AES Encryption Hardware Core”. In: 9th EU- ROMICRO Conference on Digital System Design (DSD’06). Aug. 2006, pp. 577–583. isbn: 0-7695-2609-8. doi: 10.1109/DSD.2006. 40. [10] Alomari, M. A., K. Samsudin, and A. R. Ramli. “A Study on Encryption Algorithms and Modes for Disk Encryption”. In: 2009 International Conference on Signal Processing Systems. 2009, pp. 793–797. doi: 10.1109/ICSPS.2009.118. [11] “IEEE Standard for Cryptographic Protection of Data on Block- Oriented Storage Devices”. In: IEEE Std 1619-2018 (Revision of IEEE Std 1619-2007) (2019), pp. 1–41. [12] Gasti, P. and K. B. Rasmussen. “On the Security of Password Manager Database Formats”. In: Computer Security – ESORICS 2012. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012, pp. 770– 787. isbn: 978-3-642-33167-1. doi: 10.1007/978-3-642-33167- 1_44. [13] Rizvi, S. A. M., S. Z. Hussain, and N. Wadhwa. “Performance Analysis of AES and TwoFish Encryption Schemes”. In: 2011 International Conference on Communication Systems and Network Technologies. 2011, pp. 76–79. doi: 10.1109/CSNT.2011.160. [14] Rivest, R. L. et al. “The RC6 Block Cipher”. In: in First Advanced Encryption Standard (AES) Conference. 1998, p. 16. [15] KumarVerma, H. and R. Singh. “Performance Analysis of RC6, Twofish and Rijndael Block Cipher Algorithms”. In: International Journal of Computer Applications 42 (Mar. 2012), pp. 1–7. doi: 10.5120/5773-6002. [16] Leonhard, M.D. and V. N. Venkatakrishnan. “A comparative study of three random password generators”. In: June 2007, pp. 227–232. isbn: 978-1-4244-0941-9. doi: 10.1109/EIT.2007. 4374533. [17] Das, A. et al. “The Tangled Web of Password Reuse”. In: Jan. 2014. isbn: 1-891562-35-5. doi: 10.14722/ndss.2014.23357.

40 BIBLIOGRAPHY

[18] Gaw, S. and E. Felten. “Password management strategies for online accounts”. In: Jan. 2006, pp. 44–55. doi: 10.1145/1143120. 1143127. [19] Reichl, D. Help Center - KeePass [online]. 2020. url: https:// keepass.info/help/base/index.html (visited on 11/26/2020). [20] Bitwarden, Inc. Vault Health Reports | Bitwarden Help & Support [online]. 2020. url: https://Bitwarden.com/help/article/ reports/ (visited on 11/26/2020). [21] Grassi, P., M. Garcia, and J. Fenton. “DRAFT NIST Special Pub- lication 800-63-3 Digital Identity Guidelines”. In: National Insti- tute of Standards and Technology, Los Altos, CA (2017). [22] Ma, W. et al. “Password Entropy and Password Quality”. In: 2010 Fourth International Conference on Network and System Secu- rity. 2010, pp. 583–587. doi: 10.1109/NSS.2010.18. [23] Yan, J. J. “A Note on Proactive Password Checking”. In: Proceed- ings of the 2001 Workshop on New Security Paradigms. NSPW ’01. Cloudcroft, New Mexico: Association for Computing Machin- ery, 2001, pp. 127–135. isbn: 1581134576. doi: 10.1145/508171. 508194. url: https://doi.org/10.1145/508171.508194. [24] Markert, P. and E. Stobert. “A Comparative Long-Term Study of Fallback Authentication Work in Progress”. In: 2019. [25] Michalíková, M. “User management of multiple email accounts via forwarding and password recovery options [online]”. Mas- ter thesis. Masaryk’s univerzity, Faculty of Informatics, Brno, 2020. url: https://is.muni.cz/th/i889l/. [26] Reichl, D. Security - KeePass [online]. 2020. url: https://keepass. info/help/base/security.html (visited on 12/20/2020). [27] Bitwarden, Inc. What encryption is being used? | Bitwarden Help & Support [online]. 2020. url: https://bitwarden.com/help/ article/what-encryption-is-used/ (visited on 12/01/2020). [28] Reichl, D. Synchronization - KeePass [online]. 2020. url: https: //keepass.info/help/v2/sync.html (visited on 11/20/2020). [29] Reichl, D. Triggers - KeePass [online]. 2020. url: https://keepass. info/help/v2/triggers.html (visited on 11/30/2020). [30] Bitwarden, Inc. Security | Bitwarden Help & Support [online]. 2020. url: https : / / bitwarden . com / help / security/ (visited on 12/01/2020).

41 BIBLIOGRAPHY

[31] Reichl, D. Search - KeePass [online]. 2020. url: https://keepass. info/help/base/search.html (visited on 12/20/2020). [32] Bitwarden, Inc. Searching the vault | Bitwarden Help & Support [online]. 2020. url: https://Bitwarden.com/help/article/ searching-vault/ (visited on 11/26/2020). [33] Nightingale, O. Searching: Lunr [online]. 2013. url: https:// lunrjs.com/guides/searching.html (visited on 11/26/2020). [34] Reichl, D. Auto-Type - KeePass [online]. 2020. url: https : / / keepass.info/help/v2/sync.html (visited on 10/11/2020). [35] Schneier, B. HTML Help for Password Safe [online]. 2002. url: https : / / www . pwsafe . org / help / pwsafe . html (visited on 11/01/2020). [36] Reichl, D. Password Quality Estimation - KeePass [online]. 2020. url: https://keepass.info/help/kb/pw_quality_est.html (visited on 11/30/2020).

42