Implementing Keyfiles
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.6k
- Forks
- 3.5k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 61
Description
Feature Request: Keyfiles
About
Keyfiles are files that contains a password. If used correctly (i.e. a long and secure key generation is implemented correctly), keyfiles can improve the security of Electrum users by preventing instances of brute forcing and having the need of manually keying in passwords (if only keyfiles is used). There are some apps out there that have already implemented keyfiles like Keepass and Veracrypt
Demo app: https://github.com/0xLiquidGlass/unnamed/releases/tag/v1.0.0-mainnet
The demo app is a wallet built on Algorand by me using Python. The app has implemented a keyfile feature and I would like everyone to have a try on how the keyfile feature works. Just set up the wallet, then generate a new address where you will have the option to choose on whether to use passwords, keyfiles, or both (i.e 2FA). If you like the keyfile feature, we should then implement it on Electrum
Requirements
- External storage device (e.g. Hard disks)
Advantage
- You get to have a long, secure password
- No typing of password (only if keyfiles are used)
- 2FA (if used alongside password)
- Harder to brute force
- No need to remember password (only if keyfiles are used)
- Can generate new keyfiles with ease, encouraging rekeying of wallet
Disadvantage
- User has to keep keyfile in safe location
- Keyfiles can be stolen or compromised by malware
- Strong entropy must be used (e.g. os.urandom)
- Wallets encrypted with keyfiles can still be brute forced although harder
As you can see, there are more advantages than disadvantages. For this reason, Electrum should implement keyfiles to make wallets more secure.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No Electrum files, tests, or entry points are named. Start by reviewing the wallet-security requirements and the linked demo app's keyfile behavior, then identify the affected wallet encryption flow and relevant tests. Done means an agreed implementation covering password-only, keyfile-only, and combined use, with secure key generation and clear security behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100