GitHub - RockwellShah/filekey: Filekey: Encrypt and share files securely with passkeys. Fully offline, easy-to-use, and zero-knowledge for ultimate file protection.

5 min read Original article โ†—

๐Ÿ” FileKey

FileKey is an offline web app that lets you quickly encrypt and share files using passkeys. No accounts, no tracking, no backend servers. Just local, offline security powered by passkeys.

๐Ÿ›ก๏ธ FileKey is open source and privacy-first.


๐Ÿš€ Features

  • โœ… Free & Open Source โ€“ Licensed under GPLv3.
  • โœ… Accountless by Design โ€“ No logins, no tracking.
  • โœ… Passkey-Based Encryption โ€“ Integrates with your existing security key or password manager.
  • โœ… End-to-End Encrypted โ€“ Only you can see your data.
  • โœ… Secure Sharing โ€“ Share files securely with โ€œShare Keysโ€
  • โœ… Offline โ€“ Runs 100% offline in your browser. Can be installed locally as a PWA.

๐Ÿ‘จโ€๐Ÿ’ป How to Use FileKey

  1. Create your FileKey
    Generate a secure passkey stored in your password manager or security key (like iCloud Keychain or Yubikey).

  2. Encrypt files
    Drag and drop any file into FileKey โ€” it's immediately encrypted with AES-256.

  3. Decrypt files
    Drop the encrypted file back in. Your passkey unlocks it quickly, locally and securely.

  4. Share privately
    Encrypt a file for someone else using their Share Key. Only they can open it.


๐Ÿ’พ Supported Systems

In order to use FileKey, you need a compatible password manager (Apple Passwords, Google Passwords, Windows Hello, etc) or a hardware security key that supports FIDO2 and PRF (like the YubiKey 5 and Bio Series). For hardware security keys, your browser and operating system both need to support WebAuthn and the PRF extension. Below is a non-exhaustive compatiblity table:

Platform Supported Passkey Providers Notes
macOS Apple Passwords, Yubikey, 1Password Safari โ‰ฅ 17 or Chrome โ‰ฅ 112. Yubikeys will not work in Safari.
Windows 1Password, YubiKey Edge โ‰ฅ 112 or Chrome โ‰ฅ 112. Requires Windows 11.
Linux YubiKey (via browser) Latest version of Chrome or Chromium-based browsers.
iOS Apple Passwords, 1Password Safari โ‰ฅ 17 or Chrome โ‰ฅ 112
Android Google Passwords, 1Password, Yubikey Chrome โ‰ฅ 112

โš ๏ธ Notes:

  • Proton Pass and BitWarden won't work until they properly support PRF.
  • Samsung Pass has been reported to work, despite not officially supporting PRF.
  • Windows 10 and below does not support PRF, and thus won't work.
  • Filekey will likely work with Chromium based browsers (e.g. Brave, Vivaldi, Opera)

๐Ÿ› ๏ธ How the Encryption Works

FileKey first requires the generation of a passkey, that will be stored on either your password manager or security key device, using the appโ€™s domain as the relying party. Once a passkey has been created, it can then pass a static message through WebAuthn which interacts with a PRF in order to generate a deterministic random value.

Using this deterministic random value, an HKDF with 256 bits of entropy is generated. The HKDF and a random salt is then used to derive a key to be used with AES-GCM. The derived key is then used to encrypt and decrypt the file. A new derived key is used for each additional file.

All low-level cryptographic functions performed within this process are using the webโ€™s built-in SubtleCrypto interface of the Web Crypto API. All encrypted files use a unique randomly generated salt, composed of a 16 byte hash.

๐Ÿ›ก๏ธ To understand more details of the encryption process, see here.


๐Ÿ” Sharing

Every FileKey user has a unique Share Key โ€” a long string that acts like a public address. You can find it in the menu under "Your Share Key."

๐Ÿ“ค Sharing a File

  1. Click the "Share" button next to any file.
  2. Enter the recipientโ€™s Share Key (theyโ€™ll need to provide this to you).
  3. FileKey creates a special encrypted version only that recipient can unlock. Save and send the file (ending in .shared_filekey) via any method โ€” email, messaging, file transfer, etc.

๐Ÿ“ฅ Receiving a Shared File

  1. Open FileKey and authenticate.
  2. Drag and drop the shared file into FileKey.
  3. FileKey detects that itโ€™s a shared file and decrypts it using your key.

๐Ÿ” Security Details for Sharing

  • Your private keys never leave your device.
  • Shared files are locked to a specific recipient.
  • All encryption and decryption happen entirely on your device โ€” no servers involved.
  • Files are secured with AES-256 encryption.
  • Your Share Key does not need to be kept secret, it can be shared openly.

๐Ÿ›ก๏ธ Share with confidence, knowing only your intended recipient can access the file.


๐Ÿซฅ What Happens if FileKey Disappears?

If you are worried about relying on the FileKey website, you can always install FileKey locally as a progressive web app. It's easy, and only takes a few seconds.

๐Ÿ’ป Desktop (Mac, Windows, Linux) with Chrome / Edge / Brave

  1. Open FileKey in your browser.
  2. Look for the โ€œInstall Appโ€ icon in the address bar (a little downward-pointing arrow with a computer/screen).
  3. Click Install.

FileKey will open as its own standalone app and appear in your Applications list, and will fully work offline.

๐Ÿ“ฑ iOS (iPhone / iPad)

Safari is required โ€” only Safari supports PWAs fully on iOS.

  1. Open FileKey in Safari.
  2. Tap the Share icon (square with arrow).
  3. Scroll down and tap Add to Home Screen.
  4. Tap Add in the top-right corner.

FileKey will now behave like a native app and can be used offline once cached.

๐Ÿค– Android with Chrome / Edge / Brave / Samsung Internet

  1. Open FileKey in your browser.
  2. Youโ€™ll see a banner that says โ€œAdd to Home screenโ€ โ€” tap it.
  3. Or tap the โ‹ฎ menu โ†’ Add to Home screen.
  4. Confirm Install.

Youโ€™ll now have a standalone FileKey app icon that works offline.


๐Ÿ™‹โ€โ™‚๏ธ Self-Hosting

For those interested in self-hosting FileKey, user Wintech47 put this awesome guide together.


๐Ÿ“ Review

The famous french cybersecurity blogger Korben wrote a nice breakdown of FileKey on his blog.


๐Ÿ”— Links

๐Ÿ”’ filekey.app
(Best in the latest versions of Chrome, Safari, or Edge)

๐Ÿ“œ Substack
(Our official blog)

๐Ÿ’ฌ Signal Group
(Chat with us directly)