Commit Graph

4530 Commits

Author SHA1 Message Date
Jonathan White
bbd1604894
Update release-tool.ps1 for manifest builds 2024-03-09 16:22:36 -05:00
varjolintu
976c6914a6 Add basic documentation for Passkeys 2024-03-09 15:21:46 -05:00
Jonathan White
cde88546f3 Update Changelog 2024-03-09 15:21:46 -05:00
Jonathan White
fff1b49f73 Prevent byte-by-byte and attachment inference side channel attacks
Attack - KeeShare attachments can be inferred because of attachment de-duplication.

Solution - Prevent de-duplication of normal database entry attachments with those entry attachments synchronized/associated with a KeeShare database. This is done using the KeeShare database UUID injected into the hash calculation of the attachment prior to de-dupe. The attachments themselves are not modified in any way.

--------

Attack - Side channel byte-by-byte inference due to compression de-duplication of data between a KeeShare database and it's parent.

Solution - Generate a random array between 64 and 512 bytes, convert to hex, and store in the database custom data.

--------

Attack vector assumptions:
1. Compression is enabled
2. The attacker has access to a KeeShare database actively syncing with the victim's database
3. The victim's database is unlocked and syncing
4. The attacker can see the exact size of the victim's database after saving, and syncing, the KeeShare database

Thank you to Andrés Fábrega from Cornell University for theorizing and informing us of this attack vector.
2024-03-09 15:21:46 -05:00
Jonathan White
18cfbf729c Add 1Password 1PUX and Bitwarden JSON Importers
* Closes #7545 - Support 1Password 1PUX import format based on https://support.1password.com/1pux-format/

* Closes #8367 - Support Bitwarden JSON import format (both unencrypted and encrypted) based on https://bitwarden.com/help/encrypted-export/

* Fixes #9577 - OPVault import when fields have the same name or type

* Introduce the import wizard to handle all import tasks (CSV, KDBX1, OPVault, 1PUX, JSON)

* Clean up CSV parser code to make it much more efficient and easier to read

* Combine all importer tests (except CSV) into one test file
2024-03-09 15:21:46 -05:00
Jonathan White
6f112b11e4 Minor changes to Group API to make it more explicit
* Include check for group as recycle bin directly into the Group::isRecycled() function

* Return the original root group from Database::setRootGroup(...) to force memory management transfer
2024-03-09 15:21:46 -05:00
Jonathan White
ee1268c518 Fix spacing of QGroupBox's
* Previously our base style sheet added roughly 20px of margin to the top and bottom of all QGroupBox. This caused visual errors where that margin was not needed/desired. 
* Transferred padding to the specific layouts instead where it belongs.
2024-03-09 15:21:46 -05:00
Sami Vänttinen
d78a6b6095 Skip a few Passkeys tests with Botan <= 2.14 (#10360)
Botan version less than 2.14.0 miscalculates ECDSA signatures. 

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-03-09 15:21:46 -05:00
Janek Bevendorff
63b18084ac Set test locale to C 2024-03-09 15:21:46 -05:00
Jonathan White
7d0dc67180 Fix TouchID not being shown after lid close
Fixes #8945
Fixes #10315
2024-03-09 15:21:46 -05:00
Jonathan White
f20b531430 Automatically detect USB device changes 2024-03-09 15:21:46 -05:00
Jonathan White
28d096a89a Add vcpkg manifest with build dependencies
Also bump minimum CMake release
2024-03-09 15:21:46 -05:00
varjolintu
350931b707 Fix macOS crash on Accent Color change 2024-03-09 15:21:46 -05:00
Jonathan White
b7a1c620e4 Passkeys improvements (#10318)
Refactors the Passkey implementation to include more checks and a structure that is more aligned with the official specification.
Notable changes:
- _BrowserService_ no longer does the checks by itself. A new class _BrowserPasskeysClient_ constructs the relevant objects, acting as a client. _BrowserService_ only acts as a bridge between the client and _BrowserPasskeys_ (authenticator) and calls the relevant popups for user interaction.
- A new helper class _PasskeyUtils_ includes the actual checks and parses the objects.
- _BrowserPasskeys_ is pretty much intact, but some functions have been moved to PasskeyUtils.
- Fixes Ed25519 encoding in _BrowserCBOR_.
- Adds new error messages.
- User confirmation for Passkey retrieval is also asked even if `discouraged` is used. This goes against the specification, but currently there's no other way to verify the user.
- `cross-platform` is also accepted for compatibility. This could be removed if there's a potential issue with it.
- Extension data is now handled correctly during Authentication.
- Allowed and excluded credentials are now handled correctly.
- `KPEX_PASSKEY_GENERATED_USER_ID` is renamed to `KPEX_PASSKEY_CREDENTIAL_ID`
- Adds a new option "Allow localhost with Passkeys" to Browser Integration -> Advanced tab. By default it's not allowed to access HTTP sites, but `http://localhost` can be allowed for debugging and testing purposes for local servers.
- Add tag `Passkey` to a Passkey entry, or an entry with an imported Passkey.

Fixes #10287.
2024-03-09 15:21:46 -05:00
qycyfjy
067deb9bd7 Fix removing entry from history and improve logic of history tab showing 2024-02-04 11:50:52 -05:00
BGM99
99e42b1fce Fix focus loss on save when the widget is not visible anymore 2024-02-04 11:50:52 -05:00
f4lkensmaz3
53d06f127d Prevent duplicate characters in "Also choose from" field of password generator (#9803)
* Fixes #9797
2024-02-04 11:50:52 -05:00
wise0n
3094302bcc Fix menu location in alert 2024-02-04 11:50:52 -05:00
Jonathan White
b504c72563 Fix database merge crash when fdosecrets is enabled (#10136)
* Entry: re-parent before adding to new group

Adding the Entry to the Group will emit signals about the action.
Present the object with the correct parent already.

* fdosecrets: Item::Create() can fail

If an entry cannot be registered on DBus, Item::Create() will return a
nullptr. Basically, this can only happen if there is already an item
with the same UUID in the collection. The only viable option here is to
ignore the new entry.

* Merger: prevent duplicate entry when merging histories

If the source entry is newer, a copy of the entry is made. But before
moving the merged entry to the target group, it must be removed.
Otherwise there will be briefly two entries with the same UUID
in the same group/database.

Even though this is only the case during the transaction, it can still
be observed because the operations emit signals. A notable problem is
the fdosecrets feature that relies on the uniqueness of the UUID or will
otherwise run into problems because the UUID is used as part of the DBus
path.
2024-02-04 11:50:52 -05:00
Jonathan White
b1168d0233 Fix multiple TOTP issues
* Fix #9847 - don't provide TOTP values if settings are blank or completely wrong
* Fix #6838 - don't reset the ui when creating a new entry and applying TOTP to it
* Move totp source into the core folder
2024-02-04 11:50:52 -05:00
Barnabás Pőcze
3ca757883f Do not hard-code colors in classic stylesheet for SearchBanner/KeeShareBanner
Having the green-ish hard-coded color makes the banner stand out
too much when the platform native theming is used.
2024-02-04 11:50:52 -05:00
Remigiusz Żętkowski
c76d9e45e7 Fix docs link anchors 2024-02-04 11:50:52 -05:00
Martin Buchholz
a23b4f4dc0 Fix typo: SSH_AUTH_SOCKET 2024-02-04 11:50:52 -05:00
Sami Vänttinen
e6d2e5fe6e Fix terminating KeePassXC processes with MSI installer (#9822) 2024-02-04 11:50:52 -05:00
Jonathan White
c9b0cbaa4e Prevent scrollbars on entry drag/drop
* Fixes #9746
2024-02-04 11:50:52 -05:00
Colfenor
762fd9462f Fix first entry is not selected when a search is performed (#9868) 2024-02-04 11:50:52 -05:00
Jonathan White
394c0375b7 Update share/linux/org.keepassxc.KeePassXC.appdata.xml
Co-authored-by: Brian J. Murrell <brian@interlinx.bc.ca>
2024-01-30 18:26:45 -05:00
Jonathan White
4cf5e83c38 Bump version to 2.7.7 2024-01-30 18:26:45 -05:00
varjolintu
cb5d3ed21d Fix raising Update Entry messagebox 2024-01-30 18:26:45 -05:00
Jonathan White
4bd9fdd7a4 Passkeys: UI adjustments 2024-01-30 18:26:45 -05:00
varjolintu
fe739578ab Passkeys: Create AAGUID for KeePassXC 2024-01-30 18:26:45 -05:00
varjolintu
3f77678b5c Passkeys: Fix default timeout on authentication 2024-01-30 18:26:45 -05:00
Jonathan White
c477f43c40 Passkeys: Add support for importing Passkey to entry (#9987)
---------
Co-authored-by: Jonathan White <support@dmapps.us>
2024-01-30 18:26:45 -05:00
varjolintu
7371589955 Rename userId to credentialId 2024-01-30 18:26:45 -05:00
Jonathan White
1cbbcff259 Create new UrlTools class
Includes "Fix ifdefs with UrlTools"
2024-01-30 18:26:45 -05:00
Jonathan White
416581b179 Add basic support for WebAuthn (Passkeys) (#8825)
---------

Co-authored-by: varjolintu <sami.vanttinen@protonmail.com>
Co-authored-by: droidmonkey <support@dmapps.us>
2024-01-30 18:26:45 -05:00
Jonathan White
82c1bf4ddb Fix support for referenced URL fields 2024-01-30 18:26:45 -05:00
Sami Vänttinen
7f33868d14 Fix crash on database open from browser (#9939) 2024-01-30 18:26:45 -05:00
Jonathan White
c5312d63f2 Fix various bugs when returning credentials (#9136)
Co-authored-by: Sami Vänttinen <sami.vanttinen@protonmail.com>
2024-01-30 18:26:45 -05:00
Jonathan White
e401e8f4bc Browser Integration code cleanup (#8489)
Co-authored-by: varjolintu <sami.vanttinen@protonmail.com>
2024-01-30 18:26:45 -05:00
Dmytro
159c7cf153
Fix dangling reference (#10135) 2024-01-27 12:09:38 -05:00
lapse
5686776e53
Update CMakeLists.txt (#10098)
Added set(CPACK_COMPONENTS_ALL "") to prevent cmake from causing an XML fragments issue later on in CPack.
2024-01-27 12:04:50 -05:00
Dan Church
05ab5b1700
Fix Botan 2/3 include
Botan::secure_scrub_memory -> defined in mem_ops.h
Botan::secure_vector -> defined in secmem.h

The reason only including secmem.h worked in previous (<3.0) versions of
Botan was because secmem.h included mem_ops.h. This is no longer the
case since commit
randombit/botan@49dbbcb2bf (2023-10-11;
"Split out allocator helpers to allocator.h")

Fixes #10038
2024-01-27 08:52:52 -05:00
Lapse
be873c83d6
Update FindBotan.cmake
The recent debug library is called botan-3.lib, which is unable to be found by this since BOTAN_NAMES_DEBUG does not contain the keyword "botan-3". This commit adds that keyword.
2024-01-27 08:52:44 -05:00
Jonathan White
87c24222b8
Fix Visual Studio install detection in release-tool.ps1 (#10101)
* Update release-tool.ps1

`Get-CimInstance MSFT_VSInstance` does not always work as it uses the default namespace root/cimv2. Specifying `Get-CimInstance MSFT_VSInstance -Namespace root/cimv2/vs` allows it to work.

Co-authored-by: Jonathan White <support@dmapps.us>
2024-01-27 08:50:31 -05:00
Janek Bevendorff
dd21defcf3
Update translations 2023-08-16 00:40:34 +02:00
Janek Bevendorff
25d46fbc03
Update changelog 2023-08-16 00:27:16 +02:00
Jonathan White
742a4f8980
Exclude Flatpak and Snap from proxy detection warning 2023-08-15 07:28:11 -04:00
varjolintu
e84d6c0b06
Revert "Fix password dialog close button"
This reverts commit 5b47190fcc.
2023-08-14 23:23:49 -04:00
Jonathan White
636d013557
Bump to version 2.7.6
* Remove obsolete command line flag on transifex tool
2023-08-14 23:07:28 -04:00