Repository navigation
Replies: 1 comment 1 reply
|
How about supporting the Credential Exchange Protocol (CXP) as this is getting more widespread support as a secure cross platform secure exchange protocol between password managers. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Please note that this is only a proposal and needs to be discussed with the other KeePass client teams to maximize adoption. This document is a draft and will be updated based on information from the discussions.
Context
While KeeShare is used to share large amounts of data by creating subdatabases, there is no easy way to share a small amount of data from the fields of a single entry.
The KeePass Secure Share (KSS) protocol is a proposal that provides a secure method to transport sensitive data from one entry.
Note : QR code generation is one of many ways to transfer data and will not be implemented directly in KeePassDX.
The sharing system will be available in two formats:
The protocol uses a standard URI structure to allow for precise Android Intent filtering and future extensibility.
A. Secure Envelope
The data is serialized into a JSON object, encrypted, and encoded into a URI fragment. Because the payload itself is encrypted, the URI does not require aggressive, immediate expiration.
This method will be used to share data or transfer it to other external applications that are not necessarily on the same device (QR Codes, sharing via messengers, and offline inter-device transport).
keepass: The generic scheme. Not specific to KeePassDX.//share(Authority): Explicitly defines the action. This ensures the URI is routed to the "Import/Retrieval" logic rather than being treated as a database path.#(Fragment): The encrypted payload is placed in the fragment to prevent it from being sent to servers if the URI is accidentally processed as a web link (standard security practice). Contains the protocol version (defines the JSON schema and the cryptographic suite used (AES-GCM)).To keep the payload compact and consistent with the KeePass ecosystem, KSS uses the standardized characters from the KeePass Field References specification. https://keepass.info/help/base/fieldrefs.html
Example
Fragment Cryptography
Extensibility for V2
Potential for ECIES (Asymmetric) sharing where the Trusted App provides a Public Key to KeePassDX for automated encryption without a shared password.
Workflow
Device A
keepassdx://share/v1#...string to be share by intentDevice B
POC
#2593
B. Ephemeral Link
In order to sharing data with Trusted Applications on the same device (e.g., a dedicated Browser, OTP app, or QR generator).
KeePassDX acts as a ContentProvider and exposes standard
content://streams directly to target third-party applications. Instead of sending the actual data, it sends a temporary URI. The recipient app must call back to KeePassDX to retrieve the data.This method will be used to seamlessly share data with other apps directly related to password management on the same device.
Format
The content provider will be used in two formats:
Trusted App
Verification of the Android App Signature (SHA-256) of the requesting app. Access is only granted to "Trusted Apps" previously allow-listed by the user.
Invalidation
The URI is ephemeral. The provider is configured to invalidate the URI immediately after the first successful read or automatically expires if the database is closed.
Content Provider URI
Unique field
Entry
Sub-Group
Available only with v4 databases
Example
The protocol is used to retrieve the password from a receiver app.
AndroidManifest.xml
Unique field
URI Retrieved :
content://com.keepass.provider/6E43354164E7DAE41B62FB84E82A7B84/passwordSub-Group
URI Retrieved :
content://com.keepass.provider/9D19BDA171B8C642B82F1FFF447577C4// TODO
POC
#2584
https://gitlab.com/kunzisoft/android-hardware-key-driver/-/merge_requests/17
WiFi Share
TODO
keepassxreboot/keepassxc#10000
References
keepassxreboot/keepassxc#675
#266
#434
#729
#1033
#1432
#1443
#1977
#2186
All reactions