FyVault

Most secret managers protect secrets in storage. We protect them in use.

49% of breaches involve stolen credentials. Encrypting secrets at rest is table stakes. The real question is what happens when your application needs to use them. That is where every other vault falls short, and where FyVault begins.

SOC 2 Type II

Audit trail compliance

AES-256-GCM

Client-side encryption

FIDO2/WebAuthn

Hardware security keys

Nitro Enclaves

Confidential compute

Defense in Depth

Application Layer — Placeholders OnlyKernel Layer — eBPF SealedCloud Layer — Zero KnowledgeYour Secrets

The problem

Your vault locks the front door. Your .env file leaves a window open.

Traditional Flow

Vault
fetch
.env
memory
EXPOSED ✗

FyVault Flow

Vault
agent
kernel
syscall
SEALED ✓

Traditional Vault

Secrets are fetched from a vault, then placed into environment variables or config files. They sit in plaintext in process memory, core dumps, and /proc filesystem. Any code execution vulnerability gives an attacker direct access to every credential your app uses.

$ cat .env
STRIPE_KEY=sk_live_4eC39HqLyjWD...
DB_PASSWORD=p@ssw0rd_PROD_2024
# plaintext in memory, on disk

FyVault

Your application only holds FYVAULT:: placeholders. Real credentials are injected at the kernel boundary via eBPF, exist for microseconds during the syscall, and never enter your application's address space. A memory dump reveals nothing.

$ cat .env
STRIPE_KEY=FYVAULT::stripe
DB_PASSWORD=FYVAULT::db-prod
# placeholders only, no real values

PLACEHOLDERS_ONLY

Application Layer

Your application never touches a real secret. Every environment variable, every config value, every connection string is a FYVAULT:: placeholder. A full memory dump of your running process returns nothing useful to an attacker.

Data Flow

App Process
placeholder
FYVAULT::stripe
kernel
Real sk_live_...
  • No secrets in env vars
  • No secrets in /proc/PID/environ
  • No secrets in core dumps
  • Safe to log environment
Application Layer
$ cat /proc/4821/environ
STRIPE_KEY=FYVAULT::stripe
DB_URL=FYVAULT::db-url
AWS_KEY=FYVAULT::aws-secret
✓ No real secrets in process memory

EBPF_SEALED

Kernel Layer

When your application makes an outbound syscall, eBPF programs intercept it at the kernel boundary and rewrite FYVAULT:: placeholders with real credentials sourced from the kernel keyring. The secret exists in transit for microseconds.

Data Flow

sendmsg()
intercept
eBPF rewrite
inject
Real header sent
  • Kernel keyring isolation
  • Per-syscall credential injection
  • ~3µs overhead per rewrite
  • Separate OS user for key storage
Kernel Layer
$ bpftrace -e 'tracepoint:syscalls:sys_enter_sendmsg'
intercepting sendmsg() on PID 4821...
rewriting Authorization header...
FYVAULT::stripe → sk_live_4eC39H...
✓ Rewrite in 2.8µs — kernel only

ZERO_KNOWLEDGE

Cloud Layer

Every secret is encrypted on your device with AES-256-GCM before it ever leaves. We store opaque ciphertext. Your encryption key is derived from your organization passphrase and never transmitted.

Data Flow

Your Browser
encrypt
Ciphertext
store
Our Servers (can’t read)
  • AES-256-GCM client-side
  • Key derived from org passphrase
  • Server stores opaque blobs
  • Offline after boot
Cloud Layer
$ fyvault status --encryption
cipher: AES-256-GCM
kdf: PBKDF2-SHA256 (600k rounds)
server: stores ciphertext only
cloud: disconnected (offline mode)
✓ Zero-knowledge — we never see plaintext

By the numbers

What runtime protection looks like in practice

0 bytes

Memory exposure

00%100
~3\u00B5s

Overhead per rewrite

03%100
256-bit

AES-GCM encryption

0100%100
\u221E

Offline capable

0100%100
Threat Model

Here is exactly what we protect and what we don't

Ten attack vectors. Eight fully mitigated. One partially covered. One documented architectural limit. No surprises.

Shield Score
8
1
1
08/10 protected10
8 Protected
1 Partial
1 Documented Limit

Attacker reads .env file

Sees FYVAULT:: placeholders — no real credentials present

Memory dump of application process

No plaintext secrets found in process address space

Man-in-the-middle on network traffic

TLS 1.3 with certificate pinning — intercepted traffic is encrypted

Stolen device authentication token

Hardware fingerprint mismatch blocks use on any other device

Database breach of FyVault servers

Only AES-256-GCM ciphertext stored — we cannot decrypt it

Compromised or severed cloud connection

Agent operates fully offline after initial boot sequence

Supply chain attack via frontend JavaScript

Crypto runs in isolated Worker with non-extractable keys and strict CSP

Secret leakage from SDK or CLI output

SDK returns rotating handles (fvh_) that expire in minutes and only work on localhost

Root access to application server

Kernel keyring stored under separate OS user — reduces blast radius

Full kernel compromise with root escalation

Assumes kernel integrity — this is a documented architectural limit

Read the full security documentation

Everything on this page is a summary. The complete security whitepaper covers our encryption primitives, key derivation functions, eBPF implementation, threat model, and compliance posture in detail.