Security
Encryption
zero-knowledge architecture. we never see your decrypted data.
Algorithm
noro uses AES-256-GCM for encryption. this is the same algorithm used by governments and financial institutions worldwide.
- •AES-256: 256-bit key, virtually unbreakable
- •GCM mode: authenticated encryption with integrity check
- •random IV: unique initialization vector per secret
How it works
when you create a secret:
1. generate random 256-bit key 2. generate random 96-bit IV 3. encrypt data with AES-256-GCM 4. send encrypted blob to server 5. key stays in URL fragment (never sent)
when you view a secret:
1. fetch encrypted blob from server 2. extract key from URL fragment 3. decrypt locally in browser 4. server deletes the encrypted blob
Key storage
the encryption key is stored in the URL fragment (the part after #):
https://noro.sh/abc123#encryption_key_here
URL fragments are special:
- •never sent to the server in HTTP requests
- •not included in server logs
- •only accessible by JavaScript in the browser
Zero-knowledge
our servers never have access to:
- •your original secret content
- •the encryption key
- •any way to decrypt the stored data
even if our database was compromised, attackers would only get encrypted blobs that are useless without the keys.
Secure deletion
secrets are permanently deleted:
- •immediately after being viewed (or after view limit reached)
- •automatically when TTL expires
- •no backups are kept of expired secrets