Drop any file here or click to browse
Your file never leaves this browser tab — zero server contact
Decryption only succeeds within this radius of your lock point
Drop a .labyrinth file here
Only files sealed by Labyrinth are accepted
Passphrase stretched with a random 256-bit PBKDF2 salt. 300k iterations resists GPU brute-force for years. Iteration count stored explicitly in the bundle for future migration.
GPS coordinates rounded to chosen precision, combined with a random 16-byte geo-salt (stored in bundle), the user-selected device fingerprint factors, and timezone. The geo-salt is the critical addition — even perfect knowledge of the coordinates yields zero information without the salt. This blocks any offline coordinate enumeration attack regardless of precision setting.
Password key and geo key concatenated and run through HKDF-SHA256. Neither factor alone can decrypt. Domain label prevents key material reuse.
Filename, filesize, and precision are hashed and passed as AES-GCM Additional Authenticated Data. Any modification to bundle metadata fields is detected at decryption — even if the key is correct, tampered metadata causes rejection.
File encrypted with AES-256-GCM, random 96-bit IV, 128-bit GCM authentication tag. Raw file buffer is immediately zeroed with fill(0) after encryption. Wrong password and wrong location both produce the same generic rejection — the error never reveals which factor failed.
| Scenario | Status |
|---|---|
| Stolen ciphertext alone | ✓ Protected |
| Stolen password alone | ✓ Protected |
| File + password, wrong location | ✓ Protected |
| Offline coordinate brute-force | ✓ Geo-salt blocks it |
| Bundle metadata tampering | ✓ Detected via AAD |
| Cloud storage breach | ✓ Protected |
| Lock location read from file | ✓ Not stored |
| Attack Vector | Status |
|---|---|
| GPS spoof + geo-salt + coord knowledge | ⚠ Requires bundle + location |
| Full device compromise (root) | ✗ Not covered |
| Browser memory forensics | ⚠ Mitigated (buffer wipe) |
| Adversary physically at same location | ⚠ Partial |
GPS spoofing now requires the random geo-salt from the bundle, matching timezone, AND matching device fingerprint factors. Coordinates alone are cryptographically useless.
.labyrinth bundle contains: encrypted ciphertext · PBKDF2 salt · AES IV · random geo-salt · filename · filesize · timestamp · precision setting · device binding factor IDs (not their values) · versioned crypto parameter block. No coordinates, no timezone, no raw fingerprint values of any kind. Opening the file in a text editor reveals nothing about where it was sealed.
| Factor | Stability | What Changes It | Recommendation |
|---|---|---|---|
| User Agent | High | Major browser version update | Always include |
| Language | Very High | Manual language change in browser | Always include |
| Platform | Medium | OS reinstall, dual-boot | Optional |
| CPU Cores | High | Hardware change only | Optional (low entropy) |
| Screen Resolution | Low | External monitor, scaling, fullscreen toggle | Avoid for critical files |