Open app →
Security at NoseLab

Your formulas are yours.
Mathematically.

A perfume formula can be years of work and the core of a business. NoseLab is built so that your formulas are encrypted on your device, before they ever reach our servers — and only you hold the key.

TL;DR: Formulas are protected with zero-knowledge, end-to-end encryption. We store only encrypted data we cannot decrypt. Not us, not our hosting provider, not someone who steals the database — nobody can read your formulas without your encryption passphrase or recovery code.

How it works

When you enable formula encryption, NoseLab generates a random 256-bit master key in your browser. This key encrypts every formula — its name, ingredients, quantities, dilutions, and notes — before anything is sent over the network.

The master key itself never leaves your device unprotected. It is wrapped (encrypted) with a key derived from your encryption passphrase, and only this wrapped version is stored on our servers. Without your passphrase, the wrapped key is useless.

Your device NoseLab servers ─────────────────────────── ────────────────────────── formula (plaintext) │ ▼ encrypted with master key "v1.K7mP2qRxBn9vL3…" ───────────────▶ stored as-is (unreadable) master key │ ▼ wrapped with key derived from your passphrase "aXb8…wrapped…" ───────────────▶ stored as-is (unreadable) passphrase ──── never sent, never stored, known only to you

What this means in practice

QuestionAnswer
Can NoseLab staff read my formulas? No. We only store ciphertext we cannot decrypt.
Can our hosting or database provider read them? No. Encryption happens in your browser, before upload.
If the database were stolen, are formulas exposed? No. The attacker would obtain unreadable ciphertext.
Can NoseLab reset my passphrase if I forget it? No — by design. Only your recovery code can restore access.
Can I export my formulas at any time? Yes. Excel and CSV export of your decrypted data, anytime.

What is encrypted — and what isn't

We encrypt what is genuinely sensitive and keep the rest queryable, so features like price comparison and stock alerts can work. We believe in being precise about this rather than vague:

DataEnd-to-end encryptedWhy
Formulas — names, ingredients, quantities, dilutions, notes, IFRA category Yes This is your intellectual property.
Inventory No Needed server-side for stock totals and low-stock alerts. Reveals what you own, not how you combine it.
Collection & wishlist No Preferences, not trade secrets.
Shopping lists No Used to build supplier cart links.
Accord Research history No The accord names and facets you asked the AI about are stored in plain text, linked to your account, so you can reopen past results for free. You can delete any entry at any time.

All non-encrypted data is still protected by per-user access control (see below) — other users can never see it.

Your responsibility: the recovery code

This is the honest tradeoff of zero-knowledge encryption. When you enable encryption, you receive a one-time recovery code. If you forget your encryption passphrase and lose the recovery code, your formulas cannot be recovered — by you, by us, by anyone. There is no backdoor, because a backdoor for you would be a backdoor for an attacker. Write the code down and store it somewhere safe.

Technical details

Encryption

Formula content is encrypted with NaCl secretbox (XSalsa20-Poly1305 authenticated encryption) using the audited tweetnacl library, with a unique random nonce per write.

Key derivation

Your passphrase is converted to a key-encryption key with PBKDF2-SHA256 (310,000 iterations) via the browser's native Web Crypto API, using a unique random salt per account.

Key handling

The master key exists in your browser's memory for the duration of a session and is cleared on sign-out. It is never written to our servers in unwrapped form and never appears in logs.

Everything else

All traffic is encrypted in transit with TLS. Every database table is protected by row-level security, so each account can only ever query its own rows. Authentication uses single-use magic links — there is no login password to leak or reuse.

Questions perfumers ask us

Why should I trust these claims?

Fair question — "encrypted" is an overused word. Our claim is falsifiable: open your browser's developer tools while saving a formula and inspect the network request. You will see ciphertext, not your ingredients. The formula data stored on our side looks like v1.K7mP2qRxBn9… — and that is all we ever receive.

Does encryption slow the app down?

No. Encrypting a typical formula takes a few milliseconds on any modern device. You won't notice it.

Can I share an encrypted formula with a colleague?

Not yet. Encrypted sharing (using public-key cryptography, so the formula is re-encrypted for the recipient without ever being exposed to our servers) is on the roadmap, along with encrypted team workspaces for studios.

What happens to my data if I delete my account?

Your data is deleted. Encrypted formula blobs are useless without your keys in any case, but we remove them along with the rest of your account data.

I found a security issue — where do I report it?

Please email security@noselab.app. We read every report and respond quickly. Responsible disclosure is genuinely appreciated.