Skip to main content

File encryption

PropertyValue
AlgorithmAES-256-GCM
Key size256 bits
IV size96 bits (randomly generated per file)
Tag size128 bits
Key derivationHKDF-SHA256 from room KEK + file ID

Key wrapping

PropertyValue
AlgorithmAES-256-KW (RFC 3394)
Key size256 bits
Applied toDEK → KEK wrap, KEK → master key wrap
For RSA-based KMS (Azure Key Vault with RSA-HSM):
PropertyValue
AlgorithmRSA-OAEP-256
Key size4096 bits
HashSHA-256

Audit log signatures

PropertyValue
AlgorithmEd25519
Key storageQuelden signing HSM
Signature scopeEvent payload + chain hash
Chain hashSHA-256 of previous entry

TLS

PropertyValue
Minimum versionTLS 1.2
Preferred versionTLS 1.3
Cipher suites (TLS 1.3)TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256
Cipher suites (TLS 1.2)ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384
CertificateRSA-4096 or ECDSA P-384

Password hashing

PropertyValue
AlgorithmArgon2id
Memory64 MB
Iterations3
Parallelism4
Output32 bytes
Salt16 bytes, random per password

Random number generation

All random values (IVs, DEKs, salts, tokens) are generated using the operating system’s CSPRNG (getrandom on Linux, BCryptGenRandom on Windows).

What we do not use

  • MD5 or SHA-1 for any security purpose
  • ECB mode for any block cipher
  • RSA-PKCS1v1.5 for encryption (only RSA-OAEP)
  • Static IVs or nonces
  • Client-side session secrets stored in localStorage