1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
# Getting Started with SPHINX
So you want to start using SPHINX for handling your passwords. Great, welcome!
SPHINX is a cryptographic password storage protocol that uses client-server architecture. Unlike traditional password managers that encrypt a database file, SPHINX servers store only cryptographic blobs that are mathematically useless without your master password. Even if compromised, your actual passwords remain secure with information-theoretic security guarantees.
**Note:** To use SPHINX, your client needs to be able to connect to the oracle.
## Quick Start
### 1. Install SPHINX Client
**Debian/Ubuntu and derivatives:**
```bash
sudo apt install pwdsphinx
# Optional: for browser extensions and X11 integration
sudo apt install pinentry-gtk2 xdotool xinput
```
**Other systems:** See the **[installation guide](https://sphinx.pm/client_install.html)** for building from source and dependencies.
### 2. Initialize Your Client
```bash
sphinx init
```
This creates your master key (`~/.sphinx/masterkey`) - **BACK THIS UP!** It also automatically sets up browser extension hosts if `~/.mozilla` or `~/.config/chromium` directories are found.
For Android devices, export your config using `sphinx qr key`. This creates a QR code that can be read by the [androsphinx](https://github.com/dnet/androsphinx) Android app, allowing the app to use the same configuration as you have set up above.
### 3. Configure a Server
Edit `~/.sphinxrc`:
```ini
[servers]
[server.server-name]
address=your.sphinx-server.tld
port=443
```
**Need a server?**
- **Use existing server:** See **[public servers](https://sphinx.pm/servers.html)**
- **Host your own:** Follow the **[server setup guide](https://sphinx.pm/server_install.html)**
### 4. Test Your Setup
```bash
# Create a test password
echo -n "testpassword" | sphinx create testuser example.com
# Retrieve it (use getpwd for security)
getpwd | sphinx get testuser example.com
# Clean up
sphinx delete testuser example.com
# Verify it's gone
echo -n "testpassword" | sphinx get testuser example.com # Should error
```
## What's Next?
- **[Complete Usage Guide](man/sphinx.md)**: All operations and options
- **[Browser Extensions](#browser-extensions)**: Seamless web login
- **[X11 Integration](https://sphinx.pm/x11-integration.html)**: Desktop automation
- **[Server Hosting](https://sphinx.pm/server_install.html)**: Run your own oracle
## Browser Extensions
SPHINX provides browser extensions for Firefox and Chrome/Chromium
that enable seamless password filling on websites.
websphinx consists of two parts: the frontend (which is the add-on to install from
the browser extension store) and the backend (which handles everything).
The backend is actually a native messaging host that communicates with the browser extension.
The native messaging host is auto-configured by `sphinx init`.
### Prerequisites
Install pinentry for secure password input:
```bash
# Choose one appropriate for your desktop environment:
sudo apt install pinentry-gtk2 # GTK/GNOME
sudo apt install pinentry-qt # KDE/Qt
sudo apt install pinentry-gnome3 # Modern GNOME
sudo apt-get install pinentry-fltk # Lightweight option
```
### Firefox Extension
1. **Install from [Firefox Add-ons Store](https://github.com/stef/pwdsphinx/releases/tag/v2.0.0)**
2. **Configure pinentry** (if not using default `/usr/bin/pinentry`):
Add to `~/.sphinxrc`:
```ini
[websphinx]
pinentry=/usr/bin/pinentry-gtk-2
```
3. **Restart Firefox** and enjoy!
### Chrome/Chromium Extension
1. **Download** from [websphinx-chrom repository](https://github.com/stef/websphinx-chrom)
2. **Install in Developer Mode:**
- Open `chrome://extensions`
- Enable "Developer mode"
- Click "Load unpacked extension"
- Select the downloaded directory
3. **Configure pinentry** (same as Firefox above)
4. **Restart browser** and enjoy!
|