Secure BIP39 word viewer with masking and reveal functionality
Project description
SeedShield
A secure BIP39 seed phrase viewer with enterprise-grade security features, designed for safe interaction with cryptocurrency seed phrases. SeedShield emphasizes security and usability while maintaining zero data persistence.
Key Features
Security-First Design
- Zero data persistence - all operations occur in volatile memory
- Secure memory handling with automatic cleanup and sanitization
- Advanced masking system with consistent pattern length
- Timed reveal system with 3-second auto-mask
- Intelligent clipboard management with automatic clearing
- Comprehensive input validation and sanitization
- Anti-keylogging protection via mouse-based interaction
- Secure error handling with proper cleanup
- TTY/non-TTY mode handling for secure input
- Adaptive timeout mechanisms
User Interface
- Interactive word reveal with hover functionality
- Sequential phrase revelation mode
- Multi-source input support (file/clipboard)
- Responsive terminal interface
- Cross-platform support (Windows/Linux/MacOS)
- Dynamic scrolling for long word lists
- Clear command feedback
Security Guidelines
Operating Environment
- Use an air-gapped computer whenever possible
- Run on a secure, clean operating system
- Recommended: Live Linux distribution
- Avoid shared or public computers
- Maintain physical security awareness
- Check for surveillance devices
- Use privacy screens when necessary
- Implement proper memory management
- Clear system RAM after usage
- Utilize secure memory wiping tools
Usage Best Practices
Input Management
- Prefer clipboard input for multiple words (use 'v' command)
- Clipboard contents are automatically cleared after use
- Double-check word positions before revelation
- All input is automatically validated and sanitized
- Invalid inputs are safely rejected
Word Revelation Protocol
- Use sequential reveal mode ('s' command) for systematic checking
- Utilize mouse hover for temporary word exposure
- Allow auto-masking timer to complete
- One word visible at a time for maximum security
- Use scroll navigation for longer lists
Installation
# Install via pip
pip install seedshield
# Install with development dependencies
pip install -e ".[test]"
# Using Docker
docker run -it --rm seedshield
docker run -it --rm -v $(pwd)/input.txt:/input.txt seedshield -i /input.txt
Usage Guide
Basic Commands
# Start interactive mode
seedshield
# Use custom wordlist
seedshield -w custom_words.txt
# Load from positions file
seedshield -i positions.txt
Interactive Controls
v- Import and validate clipboard datan- New input modes- Sequential reveal moder- Reset current sequenceq- Safe exit with cleanup- Mouse hover - Temporary reveal (3s timeout)
- ↑↓ Arrow keys - Scroll through lists
Development
Getting Started
# Clone repository
git clone https://github.com/Barlog951/SeedShield.git
# Setup development environment
cd seedshield
pip install -e ".[test]"
# Run test suite
pytest
Docker Build
Building from Source
# Clone the repository
git clone https://github.com/Barlog951/SeedShield.git
cd SeedShield
# Build local image
chmod +x build.sh
./build.sh
# Test run
docker run -it --rm seedshield --help
# Run with mounted input file
docker run -it --rm -v $(pwd)/input.txt:/input.txt seedshield -i /input.txt
# Run interactive mode
docker run -it --rm seedshield
Note: Built image contains minimal dependencies and runs as non-root user for security.
Technical Architecture
- Python 3.6+ with type hints throughout the codebase
- Comprehensive test suite (73% coverage) with security-focused tests
- Platform-agnostic clipboard handling for cross-platform compatibility
- Curses-based terminal interface with proper initialization and cleanup
- Fully modular design with clean component separation
- Adaptive handling for TTY and non-TTY environments
- Secure memory operations with explicit cleanup
Code Organization
main.py- Entry point and argument handlingsecure_word_interface.py- Core interface coordinationinput_handler.py- Secure input processing and validationdisplay_handler.py- UI rendering and maskingstate_handler.py- State management and security timeoutsui_manager.py- Terminal UI abstraction layersecure_memory.py- Secure memory handling functionsconfig.py- Configuration settings and constantstests/- Comprehensive test suitedata/- Default wordlists
Security Philosophy
SeedShield implements a defense-in-depth approach:
- Multiple independent security layers
- Fail-secure design principles
- Memory-safe operations
- Input validation at all levels
- Automatic security timeout mechanisms
- No data persistence
- Secure error handling
Legal Notice
Disclaimer
SeedShield provides secure seed phrase verification capabilities but should be used as part of a comprehensive security strategy. Users are responsible for implementing appropriate system-level security measures. While SeedShield incorporates robust security features, it should not be relied upon as a sole security measure.
License
Released under the MIT License. See the LICENSE file for complete terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file seedshield-0.2.4.tar.gz.
File metadata
- Download URL: seedshield-0.2.4.tar.gz
- Upload date:
- Size: 40.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5c4d0efe1b72217acfaa7ecbd8db4fa1c9eefb906fede7b1dbda84582ec701e
|
|
| MD5 |
c8d63e2f80ad5ff21926aadd824a2ea8
|
|
| BLAKE2b-256 |
6a3d89dbdfdfca9f71dc04aa4381e60344aac0f7c72983d3816f4ecd9681ca67
|
File details
Details for the file seedshield-0.2.4-py3-none-any.whl.
File metadata
- Download URL: seedshield-0.2.4-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b70c5e169b95291d762edf02d80b353363453d768554d8c13e7799bca1eeffd
|
|
| MD5 |
349001ecb0629720abafd65e0b022f5e
|
|
| BLAKE2b-256 |
30c515190aa1181fd65bcc1d3d556fb1aeb1f705084f1a24e11ea35c8f320e96
|